2023年上海计算机等级考试二级CB卷_第1页
2023年上海计算机等级考试二级CB卷_第2页
2023年上海计算机等级考试二级CB卷_第3页
2023年上海计算机等级考试二级CB卷_第4页
2023年上海计算机等级考试二级CB卷_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023二级C(B卷)一、单项选择题(答案在最后)

二、填空题(答案在最后)程序功能:输入一个正整数,将其各位上为偶数的数字去除,剩余的数按本来从高位到低位的顺序组成一个新的数,并将其输出到文献out1.txt中。例如,输入:,输出到文献:135779。代码:#include<stdio.h>intmain(void){longn;intk,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)_____;/*关闭文献*/return0;}程序功能:从键盘输入一个字符串和一个字符,记录字符串中该字符出现的次数,并输出结果。例如,输入字符串:aBEddfghDdd,输入字符:d,输出结果:4。代码:#include<stdio.h>intnum(charstr[]){charch;inti=0,count=0;printf("输入字符:");scanf("%c",&ch);while(_____(1)_____){if(_____(2)_____)count++;i++;}returncount;}intmain(void){charstr[80];intn;printf("输入字符串:");gets(_____(3)_____);n=_____(4)_____;printf("输出结果:%d\n",n);return0;}三、操作题(一)程序调试题(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%,2023元的税利为10%。含错误源程序:#include<stdio.h>intmain(void){floatsalary,tax;printf("请输入月收入:");scanf("%d",&salary);if(salary<=3500)tax=0elseif(salary<=5000)tax=(salary-3500)*0.03;elsetax=1500*0.03+(salary-3500)*0.1;printf("个人所得税为:%.2f\n",tax);return0;}参考答案:#include<stdio.h>intmain(void){floatsalary,tax;printf("请输入月收入:");scanf("%f",&salary);/*******/if(salary<=3500)tax=0;/*******/elseif(salary<=5000)tax=(salary-3500)*0.03;elsetax=1500*0.03+(salary-5000)*0.1;/*******/printf("个人所得税为:%.2f\n",tax); return0;}2.程序调试题2调试规定:下列程序(C:\KS\B_2_2.c)包含3个错误,请按题中的功能规定,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运营能得到对的的结果。将程序结果(涉及B_2_2.c文献和B_2_2.EXE文献)保存到目录C:\KS\中。功能说明:自定义一个表达分数的结构体类型,在主函数中输入两个分数,通过调用函数计算两个分数的和,最后在主函数中输出计算的结果(不化简)。运营示例:含错误源程序:#include<stdio.h>structFrac{intMol;intDen;};structadd(structFraca,structFracb){structFracc;c.Mol=a.Mol*b.Den+a.Den*b.Mol;c.Den=a.Den+b.Den;returnc;}intmain(void){structFracn,m,t;printf("请输入第一个分数:");scanf("%d/%d",&n.Mol,&n.Den);printf("请输入第二个分数:");scanf("%d/%d",&m.Mol,&m.Den);t=structadd(n,m);printf("%d/%d+%d/%d=%d/%d\n",n.Mol,n.Den,m.Mol,m.Den,t.Mol,t.Den);return0;}参考答案:#include<stdio.h>structFrac{intMol;intDen;};structFracadd(structFraca,structFracb)/*******/{structFracc;c.Mol=a.Mol*b.Den+a.Den*b.Mol;c.Den=a.Den*b.Den;/*******/returnc;}intmain(void){structFracn,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);return0;}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>voidinter(ints1[],ints2[],ints3[]);intmain(void){inta[5],b[5],c[5];inti,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");return0;}intinter(ints1[],ints2[],ints3[]){intj,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];}returnk;}参考答案:#include<stdio.h>intinter(ints1[],ints2[],ints3[]);/*******/intmain(void){inta[5],b[5],c[5];inti,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");return0;}intinter(ints1[],ints2[],ints3[]){intj,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];/*******/}returnk;}(二)编程题(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的所有元素。运营示例:输入:225566994433771108860输出:66997788参考答案:#include<stdio.h>#defineN10intmain(void){inta[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>intmain

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论