《国家二级C语言机试(操作题)模拟试卷321.docx》由会员分享,可在线阅读,更多相关《国家二级C语言机试(操作题)模拟试卷321.docx(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、国家二级C语言机试(操作题)模拟试卷321(总分:6.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:2. 00).给定程序中,函数fun的功能是:找出NXN矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注 意:部分源程序在文件BLANK. CIo不得增行或删行,也不得更改程序的结构!试题程序:1 #include 2 define N 4 3 void fund nt (*a) N, int*b) 4 ( int i, j; 5 for(i=0; i N; i+) 6 / *found*
2、 / 7 bi=1 ;8 for(j=l: jN: j+) 9 / * found* / 10 if (bi2aj i) 11 bi=aj i : 12 13 14 mainO 15 int xNN=12, 5, 8, 7, 6, 1, 9, 3, 1, 2, 3, 4, (2, 8, 4, 3), yN, i, j; 16 printf(*nThc matrix: n): 17 for(i=0; iN; i+) 18 for(j=0; jN; j+) 19 printf(*% 4cl*, xi j) j 20 printf (* n*) : 21 22 / *found* / 23 fun(
3、3】):24 printf (* nThe resu 11 is: ) : 25 for(i=0; iN; i+) 26 printf (%3d, yi) ; 27 printf (w n*): 28 ) (分数:2.00) 正确答案:(正确答案:(l)a0i (2) (3)x, y)解析:解析:填空1:数组h用于存放每列元素中的最大值,首先将第i列的第一个数赋给bi,然后用 bi与其他数进行比较,因此此空应填填空2: if条件表达式表示当hi小于时, 就把的值赋给bi,因此此空应该的V。填空3: fun函数的调用,通过(*a) N, int*b)可知,此空应该填x, yo二、程序修改题(总题
4、数:1,分数:2.00)1 .给定程序MODH. C中规定输入的字符串全部为字母,fun函数的功能是:统计a所指字符串中每个字 母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字母输出(如果有多个相同,输出 一个即可)。例如对于字符串:dadbcdbabdb,对应的输出应为:b或d。请改正函数fun中指定部位的错 误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行。也不得更改程序的结构。试 题程序:#include#include#include vo i d fun (char a) int b2 6, i, n, max: for(i=0; i 26: i
5、+) / *found* / ai=0: n=strlen(a); for (i=0: i =a&ai V=z) / * found* / bai一 A+: else if (ai =, A & &ai=, z ) bai * A* +; max=0; for(i=l: ibi) max=i; printf (”出现次数最多的字符是:%Cn, max+a): mainO char a200; printf(请输入一个待统计的字符串:*); scanfa); fun (a); (分数:2. 00) 正确答案:(正确答案:(l)bi=0: (2)bai -a+; (3)if(bmaxbi)解析:解
6、析:要统计字符串中每个字符在这个字符串中出现的次数,可以设数组b中存放每个字符出现的 次数h0存放字符a的次数,bl存放字符b的次数。统计之前为数组b各元素赋初值为0。然后依 次取出字符串的每个字符进行判断,使对应数组b加1。max初始值为0,与数组b中的每个元素进行比 较,如果小于,就把卜.标进行交换。(D数组a存放的是字符串,数组h为整型数组存放的是每个字符的 个数,应将数组b每个元素初始化为0。 (2)小写字母的ASCII码减去a的ASCII即为相应字母的下标 值,相应下标值的数组元素的值增加1。 (3)最大值小于被比较数时,把被比较数的下标值赋给max, max 中存放的总是当前最大值
7、。三、程序设计题(总题数:1,分数:2. 00).下列程序定义了 NXN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周 边元素的平均值并作为函数值返回给主函数中的s。例如,若a数组中的值为:0 1 2 7 91 9 7 4 52 38 3 11 5 6 8 25 9 1 4 1则返回主程序后s的值应为3. 375。注意:部分源程序在文件PR0G1. C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题 程序:1 #include2 #include3 #include4 Sdefine N 55 double fun
8、(int w N)6 78 9 void mainO 10 11 FILE*wf; 12 int aN N = (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): 13 int i, j: 14 double s: 15 system (CIS) : 16 printf (*The array* n*) : 17 for(i=0: i N: i+) 18 ( for (j=0: j ai j) : )20 print: f(n); 21 22 s=fun(a) ; 23 printfC*THE RES
9、ULT* n*) : 24 printf (*The sum is:s) : 25 / * / 26wf=fopen(*out. dat, w) ; 27 fprintf (wf,s) ; 28 fclose(wf) ; 29 / */30 (分数:2. 00) 正确答案:(正确答案:double fun(int w N) int i, j, k=0: double sum=0. 0; for(i=0: i N: i+) for(j=0: jN: j+) if(i=0| i=N1 II j=0| j=N1)/* 只要下标中有一个为 0 或 N1, 则它一定是周边元素*/ sum=sum+wi j ; /*将周边元素求和*/ k+; return sum / k; / *求周 边元素的平均值*/ )解析:解析:本题要求计算二维数组周边元素的平均值,ror循环语句控制循环过程,if条件语句根据数 组元素的下标判断该元素是否为二维数组的周边元素.本题采用逐一判断的方式,周边元素的规律为下 标中有一个是。或N-1,所以只要下标中有一个为0或N-1,那么它一定是周边元素。计算周边元素个 数的方式是当给sum累加一个值时,k也加1。