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

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

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

2、ay; STU; int fun(S2V*std, STU*k, int year) int i, n=0; for(i=0; i N; i+) *found* if(【 1】 =year) *found* kn+=【 2】 ; *found* return(【 3】 ); main() STU stdN=1, 1984, 2, 15, 2, 1983, 9, 21, 3, 198 4, 9, 1, 4,1983, 7, 15), 5, 1985, 9, 28, 6, 1982, 11, 15, 7, 1982, 6, 22,8, 198 4, 8, 19; STU kN; int i, n,

3、 year; printf(“Enter a year: “); scanf(“ d“, &year); n=fun(std, k, year); if(n=0) printf(“ nNo person was born in d n“, year); else printf(“ nThese peEsons were born in d n“, year); for(i=0; i n; i+) printf(“ d d一 d一 d n“, ki num, ki year, ki month, k i day); 二、程序修改题 2 下列给定程序的功能是:读入一个整数 k(2k10000),输

4、 出它的所有质因子 (即所有为素数的因子 )。例如,若输入整数 2310,则应输出: 2, 3, 5, 7, 11。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include conio h #include stdio h *found* ISPrime(int n); int i, m; m=1; for(i=2; i n; i+) *found* if! (n i) m=0; break; return(m); main() int j, k; printf (“ nPlease enter an i

5、nteger number between 2 and 10000: “); scanf(“ d“, &k); printf “ n nThe prime fac tot(s)Of d is(are): “, k); for(j=2; j k; j+) if(!(k j) (IsPr2me(j) printf(“ 4d, “, j); printf(“ n“); 三、程序设计题 3 已知学生的记录由学号和学习成绩构成, N名学生的数据已存入 a结构体数组中。 请编写函数 fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数 (规定只有一个最高分 )。已给出函数的首部,请完成该函数

6、。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdlib h #include stdio h #include string h #include conio h #define N 10 typedef struct ss *定义结构体 * char nHm10; int s; STU; fun(STU a, STU*s) void main() STU aN=“A0l“, 81, “A02“, 89, “A03“, 66, “A0 4“, 87, “A05“, 77, “A

7、0 6“, 90, “A07“, 79, “A0 8“, 61, “A09“, 80, “A10“, 71, m; int i; system(“CLS“); printf(“*The original data*“); for(i=0; i N; i+) pr2ntf(“No= s Mark= d n“, ai hum, ai s); fun(a, m); printf (“*THE RESULT* n“); printf(“The top: s, d n“, m num, m s); 国家二级 C语言机试(操作题)模拟试卷 583答案与解析 一、程序填空题 1 【正确答案】 (1)stdi

8、 year (2)stdi (3)n 【试题解析】 本题考查:数组变量判断; for循环语句;函数返回值。 本题要求从给定的人员数据中找出与指定出生年份相同的记录存入 k中 ,并返回符合条件的人数。 填空 1:此空判断结构体变量中的年份与 year是否相等,所以应填stdi yearo 填空 2:把符合条件的记录依次存入实参 k中,所以应填 stdi。 填空 3:函数返回符合满足条件的人数,所以应填 n。 二、程序修改题 2 【正确答案】 (1)IsPrime(int n) (2)if(!(n i) 【试题解析】 本题考查:函数定义的格式; if条件的判断语句,这些知识点必须掌握,因为经常考到

9、。 (1)函数定义格式错误,函数定义时后面不能加 “; ”,所以应该去掉 分号。 (2)根据题意可知, if条件语句判断 n是否可以整除 i,如果不能整除则为质因子,所以 if!(n i)应改为 if(!(n i)。 三、程序设计题 3 【正确答案】 fun(sTu a, STU*s) int i; *s=a0j for(i=0; i N; i+) * 找出成绩最高的学生记录 * if(s一 s ai s) *s=ai; 【试题解析】 本题考查:成绩最高的学生记录查找; for循环语句; if条件语句。 本题的流程是先使 s指向第 1名学生,利用循环语句遍 历所有学生的成绩,利用条件语句判断当前学生成绩是否最高,所以 if语句的条件是 s一 s ai s。此外,做题时应该熟练掌握 “指向运算符 ”和 “成员运算符 ”的相关知识,题中 “s一s”等价于 “(* s) s”。

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

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

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