- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 PAGE 1 页 共 NUMPAGES 8 页(D卷,2017年上海等级考C语言)
2017年上海计算机等级考试 阅卷 二级C语言(D卷)
选择题得分率,B卷=54.7%,C卷=59.2%,D卷=63.6%,2017平均58.1%,2016年64.4%
一、评阅前须知:
计算机自动阅卷中,如果计算机给满分的,则您就不用看了,就看计算机非满分的题目。
为提高阅卷效率,在Windows系统中,建议阅卷老师显示文件扩展名(取消隐藏已知文件类型的扩展名),并将.c与.cpp绑定到自己熟悉的编程环境。
二、程序填空题(2小题,4+4空,每空 2.5 分,共 20 分)
由于系统原因,学生答卷的’(单引号)可能显示为’’(两个单引号),可能显示为,不影响系统的自动评分。
学生答案与正确答案有可能不一致,系统进行相似性判断时可能自动给分。
对于系统自动打0分的填空,请老师对照正确答案,酌情打分。
1. 程序功能:统计任一整数中某个数字出现的次数,并将结果保存到文件result.txt中。
运行示例:
#include stdio.h
int count(int num,int digit)
{
int i,m,n=0;
if (num0) num = _____(1)_____;
m = num%10;
for (i=0; num0; i++)
{
if (_____(2)_____) n=n+1;
num = num/10;
m = num%10;
}
return n;
}
int main(void)
{
int num, n, digit;
FILE *fp;
if ((fp=fopen(result.txt,w))== _____(3)_____ )
{ printf(can not open file:result.txt!);
return -1;
}
scanf(%d%d, num , digit);
n = count(_____(4)_____);
fprintf(fp,%d,n);
fclose(fp);
return 0;
}
2. 程序功能:已有一首“藏头诗”存于字符串数组中,程序实现每句诗截取相同个数的若干汉字连接成一行新的句子并输出,需截取的汉字数由键盘输入。说明:题目确保截取的汉字数不大于每行诗中的汉字个数,一个汉字占两个字节。
运行示例:
#include stdio.h
#include string.h
void substr(char s[],char t[],int start,int n)
{ //把s串中从start下标开始共n个字符复制到t串中
int i,j;
for (i=start,j=0; s[i]!=\0 jn; i++,j++)
t[j] = _____(1)_____;
t[j]= \0 ;
}
int main(void)
{
char st[4][20]={秋风萧瑟冻残叶,水映楼台见青云,
依风倚月画里春,人称才子配佳人};
char s[80] = , t[20];
int i,c; //c为每行截取的汉字个数
printf(请输入每行从头获取汉字的个数:);
scanf(%d, _____(2)_____);
for (i=0; i4; i++)
{
substr(st[i],t, 0, _____(3)_____);
strcat(s,t);
}
puts(_____(4)_____);
return 0;
}
题号
答案
评分
1(1)
【-num】 【abs(num)】【0-num】
【num*(-1)】【-1*num】【(-1)*num】
【fabs(num)】
【(-num)】【(0-num)】【-1.0*num】
【num=-num】【num=0-num】
【num/(-1)】【num/-1】
【num-2*num】
取负数
相近得1~2分
1(2)
【m==digit】
【digit==m】
相近得1~2分
1(3)
【NULL】 【0】 【\0】
相近得1~2分
1(4)
【num,digit】
相近得1~2分
2(1)
【s[i]】
【*(s+i)】
相近得1~2分
2(2)
【c】
相近得1~2分
2(3)
【2*c】
【c*2】
回答
文档评论(0)