【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷308及答案解析.doc

上传人:arrownail386 文档编号:1332122 上传时间:2019-10-17 格式:DOC 页数:2 大小:35.50KB
下载 相关 举报
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷308及答案解析.doc_第1页
第1页 / 共2页
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷308及答案解析.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 308及答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.下列给定程序中,函数 fun的功能是:将形参 a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参 11中存放数组中数据的个数,若 n为奇数,则中间的元素不动。 例如,若 a所指数组中的数据为:1,2,3,4,5,6,7,8,9,则调换后为:6,7,8,9,5,1,2,3,4。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includ

2、estdioh #define N 9 void fun(int a,int n) int i,t,P; *found* p=(n=0)?n2:n2+ 【1】 ; for(i=0;in2;i+) t=ai; *found* ai=ap+ 【2】 ; *found* 【3】 =t; main() int bN=1,2,3,4,5,6,7,8,9,i; printf(“nThe original data:n“); for(i=0;iN;i+) printf(“4d“,bi); printf(“n“); fun(b,N); printf(“nThe data after moving:n“); f

3、or(i=0;iN;i+) printf(“4d“,bi); printf(“n“); (分数:2.00)_二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:计算并输出下列级数的前 N项和 S N ,直到 S N+1 的值大于 q为止,q 的值通过形参传入。 (分数:2.00)_三、程序设计题(总题数:1,分数:2.00)3.请编写函数 fun,其功能是:将一个数字字符串转换为一个整数(不得调用 C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一 1234”,则函数把它转换为整数值一 1234。注意:部分源程序给出如下。请勿改动主函数 main和

4、其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序:#includestdioh#includestringhlong fun(char*P)void main() char s6; long n; printf(“Enter a string:n“); gets(s); n=fun(s); printf(“idn“,n);(分数:2.00)_国家二级 C语言机试(操作题)模拟试卷 308答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.下列给定程序中,函数 fun的功能是:将形参 a所指数组中的前半部分元素中的值与后半

5、部分元素中的值对换。形参 11中存放数组中数据的个数,若 n为奇数,则中间的元素不动。 例如,若 a所指数组中的数据为:1,2,3,4,5,6,7,8,9,则调换后为:6,7,8,9,5,1,2,3,4。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdioh #define N 9 void fun(int a,int n) int i,t,P; *found* p=(n=0)?n2:n2+ 【1】 ; for(i=0;in2;i+) t=ai; *found* ai

6、=ap+ 【2】 ; *found* 【3】 =t; main() int bN=1,2,3,4,5,6,7,8,9,i; printf(“nThe original data:n“); for(i=0;iN;i+) printf(“4d“,bi); printf(“n“); fun(b,N); printf(“nThe data after moving:n“); for(i=0;iN;i+) printf(“4d“,bi); printf(“n“); (分数:2.00)_正确答案:(正确答案:(1)1 (2)i (3)ap+i或*(a+p+i)解析:解析:条件运算符组成条件表达式的一般形式

7、:表达式 1?表达式 2:表达式 3。其求值规则为:如果表达式 1的值为真,则以表达式 2的值作为条件表达式的值,否则以表达式 3的值作为整个条件表达式的值。 填空 1:该处是判断数组元素的个数是奇数还是偶数,为奇数时要使当前位置加 1,使 p指向数组中间位置。 填空 2和填空 3:这里是一个比较常见的数组位置调换程序,应填入 i和 ap+i或*(a+p+i)。变量交换算法:如果变量 a、b 互换,需借助第 3个变量 temp完成,即 temp=a;a=b;b=temp;。二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:计算并输出下列级数的前 N项和 S

8、N ,直到 S N+1 的值大于 q为止,q 的值通过形参传入。 (分数:2.00)_正确答案:(正确答案:(1)s=s+(double)(n+1)n; (2)return t;)解析:解析:(1)在 C语言中,整数除以整数得出的结果也是整数,因此此处要转换数据类型。 (2)观察while循环,如果返回变量是 s,那么返回的是大于 q的值,而题中所要返回的是小于 q的值,所以应该返回变量 t。三、程序设计题(总题数:1,分数:2.00)3.请编写函数 fun,其功能是:将一个数字字符串转换为一个整数(不得调用 C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一 1234”,则函数把

9、它转换为整数值一 1234。注意:部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序:#includestdioh#includestringhlong fun(char*P)void main() char s6; long n; printf(“Enter a string:n“); gets(s); n=fun(s); printf(“idn“,n);(分数:2.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+*p0;*将字符串转成相应的整数* p+; return n*flag; )解析:解析:if 语句的作用是判断该字符串为正数还是负数,while 循环的作用是将字符串转成相应的整数。注意:*p 是一个字符(例如9、4),并不是一个数,要将其转成相应的数字需令其减去0(不是0),即*p 一0就得到*p 这个字符的相应数字,例如0一0=0、8一0=8 等。必须在程序的前面加#includestdlibh,函数 atol的作用是将字符串转换成长整型数,它是一个库函数。

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

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

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