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

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

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

2、序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdlib h 2 #include stdio h 3 #define N 10 4 double fun(double *x) 5 int i, j; double av, yN; 6 av=0; 7 *found* 8 for(i=0; i N; i+) av+=_1_; 9 for(i=j=0; 2 N; i+) 10 if(xi av) 11 *found* 12 yj=xi; xi=-1; _2_; 13 i=0; 14 while(i N) 15 if(xi!=-1)

3、yj+=xi; 16 *found* 17 _3_; 18 19 for(i=0; i N; i+)Xi=yi; 20 return av; 21 22 main() 23 int i; double xN; 24 for(i=0; i N; i+)(xi=rand() 50;printf( 4 of, xi); 25 printf( n); 26 printf( nThe average is: f n, fun(x); 27 printf( nThe result: n, fun(x); 28 for(i=0; i N; i+)printf( 5 0f, xi); 29 printf( n

4、); 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:统计字符串中各元音字母 (即: A、E、 I、 O、 U)的个数。注意:字母不分大、小写。例如:若输入: THIs is aboot,则输出应该是: 1、 0、 2、 2、 0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 void fun(char *s, int num5) 3 int k, i=5; 4 for(k=0; k i; k+) 5 *found* 6 numi=0; 7 for(; *s;

5、s+) 8 i=-1; 9 *found* 10 switch(s) 11 casea: caseA: i=0; break; 12 casee: caseE: i=1; break; 13 casei: caseI: i=2; break; 14 caseo: caseO: i=3; break; 15 caseu: caseU: i=4; break; 16 17 if(i =0) 18 numi+; 19 20 21 main() 22 char s181; int numl5, i; 23 printf( nPlease enter a string: ; gets(s1); 24 f

6、un(s1, numl); 25 for(i=0; i 5; i+)printf( d, numli); printf n); 26 三、程序设计题 3 请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如:二维数组中的值为: 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为 61。 注意:部分源程序存在文件 PROG1 C文件中。 请勿改动主函数 main和其他函数中的任何内容, 仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 #define M 4

7、 3 #define N 5 4 int fun(int aMN) 5 6 7 8 main() 9 Int aaMN=1, 3, 5, 7, 9, 2, 9, 9, 9, 4, 6, 9, 9, 9, 8, 1,3, 5, 7, 0; 10 int i, j, y; void NONO(); 11 printf(The original data is: n); 12 for (i=0; i M; i+) 13 for (j=0; j N; J+)printf( 6d, aaij); 14 printf( n); 15 16 y=fun(aa); 17 printf( nThe sum: d

8、 n, y); 18 printf( n); 19 NONO(); 20 21 void NONO() 22 *请在此函 数内打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 * 23 int i, j, y, k, aaMN; 24 FTLE *rf, *wf; 25 rf=fopen(in clat, r); 26 wf=fopen(out dat, w); 27 for(k=0; k 10; k+) 28 for(i=0; i M; i+) 29 for(j=0; j N; j+) fscanf(rf, d, &aaij); 30 y=fun(aa); 31 fprintf

9、(wf, d n, y); 32 33 fclose(rf); 34 fclose(wf); 35 国家二级 C语言机试(操作题)模拟试卷 691答案与解析 一、程序填空题 1 【正确答案】 (1)xi N (2)j+或 j=j+l (3)i+或 i=i+1 【试题解析】 本题中函数 fun的功能是计算形参 x所指数组中 N个数的平均值(规定所有数均为正数 ),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至 x所指数组的后 部。在 fun函数中,首先求平均值,然后拿平均值逐个和数组元素比较,如果元素值小于平均值则保存在数组 y中,再把大于等于平均值的元素放在数组 y后面,

10、最后把 y数组内的元素拷贝到 x所指的数组中。 第一空: “for(i=0; i N; i+)av+=_1_; ”在该循环的下一个循环内是逐个比较元素 xi是否小于 av,即该循环的功能是求出平均值。由 “av=(x0+x1+xN -1) N=x0 N+x1 N+xN -1 N”可知,第一空处应为 “xi N”。 第二空: “if(xi av)yj=xi; xi=-1; _2_; ”如果 xi小于平均值则将 xi存储在 y数组中,变量 i是循环变量,变量 j记录数组 y的下标变化,下一次执行if内部语句时, y数组的下标应为下一个位置,故第二空处应为 i加 1,即第二空出为 “j+”或 “j=

11、j+1”。 第三空: i为 while循环的循环变量,第一次进入 while的时候 i为 0,判断第一个元素 x0是否是 -1,第二次进入的时候判断第二个元素 x1是否是 -1,依此类推直到 i=N退出循环,故第三处是变量 i自增,即第三空处为 “i+”或 “i=i+1”。 二、程序修改题 2 【正确答案】 (1)numk=0 (2)switch(*s) 【试题解析】 本题中函数的功能是统计字符串中各元音字母 (即 A、 E、 I、 O、 U)的个数。其中,本题在 while循环中采用 switch-case条件判断字符串中的每一个字符并进行统计。 (1)第一个标识下的 for循环过程是将 n

12、um数组中的变量初始值设置为 0,用来统计每一个元音字母出现的个数, for循环中的循环条件表达式中的变量是 k,所以第二个标识下 “numi=0; ”改为 “numk=0; ” (2)第二个标识下的 switch-case条件选择的功能应该是对 s指针指向的字符串中的每一个字符进行判断,不应该是 s的数组名,所以第三个标识下 “switch(s)”改为“switch(*s)”。 三、程序设计题 3 【正确答案】 1 int tot=0, i, j; 2 for(i=0; i N; i+) 3 tot+=a0i; 4 tot+=aM-1i; 5 6 for(i=1; i M-1; i+) 7 tot+=ai0; 8 tot+=aiN-1; 9 10 return tot; 【试题解析】 该程序功能是求出二维数组周边元素之和。其中,周边元素是指数组的最上和最下的两行,最左和最右的两列。数组第一行元素的行下标为 0,最后一行元素的行下标为 “M-1”,第一列的列下标为 0,最后一列的列下标为 “N-1”。 进入 fun函数,根据前面的分析:求周边元素的和,可以采用两个循环分别把行元素和列元素相加。但要避免把周边元素重复相加。

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

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

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