以下程序的功能是按顺序读入10名学生
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以下程序的功能是:按顺序读入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=0.0”;应在外层循环中。选项A正确。
以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分
#include
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);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确,答案说语句是sum=0.0;
请问为什么,改好的是什么?
答案:
#include
main()
{int n,k;
float score,sum,ave;
for(n=1;n<=10;n++)
{
sum=0.0;
for(k=1;k<=4;k++)
{
baiscanf("%f",&score);
sum+=score;
}
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
}
}
以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每个学生的平均分数并输出,程序如下:
#include<iostream>
using namespace std;
int main( )
int n,k;
float score,sum,ave;
sum = 0.0;
for(n = 1;n <=10;n++)
for(k =1;k<=4;k++)
cin>>score;
sum += score;
ave=sum/4.0;
cout<<"NO."<<n<<"ave:"<<ave<<end1;
return 0;
上述程序运行后结果不正确,调式中发现有一条语句出现在程序中的位置不正确。
这条语句是非曲直( )。
A.sum=0.0;
B.sum+=score;
C.ave= sum/4.0
D.cout<<"NO."<<n<<"ave:"<<ave<<end1;
正确答案
A
答案解析
[解析] 本题中sum用来保存每位学生的总成绩,所以在计算不同学生的总成绩时,应将sum重新赋值初值0,即语句
“sum=0.0;”应该包含在第1个for循环体内,并在第2个for 语句前执行。