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

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

1、国家二级 C语言机试(操作题)模拟试卷 375及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:将 NxN矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若 N=3,有下列矩阵: 1 2 3 交换后为: 3 2 1 4 5 6 4 5 6 7 8 9 9 8 7 请在程序的下划线处填入正确的 内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #define N 4 3 *found* 4 void fun(int_1_,

2、int n) 5 int i, s; 6 *found* 7 for( _2_; i+) 8 s=tii; 9 tii=tin-i-1; 10 *found* 11 tin-1-i=_3_; 12 13 14 main() 15 int tN=21, 12, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21,33, 10, i, j; 16 printf( nThe original array: n); 17 for(i=0; i N; i+) 18 for(j=0; j N; j+)printf( d, tij); 19 printf( n);

3、20 21 fun(t, N); 22 printf( nThe result is: n); 23 for(2=0; i N; i+) 24 for(j=0; j N; j+) printf( d, tij); 25 printf( n); 26 27 二、程序修改题 2 给定程序 MODI1 C中 fun函数 的功能是:求出以下分数序列的前 n项之和。和值通过函数值返回 main函数。 例如,若 n=5,则应输出: 8 391667。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 !1 #include stdio h 2 *

4、found* 3 fun(int n)4 int a=2, b=1, c, k ;5 double s=0 0;6 for(k=1; k =n; k+)7 s=s+1 0 *a b; 8 *found* 9 c=a; a+=b; b+= c; 10 11 return(s); 12 main()13 int n=5; 14 printf( nThe value of function is: 1f n, fun(n); 15 三、程序设计题 3 N名学生的成绩已在主函数中放入一个带头节点的链表结构中, h指向链表的头节点。请编写函数 fun,它的功能是:求出平均分,由函数值返回。 例如,若学生

5、的成绩是: 85, 76, 69, 85, 91, 72, 64, 87,则平均分应当是:78 625。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 #include stdlib h 3 #define N 8 4 struct slist 5 double s; 6 struct slist *next; 7 ; 8 typedef struer slist STREC; 9 double fun(STREC *h) 10 11 12 13 STREC

6、 * creat(double * s) 14 STREC *h, *p, *q; int i=0; 15 h=p=(STREC *)malloc(sizeof(STREC); p- s=0; 16 while(i N) 17 q=(STREC *) malloc(sizeof(STREC); 18 q- s=si; i+; p- next=q; p=q; 19 20 p- next=0; 21 return h; 22 23 outlist(STREC *h) 24 STREC *p; 25 p=h- next; printf(head); 26 do 27 printf(- 4 1f, p

7、- s); p=p- next;) 28 while(p!=0); 29 printf( n n); 30 31 main() 32 double sN=85, 76, 69, 85, 91, 72, 64, 87, ave; 33 void NONO(); 34 STREC *h; 35 h=creat(s); outlist(h); 36 ave=fun(h); 37 printf(ave= 6 3f n, ave); 38 NONO(); 39 40 void NONO() 41 *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * 42 FTLE *in, *out; 4

8、3 int i, j; double sN, ave; 44 STREC *h; 45 in=fopen(in dat, r); 46 out=fopen(out dat, w); 47 for(i=0; i 10; i+) 48 for(j=0 ; j N; j+)fscanf(in, 1f, , sj); 49 h=creat(s); 50 ave=fun(h); 51 fprintf(out, 6 31f n, ave); 52 53 fclose(in); 54 fclose(out); 国家 二级 C语言机试(操作题)模拟试卷 375答案与解析 一、程序填空题 1 【正确答案】 (1

9、)tN (2)i=0; i n (3)s 【试题解析】 第一空:在主函数中 fun函数的调用形式是 “fun(t, N); ”, t是二维数组名,故 fun函数的第一个参数为指针,因此第一空处应为 “tN”。第二空: fun函数的第二个参数 n指明了矩阵的大小为 n,对角线元素与反向对角线元素有 n个,故循环有 n次,因此变量 i从 0开始,到 n-1结束,因此第一空处应为“i=0; i n”。第三空:循环体内部是对角线元素 与反向对角线元素的交换,“s=tii; ”s保存了对角元素 tii,因此第三处应填 “s”。 二、程序修改题 2 【正确答案】 (1)double fun(int n)

10、(2)c=a; a+=b; b=c; 【试题解析】 (1)fun函数中的语句 “double s=0 0; ”以及 “return(s); ”说明 fun函数具有 double返回值,所以应将 “fun(int n)”改为 “double fun(int n)”。 (2)根据题干中给出的公式可以推出每一项的特点,知道每一项的 b值是前一 项的C值,所以第二个标识下 “b+=c; ”改为 “b=c;”。 三、程序设计题 3 【正确答案】 1 STREC *p=h- next; *由于头结点中没有存放数据 * 2 double av=0 0; *对计算成绩平均值的变量进行初始化 * 3 int n=0; 4 while(p!=NULL) *判断链表是否结束 * 5 av=av+p- s; *对成绩进行累加 * 6 p=p- next; *到下一个结点位置 * 7 n+; *人数加 1 * 8 9 av =n; *计算成绩平均值 * 10 return av; *返回成绩平均值 * 【试题解析】 (1)首先定义存放平均值的变量,并对其初始化。 (2)在循环中,依次取链表中存放的成绩,并对其求和。 (3)最后计算平均值,并返回值。

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

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

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