问题 填空题

请补充main函数,该函数的功能是:从键盘输入学生的成绩(用回车键作为分隔符),并统计各分数段学生的人数。具体要求为:A类为90~100分,B类为80~89分,C类为70~79分,D类为60~69分,59分以下的为E类。当成绩为0时结束成绩的输入,并且最后输入的0不进行统计。 例如,输入89,99,45,64,56,78,88,74,66,55,0。结果为 A:1 B:2 C:2 D:2 E:3 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<conio.h> #define N 100 main() { float score[N]; int bb[5]; int grade, i=-1,n=0; char ch=’A’; clrscr(); printf("Input a score(0~100);\n"); do {i++;n++;printf("score[%d]=",i);scanf ( 【1】 ); }while (score[i]!=0); for(i=0;i<5;i++) 【2】 ; for(i=0;i<n-1;i++) { grade= 【3】 ; switch(grade) { case 10: case 9:bb[0]++;break; case 8:bb[1]++;break; case 7:bb[2]++;break; case 6:bb[3]++; break; default:bb[4]++; } } for(i=0;i<5;i++)printf("\n%c:%d",ch+i,bb[i]); }

答案

参考答案:[A] "%f",&score[i] [B] bb[i]=0 [C] score[i]/A0

解析: 填空1;本题考查标准输入函数scanf()的调用格式,注意score[i]为实型变量,并且score[i]的前面要记住加上取址符&。填空2:数组bb[5]中存放各分数段学生的人数,程序中只对数组bb[5]进行了声明,并没有给予初始化,此处将数组各元素初始化为0。填空3:通过switch语句可以看出,grade等于将分数整除10后的值。注意,运算符‘/’两边都是整型数时,结果仍然是整型数。

填空题
单项选择题 A1/A2型题