[计算机类试卷]国家二级C语言机试(操作题)模拟试卷652及答案与解析.doc

上传人:progressking105 文档编号:498626 上传时间:2018-11-29 格式:DOC 页数:5 大小:29KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷652及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷652及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷652及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷652及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷652及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 652及答案与解析 一、程序填空题 1 使用 VC+2010打开考生文件夹下 blank1中的解决方案。此解决方案的项目中包含一个源程序文件 blank1 c。在此程序中,函数 fun的功能是:计算出形参 s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。 例如,形参 s所指的字符串为: This is a C language program,函数的返回值为 6。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部 分源程序在文件 BIANK1 C中。 不得增行或删行,也不得更改程序的结构

2、 ! 试题程序: #include stdio h int fun(char*s) int n=0, flag=0; while(*s!= 0) if(*s!= &flag=0) *found* 【 1】 ; flag=1; *found* if(*s= )flag=【 2】 ; *found* 【 3】 ; return n; main() char str81; int n; printf(“ nEnter a line text: n“); gets(str); n=fun(str); printf(“ nThere are d wordsin this text n n“, n); 二

3、、程序修改题 2 使用 VC+2010打开考生文件夹下 modi1中的解决方案。此解决方案的项目中包含一个源程序文件 modi1 c。在此程序中,函数 fun的功能是:比较两个 字符串,将长的字符串的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1 C中,不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include conio h #include stdio h *found* double fun(char*s, char*t) int s1=0, t1=0; char*ss, *tt, ss=s; t

4、t=t; while(*ss) s1+; *found* (*ss)+; while(*tt) t1+; *found* (*tt)+; if(t1 s1) return t; else return s; void main() char a80, b80; printf(“ nEnter a string: “); gets(a); printf(“ nEnter a string again: “); gets(b); printf(“ nThe longer is: n n s n“, fun(a, b); 三、程序设计题 3 使用 VC+2010打开考生文件夹下 prog1中的解决方

5、案。此解决方案的项目中包含一个源程序文件 prog1 c。在此程序中,编写函数 fun,其功能是:将两个两位数的正整数 a、 b合并成一个整数放在 c中。合并的方式是:将 a数的十位和个位数依次放在 c数的个位和百位上, b数的十位和个位数依次放在 c数的十位和千位上。 例如,当 a=45, b=12时,调用该函数后 c=2514。 注意:部分源程序给出如下 。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include conio h #include stdio h void fun(int a, int b, long*

6、c) main() int a, b; long c; printf(“Input a, b: “); Scanf(“ d d“, &a, &b); fun(a, b, &c); pr2ntf(“The result is: ld n“, c); 国家二级 C语言机试(操作 题)模拟试卷 652答案与解析 一、程序填空题 1 【正确答案】 (1)n+ (2)0 (3)s+ 【试题解析】 填空 1:单词个数用变量 n来统计,当前字母不是空格且 flag状态标志为 0时,可以判断出现一个新的单词,则单词数就加 1,将状态标志 flag置为1,所以应填 n+。 填空 2:当前字符是空格时, flag

7、状态标志置 0,所以应填 0。 填空 3:判断完一个字符之后,要继续判断字符串的下一个位置,所以应填 s+。 二、程序修改题 2 【正确答案】 (1)char*fun(char*s, char*t) (2)ss+; (3)tt+; 【试题解析】 (1)在主函数的输出语句中,函数 fun是以字符 串格式输出的,所以定义函数时应为 char*fun(char*s, char*t)。 (2)和 (3)这里是地址加 1,而不是内容加 1,所以改为 ss+和 tt+。 三、程序设计题 3 【正确答案】 void fun(int a, int b, long*c) *b 10获取 b的个位, a 10获取 a的十位, a 10获取 a的个位, b 10获取 b的十位 * *c=a 10+(b 10)*10+(a 10)*100+(b 10)*1000; 【试题解析】 本题的主要问题是如何取出 a和 b的个位数和十位数,取出后如何表示成 c中相应的位数。由于 a和 b都是只有两位的整数,所以分别对它们除 10可得到它们的十位数,分别用 10对它们求余可得到它们的个位数。得到后对应乘以 1000、 100、 10、 1,就可得到 c的千位数、百位数、十位数和个位数。注意使用 c时要进行指针运算。

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

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

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