二级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); }
_______
上一题 下一题 (1/1)程序设计题
第3题
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。请编写函数fun,其功能是:求n(n<10000)以内的所有四叶玫瑰数并逐个存放到result所指的数组中,四叶玫瑰数的个数作为函数值返回。
如果一个4位正整数等于其各个数字的4次方之和,则称该数为四叶玫瑰数。
例如,1634=1*1*1*1+6*6*6*6+3*3*3*3+4*4*4*4,因此1634就是一个四叶玫瑰数。 注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include<stdio.h>
{fpragrna warning(disable:4996) int fun(int n,int result[]) { }
main() {
int result[10],n,i; void NONO(int result[], int n);
n=fun(9999,result); for(i=0,i<n;i++)
printf(\%d\n\,result[i]); NONO(Eesult,n); }
void NONO(int result[],int n)
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*fp; int i;
fp=fopen(\.dat\,\; fprintf(fp,\%d\n\,n); for(i=0;i<n;i++)
fprintf(fp,\%d\n\,result[i]); fclose(fp); }
_______
上一题 交卷 交卷 答题卡 答案及解析 (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)n (2)sum (3)sum/k
详细解答: 填空1:fun()函数有两个参数,第一个为数组x,第二个为数组元素个数n,首先利用第一个for循环将传入的所有数组元素加起来存入变量avg中,因为求的是平均值,所以需要除以元素个数,所以该空填数组元素个数n。答案为n。
填空2:第二个for循环将数组中每个元素值与平均成绩进行比较,把高于平均值的元素值加起来以便后期求其平均,此时需要一个变量用来存放高于平均成绩的元素总和,所以该空填sum。答案为sum。
填空3:变量k的作用为统计高于平均成绩的元素个数,因为题目要求把高于平均成绩的学
生成绩求平均值并返回,所以用高于平均成绩的分数总数除以元素个数,所以该空填sum/k。答案为sum/k。 下一题
(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);