【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷289及答案解析.doc

上传人:twoload295 文档编号:1332103 上传时间:2019-10-17 格式:DOC 页数:3 大小:33.50KB
下载 相关 举报
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷289及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷289及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷289及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 289及答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.下列给定程序中,函数 fun的功能是:计算 NN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。 例如,若 N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 首先累加 1、5、9,然后累加 3、5、7,函数返回值为 30。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #i

2、ncludestdioh #define N 4 fun(int tN,int n) int i,sum; *found* 【1】 ; for(i=0;in;i+) *found* sum+= 【2】 ; for(i=0;in;i+) *found* sum+=tini一 【3】 ; return sum; main() int i,j,tIN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10; printf(“nfhe original clata:n“); for(i=0;iN;i+) for(j=0;jN;j+) printf(“4d“,tij)

3、; printf(“n“); printf(“The result is:d“,fun(t,N); (分数:2.00)_二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:先将 s所指字符串中的字符按逆序存放到 t所指字符串中,然后把 s所指串中的字符按正序连接到 t所指串之后。例如,当 s所指的字符串为“ABCDE”时,t 所指的字符串应为“EDCBAABCDE”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdlibh#includeconioh#includes

4、tdioh#includestringhvoid fun(char*s,char*t)*found* int i; s1=strlen(s); for(i=0;is1;i+)*found* ti=ss1 一 i; for(i=0;i=S1;i+) ts1+i=si; t2*s1=0;void main() char s100,t100; system(“CLS“); printf(“n Please enter string s:“); scanf(“s“,s); fun(s,t); printf(“The result is:sn“,t)7(分数:2.00)_三、程序设计题(总题数:1,分数

5、:2.00)3.请编写函数 fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参 a指向存放得分的数组,形参 n中存放得分个数(n2)。例如,若输入 99 85 76 85 93 95 89 78 86 84 十个得分,则输出结果为:8687500。注意:部分源程序存在 PROG1C 中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。试题程序:#includestdiohvoid NONO();double fun(double a,int n)main() double b10,r;int i;

6、printf(“输入 10个分数放入 b数组中:“); for(i=0;i10;i+) scanf(“lf“,&bi); printf(“输入的 10个分数是:“); for(i=0;i10;i+) printf(“41lf“,bi); printf(“n“); r=fun(b,10); printf(“去掉最高分和最低分后的平均分:fn“,r); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。* FILE*fp,*wf; int i,j ; double b10,r; fp=fopen(“indat“,“r“); wf=fopen(“o

7、utdat“,“w“); for(i=0;i10;i+) for(j=0;j10;j+) fscanf(fp,“lf“,bj); r=fun(b,10); fprintf(wf,“fn“,r); fclose(fp); fclose(wf);(分数:2.00)_国家二级 C语言机试(操作题)模拟试卷 289答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.下列给定程序中,函数 fun的功能是:计算 NN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。 例如,若 N=3,有下列矩阵:

8、 1 2 3 4 5 6 7 8 9 首先累加 1、5、9,然后累加 3、5、7,函数返回值为 30。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdioh #define N 4 fun(int tN,int n) int i,sum; *found* 【1】 ; for(i=0;in;i+) *found* sum+= 【2】 ; for(i=0;in;i+) *found* sum+=tini一 【3】 ; return sum; main() int i,j,

9、tIN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10; printf(“nfhe original clata:n“); for(i=0;iN;i+) for(j=0;jN;j+) printf(“4d“,tij); printf(“n“); printf(“The result is:d“,fun(t,N); (分数:2.00)_正确答案:(正确答案:(1)sum=0 (2)tii (3)1)解析:解析:填空 1:变量 sum用来储存“和”结果,所以将其初始化为 0。 填空 2:从题目中可以了解到,主对角线元素的行和列下标是相同的,所以应填入 t

10、ii。 填空 3:对于反向对角线元素的行和列的下标,它们的关系是相加和为 n一 1,所以应填入 1。二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:先将 s所指字符串中的字符按逆序存放到 t所指字符串中,然后把 s所指串中的字符按正序连接到 t所指串之后。例如,当 s所指的字符串为“ABCDE”时,t 所指的字符串应为“EDCBAABCDE”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdlibh#includeconioh#includestdioh#incl

11、udestringhvoid fun(char*s,char*t)*found* int i; s1=strlen(s); for(i=0;is1;i+)*found* ti=ss1 一 i; for(i=0;i=S1;i+) ts1+i=si; t2*s1=0;void main() char s100,t100; system(“CLS“); printf(“n Please enter string s:“); scanf(“s“,s); fun(s,t); printf(“The result is:sn“,t)7(分数:2.00)_正确答案:(正确答案:(1)int i,sl; (2

12、)ti=ssli 一 1;)解析:解析:(1)变量 sl没有定义。 (2)该循环实现将 s串中的字符逆序存入 t串中,ti对应 s串中的ssli一 1。三、程序设计题(总题数:1,分数:2.00)3.请编写函数 fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参 a指向存放得分的数组,形参 n中存放得分个数(n2)。例如,若输入 99 85 76 85 93 95 89 78 86 84 十个得分,则输出结果为:8687500。注意:部分源程序存在 PROG1C 中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所

13、编写的若干语句。试题程序:#includestdiohvoid NONO();double fun(double a,int n)main() double b10,r;int i; printf(“输入 10个分数放入 b数组中:“); for(i=0;i10;i+) scanf(“lf“,&bi); printf(“输入的 10个分数是:“); for(i=0;i10;i+) printf(“41lf“,bi); printf(“n“); r=fun(b,10); printf(“去掉最高分和最低分后的平均分:fn“,r); NONO(); void NONO() *本函数用于打开文件,输

14、入数据,调用函数,输出数据,关闭文件。* FILE*fp,*wf; int i,j ; double b10,r; fp=fopen(“indat“,“r“); wf=fopen(“outdat“,“w“); for(i=0;i10;i+) for(j=0;j10;j+) fscanf(fp,“lf“,bj); r=fun(b,10); fprintf(wf,“fn“,r); fclose(fp); fclose(wf);(分数:2.00)_正确答案:(正确答案:double fun(double a,int n) double sum=0,max,min;int i; max=min=a0; for(i=0;in;i+) sum=sum+ai; if(maxai)max=ai; if(minai)min=ai; sum=summaxmin; return(sum(n 一 2); )解析:解析:设定三个变量 sum存放合值,max 存放最大值,min 存放最小值。max 和 min都赋为数组中第一个元素的值。利用循环将数组中元素累加到 sum中,并找出最大值和最小值,sum 值减去最大值和最小值。函数返回 sum除以元素个数一 2得平均值。

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

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

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