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

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

1、国家二级 C语言机试(操作题)模拟试卷 284及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #inclucte stdio h void fun(char*s, int a, double f) *found* 【 1】 fp; char ch; fp=fopen(“filel txt“, “w“); fprintf(

2、fp, “ s d f n“, s, a, f); fclose(fp); fp=fopen(“filel txt“, “r“); printf(“ nThe result: n n“); ch=fgetc(fp); *found* while(!feof(【 2】 ) *found* putchar(【 3】 ); ch=fgetc(fp); ) putchar( n); fclose(fP); main() char a10=“Hello!“; int b=12345; double c=98 76; fun(a, b, c); 二、程序修改题 2 下列给定程序中,函数 fun的功能是:从

3、 P所指字符串中找出 ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。 例如,调用 fun函数之前给字 符串输入 “ABCDeFGH”,调用后字符串中的内容应为“eABCDFGH”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h void fun(char*P) char max, *q; int i=0; max=Pi; while(pi!=0) if(max Pi) max=Pi; *found* q=P+i i+; *found* whil

4、e(q P) *q=*(q一 1); q-; P0=max; void main() char str80; printf(“Enter a string: “); getS(str), printf(“ nThe original string: “); puts(str); fun(str); printf(“ nThe string after moving: “); puts(str); printf(“ n n“); 三、程序设计题 3 已知学生的记录由学号和学习成绩构成, N名学生的数据已存入 a结构体数组中。请编写函数 fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回

5、主函数 (规定只有一个最低分 )。已给出函数的首部,请完成该函数。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中 填入你编写的若干语句。 试题程序: 1 #include stdio h 2 #include string h 3 #include conio h 4 #inclucle stdlib h 5 #define N 10 6 typedef struct ss 7 char num10; 8 int s; 9 STU; 10 fun(STU a, STU*S) 11 12 13 14 void main()

6、 15 16 FILE*wf; 17 STU aN=(“A01“, 81, “A02“, 89), “A03“, 66, “A04“, 87),“A05“, 77), “A06“, 90, “A07“, 79), “A08“, 61), “A09“, 80,“A10“, 71, m; 18 int i; 19 system(“CLS“); 20 printf(“*The original data* n“); 21 for(i=0; i N; i+) 22 printf(“No= S Mark= d n“, a i num, ai s); 23 fun(a, m); 24 printf(“*T

7、HE RESULT* n“); 25 printf(“The lowest: S, d n“, m num, m s); 26 * 27 wf=fopen(“out dat“, “W“); 28 fprintf(wf, “ s, d“, m num, m s); 29 fclose(wf); 30 * 国家二级 C语言机试 (操作题)模拟试卷 284答案与解析 一、程序填空题 1 【正确答案】 (1)FILE* (2)fp (3)ch 【试题解析】 填空 1:由语句 fopen(“filel txt“, “r“)可知, fp应该是文件类型指针,因此本空应该填写 FILE*。 填空 2: feo

8、f函数只能对文件类型数据进行操作,因此本空应填写 fp。 填空 3: putchar()代表输入一个字符,从 ch=fgetc(fp)可以看出本题应该填写 ch。 二、程序修改题 2 【正确答案】 (1)q=p+i; (2)while(q p) 【试题解析】 解答本题需要三个步骤,首先找到字符串中 ASCII码值最大的字符并保存;然后将该字符复制,并将该字符前面的字符串顺次后移;最后将ASCII码值最大的字符赋给字符串的第一个字符。要找到 ASCII码值最大的字符可以通过定义一个字符变量 max,该字符变量初始时等于字符串的第一个字符,若字符串的下一个字符大于 max,则将下一个字符赋给 ma

9、x,如此循环到字符尾,即可得到 ASCII码值最大的字符,同时令指针 q指向最大字符。此后对最大字符前面的子串顺次后移,可采用 while语句实现。 三、程序设计题 3 【正确答案】 fun(STU a, STU *s) int i ; *s=a0; *先认为第 1个值最小 * for(i=0; i N; i+) *如果在循环的过程中再发现比第 1个值更小的则赋给 *s* if(s s ai s) *s=ai; 【试题解析】 找出结构体数组元素中的最小值。先认为第 1个值最小,即*s=a0;,如果在循环的过程中发现比第 1个值更小的,就将指针 s指向该元素,直到找到最小元素。另外,本题还涉及结构体中的指向运算符。

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

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

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