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

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

1、国家二级 C语言机试(操作题)模拟试卷 720及答案与解析 一、程序填空题 1 人员的记录由编号和出生年、月、日组成, N名人员的数据已在主函数中存入结构体数组 std中。函数 fun的功能是:找出指定出生年份的人员,将其数据放在形参 k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #define N 8 3 typedef struct 4 int numt 5

2、int year, month, day; 6 STU; 7 int fun(STU *std, STU *k, int year) 8 int i, n=0; 9 for(i=0; i N; i+) 10 *found* 11 if(_1_=year) 12 *found* 13 kn+=_2_; 14 *found* 15 return(_3_); 16 17 main() 18 STU stdN=1, 1984, 2, 15, 2, 1983, 9, 21, 3, 1984, 9, 1, 4, 1983, 7, 15, 5, 1985, 9, 28, 6, 1982, 11, 15, 7

3、, 1982, 6,22, 8, 1984, 8, 19; 10 STU kN; int i, n, year; 20 printf(Enter a year: ); scanf( d, &year); 21 n=fun(std, k, year); 22 if(n=0) 23 printf( nNo person was born in d n, year); 24 else 25 printf( nThese persons were born in d n, year); 26 for(i=0; i n; i+) 27 printf( d d- d- d n, ki num, ki ye

4、ar, ki month,ki day); 28 29 二、程序修改题 2 给定程序 MODI1 C的功能是:读入一个整数 k(2k10000),打印它的所有质因子 (即所有为素数的因子 )。 例如,若输入整数: 2310,则应输出: 2、 3、 5、 7、 11。 请改正程序中的语法错误,使程序能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 *found* 3 IsPrime(int r1); 4 int i, m; 5 m=1; 6 for(i=2; i n; i+) 7 *found* 8 if !(n

5、 i) 9 m=0; break; 10 return(m); 11 12 main() 13 int j, k; 14 printf( nPlease enter an integer number between 2 and 10000: ); scanf( d,&k); 15 printf n nThe prime factor(s)of d iS(are): , k); 16 for(j=2; j =k; j+) 17 if(!(k j) (IsPrime(j) )printf( n 4d, j); 18 printf( n); 19 三、程序设计题 3 已知学生的记录由学号和学习成绩

6、构成, N名学生的数据已存入结构体数组 a中。请编写函数 fun,函数的功能是:找出成绩最高的学生记录,通过形 参指针传回主函数 (规定只有一个最高分 )。已给出函数的首部,请完成该函数。 注意:部分源程序存在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 #include string h 3 #define N 10 4 typedef struct ss 5 char num10; int s; STU; 6 fun(STU a(1 STU *s) 7 8 9 10 ma

7、in() 11 STU aN=A01, 81, A02, 89, A03, 66, A04, 87,A05, 77, A06”, 90, A07, 79, A08, 61, A0 9, 8 0,A10, 71, m; 12 int i; 13 printf(*The original data * n); 14 for(i=0; i N; i+)printf(No= s Mark= d n, ai num, ai s); 15 fun(a, m); 16 printf (* THE RESULT* n), 17 printf(The top: s, d n, m num, m s); 18 N

8、ONO(); 19 20 NONO() 21 *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * 22 FILE *rf, *wf; 23 STU aN, m; 24 int i; 25 rf=fopen(in dat, r); 26 wf=fopen(out dat, w); 27 for(i=0; i 10; i+)fscanf(rf, s d”, ai num, &ai s); 28 fun(a, m); 29 fprintf(wf, The top: s, d n, m num, m s); 30 fclose(rf); 31 fclose(wf); 32 国家二级 C

9、语言机试(操作题)模拟试卷 720答案与解析 一、程序填空题 1 【正确答案】 (1)stdi year (2)stdi (3)n 【试题解析】 fun函数的功能是在结构体数组 std中找出指定出生年份的人员将其数据放在形参 k所指的数组中。 第一空:比较结构体的出生年份是否等于 year, std是结构体指针,指向结构体数组的首地址,因此,访问一个结构体的 year成员是 “stdi year”,因此,第一空处应为 “if(stdi year=year)”。 第二空:这里是将找到的数据放在形参 k所指的数组中, k是指针变量, k指向结构体数 组的首地址, stdi是结构体的地址,因此,等号

10、左边也应该是地址,故第二空处应为 “1(n+=stdi; ”。 第三空: fun函数的返回值是满足指定条件的人数 n,故第三空处是“return(n); ”。 二、程序修改题 2 【正确答案】 (1)IsPrime(int n) (2)if(!(n i) 【试题解析】 函数功能是求整数 n的素数因子, IsPrime自定义函数的功能是判断 j是否为素数。 (1)第一个标识下面的 “IsPrime(intn); ”在程序中显然是一个函数,因 此,应将后面的分号去掉。 (2)第二个标识下面的 if语句后面缺少括号,因此, “if!(n i)”应改为 “if!(ni)”。 该题主要考查标点符号、运算符、基本定义。 三、程序设计题 3 【正确答案】 1 int i, max=a0 s, j=0; 2 for(i=1; i N; i+) 3 if(max ai s) 4 j=i; 5 max=ai s; 6 *s=aj; 【试题解析】 该程序功能是求最高分数的学生。本题是关于求解结构体中某些成员的最大 值,首先将第一个值设定为最大值,并在循环中将其他所有值与该值进行比较,求得最大值。然后将最大值与所有值进行比较,求得所有的最大值。

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

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

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