上海计算机等级考试二级CB卷.docx
《上海计算机等级考试二级CB卷.docx》由会员分享,可在线阅读,更多相关《上海计算机等级考试二级CB卷.docx(22页珍藏版)》请在咨信网上搜索。
上海计算机等级考试二级CB卷 二级C( B卷) 一、单项选择题(答案在最后) 二、填空题(答案在最后) 程序功能:输入一个正整数,将其各位上为偶数的数字去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并将其输出到文件out1.txt中。例如,输入:,输出到文件:135779。 代码: #include <stdio.h> 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\n",z); _____(4)_____; /* 关闭文件 */ return 0; } 程序功能:从键盘输入一个字符串和一个字符,统计字符串中该字符出现的次数,并输出结果。例如,输入字符串:aBEddfghDdd,输入字符:d,输出结果:4。 代码: #include <stdio.h> 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",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%, 元的税利为10%。 含错误源程序: #include <stdio.h> 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\n", tax); return 0; } 参考答案: #include <stdio.h> 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\n", tax); return 0; } 2. 程序调试题2 调试要求:下列程序(C:\KS\B_2_2.c)包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括B_2_2.c文件和B_2_2.EXE文件)保存到目录C:\KS\中。 功能说明:自定义一个表示分数的结构体类型,在主函数中输入两个分数,经过调用函数计算两个分数的和,最后在主函数中输出计算的结果(不化简)。 运行示例: 含错误源程序: #include<stdio.h> 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",n.Mol,n.Den,m.Mol,m.Den,t.Mol,t.Den); return 0; } 参考答案: #include<stdio.h> 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",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 <stdio.h> void inter(int s1[],int s2[],int s3[]); int main(void ) { int a[5],b[5],c[5]; int i,n; printf ("请输入第一个集合内容,5个整型数\n"); for(i=0;i<5;i++) scanf("%d",&a[i]); printf ("请输入第二个集合内容,5个整型数\n"); for(i=0;i<5;i++) scanf("%d",&b[i]); n=inter(a,b,c); printf ("A,B交集元素为:\n"); for(i=0;i<5;i++) printf("%4d", c[i]); printf("\n"); 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 <stdio.h> int inter(int s1[],int s2[],int s3[]); /*******/ int main(void ) { int a[5],b[5],c[5]; int i,n; printf ("请输入第一个集合内容,5个整型数\n"); for(i=0;i<5;i++) scanf("%d",&a[i]); printf ("请输入第二个集合内容,5个整型数\n"); for(i=0;i<5;i++) scanf("%d",&b[i]); n=inter(a,b,c); printf ("A,B交集元素为:\n"); for(i=0;i<n;i++) /*******/ printf("%4d", c[i]); printf("\n"); 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; } (二)编程题(2小题,共35分,其中第1小题15分,第2小题20分) 1.编程题1 编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将程序结果(包括B_4_1.c文件和B_4_1.EXE文件)保存到目录C:\KS\中。 程序功能:按示例格式完成以下要求。 (1) 输入10个整数(存入数组a),再输入整数x。 (2) 输出数组a中大于等于x的所有元素。 运行示例: 输入:22 55 66 99 44 33 77 11 0 88 60 输出:66 99 77 88 参考答案: #include <stdio.h> #define N 10 int main(void) { int a[N],i,x; for (i=0;i<N;i++) scanf("%d",&a[i]); scanf("%d",&x); for (i=0;i<N;i++) if (a[i]>=x) printf("%d ",a[i]); printf("\n"); } 2.编程题2 编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将程序结果(包括B_4_2.c文件和B_4_2.EXE文件)保存到目录C:\KS\中。 程序功能:按示例格式完成以下要求(验证数学上考拉兹猜想:任意一个大于1正整数,连续进行特定运算,经有限步骤后,计算结果得到1)。 (1) 输入整数n,如果n小于2,输出"Error"并结束运行。 (2) 如果整数n为偶数,计算n/2,否则计算3*n+1,生成新的整数(仍存为n)。 (3) 如果生成的整数结果等于1,则结束运行,否则重复步骤(2)与(3)。 运行示例1: 输入:12 输出:[12] {1}6 {2}3 {3}10 {4}5 {5}16 {6}8 {7}4 {8}2 {9}1 说明:输入12,第1次计算生成6,第2次计算生成3,……,第9次计算生成1。示例中{1}、{2}至{9}为生成的次数标记,[]、{}与间隔空格都必须保留。 运行示例2: 输入:0 输出:Error 说明:输入为0、1或负数,输出"Error"。 参考答案: #include <stdio.h> int main(void) { long n; int i,j; scanf("%ld",&n); if (n<=0) { printf("Error\n"); return -1; } printf("[%ld] ",n); for (i=1;1;i++) { if (n%2==0) n = n/2; else n = 3*n + 1; printf("{%d}%ld ",i,n); if (n==1) break; } printf("\n"); return 0; } 二级 C 程序设计 B 场 参考答案 一、单选题 1. D 2. D 3. B 4. B 5. B 6. C 7. D 8. A 9. D 10. C 二、程序填空题参考答案 1. 1):【z=0】 2):【n!=0】【n】【n>0】【n>=1】 3):【n%10】【k=n%10】【n-n/10*10】 4):【fclose(fp)】 2. 1):【str[i]!='\0'】【str[i]】【str[i]!=0】【i<strlen(str)】 2):【str[i]==ch】【ch==str[i]】 3):【str】 4):【num(str)】 三、改错题 四、编程题- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海 计算机等级考试 二级 CB
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文