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

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

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

2、=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“,n); fun(n); printf(“/nThe result is:%ld/n“,n); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数

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

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

5、() char s6; long n; printf(“Enter a string:/n“); gets(s); n=fun(s); printf(“%ld/n“,n); (分数:40.00)_二级 C 语言-183 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中,函数 fun 的功能是:将形参 n 所指变量中,各位上为偶数的数去掉,剩余的数按原来从高位到低位的顺序组成一个新数,并通过形参指针 n 传回所指变量。 例如,若输入一个数 27638496,则新数为 739。 请在下划线处填入正确的内容,使程序得出正确的结果。

6、注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h void fun(unsigned 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(“%

7、ld“,n); fun(n); printf(“/nThe result is:%ld/n“,n); (分数:30.00)解析:10 0 x 考点 本题关键字有:求余运算;if 语句条件表达式:函数返回值。 解析 填空 1:n 所指变量的各个位通过 t 对 10 求余得到。 填空 2:if 条件语句用来判断奇偶数。 填空 3:将组成的新数赋给 n 所指向的元素。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:计算 n!。 例如,给 n 输入 5,则输出 120.000000。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,

8、不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h #includeconio.h double fun(int n) double result=1.0; /*found*/ if n=0 return 1.0; while(n1n170) /*found*/ result=n-; return result; main() int n; printf(“Input N:“); scanf(“%d“,n); printf(“/n/n%d!=%lf/n/n“,n,fun(n); (分数:30.00)_正确答案:()解析:if(n=0) result*=n-;或r

9、esult*=n;n-; 考点 本题关键字有:if 语句条件表达式;阶乘的计算方法。 解析 (1)if 条件语句应该加括号。 (2)n!=n*(n-1)*(n-2)*1,所以应该为 result*=n-;。三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是:将一个数字字符串转换为一个整数(不得调用 C 语言提供的将字符串转换为整数的函数)。例如,若输入的字符串为“-1234”,则函数把它转换为整数值-1234。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若千语句。 试题程序: #includ

10、estdio.h #includestring.h long fun(char*p) void main() char s6; long n; printf(“Enter a string:/n“); gets(s); n=fun(s); printf(“%ld/n“,n); (分数:40.00)_正确答案:()解析:long fun(char*p) long n=0; int flag=1; if(*p=“-“) /*负数时置 flag 为-1*/ p+;flag=-1; else if(*p=“+“) /*正数时置 flag 为 1*/ p+; while(*p!=“/0“) (n=n*10+*p-“0“; /*将字符串转成相应的整数*/ p+; return n*flag; 考点 本题关键字有:字符串转换为整数的算法;指针型变量。通过将字符减去“0”可以将字符转换成相应的数字。 解析 转换后整数的符号通过 if 语句判断,*p 是一个字符而不是一个数,*p 字符的相应数字为*p-0,通过while 循环将字符转换成整数。

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

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

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