2023年程序改错题集.docx
2023年程序改错题集 在考生文件夹下的给定程序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("%dn",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 num10; int s; STREC; int fun(STREC a) main() STREC sN="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",si.num,si.s); printf("n"); out=fopen("out16.dat","w"); for (i=0;i if(i)%4=0 && i) fprintf(out,"n"); fprintf(out,"%s %4d",si.num,si.s); fprintf(out,"n"); fclose(out); 生成的结果文件的内容有误 文件out16.dat未创建 本题的考核点是按分数的高低排列学生记录的算法。 解题思路:通过选择法或其它的方法对学生记录按分数从高到低进行排序。 本评析仅供参考。 int fun(STREC a) int i,j,p,t,k; char h; for (i=0;i 程序改错题集 程序改错题 程序改错题 公文改错题集 程序改错题(全文) 5 程序改错题 改错题 改错题 改错题 改错题