问题 单项选择题

以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下。
main()
int n,k;
float score;sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
for(k=1;k<=4;k++)
scanf("%f",&score); sum+=score;
ave=sum/4.0;
printf(’NO%d: %f\n",n,ave);


上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。

A.sum=0.0;

B.sum+=score;

C.ave=sun/4.0;

D.printf("NO%d:%f\n",n,ave);

答案

参考答案:A

解析: 本题程序中使用了两层for循环,外层循环的作用是控制人数,循环一次是求一个人的成绩和,然后除以4得到平均成绩。每个人的成绩总和一开始时都必须清0,否则就会出现后面人的总成绩越来越大。“sum=O.O;”应在外层循环中。选项A正确。

填空题
单项选择题