【计算机类职业资格】计算机二级(C)上机考试7及答案解析.doc

上传人:testyield361 文档编号:1337782 上传时间:2019-10-17 格式:DOC 页数:2 大小:30KB
下载 相关 举报
【计算机类职业资格】计算机二级(C)上机考试7及答案解析.doc_第1页
第1页 / 共2页
【计算机类职业资格】计算机二级(C)上机考试7及答案解析.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、计算机二级(C)上机考试 7及答案解析(总分:-3.00,做题时间:120 分钟)1.填空题 请补充函数 fun(),该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组 str中。例如:当 n=13572468时,str=“86427531”。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #define N 80 char strN; void fun(long int n) int i=0; while(【1】) stri=【2】; n/=10;

2、i+; 【3】; main() long int n=13572468; clrscr(); printf(“* the origial data */n“); printf(“n=%ld“,n); fun(n); printf(“/n%s“,str); (分数:-1.00)_2.改错题 下列给定程序中函数 fun()的功能是计算正整数 num的各位上的数字之平方和。 例如:输入352,则输出应该是 38;若输入 328,则输出应该是 77。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #incl

3、ude long fun(long num) /*found*/ long k=1; do k+=(num%10)*(num%10); num/=10; /*found*/ while(num) return (k); main() long n; clrscr(); printf(“/Please enter a number:“); scanf(“%ld“, printf(“/n%ld/n“,fun(n); (分数:-1.00)_3.编程题 请编写函数 fun,其功能是:将两个两位数的正整数 a、b 合并形成一个整数放在 c中。合并的方式是:将 a数的十位和个位数依次放在 c数个位和十位上

4、,b 数的十位和个位数依次放在 c数的百位和千位上。 例如,当 a=16,b=35,调用该函数后,c=5361。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: #include void fun(int a ,int b,long *c) main() int a,b; long c; clrscr(); printf(“Input a,b;“); scanf(“%d%d“, fun(a,b, printf(“The result is:%ld/n“,c); (分数:-1.00)_计算机二级(C)上机考

5、试 7答案解析(总分:-3.00,做题时间:120 分钟)1.填空题 请补充函数 fun(),该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组 str中。例如:当 n=13572468时,str=“86427531”。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #define N 80 char strN; void fun(long int n) int i=0; while(【1】) stri=【2】; n/=10; i+; 【3】; mai

6、n() long int n=13572468; clrscr(); printf(“* the origial data */n“); printf(“n=%ld“,n); fun(n); printf(“/n%s“,str); (分数:-1.00)_正确答案:(【1】n0 【2】n%10+0 【3】stri= /0 )解析:填空 1:while 循环的执行条件是 n0,当 n等于 0时,说明已经将整数的各位数字都转换为数字字符并存入字符串中了。填空 2:n 对 10求余,得到整数 n的个位数字,在加上字符0的 ASCII码,得到对应的数字字符,并存入字符串 str中。填空 3:将整数转换为

7、字符串并倒序存放入字符数组 str中后,还要在 str最后加上字符串结束标记符/0。2.改错题 下列给定程序中函数 fun()的功能是计算正整数 num的各位上的数字之平方和。 例如:输入352,则输出应该是 38;若输入 328,则输出应该是 77。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include long fun(long num) /*found*/ long k=1; do k+=(num%10)*(num%10); num/=10; /*found*/ while(num)

8、 return (k); main() long n; clrscr(); printf(“/Please enter a number:“); scanf(“%ld“, printf(“/n%ld/n“,fun(n); (分数:-1.00)_正确答案:((1)错误:long k=1; 正确:long k=0; (2)错误:while(num) 正确:while(num); )解析:错误 1:k 用来存放各位数字的平方和,初值应为 0。 错误 2:do-while 语句的语法,while()后加分号。 3.编程题 请编写函数 fun,其功能是:将两个两位数的正整数 a、b 合并形成一个整数放在

9、 c中。合并的方式是:将 a数的十位和个位数依次放在 c数个位和十位上,b 数的十位和个位数依次放在 c数的百位和千位上。 例如,当 a=16,b=35,调用该函数后,c=5361。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: #include void fun(int a ,int b,long *c) main() int a,b; long c; clrscr(); printf(“Input a,b;“); scanf(“%d%d“, fun(a,b, printf(“The result is:%ld/n“,c); (分数:-1.00)_正确答案:(void fun(int a ,int b,long *c) *c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; )解析:语句*c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10;是将 a数的十位和个位数依次放在 c数个位和十位上,b 数的十位和个位数依次放在 c数的百位和千位上。注意“/“和“%“的用法。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1