【计算机类职业资格】二级C语言-246及答案解析.doc

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

1、二级 C 语言-246 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是将形参 n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回所指变量。 例如,输入一个数 27638496,新的数为 739。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序如下。 #includestdio.h void fun(unsigne

2、d long*n) unsigned long x=0,i;int t; i=1; while( * n) /*found*/ t= * n% 1; /*found*/ if(t%2!= 2) x=x+t * i;i=i * 10; * n= * n/10; /*found*/ * n= 3; main() unsigned long n=-1; while(n99999999|n0) printf(“Please input(0n100000000):“); scanf(“%ld“, fun( printf(“/nThe result is:%ld/n“,n); (分数:30.00)二、程序

3、改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是计算 n!。 例如,给 n 输入 5,则输出 120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序如下。 #includestdio.h double fun(int n) double result=1.0; /*found*/, if n=0 return 1.0; while(n1 main() int n; printf(“Input N:“); scanf(“%d“, printf(“/n/n%

4、d!=%lf/n/n“,n,fun(n); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.请编写一个函数 fun,它的功能是将一个表示正整数的数字字符串转换为一个整数(不得调用 C 语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值 1234。函数fun 中给出的语句仅供参考。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。 #includestdio.h #includestring.h long fun(ch

5、ar * p) /*以下代码仅供参考*/ int i,len;/*len 为串长*/ long x=0: len=strlen(p); /以下完成数字字符串转换为一个数字。 注意:字符“0“不是数字 0/ return x; main(),/*主函数*/ char s6; long n; printf(“Enter a string:/n“); gets(s); n=fun(s); printf(“%ld/n“,n); (分数:40.00)_二级 C 语言-246 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的

6、功能是将形参 n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回所指变量。 例如,输入一个数 27638496,新的数为 739。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序如下。 #includestdio.h void fun(unsigned long*n) unsigned long x=0,i;int t; i=1; while( * n) /*found*/ t= * n% 1; /*f

7、ound*/ if(t%2!= 2) x=x+t * i;i=i * 10; * n= * n/10; /*found*/ * n= 3; main() unsigned long n=-1; while(n99999999|n0) printf(“Please input(0n100000000):“); scanf(“%ld“, fun( printf(“/nThe result is:%ld/n“,n); (分数:30.00)解析:10 0 x 解析 填空 1:通过 t 对 10 求余,取出该数值的各个位。 填空 2:通过 if 条件语句实现奇偶数的判定。如果条件表达式对 2 求余为 0

8、 即是偶数,反之是奇数。 填空 3:最后将剩余的数赋给 n 指问的元素。二、程序改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是计算 n!。 例如,给 n 输入 5,则输出 120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序如下。 #includestdio.h double fun(int n) double result=1.0; /*found*/, if n=0 return 1.0; while(n1 main() int n; print

9、f(“Input N:“); scanf(“%d“, printf(“/n/n%d!=%lf/n/n“,n,fun(n); (分数:30.00)解析:if(n=0) result*=n-;或result*=n;n-; 解析 这里是一个简单的格式错误,if 条件应该加括号。 根据阶乘的概念,从 n 开始“n!=n*(n-1)!“直到 1,所以应该为 result*=n-;。三、程序设计题(总题数:1,分数:40.00)3.请编写一个函数 fun,它的功能是将一个表示正整数的数字字符串转换为一个整数(不得调用 C 语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换

10、为整数值 1234。函数fun 中给出的语句仅供参考。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。 #includestdio.h #includestring.h long fun(char * p) /*以下代码仅供参考*/ int i,len;/*len 为串长*/ long x=0: len=strlen(p); /以下完成数字字符串转换为一个数字。 注意:字符“0“不是数字 0/ return x; main(),/*主函数*/ char s6; long n;

11、printf(“Enter a string:/n“); gets(s); n=fun(s); printf(“%ld/n“,n); (分数:40.00)_正确答案:()解析:i=0; if(*p=“-“) /*负数时置 flag 为-1*/ p+; i+; flag=-1; else if(*p=“+“) /*正数时置 flag 为 1*/ p+; i+; for(;i-len;i+)0 x=x*10+*p-“0“;/*将字符串转成相应的整数*/ p+; x=x*flag; 解析 if()语句的作用是判断该字符串应当为正数还是负数。 注意:p 是一个字符(如“9“、“4“),并不是一个数,要将其转成相应的数字需令其减去“0“(不是“/0“),即p-“0“就得到p 这个字符的相应数字,如“0“-“0“=0、“8“-“0“=8 等。

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

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

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