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

上传人:刘芸 文档编号:498513 上传时间:2018-11-29 格式:DOC 页数:6 大小:29.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷550及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷550及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷550及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷550及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷550及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 550及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是: 根据形参 i的值返回某个函数的值。当调用正确时,程序输出: x1=5 000000, x2=3 000000, x1*x1+x1*x2=40 000000。 注意:部分源程序在文件 BT, ANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h double f1(double x) retuEn x*x; ) double f2(double x, double y) return x*y; ) *found* 【 1】 11

2、fun(int i, double x, double y) if(i=1) *found* return 【 2】 (x); else *found* return 【 3】 (x, y); main() double x1=5, x2=3, r; r=fun(1, x1, x2); r+=fun(2, x1, x2); printf(“ nx1= f, x2= f, x1* x1+x1*x2= f n n“, x1, x2, r); 二、程序修改题 2 下列给定程序中,函数 fun的功能是:比较两个字符串,将长的字符串的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注

3、意:部分源程序在文件 NODll 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; tt=t; while(*ss) s1+; *found* (*ss)+; while(*tt) t1+; *found* (*tt)+; if(t1 s1) Eeturn t; else return s; void main() char a80, b80; pri

4、ntf(“ nEnter a string: “); gets(a); printf(“ nEnter a string a- gain: “); gets(b); printf(“ nThe longer is: n n s n“, fun(a, b); 三、程序设计题 3 请编写函数 fun,其功能是:移动字符串中的内容,移动的规则是把第 1 m个字符,平移到字符串的最后,把第 m+1到最后的字符移到字符串的前部。 例如,字符串中原有的内容为 “ABCDEFGHI-JK“, m的值为 3,移动后,字符串中的内容应该是 “DEFGHIJKABC“。 注意:部分源程序在文件 PROG1 C中。

5、 请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h #include string h #define N 80 void fun(char*w, int m) void main() FILE * wf; char aN=“ABCDEFGHIJK“, b N=“ABCDEFGHIJK“; int m; printf(“The origina string: n“); puts(a); printf(“ n nEnter m: “); scanf(“ d“, m); fun(a, m); printf(

6、“ nThe string after moving: n“); puts(a); printf(“ n n“); *found* wf=fopen(“out dat“, “w“); fun(b, 3); fprintf(wf, “ s“, b); fclose(wf); *found* 国家二级 C语言机试(操作题)模拟试卷 550答案与解析 一、程序填空题 1 【正确答案】 (1)double (2)f1 (3)12 【试题解析】 填空 1:本空函数 fun的返回值,根据 return可知,不论返回的是n还是 f2,它们的返回值均为 double型的,故此空应该填写 double。 填空

7、2:因为函数 fun的功能是根据形参 i的值返回某个函数的值,当 i等于 1时,应该返回的是 f1。 填空 3:如果不满足 if的话,应该返回的是 f2。 二、程序修改题 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(char*w, int m) int i, j; char t; for(i=1; i =m; i+) *进行 m次的循环左移 * t=w0; for(j=1; wj! = 0; j+) *从第 2个字符开始以后的每个字符都依次前移一个字符 * wj一 1=wj; wj一 1=t; *将第 1个字符放到最后一个字符中 * 【试题解析】 本题应采用 “循环左移 ”的算法,多层循环用于控制移动的字符的个数,即需进行多少次循环,内嵌循环的作用是将从第 2个字符以后的每个字符依次前移一个位置,最后将第 1个字符放到最后一个字符中。

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

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

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