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

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

1、国家二级 C语言机试(操作题)模拟试卷 575及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:把形参 a所指数组中的最大值放在 a0中,接着求出 a所指数组中的最小值放在 a1中,再把 a所指数组元素中的次大值放在 a2中,把 a数组元素中的次小值放在 a3中,依此类推。 例如,若 a所指数组中的数据最初排列为: 1、 4、 2、 3、 9、 6、 5、 8、 7,按规则移动后,数据排列为: 9、 1、 8、 2、 7、 3、 6、 4、 5。 形参 n中存放 a所指数组中数据的个数。 请在程序的下画 线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分

2、源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #inClude Stdio h #define N 9 *found* void fun(int 【 1】 , int n) ( int i, j, max, vain, px, pn, t; *found* for(i=0; i n一 1; i+=【 3】 ) max=min=ai; px=pn=i; *found* for(j=【 3】 ; j n; j+) if(max aj) max=aj; px=j; if(min aj) min=aj; pn=j; if(px!=i) t=ai; ai=max; apx=t;

3、 if(pn=i)pn=px; if(pn!=i+1) t=ai+1; ai+1=rnin; apn=t; main() Int bN=(1, 4, 2, 3, 9, 6, 5, 8, 7, i; printf(“ nThe original data : n“); for(i=0; i N; i+) printf(“ 4d“, bi); printf(“ n“); fun(b, N); printf(“ nThe data after moving: n“); for(i=0; i N; i+) printf(“ 4 d“, bi); printf(“ n“); 二、程序修改题 2 下列程序

4、中,函数 fun的功能是:按顺序给 s所指数组中的元素赋予从 2开始的偶数,然后再按顺序对每 5个元素求一个平均值,并将这些值依次存放在 W所指的数组中。若 s所指数组中元素的个数不是 5的倍数,则多余部分忽略不计。 例如, s所指数组有 14个元素,则只对前 10个元素进行处理,不对最后的 4个元素求平均值。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #define SIZE 20 fun(double*s, double*w) int k, i; double sum;

5、for(k=2, i=0; i SIZE; i+) si=k; k+=2; 1 *found* sun=0 0; for(k=0, i=0; i SIZE; i+) (SLIm+=si; *found* if(i+1 5=0) wk=sum 5; SLIm=0; k+; return k; main() (double aSIZE, bSIZE 5; int i, k; k=fun(a, b); printf(“The original data: n“); for(i=0; i SIZlg; i+) if(i 5=0)printf(“ n“); printf(“ 4 Of“, ai); pr

6、intf(“ n nThe result: n“); for(i=0; i k; i+) printf(“ 6 2f“, bi); printf(“ n n“); 三、程序设计题 3 学生的记录由学号和成绩组成, N名学生的数据已在主函数中放入结构体数组 s中,请编写函数 fun,其功能是:把低于平均分的学生数据放入 b所指的数组中,低于平均分的学生人数通过形参 n传回,平均分通过函数值返回。 注意:部分 源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h #define N 8 ty

7、pedef struct char Flilm10; double s; STREC; double fun(STREC*a, STREC*b, int*n) void main() STREC SN=(“GA05“, 85, “GA03“, 76, “GA02“, 69, “GA04“, 85), “GA01“, 91, “GA07“, 72, “GA08“, 64), “GA06“, 87; STREC hN; int i, n; double ave; ave=fun(s, h, &n); printf (“The d student data which is lower than 7

8、 3f: n“, n, ave); for(i=0; i n; i+) *输出成绩低于平均值的学生记录: * printf(“ s 4 1 f n“, h i nHm, hi s); printf(“ n“); 国家二级 C语言机试(操作题)模拟试卷 575答案与解析 一、程序填空题 1 【正确答案】 (1)a (2)2 (3)i+1 【试题解析】 填空 1:由 main中的函数调用语句确定函数定义的形式参数。 填空 2: for循环语句中,循环变量增值为 2。 填空 3:确定 for语句循环变量的初值。 二、程序修改题 2 【正确答案】 (1)sum=0 0; (2)if(i+1) 5=0)

9、 【 试题解析】 本题考查: if语句条件表达式,需注意其格式是否正确;变量定义和变量使用。 (1)变量 sum书写错误。 (2)循环条件 if(i+l 5=0)是一个运算逻辑错误,应先计算 i+1,再对 5求余。 三、程序设计题 3 【正确答案】 double fun(STREC *a, STREC *b, int *n) int i, j=0; double av=0 0; for(i=0; i N; i+) av=av+ai s; av=av N; *求平均值 * for(i=0; i N; i+) if(ai s av) bj+=ai; *将低于平均值的学生记录存入结构体数组 b中 * *n=j; *指针传回低于平均值的学生人数 * retUrn av; *返回平均值 * 【试题解析】 本题使用循环语句和条件判断语句来实现程序操作,第 1个循环语句的作用是求出总分,然后求出平均分 av。第 2个循环的作用是将分数低于平均分的学生记录存入结构体数组 b中。

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

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

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