365文库
登录
注册
2

2015 上海计算机等级考试二级C(B卷)

302阅读 | 14收藏 | 16页 | 打印 | 举报 | 认领 | 下载提示 | 分享:
2
2015 上海计算机等级考试二级C(B卷)第1页
2015 上海计算机等级考试二级C(B卷)第2页
2015 上海计算机等级考试二级C(B卷)第3页
2015 上海计算机等级考试二级C(B卷)第4页
2015 上海计算机等级考试二级C(B卷)第5页
2015 上海计算机等级考试二级C(B卷)第6页
2015 上海计算机等级考试二级C(B卷)第7页
2015 上海计算机等级考试二级C(B卷)第8页
2015 上海计算机等级考试二级C(B卷)第9页
2015 上海计算机等级考试二级C(B卷)第10页
2015 上海计算机等级考试二级C(B卷)第11页
2015 上海计算机等级考试二级C(B卷)第12页
2015 上海计算机等级考试二级C(B卷)第13页
2015 上海计算机等级考试二级C(B卷)第14页
2015 上海计算机等级考试二级C(B卷)第15页
2015 上海计算机等级考试二级C(B卷)第16页
福利来袭,限时免费在线编辑
转Pdf
right
1/16
right
下载我编辑的
下载原始文档
收藏 收藏
搜索
下载二维码
App功能展示
海量免费资源 海量免费资源
文档在线修改 文档在线修改
图片转文字 图片转文字
限时免广告 限时免广告
多端同步存储 多端同步存储
格式轻松转换 格式轻松转换
用户头像
赐我 上传于:2024-07-12
2015二级C( B卷) 一、单项选择题(答案在最后)      二、填空题(答案在最后)  程序功能:输入一个正整数,将其各位上为偶数的数字去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并将其输出到文件out1.txt中。例如,输入:134456779,输出到文件:135779。 代码: #include int main(void) { long n; int k,i=1; int _____(1)_____; FILE *fp; fp=fopen("out1.txt","w"); scanf("%ld",&n); while ( _____(2)_____ ) { k = _____(3)_____; n = n/10; if (k%2 == 1) { z = z+k*i; i = 10*i; } } fprintf(fp,"%d
",z); _____(4)_____; /* 关闭文件 */ return 0; }  程序功能:从键盘输入一个字符串和一个字符,统计字符串中该字符出现的次数,并输出结果。例如,输入字符串:aBEddfghDdd,输入字符:d,输出结果:4。 代码: #include int num(char str[]) { char ch; int i=0,count=0; printf("输入字符:"); scanf("%c",&ch); while( _____(1)_____ ) { if( _____(2)_____ ) count++; i++; } return count; } int main(void) { char str[80]; int n; printf("输入字符串:"); gets( _____(3)_____ ); n = _____(4)_____; printf("输出结果: %d
",n); return 0; } 三、操作题 (一)程序调试题(3小题,第1、2小题各3处错,第3小题4处错,每错误点3分,共30分) 1. 程序调试题1 调试要求:下列程序(C:\KS\B_2_1.c)包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括B_2_1.c文件和B_2_1.EXE文件)保存到目录C:\KS\中。 功能说明:输入某人某一个月的月收入(在2500元到8000元之间),计算并输出该月份他应缴的个人所得税。个人所得税采用分段计算方法计算,具体为:月收入不超过3500元(含3500元,以下同)免税;月收入超过3500元但不超过5000元的,超过部分的税率为3%;月收入超过5000元但不超过8000元的,超过5000元部分的税率为10%。 运行示例: 输入:请输入月收入: 7000 输出:个人所得税为: 245.00 说明:月收入7000元中3500元免税,1500元的税利为3%,2000元的税利为10%。 含错误源程序: #include int main(void) { float salary,tax; printf("请输入月收入: "); scanf("%d", &salary); if (salary<=3500) tax=0 else if (salary<=5000) tax=(salary-3500)*0.03; else tax=1500*0.03+(salary-3500)*0.1; printf("个人所得税为: %.2f
", tax); return 0; } 参考答案: #include int main(void) { float salary,tax; printf("请输入月收入: "); scanf("%f", &salary); /*******/ if (salary<=3500) tax=0; /*******/ else if (salary<=5000) tax=(salary-3500)*0.03; else tax=1500*0.03+(salary-5000)*0.1; /*******/ printf("个人所得税为: %.2f
", tax); return 0; } 2. 程序调试题2 调试要求:下列程序(C:\KS\B_2_2.c)包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括B_2_2.c文件和B_2_2.EXE文件)保存到目录C:\KS\中。 功能说明:自定义一个表示分数的结构体类型,在主函数中输入两个分数,通过调用函数计算两个分数的和,最后在主函数中输出计算的结果(不化简)。 运行示例:  含错误源程序: #include struct Frac { int Mol; int Den; }; struct add(struct Frac a,struct Frac b) { struct Frac c; c.Mol=a.Mol*b.Den+a.Den*b.Mol; c.Den=a.Den+b.Den; return c; } int main(void) { struct Frac n,m,t ; printf("请输入第一个分数:"); scanf("%d/%d",&n.Mol,&n.Den); printf("请输入第二个分数:"); scanf("%d/%d",&m.Mol,&m.Den); t= struct add(n,m); printf("%d/%d+%d/%d=%d/%d
",n.Mol,n.Den,m.Mol,m.Den,t.Mol,t.Den); return 0; } 参考答案: #include struct Frac { int Mol; int Den; }; struct Frac add(struct Frac a,struct Frac b) /*******/ { struct Frac c; c.Mol=a.Mol*b.Den+a.Den*b.Mol; c.Den=a.Den*b.Den; /*******/ return c; } int main(void) { struct Frac n,m,t ; printf("请输入第一个分数:"); scanf("%d/%d",&n.Mol,&n.Den); printf("请输入第二个分数:"); scanf("%d/%d",&m.Mol,&m.Den); t= add(n,m); /*******/ printf("%d/%d+%d/%d=%d/%d
",n.Mol,n.Den,m.Mol,m.Den,t.Mol,t.Den); return 0; } 3. 程序调试题3 调试要求:下列程序(C:\KS\B_2_3.c)包含4个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括B_2_3.c文件和B_2_3.EXE文件)保存到目录C:\KS\中。 功能说明:输入两个由整型数构成的集合(元素个数均为5)分别放到数组A和B中,求这两个集合的交集(交集的元素由两个集合中的相同元素构成),最后输出交集中的元素。 运行示例:  含错误源程序: #include void inter(int s1[],int s2[],int s3[]); int main(void ) { int a[5],b[5],c[5]; int i,n; printf ("请输入第一个集合内容,5个整型数
"); for(i=0;i<5;i++) scanf("%d",&a[i]); printf ("请输入第二个集合内容,5个整型数
"); for(i=0;i<5;i++) scanf("%d",&b[i]); n=inter(a,b,c); printf ("A,B交集元素为:
"); for(i=0;i<5;i++) printf("%4d", c[i]); printf("
"); return 0; } int inter(int s1[],int s2[],int s3[]) { int j,i=k=0; for(i=0;i<5;i++) { for(j=0;j<5;j++) if (s1[i]==s2[j]) break; if(j<5) s3[k]=s1[i] ; } return k; } 参考答案: #include int inter(int s1[],int s2[],int s3[]); /*******/ int main(void ) { int a[5],b[5],c[5]; int i,n; printf ("请
tj