2015上海计算机等级考试二级C(B卷_第1页
2015上海计算机等级考试二级C(B卷_第2页
2015上海计算机等级考试二级C(B卷_第3页
2015上海计算机等级考试二级C(B卷_第4页
2015上海计算机等级考试二级C(B卷_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、本文档如对你有帮助,请帮忙下载支持!2015 二级 C( B卷)、单项选择题(答案在最后) 二、填空题(答案在最后)程序功能:输入一个正整数, 将其各位上为偶数的数字去除, 剩余的数按原来从 高位到低位的顺序组成一个新的数, 并将其输出到文件 out1.txt 中。例如,输入: 9,输出到文件: 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

2、+k*i;i = 10*i; fprintf(fp,%dn,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 str80;int n;printf(

3、输入字符串 :); gets( (3) );n = (4);printf(输出结果 : %dn,n);return 0;三、操作题3小题,第 1、2小题各 3处错,第 3小题4处错,每错误点 3分,共 30分)(一) 程序调试题( C:KSB_2_1.c ) 包含3个错误,请按题中的功能要求,调试并修改该程 /*/ 字样的注释 ),使其运行能得到正确的结果。将程序结果(包1. 程序调试题 1调试要求: 下列程序序(在所修改语句后加括B_2_1.c文件和B_2_1.EXE文件)保存到目录中。功能说明: 输入某人某一个月的月收入(在2500元到 8000元之间) ,计算并输出该月份他应缴的个人所得

4、税。 个人所得税采用分段计算方法计算, 具体为:月收入不超过 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, &s

5、alary);if (salary=3500) tax=0else if (salary=5000) tax=(salary-3500)*0.03;else tax=1500*0.03+(salary-3500)*0.1;printf( 个人所得税为 : %.2fn, 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-3

6、500)*0.03;else tax=1500*0.03+(salary-5000)*0.1;printf( 个人所得税为 : %.2fn, tax);return 0;2. 程序调试题 2中。在主函数中输入两个分数, 通过调用函数计 ( 不化简 ) 。调试要求: 下列程序 ( C:KSB_2_2.c ) 包含3个错误,请按题中的功能要求,调试并修改该程 序(在所修改语句后加 /*/ 字样的注释 ),使其运行能得到正确的结果。将程序结果(包括B_2_2.c文件和B_2_2.EXE文件)保存到目录 功能说明: 自 定义一个表示分数的结构体类型, 算两个分数的和,最后在主函数中输出计算的结果 运行

7、示例: 含错误源程序: #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 a

8、dd(n,m); printf(%d/%d+%d/%d=%d/%dn,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(请输入

9、第一个分数:);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/%dn,n.Mol,n.Den,m.Mol,m.Den,t.Mol,t.Den); return 0;3. 程序调试题 3 调试要求: 下列程序 ( C:KSB_2_3.c ) 包含4个错误,请按题中的功能要求,调试并修改该程 序(在所修改语句后加 /*/ 字样的注释 ),使其运行能得到正确的结果。将程序结果(包 括B_2_3.c文件和B_2_3.EXE文件)

10、保存到目录中。功能说明:输入两个由整型数构成的集合(元素个数均为5)分别放到数组A和B中,求这两个集合的交集(交集的元素由两个集合中的相同元素构成),最后输出交集中的元素。运行示例: 含错误源程序: #include void inter(int s1,int s2,int s3); int main(void ) int a5,b5,c5;int i,n;printf ( 请输入第一个集合内容 ,5 个整型数 n); for(i=0;i5;i+) scanf(%d,&ai);5个整型数 n);printf ( 请输入第二个集合内容, for(i=0;i5;i+)scanf(%d,&bi);

11、n=inter(a,b,c); printf (A, B交集元素为:n);for(i=0;i5;i+) printf(%4d, ci);printf(n); return 0;int inter(int s1,int s2,int s3) int j,i=k=0; for(i=0;i5;i+) for(j=0;j5;j+)if (s1i=s2j) break; if(j5) s3k=s1i ;return k;参考答案:#include /*/int inter(int s1,int s2,int s3);int main(void )int a5,b5,c5;int i,n;n);print

12、f ( 请输入第一个集合内容 ,5个整型数 for(i=0;i5;i+) scanf(%d,&ai);printf ( 请输入第二个集合内容, 5个整型数 n); for(i=0;i5;i+)/*/scanf(%d,&bi); n=inter(a,b,c); printf (A , B 交集元素为: n); for(i=0;in;i+) printf(%4d, ci); printf(n); return 0;int inter(int s1,int s2,int s3) int j,i,k=0;for(i=0;i5;i+) for(j=0;j5;j+)if (s1i=s2j) break;

13、if(j5) s3k+=s1i ;return k;(二)编程题( 2小题,共 35分,其中第 1小题15分,第 2小题20分) 1编程题 1编程要求: 请按题中的功能要求, 编写程序并能得到正确的结果。文件和B_4_1.EXE文件)保存到目录程序功能: 按示例格式完成以下要求。/*/*/将程序结果包括 B_4_1.c中。(1) 输入10个整数(存入数组a),再输入整数x。(2) 输出数组a中大于等于x的所有元素。运行示例:输入: 22 55 66 99 44 33 77 11 0 88 60 输出: 66 99 77 88 参考答案: #include #define N 10int mai

14、n(void)int aN,i,x; for (i=0;iN;i+) scanf(%d,&ai);scanf(%d,&x);for (i=0;i=x) printf(%d ,ai);printf(n);2编程题 2 编程要求: 请按题中的功能要求, 编写程序并能得到正确的结果。文件和B_4_2.EXE文件)保存到目录中。将程序结果包括 B_4_2.c程序功能: 按示例格式完成以下要求(验证数学上考拉兹猜想:任意一个大于 续进行特定运算,经有限步骤后,计算结果得到(1)( 2)( 3)1)。输入整数n如果n小于2,输出Error并结束运行。如果整数n为偶数,计算n/2,否则计算3*n+1,生成新的整数(仍存为 如果生成的整数结果等于 1,则结束运行,否则重复步骤(1正整数,连n)。2)与( 3)。运行示例 1:输入: 12输出: 12 16 23 310 45 516 68 74 82 91说明:输入12,第1次计算生成6,第2次计算生成3,,第9次计算生成1。示例中1、 2 至9 为生成的次数标记, 、 与间隔空格都必须保留。运行示例 2:输入: 0输出: Error说明: 输入为 0、 1 或负数,输出 Error 。参考答案: #

温馨提示

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

评论

0/150

提交评论