在考生文件夹下的给定程序modi33.c中,函数fun的功能是:计算输出high以内最大的10个素数之和。high由主函数传给fun函数。
若high的值为:100,则函数的值为:732。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include #include #include #include int fun(int high) {int sum=0,n=0,j,yes; /************found************/ while ((high>=2)&&(n
for (j=2;j
if (high%j==0){yes=0;break}
if (yes) {sum+=high;n++;}
high--; } return sum; }
main() {system(\"cls\"); printf(\"%d\\n\",fun(100)); } 第1 处内容填写有误
第[1]处操作错误
题面要求操作:内容为[while ((high>=2)&&(n=2)&&(n
第[2]处操作错误
题面要求操作:内容为[if (high%j==0){yes=0;break;}] 实际操作结果:内容为[if(high%j==0){yes=0;break}]
本题的考核点是C语言中一些规定的应用。
本题中的第一处错误是:在C语言中,\"{\"和\"}\"应成对出现,所以程序中的语句\" while ((high>=2)&&(n=2)&&(n
本题中的第二处错误是:C语言中,\";\"是语句的一部分,是语句结束的标志,不可缺少,所以,\" if (high%j==0){yes=0;break}\"应改为\"if (high%j==0){yes=0;break;}\"或相同作用的语句。
本评析仅作参考。
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序存在考生文件夹下的文件prog91.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #define N 16 typedef struct {
char num[10];
int s; } STREC; int fun(STREC a[]) {
}
main() { STREC s[N]={{\"GA05\",85},{\"GA03\",76},{\"GA02\",69},{\"GA04\",85},{\"GA01\",91},{\"GA07\",72},{\"GA08\",64},{\"GA06\",87},{\"GA015\",85},{\"GA013\",91},{\"GA012\",64},{\"GA014\",91},{\"GA011\",91},{\"GA017\",64},{\"GA018\",64},{\"GA016\",72}};
int i,n;FILE *out;
fun(s);
printf(\"The data after sorted:\\n\");
for(i=0;i
{ if((i)%4==0)printf(\"\\n\");
printf(\"%s %4d\",s[i].num,s[i].s);
}
printf(\"\\n\");
out=fopen(\"out16.dat\",\"w\");
for (i=0;i
{ if((i)%4==0 && i) fprintf(out,\"\\n\");
fprintf(out,\"%s
%4d\",s[i].num,s[i].s);
}
fprintf(out,\"\\n\");
fclose(out); }生成的结果文件的内容有误
文件[out16.dat]未创建
本题的考核点是按分数的高低排列学生记录的算法。
解题思路:通过选择法或其它的方法对学生记录按分数从高到低进行排序。
本评析仅供参考。
int fun(STREC a[]) {int i,j,p,t,k; char h; for (i=0;i