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

上传人:rimleave225 文档编号:498357 上传时间:2018-11-28 格式:DOC 页数:5 大小:38.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷40及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷40及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷40及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷40及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷40及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 40及答案与解析 一、程序填空题 1 程序通过定义学生结构体变量,存储了学生的学号、姓名和 3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数 fun的功能是从形参 filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到 filename所指的文件中,覆盖原来的文件内容。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #define N 5 typedef

2、 Struct Student long Sno; char name10; float Score3; STU; VOid fun(char *filerlaname) FILE *fp;int i, j; STU SN, t ; /*found*/ fp=fopen(filename, _1_); fread(S, Sizeof(STU), N, fP); fclOSe(fp); for (i=0; i int fun(int *X, int y) int t; /*found*/ t=x ; X=Y; /*found*/ return(y); main() int a=3, b=8; p

3、rintf(“ d d n”, a, b); b=fun( a, b); printf(“ d d n”, a, b); 三、程序设计题 3 程序定义了 NxN的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN),函数的功能是:使数组左下三角元素中的值全部置成 0。 例如: a数组中的值为 则返回主程序后 a数组中的值应为 注意:部分源程序存在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #inc2ude#inc2ude#define N 5void fun (int aN)NONO() *本函数用于打

4、开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE *rf, *wf; int i, j, a55; rf=fopen(“in dat”, “r”); wf=fopen(“out dat”, “w”); for(i=0 ; i 国家二级 C语言机试(操作题)模拟试卷 40答案与解析 一、程序填空题 1 【正确答案】 (1)“rb” (2) (3)fwrite 【试题解析】 本题中函数 fun的功能是从形参 filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。 解题思路 第一空:根

5、据题干要求, “fp=fopen(filename, _1_); ”是打开 filename所指文件,读出学生数据 “fread(s, sizeof(STU), N, fp); ”,然后关闭文件 “fclose(fp)”,故第一空处是只读方式打开文件,因此第一空处应为 “rb”。 第二空:根据题意, for循环是将学生数据按照学号从小到大排序后,这里采用的是冒泡法排序,如果发现前面的数据比后面的大则交换,故第二窄处应为 “”。 第三空:文件是以只写方式 (“wb”)打开,执行 “_3_(s, sizeof(STU), N,fp); ”后,天闭文件,即第三处是一次把所有学生数据写入文件,这是执行

6、数据块写函数 fwrite,故第三空处为 “fwrite”。 二、程序修改题 2 【正确答案】 (1)t=*x; *x=y; (2)return(t); 【试题解析】 (1)根据 fun中 x变量的定义, x为指针型变量,所以第一个错误标识下的 “t=x; x=y; ”改为 “t=*x; *x=y; ”。 (2)交换之后 t中存放原来 x的值, x存放原来 v的值,这里应该是返回原来 x的值,所以第二个标识下的 “return(y); ”应该改为 “return(t); ”或者 “returnt; ”。 三、程序设计题 3 【正确答案】 int i, j; for(i=0; iN; i+) for(j=0; j=i; j+) aij=0 ; 【试题解析】 程序功能是使数组左下半三角元素的值全部置成 0。 (1)对二维数组常用双重循环结构来处理:外层循环控制二维数组的行处理,内层循环控制二维数组的列处理。 (2)左下半三角元素的下标特点是列下标小于或等于行下标,即 i=i。 (3)依次访问二维数组,把符合以上条件的元素的值赋 0。 该题是对矩阵操作的考查。

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

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

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