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

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

1、二级 C 语言-164 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充 main()函数,该函数的功能是:从键盘输入只有两个整数参与运算的一个四则运算式,然后计算出它的值。注意数字全部为正整数。 例如,输入 30*28,结果为 840.000000。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdlib.h #includestdio.h void main() int num1=0, num2=0

2、, flag=1, fg=1; float result; char*p, ch; char str10; system(“CLS“); printf(“/n Input a string/n“); gets(str); p=str; while(*p) if(*p=“0“ else if(fg) ch=*p; flag=2; fg=0; if(*p=“0“ p+; switch( 3) case“+“: result=num1+num2; break; case“-“: result=num1-num2; break; case“*“: result=num1*num2; break; ca

3、se“/“: result=(float)num1/num2; break; printf(“/nresult=%f“, result); (分数:30.00)二、程序改错题(总题数:1,分数:40.00)2.下列给定程序中,函数 proc()的作用是:将字符串 str 中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“abD,dFAD”,则输出“abd,dfad”。 请修改函数 proc()中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdio.h #includestdlib.h #in

4、cludestring.h #includeconio.h char*proc(char str) int I; for(I=0; strI; I+) /*found* if(“A“=strI|(strI=“Z“) strI+=32; return(str); void main() char str81; system(“CLS“); printf(“/nPlease enter a string: “); gets(str); printf(“/nThe result string is: /n%s/n“, proc(str); (分数:40.00)_三、程序设计题(总题数:1,分数:30

5、.00)3.请编写函数 proc(),其功能是:计算并输出给定 10 个数的方差。 其中 (分数:30.00)_二级 C 语言-164 (1)答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充 main()函数,该函数的功能是:从键盘输入只有两个整数参与运算的一个四则运算式,然后计算出它的值。注意数字全部为正整数。 例如,输入 30*28,结果为 840.000000。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #include

6、stdlib.h #includestdio.h void main() int num1=0, num2=0, flag=1, fg=1; float result; char*p, ch; char str10; system(“CLS“); printf(“/n Input a string/n“); gets(str); p=str; while(*p) if(*p=“0“ else if(fg) ch=*p; flag=2; fg=0; if(*p=“0“ p+; switch( 3) case“+“: result=num1+num2; break; case“-“: result

7、=num1-num2; break; case“*“: result=num1*num2; break; case“/“: result=(float)num1/num2; break; printf(“/nresult=%f“, result); (分数:30.00)解析:num1*10+*p-“0“ num2*10+*p-“0“ ch解析 首先将运算符号前面的数字字符转化为对应的十进制数放入变量 num1 中。因此,第一处填“num1*10+*p-“0“”;再将运算符号后面的数字字符转换为十进制数放入变量 num2 中,因此,第二处填“num2*10+*p-“0“”;由程序可知,变量 ch

8、 中存放运算符号,因此,第三处填“ch”。二、程序改错题(总题数:1,分数:40.00)2.下列给定程序中,函数 proc()的作用是:将字符串 str 中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“abD,dFAD”,则输出“abd,dfad”。 请修改函数 proc()中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdio.h #includestdlib.h #includestring.h #includeconio.h char*proc(char str) int I; fo

9、r(I=0; strI; I+) /*found* if(“A“=strI|(strI=“Z“) strI+=32; return(str); void main() char str81; system(“CLS“); printf(“/nPlease enter a string: “); gets(str); printf(“/nThe result string is: /n%s/n“, proc(str); (分数:40.00)_正确答案:()解析:错误:if(“A“=strI|(strI=“Z“) 正确:if(str1=“A“) int i; for(i=0; i10; i+) x1=x1+xi; /x1 放其数组中的元素和 x1=x1/10; /求其平均数 for(i=0; i10; i+) s=s+(xi-x1)*(xi-x1); /s 为其平方差 return sqrt(s/10); /最后把其所得到的方差返回到主函数中 解析 题目要求求方差,因此首先我们应通过循环求得其平均数,然后通过循环来求其平方差,最后求其方差,把方差返回到主函数中。

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

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

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