《国家二级(C语言)机试-试卷43.docx》由会员分享,可在线阅读,更多相关《国家二级(C语言)机试-试卷43.docx(1页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、国家二级(C语言)机试-试卷43(总分:12.00,做题时间:90分钟)一、程序填空题(总题数:2,分数:4. 00)1.程序填空题()(分数:2. 00)解析:(分数:2. 00) 正确答案:(正确答案:i=0 s)解析:解析:第一空:在主函数中fun函数的调用形式是“fun(t,N);,t是二维数组名,故fun函数 的第一个参数为指针,因此第一空处应为。第二空:fun函数的第二个参数n指明了矩阵的 大小为n,对角线元素与反向对角线元素有n个,故循环有n次,因此变量i从0开始,到nT结束,因 此第一空处应为“i=0;i二、程序修改题(总题数:2,分数:4. 00).程序修改题。(分数:2.
2、00) 解析:3 .给定程序MODIL C中函数fun的功能是:逐个比较P、q所指两个字符串对应位置中的字符,把ASCII 值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。例如,若主函数中a字符串为: aBCDeFgH,主函数中b字符串为:ABcd,则c中的字符串应为:aBcdeFgHo请改正程序中的错误,使它 能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。include ttinclude void fun(char *p , char *q, char *c) /*found*/ int k=l; /*found*/ while(*p|*q)
3、 if(*p(分数:2. 00) 正确答案:(正确答案:int k=0; aBCDeFgH)解析:解析:(1)第一个标识下面的“int k=l;”在题目中要求将字符放在数组c,如果数组中有n个 元素,应该从c0到cnT。所以,应将k的初始化定义改为从0开始,即“int k=0;。(2)第二个标识下面的判断条件,是根据题目要求逐个比较两个数组对应字符的ASCH值的大小,所以判断条件应 该是直到两个字符数组所有元素比较完毕,而不是数组对应元素不相等。其中,该题主要考查变量的初 始化,逻辑关系。三、程序设计题(总题数:2,分数:4. 00).程序设计题()(分数:2. 00) 解析:4 .请编写一个
4、函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5 门课程的成绩是:90. 5, 72, 80, 61. 5, 55则函数的值为:71. 80。注意:部分源程序存在文件 PR0G1. C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的 若干语句。ttinclude float fun (float *a , int n) main() float score30 = 90.5, 72, 80, 61. 5, 55), aver; void NONO () ; aver = fun (score, 5) ; printf (/
5、z/nAverage score is: %5,2f/n, aver) ; NONO (); void NONO () /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文 件。*/ FILE *fp, *wf ; int i, j ; float aver, score5 ; fp = fopen(in. dat,r); wf 二 fopen(out. dat,w); for(i = 0 ; i 10 ; i+) for(j = 0 ; j 5 ; j+) fscanf (fp, zz%f,/z, &scorej) ; aver = fun (score, 5) ; fprintf (wf, 52f/n,aver) ; fclose(fp); fclose(wf); ) (分数:2. 00)正确答案:(正确答案: int i; float ave=0. 0; for (i=0; i解析:解析:(1)在函数中首先定义平均分的变量,并将其初始化值置为0。(2)然后在for循环中,求得所有成绩的总分,并在总分的基础上求得平均分。