1、国家二级(C 语言)机试-试卷 27-2 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.给定程序中,函数 fun 的功能是:求出形参 ss 所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss 所指字符串数组中共有 M 个字符串,且串长 #include #define M 5 #define N 20 void fun(char (*ss)N) int i, j, n, len=0; for(i=0; i_二、程序修改题(总题数:2,分数:4.00)3.程序修改
2、题()(分数:2.00)_4.给定程序 MODllC 中函数 fun 和 funx 的功能是:用二分法求方程 2x 3 -4x 3 +3x6=0 的一个根,并要求绝对误差不超过 0001。 例如,若给 m 输入-100,给 n 输入 90,则函数求得的一个根值为2000。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 #include #include double funx(double x) return(2*x*x*x-4*x*x+3*x-6); double fun(double m, double n) /*foun
3、d*/ int r; r=(m+n)/2; /*found*/ while(fabs(n-m)(分数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.请编一个函数 void fun(int ttMN,int ppN),tt 指向一个 M 行 N 列的二维数组,求出二维数组每列中最小元素,并依次放入 pp 所指一维数组中。二维数组中的数已在主函数中赋予。 注意:部分源程序存在文件 PROGlC 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include #define M 3 #d
4、efine N 4 void fun (int ttMN, int ppN) NONO() /* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ int i, j, k, m, tMN, pN ; FILE *rf, *wf ; rf = fopen(“in.dat“,“r“); wf = fopen(“out.dat“,“w“); for(m = 0 ; m 0.001)解析:解析:(1)fun 函数要求返回方程的一个根,由 return 语句来实现,而函数 fun 是定义为 double型的,但第一个标识下面的 r 却被定义为 int 类型。所以“int
5、 r;”改为“double r;”。 (2)检查while 循环的控制表达式“(fabs(n-m)0.001)”。三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_解析:6.请编一个函数 void fun(int ttMN,int ppN),tt 指向一个 M 行 N 列的二维数组,求出二维数组每列中最小元素,并依次放入 pp 所指一维数组中。二维数组中的数已在主函数中赋予。 注意:部分源程序存在文件 PROGlC 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include #define M 3
6、 #define N 4 void fun (int ttMN, int ppN) NONO() /* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ int i, j, k, m, tMN, pN ; FILE *rf, *wf ; rf = fopen(“in.dat“,“r“); wf = fopen(“out.dat“,“w“); for(m = 0 ; m 10 ; m+) for(i=0; i N; k+) fprintf (wf, “ %4d “, pk); fprintf(wf, “/n“); fclose(rf); fclose(wf);
7、main() int t MN=22,45, 56,30,19,33, 45,38,20, 22,66,40; int p N, i, j, k; printf (“The original data is : /n“); for(i=0; i N; k+) printf (“ %4d “, pk); printf(“/n“); NONO(); (分数:2.00)_正确答案:(正确答案: int i,j, min, k; for(i=0; ittji) min=ttji; k=j; ppi=ttki; )解析:解析:进入 fun 函数,根据前面的分析: (1)依次访问每一列的元素。 (2)在对每一列的访问过程中选出最小数。 (3)将选出的最小数依次放到一维数组中。