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

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

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

2、fun(STU*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, 1984, 9, 1, 4, 1983, 7, 15, 5, 1985, 9, 28, 6, 1982, 11, 15, 7, 1982, 6, 22, 8, 1984, 8, 19; STU kN; int i, n, year; printf(“Enter

3、 a year: “); seanf(“ d“, &year); n=fun(std, k, year); if(n=0) printf(“ nNo person was born in d n“, year); else printf(“ nThese persons were in d、 n“, year); for(i=0; i n; i+) printf(“ d d- d- d n“, ki hum, ki year, ki month, ki day); 二、程序修改题 2 下列给定程序中,函数 fun的功能是:将 m(1m10)个字符串连接起来,组成一个新串,放入 pt所指存储区中

4、。例如:把三个串 “abc“CD“EF“连接起来,结果是“abc-CDEF“。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include string h void fun(char str10, int m, char*pt) *found* Intk, q, i; for(k=0; k m; k+) q=strlen(strk); for(i=0; i q; i+) *found* pti=strk, i; pt+=q; pt0=0; main() int m, h;

5、char s1010, p120; printf(“ nPlease enter m: “); scanf(“ d“, &m); gets(s0); printf(“ nPlease enter d string: n“, m); for(h=0; h m; h+) gets(sh); fun(s, m, P); printf(“ nThe result is: s n“, p); 三、程序设计题 3 请编写函数 fun,其功能是:找出 2M整型二维数组中最大元素的值,并将此值返回调用函数。 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。

6、 试题程序: #include stdio h #define M4 int fun(int aM) main() int arr2M=5, 8, 3, 45, 76, -4, 12, 82; void NONO(); printf(“max= d n“, fun(arr); NONO(); void NONO() 本函数用于打开文件,输入数据, 调用函数,输出数据,关闭文件。 * FILE*wf; int arrM=5, 8, 3, 90, 76, -4, 12, 82; wf=fopen(“out dat“, “w“); fprintf(wf, “max= d n“, fun(arr);

7、fclose(wf); 国家二级 C语言机试(操作题)模拟试卷 677答案与解析 一、程序填空题 1 【正确答案】 (1)stdi year (2)stdi (3)n 【试题解析】 本题考查:数组变量判断; for循环语句;函数返回值。 本题要求从给定的人员数据中找出与指定出生年份相同的记录存入 k中,并返回符合条件的人数。 填空 1:此空判断结构体变量中的年份与 year是否相等,所以应填 stdi year。 填空 2:把符合条件的记录依次存入实参 k中,所以应填 stdi。 填空 3:函数返回满足条件的人数,所以应填 n。 二、程序修改题 2 【正确答案】 (1)int k, q, i;

8、 (2)pti=strki; 【试题解析】 本题考查: C语言的书写和语法性错误,这类错 误比较简单,只要编译程序,根据错误提示修改即可。 (1)关键字书写错误,定义整型变量的关键字应使用 int,而非 Int。 (2)数组元素表示错误,表示二维数组元素,应使用方括号将行坐标和列坐标分别括起来,即 strk, i应改为 strki。 三、程序设计题 3 【正确答案】 int fun(int aM) int i, j, max=a00; for(i=0; i 2; i+) for(j=0; j M; j+) if(max aij) max=aij; return max; 【试题解析】 本题考查

9、:求数组的最大值,需要运用循环语句,因为数组是二维数值,所以应使用二层加 for循环嵌套。使用 for循环语句时需要注意循环变量的取值范围。 此类求最大值或最小值的问题,可以采用逐个比较的方式,要求对数组中所有元素遍历一遍,并且从中找出数组最大值或最小值。首先定义变量 max存放数组中的第一个元素的值,然后利用 for循环逐个找出数组中的元素,并与 max比较,如果元素值大于懈,则将该值赋于 max,循环结后 maX的值即为数组最大值,最后将该值返回。 说明:该类题目考查较多, 要掌握逐行比较的方法。对于 m*n二维数组,如采用逐行查找方法代码实现为: for(i=0; i m; i+) for(j=0; j n; j+)

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

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

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