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

上传人:postpastor181 文档编号:1325269 上传时间:2019-10-17 格式:DOC 页数:6 大小:34KB
下载 相关 举报
【计算机类职业资格】二级C语言-350及答案解析.doc_第1页
第1页 / 共6页
【计算机类职业资格】二级C语言-350及答案解析.doc_第2页
第2页 / 共6页
【计算机类职业资格】二级C语言-350及答案解析.doc_第3页
第3页 / 共6页
【计算机类职业资格】二级C语言-350及答案解析.doc_第4页
第4页 / 共6页
【计算机类职业资格】二级C语言-350及答案解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、二级 C 语言-350 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至 x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10 个正数:46、30、32、40、6、17、45、15、48、26,平均值为 30.500000。 移动后的输出为:46、32、40、45、48、30、6、17、15、26。 请在程序的下划线处填入正确的内

2、容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdlib.h #includestdio.h #define N 10 double fun(double *x) int i,j;double s,av,yN; s=0; for(i=0; iN;i+)s=s+xi; /*found*/ av= 1; for(i=j=0;iN;i+) if(xiav) /*found*/ y 2=xi;xi=-1; for(i=0; iN: i+) /*found*/ if(xi!= 3) yj+=xi; for(i=0;iN;i+

3、)xi=yi; return av; main() int i;double xN; for(i=0; iN; i+) xi=rand()%50; printf(“%4.0f“,xi); printf(“/n“); printf(“/nThe average is:%f/n“,funIx); printf(“/nThe result:/n“,fun(x); for(i=0;iN;i+) printf(“%5.0f“,xi); printf(“/n“); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成

4、大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入“I am a student to takethe examination”,则应输出“I Am A Student To Take The Examination”。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include ctype.h #include string.h #includestdio.h /*found*/ void upfst(char p) int k=0; for(;*p;p+) if(k) if(*

5、p=“) k=0; else if(*p!=“) k=1; *p=toupper(*p); main() char chrstr81; printf(“/nPlease enter an English text line:“); gets(chrstr); printf(“/n/nBefore changing:/n%s“,chrstr); upfst(chrstr); printf(“/nAfter changing:/n%s/n“,chrstr); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.下列程序定义了 NN 的二维数组,并在主函数中赋值。请编写函数 fun

6、,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的 s。例如,若 a 数组中的值为: 0 1 2 7 9 1 9 7 4 5 2 3 8 3 1 4 5 6 8 2 5 9 1 4 1 则返回主程序后 s 的值应为 3.375。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #includestdio.h #includeconio.h #includestdlib.h #define N 5 double fun (int wN) void main() int aNN=0,1,

7、2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1; int i,j; double s; system(“CLS“); printf(“*The array*/n“); for(i=0;iN;i+) for(j=0;jN;j+) printf(“%4d“,aij); printf(“/n“); s=fun(a); printf(“*THE RESULT*/n“); printf(“The sum is:%1f/n“,s); (分数:40.00)_二级 C 语言-350 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数

8、:30.00)1.给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至 x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10 个正数:46、30、32、40、6、17、45、15、48、26,平均值为 30.500000。 移动后的输出为:46、32、40、45、48、30、6、17、15、26。 请在程序的下划线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #

9、includestdlib.h #includestdio.h #define N 10 double fun(double *x) int i,j;double s,av,yN; s=0; for(i=0; iN;i+)s=s+xi; /*found*/ av= 1; for(i=j=0;iN;i+) if(xiav) /*found*/ y 2=xi;xi=-1; for(i=0; iN: i+) /*found*/ if(xi!= 3) yj+=xi; for(i=0;iN;i+)xi=yi; return av; main() int i;double xN; for(i=0; iN;

10、 i+) xi=rand()%50; printf(“%4.0f“,xi); printf(“/n“); printf(“/nThe average is:%f/n“,funIx); printf(“/nThe result:/n“,fun(x); for(i=0;iN;i+) printf(“%5.0f“,xi); printf(“/n“); (分数:30.00)解析:(1)s/N (2)j+ (3)-1 解析 填空 1:由原程序可知,av 代表的是平均值,而平均值的求法是所有数的总和除以数的个数,因而本空应该填写 s/N。 填空 2:y 数组代表暂时存放 x 数组,if(xiav)表达的是

11、当 x 数组中的数大于平均值时,应该把这些大于平均值的数放在 y 数组的前半部分,因而此空应该填 yj+。 填空 3:此空表明当 xi不等于什么时,xi中的数要赋值给 y 数组,由题意可知此空只能填写-1。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入“I am a student to takethe examination”,则应输出“I Am A Student To Take The Examination”。 请改正程序中的错误,使程

12、序能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include ctype.h #include string.h #includestdio.h /*found*/ void upfst(char p) int k=0; for(;*p;p+) if(k) if(*p=“) k=0; else if(*p!=“) k=1; *p=toupper(*p); main() char chrstr81; printf(“/nPlease enter an English text line:“); gets(chrstr); printf

13、(“/n/nBefore changing:/n%s“,chrstr); upfst(chrstr); printf(“/nAfter changing:/n%s/n“,chrstr); (分数:30.00)解析:void upfst( char *p)解析 主函数中 fun 函数的调用方式说明函数 fun 的参数应为指针类型。三、程序设计题(总题数:1,分数:40.00)3.下列程序定义了 NN 的二维数组,并在主函数中赋值。请编写函数 fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的 s。例如,若 a 数组中的值为: 0 1 2 7 9 1 9 7 4 5 2 3

14、 8 3 1 4 5 6 8 2 5 9 1 4 1 则返回主程序后 s 的值应为 3.375。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #includestdio.h #includeconio.h #includestdlib.h #define N 5 double fun (int wN) void main() int aNN=0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1; int i,j; double s; system(“C

15、LS“); printf(“*The array*/n“); for(i=0;iN;i+) for(j=0;jN;j+) printf(“%4d“,aij); printf(“/n“); s=fun(a); printf(“*THE RESULT*/n“); printf(“The sum is:%1f/n“,s); (分数:40.00)_正确答案:()解析:double fun (int wN) int i,j,k=0; double av=0.0; for(i=0;iN;i+) for(j=0;jN;j+) if(i=0|i=N-1|j=0|j=N-1) /*只要下标中有一个为 0 或 N-1,则它一定是周边元素*/ av=av+wij; /*将周边元素求和*/ k+; return av/k; /*求周边元素的平均值*/ 解析 本题要求计算二维数组周边元素的平均值,for 循环语句控制循环过程,if 条件语句根据数组元素的下标判断该元素是否为二维数组的周边元素。 本题采用逐一判断的方式,周边元素的规律为下标中有一个是 0 或 N-1,所以只要下标中有一个为 0 或 N-1,那么它一定是周边元素。计算周边元素个数的方式是当给 av 累加一个值时,k 也加 1。

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

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

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