二级C语言机试(操作题)2018年3月真题汇编1及答案解析

二级C语言机试(操作题)2018年3月真题汇编1及答案解析

(1/1)程序填空题 第1题

使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun根据所给n名学生的成绩,计算出所有学生的平均成绩,把高于平均成绩的学生成绩求平均值并返回。

例如,若有成绩为:50,60,70,80,90,100,55,65,75,85,95,99,则运行结果应为:91.5

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构! #include<stdio.h>

#pragrna warnirig(disable:4996) double fun(double x[],int n) {int i,k=0;

double avg=0.0,sum=0.0; for(i=0;i<n;i++) avg+=x[i];

/*********found*********/ avg/=【1】;

for(i=0;i<n;i++) if(x[i]>avg) {

/*********found*********/ 【2】+=x[i]; k++; }

/*********found*********/ return【3】; }

main()

{double score[12]={50,60,70,80,90,100,55,65,75,85,95,99}; double aa;

aa=fun(score,12); printf(\%f\n\,aa); }

_______

下一题

(1/1)程序改错题 第2题

使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。函数fun将字符串s1和s2交叉合并形成新字符串s3,合并方法为:先

取s1的第1个字符存入s3,再取s2的第1个字符存入s3,以后依次类推;若s1和s2的长度不等时,较长字符串多出的字符顺序放在新生成的s3后。 例如,当s1为:\,s2为:\时, 输出结果应该是:1a263c4d5e6t7g8h9ijk

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include<stdio.h> #include<string.h>

#pragma warning(disable:4996) void fun(char*s1,char*s2, char*s3) {int i,j;

/*********found*********/

for(i=0,j=0;(s1[i]!=′\0′)&&(s2[i]!=′\0′);i++,j=j+1) {s3[j]=s1[i]; s3[j+1]=s2[i]; }

if(s2[i]!=′\0′)

(for(;s2[i]!=′\0′;i++, j++)

/*********found*********/ s3[i]=s2[j]; }

else if(sl[i]!=′\0′)

(for(;s1[i]!=′\0′;i++,j++) s3[j]=s1[i]; )

/*********found*********/ s3[j﹣1]=′\0′; }

void main()

{char s1[128],s2[128],s3[255]; printf(\:\; gets(s1);

printf(\:\; gets(s2);

fun(s1,s2,s3);

printf(\:%s\n\,s3); }

______

>>灞曞紑鍏ㄦ枃<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4