【计算机类职业资格】二级C语言-105及答案解析.doc

上传人:sumcourage256 文档编号:1324853 上传时间:2019-10-17 格式:DOC 页数:5 大小:36KB
下载 相关 举报
【计算机类职业资格】二级C语言-105及答案解析.doc_第1页
第1页 / 共5页
【计算机类职业资格】二级C语言-105及答案解析.doc_第2页
第2页 / 共5页
【计算机类职业资格】二级C语言-105及答案解析.doc_第3页
第3页 / 共5页
【计算机类职业资格】二级C语言-105及答案解析.doc_第4页
第4页 / 共5页
【计算机类职业资格】二级C语言-105及答案解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、二级 C 语言-105 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是在 34 的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 例如,有下列矩阵: 1 2 13 4 7 8 10 6 3 5 9 7 程序执行结果为 find:a22=9。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序如下。 #includestdio.h #defin

2、e M 3 #define N 4 void fun(int(*a)N) int i=0,j,find=0,rmax,c,k; while(jM)c=0; for(j=1;jN;j+) if(rmaxaij) /*found*/ rmax=aij;c= 1; find=1;k=0: while(kM k+; if(find)printf(“find:a%d%d=%d/n“,i,c,aic); /*found*/ 3; if(!find)printf(“not found!/n“); main() int xMN,i,j; printf(“Enter number for array:/n“);

3、 for(i=0;iM;i+) for(j=0;jN;j+)scanf(“%d“, printf(“The array:/n“); for(i=0;iM;i+) for(j=0;jN;j+)printf(“%3d“,xij); printf(“/n/n“); fun(x); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是根据整型形参 m 的值,计算如下公式的值。 (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.m 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是将低于平均分的人数

4、作为函数值返回,将低于平均分的分数放在 below 所指的数组中。 例如,当 score 数组中的数据为 10、20、30、40、50、60、70、80、90 时,函数返回的人数应该是4,below 所指的数组中的数据应为 10、20、30、40。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。 #includestdio.h #includestring.h int fun(int score,int m,int below) main() int i,n,below9; i

5、nt score9=10,20,30,40,50,60,70,80,90); n=fun(score,9,below); printf(“/nBelow the average score are:“); for(i=0;in;i+)printf(“%d“,belowi); (分数:40.00)_二级 C 语言-105 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是在 34 的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 例如,有下列矩阵: 1 2 13 4 7 8 1

6、0 6 3 5 9 7 程序执行结果为 find:a22=9。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序如下。 #includestdio.h #define M 3 #define N 4 void fun(int(*a)N) int i=0,j,find=0,rmax,c,k; while(jM)c=0; for(j=1;jN;j+) if(rmaxaij) /*found*/ rmax=aij;c= 1; find=1;k=0: while(kM k

7、 if(find)printf(“find:a%d%d=%d/n“,i,c,aic); /*found*/ 3; if(!find)printf(“not found!/n“); main() int xMN,i,j; printf(“Enter number for array:/n“); for(i=0;iM;i+) for(j=0;jN;j+)scanf(“%d“, printf(“The array:/n“); for(i=0;iM;i+) for(j=0;jN;j+)printf(“%3d“,xij); printf(“/n/n“); fun(x); (分数:30.00)解析:i

8、 0 i+ 解析 本题是在矩阵中找出在行上最大、在列上最小的那个元素。 填空 1:找出行上最大的数,并将该数的列数 j 保存在 c 中,所以应填 i。 填空 2:使用 while 循环语句和控制变量 find,如果该数不是列中的最小数,那么把 find 置 0,所以应填 0。 填空 3:i 是 while 的控制变量,所以每做一次循环,该数值要加 1,所以应填 i+。二、程序改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是根据整型形参 m 的值,计算如下公式的值。 (分数:30.00)解析:for(i=2;i=m;i+) y-=1.0/(i*i);

9、解析 使用 for 循环计算公式,必须计算到 m,所以应改为 for(i=2;i=m;i+)。 在除法运算中,如果除数和被除数都是整数,那么所除结果也是整数,因此应改为 y-=1.0/(i*i)。三、程序设计题(总题数:1,分数:40.00)3.m 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是将低于平均分的人数作为函数值返回,将低于平均分的分数放在 below 所指的数组中。 例如,当 score 数组中的数据为 10、20、30、40、50、60、70、80、90 时,函数返回的人数应该是4,below 所指的数组中的数据应为 10、20、30、40。 注意:部分源程

10、序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。 #includestdio.h #includestring.h int fun(int score,int m,int below) main() int i,n,below9; int score9=10,20,30,40,50,60,70,80,90); n=fun(score,9,below); printf(“/nBelow the average score are:“); for(i=0;in;i+)printf(“%d“,belowi); (分数:40.00)_正确答案:()解析:int fun(int score,int m,int below) int i,j=0; float av=0.0; for(i=0;im;i+) av=av+scorei/m; for(i=0;im;i+) if(scoreiav) belowj+=scorei; return j; 解析 要计算低于平均分的人数,首先应该求出平均分,然后通过 for 循环语句和 if 条件语句找出低于平均分的分数。该题第 1 个循环的作用是求出平均分 av,第 2 个循环的作用是找出低于平均分的成绩记录并存入 below 数组中。

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

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

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