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

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

1、国家二级( C语言)机试模拟试卷 290及答案与解析 一、程序填空题( 30分) 1 程序通过定义学生结构体变量,存储了学生的学号、姓名和 3门课的成绩。函数fun的功能是对形参 b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。 例如: b所指变量 t中的学号、姓名、和三门课的成绩依次是:10002、 ”ZhangQi”、 93、 85、 87,修改后输出 t中的数据应为: 10004、 ”LiJie”、93、 85、 87。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得

2、更改程序的结构 ! #include #include struct student long sno; char name10; float score3; ; void fun(struct student *b) *found* b【 1】 =10004; *found* strcpy(b【 2】, ”LiJie”); main() struct student t=(10002, ”ZhangQi”, 93, 85, 87); int i; printf(” n nThe original data: n”); printf(” nNo: id Name: sknScores: ”,

3、t sno, t name); for(i=0; i /*found*/ fun(int x, y, z) int j, t, n, m; j=1; t=j x; m=j y; n=j z; while(t!=0|m!=0|n!=0) j=jJ+1; t=j x; m=j y; n=j Z; *found* return i; main() int x1, x2, x3, j; printf(“Input x1 x2 x3: “); scanf(“ d d d“, &x1, &x2, &x3); printf(“x1= d, x2= d, x3= d n“, x1, x2, x3); j=fu

4、n(x1, x2, x3); printf(“The minimal common multiple is: d n“, j); 三、程序设计题( 40分) 3 N名学生的成绩已在主函数中放入一个带头节点的链表结构中, h指向链表的头节点。请编写函数 fun,它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是: 85, 76, 69, 85, 91, 72, 64, 87,则平均分应当是:78 625。 注意:部分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #include #d

5、efine N 8 struct slist double s; struct slist*next; ; typedef struct slist STREC; double fun(STREC*h) STREC*creat(double*s) STREC*h, *p, *q; int i=0; h=p; (STRBC*)malloc(sizeof(STREC); P一 s=0; while(i8=si; i+; p一 next=q; p=q, p一 next=0; return h; outlist(STREC*h) STREC*p; p=h一 next; printf(”head”);

6、do printf(”一 4 1f”, P一 s), p=p一 next; ) while(P!=0); printf(” n n”); main() double sN=85, 76, 69, 85, 91, 72, 64, 87, ave, void NONO(); STREC*h; h=creat(s); outliSt(h); ave=fun(h); printf(”ave= 6 3fn”, ave); NONO(); void NONO() ( *本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 * FILE*in, *out ; int i, j ; double s

7、N, ave; STREC*h; in=fopen(”in dat”, ”r”); out=fopen(”out dat”, ”w”); for(i=0; isno (2)一 name (3)&t 【试题解析】 第一空: “b【 1】 =10004; “等号右边是整型值,故这里是修改结构体成员 sno的值, b是结构体指针,访问结构体数据成员时使用 “-“运算符,因此第一空为 “b-sno“。 第二空: “strcpy(b【 2】, “LiJie“); “, strcpy是字符串拷贝函数,因此这里是修改结构体 name成员值,故第二 空处为 “b-name“。 第三空: fun函数的定义形式是

8、: void fun(struct student ),可知 fun的参数是指针,因此主函数内调用 fun函数时传入的参数是结构体 t的地址,故第三空处为“&t“。 二、程序修改题( 30分) 2 【正确答案】 (1)int fun(int x, int y, int z) (2)return j; 【试题解析】 (1)在主函数中 “j=fun(x1, x2, x3); “,可知 fun函数有 3个整型形参,且有整型返回值,在第一个标识下,应该有 三个 int声明的变量,故第一标识下应改成 “int fun(int x, int y, int z)“。 (2)在循环 “whileq(t!=0|

9、m!=0|n!=0)“中,当 t、 m和 n均为 O时,即 j x、 j y和 j z均等于 0,循环条件为假,退出循环,此时 j就是 x、 y和 z的最小公倍数,故函数的返回值为 j。 三、程序设计题( 40分) 3 【正确答案】 STREC*p=h一 next; *由于头结点中没 有存放数据 * double av=0 0; *对计算成绩平均值 的变量进行初始化 * int n=0; while(p!=NULL) *判断链表是否结束 * av=av+p一 s; *对成绩进行累加 * p=p一 next; *到下一个结点位置 * n+; *人数加 1* av =n; *计算成绩平均值 * return av; *返回成绩平均值 * 【试题解析】 (1)首先定义存放平均值的变量,并对其初始化。 (2)在循环中,依次取链表中存放的成绩,并对其求和。 (3)最后计算平均值,并返回值。

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

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

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