1、二级 C 语言-565 及答案解析(总分:28.00,做题时间:90 分钟)一、填空题(总题数:1,分数:-1.00)1.请补充函数 fun(),该函数的功能是:计算 NN 维矩阵元素的方差,结果由函数返回。维数 N 在主函数中输入。例如: (分数:-1.00)二、改错题(总题数:1,分数:30.00)2.下列给定程序中函数 fun 的功能是:把从主函数中输入的 3 个数,最大的数放在 a 中,中间的数放在 b中,最小的数放在 C 中。 例如,若输入的数为:55 12 34,输出的结果应当是a=55.0,b=34.0,c=12.0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动
2、main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h void fun(float*a,float*b,float*c) /*found*/ float*k; if(*a*b) k=*a: *a=*b: *b=k; /*found*/ if(*a*c) k=*c: *c=*a: *a=k; if(*b*c) k=*b; *b=*c; *c=k; void main() float a,b,c; printf(“Input a b c:“); scanf(“%f%f%f“, for(i=1;inum-2;i+) /*下标值从 1 开始,用循环依次取得字符串中的字符*/ for(j=i+1;jnum-1;j+) /*将字符与其后的每个字符比较*/ if(sisj) /*如果后面字符的 ASCII 码值小于该字符的 ASCII 码值*/ t=si; /*则交换这两个字符* si=sj; sj=t; 解析 本题考查利用循环来控制数组元素的操作,首尾元素除外,因此,数组的下标值要从 1 开始,用循环变量 i 来依次取得数组中的元素,用数组中的元素 si和 sj进行比较,如果后一个元素的ASCII 码值小于前一个元素的 ASCII 码值,则交换这两个数组元素的值。