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

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

1、国家二级( C语言)机试模拟试卷 178及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:计算形参 x所指数组中 N个数的平均值 (规定所有数均为正数 ),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至 x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10个正数: 46 30 32 40 6 17 45 15 48 26,平均值为: 30 500000 移动后的输出为: 30 6 17 15 26 46 32 40 45 48 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意

2、:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #include #define N 10 double fun(double *x) int i, j; double av, yN; av=0; *found* for(i=0; i #include #include int fun(char *p) int n; /*found*/ n=*p-o; p+; while(p*!=0) /*found*/ n=n*8+*P-o; p+ return n; main() char s6; int i; int n; printf(“

3、Enter a string (Ocatal digits): “); gets(s); if(strlen(s)5)printf(“Error: String too longer !nn“);exit(0); for(i=0; si; i+) if(si7) printf(“Error: %c not is ocatal digits!nn“, si);exit(0); printf(“The original string: “); puts(s); n=fun(s); printf(“n%s is convered to integer number: %dnn“,s,n); 三、程序

4、设计题( 40分) 3 编写一个函数 fun,它的功能是:实现两个字符串的连接 (不使用库函数 strcat),即把 p2所指的字符串连接到 p1所指的字符串后。 例如,分别输入下面两个字符串: FirstString- SecondString 程序输出: FirstStdng-SecondString 注意:部分源程序在文件 PROGl C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include void fun(char p1, char p2) main() char s180, s240; void NONO();

5、printf(“Enter s1 and s2: n“); Scarlf(“ s s“, s1, s2); printf(“s1= s n“, s1); printf(“s2= s n“, s2); printf(“Invoke fun(s1, s2): n“); fun(s1, s2); printf(“After invoking: n“); printf(“ s n“, s1); NONO(); void NONO() *本函数用于打开文件,输入测试数据,调 用 fun函数,输出数据,关闭文件。 * int i; FTLE*rf, *wf ; char s180, s240; rf=fo

6、pen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i10 ; i+) fscanf(rf, “ s“, s1); fscanf(rf, “ s“, s2); fun(s1, s2); fprintf(wf, “ s n“, s1); fclose(rf); fclose(wf); 国家二级( C语言)机试模拟试卷 178答案与解析 一、程序填空题( 30分) 1 【正确答案】 (1)xi N (2)j+或 j=j+1 (3)i+或 i=i+l 【试题解析】 第一空: “for(i=0; iN; i+)av+= 【 1】; “在该循环的

7、下一个循环内是逐个比较元素 xi是否小于 av,即该循环的功能是求出平均值。由aV=(x0+x1+xN -1) N=x0 N+x1 N+xN -1 N可知,第一空处应为 “xi N“。 第二空: “if(xiav)yj=xi; xi=-1;【 2】; “如果 xi小于 平均值则将 xi存储在 y数组中,变量 i是循环变量,变量 j记录数组 y的下标变化,下一次执行if内部语句时, y数组的下标应为下一个位置,故第二空处应为 j加 1,即第二空出为 “i+“或 “i=i+1“。 第三空: i为 while循环的循环变量,第一次进入 while的时候 i为 0,判断第一个元素 x0是否是 -1,第

8、二次进入的时候判断第二个元素 x1是否是 -1,依此类推直到 i=N退出循环,故第三处是变量 i自增,即第三空处为 “i+“或 “i=i+1“。 二、程序修改题( 30分) 2 【正确答案】 n=*p-0; n=n*8+*p-0; 【试题解析】 ( 1)第一个标识下面:语句 “n=*p-o;”中的 o不是数字零,而是字母 o,根据前面的分析因此改为: “n=*p-0;”。 ( 2)第二个标识下面:语句 “n=n*8+*P-o”,首先进行同( 1)相同的修改,变量P没有定义,根据题意要求这里应该是 “*p-0”,所以此句改为: “n=n*8+*p-0;”。 三、程序设计题( 40分) 3 【正确答案】 char*p=p1; while(*p)p+; while(*p2) *p+= p2+; *p=0; 【试题解析】 (1)先求出串 1的元素个数。 (2)然后把串 2的元素放到串 l最后的位置,依次把串 2中的所有字符全部放到串1之后。

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

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

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