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

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

1、国家二级 C语言机试(操作题)模拟试卷 1及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:在形参 ss所指字符串数组中查找与形参 t所指字符串相同的串,找到后返回该串在字符串数组中的位置 (下标值 ),未找到则返回 -1。 SS所指字符串数组中共有 N个内容不同的字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include stdio h #include string h #define N 5 #define M 8 i

2、nt fun(char(*ss)M, char *t) int i; *found* for(i=0; i _1_; i+) *found* if(Strcmp(ssi, t)=0)return_2_; return -1; main() char chNM=“if“, “while“, “switch“, “int“, “for“, tM; int n, i; printf(“ nThe original string n n“); for(i=0; i N; i+)puts(chi); printf(“ n“); printf(“ nEnter a string for search: “

3、); gets(t); n=fun(ch, t); *found* if(n=_3_) printf(“ nDont found!in“); else printf(“ nThe position is d n“, n); 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:由形参给定 n个实数,输出平均值,并统计在平均值以上 (含平均值 )的实数个数。 例如, n=8时,输入: 193 199, 195 673, 195 757, 196 051, 196 092,196 596, 196 579, 196 763 所得平均值为: 195 838745,在平均值以上的实数个数

4、应为: 5 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #inclUde Stdio h int fun(double x, int n) *found* int j, c=0, double xa=0 0; for(j=0; j n; j+) xa +=xj n; printf(“ave= f n“, xa); for(j=0; j n; J+) *found* if (xj = xa) c+; return c; main() double x100=193 199, 195 673, 195 757, 196 05

5、1, 196 092,196 596, 196 579, 196 763); printf(“ d n“, fun(x, 8); 三、程序设计题 3 请编写一个函数 fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。 数组元素中的值已在主函数中赋予。 主函数中 x是数组名, n是 x中的数据个数, max存放最大值, index存放最大值所在元素的下标。 注意:部分源程序存在文件 PROG1 C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include stdlib h #in

6、clude Stdio h void fun(int a, int n, int *max, int *d) main() int i, x20, max, index, n=10; void NONO(); for(i=0; i n; i+)xi=rand() 50; printf(“ 4d“, xi); ) printf(“ n“); fun(x, n, &max, &index); printf(“Max= 5d, Index= 4d n“, max, index); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE *

7、fp, *wf; int i, x20, max, index, n=10, j; fp=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“)j for(i=0; i 10; i+) for(j=0; j n; j+) fscanf (fp, “ d, “, &xj); fun(x, n, &max, &index); fprintf(wf, “Max= d, Index= d n“, max, index); fclose(fP); fclose(wf); 国家二级 C语言机试(操作题)模拟试卷 1答案与解析 一、程序填空题 1 【正确答案】 (1)N

8、 (2)i (3)-1 【试题解析】 第一空: “fof(i=0; i _1_; i+)”补充循环的结束条件, fun的参数 (*ss)M是指向 N行 M列的字符串数组,循环是逐行查找是否存在 t所指的字符串,因此循环次数是 N次,故第一空处应为 “N”。 第二空: “if(strcmp(ssi, t)=0)return_2_; ”说明两个字符串相同,按照题干要求,应返回该串在字符串数组中的位置 i,故第二空处为 “i”。 第三空: “if(n=_3_)printf(“ nDont found! n“); “, fun函数未找到则返回 -1,因此这里是判断 n是否等于 -1,如果 n等于 -1

9、标识没有找到,在屏幕上输出 “Dont found!”,因此第三空处为 “-1”。 二、程序修改题 2 【正确答案】 (1)int j, c=0; double xa=0 0; (2)if (xj =xa) 【试题解析】 (1)第一标识下是两个变量 定义语句,变量 j和 c是整型变量,而变量 xa是双精度浮点变量,应该分别定义,而不是在一个语句中,因此第一标识下应改成 “int j, c=0; double xa=0 0; ”。 (2)第二标识下是用 if判断 xj是否大于等于 xa, “= ”不是 C语言的运算符,在 C语言中大于等于用 “ =”表示,因此第二标识下应改成 “if(xj =x

10、a)”。 三、程序设计题 3 【正确答案】 int 1; *max=a0; *d=0; *把数组的第 1个元素值赋值给最大值变量 *max* for(i=1; i n; i+) if(*max ai) *判断 *max是否小于当前值 * *max=ai; *重新把最大值赋值给 *max* *d=i; *记住下标 * 【试题解析】 进入 fun函数,根据前面的分析: (1)*max指针变量首先指向数组 a的第一个数据,同时将标志位木 d初始值赋为0。 (2)然后利用 for循环对每一个当前数组数据与 max标记的数据进行比较。 (3)循环中将求得的最大数据 ai赋值给 *max,并将该数据项 数组标志位赋给标志位 *d。

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

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

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