2011年计算机等级二级C语言填空题练习题及答案解析(3)
1. 给定程序的功能是计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。
int fun(int score[], int m, int below[])
{int i, j = 0 ;
float aver = 0.0 ;
for(i = 0 ; i < m ; i++) aver += score[i] ;
aver /= (float) m ;
for(i = 0 ; i < m ; i++)
if(score[i] < aver) below[j++] = ___1___ ;
return j ;
}
main()
{int i, n, below[9] ;
int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ;
n = fun(score, 9, ___2___) ;
printf( "nBelow the average score are: " ) ;
for (i = 0 ; i < n ; i++) printf("%d ", ___3___) ;
}
第一处:score[i]
第二处:below
第三处:below[i]
解析:求平均值,应先求和。此处,和 与平均值使用了同一个变量。
Score[ ]是原来的成绩,
Below【 】存放低于平均分的分数,还有人数。Below的长度一定不大于score的长度。Below的长度必须通过计数才能得到,且是在比较的过程中得到的。Below数组的长度用j来计数,其初值当然为0。
Fun函数中:先求总分,平均分;再比较,比平均分低,存于below,j++。
J是后加,不能错了。
函数fun的返回值赋值给n,n就是below数组的长度。
2. 在主函数中从键盘输入若干个数放入数组x中,用0结束输入但不计入数组。下列给定程序中,函数fun功能是:输出数组元素中小于平均值的元素。
void fun(___1___,int n)
{
double sum=0.0;
double average=0.0;
int i=0;
for(i=0;i ___2___; average=___3___; for (i=0;i if(x[i]
{ if(i%5==0) printf("n"); printf("%d, ",x[i]); } } 第一处:int x[] 解析:算法思想同上题 3. 请补全fun函数,该函数的功能是求不超过给定自然数的各个偶数之和。 int fun(int x) { int i,s; s=___1___; for(___2___) s+=i; return s; } 第一处:0 解析:求和,和的初值s为0。 4. 请补全main函数,该函数的功能是:计算并输出下列多项式的值。 S=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+……+50) #include ___1___ fun(int n) { int i,j; double sum=0.0,t; for(i=1;i<=n;i++) { t=0.0; for(j=1;j<=i;j++) t+= ___2___; sum+= ___3___; } return sum; } 第一处:double 解析:S中的每一项的分母是1+2+3+……+i 需要用一个一重循环实现, 5. 请补全main函数,该函数的功能是,计算两个自然数n和m(m<10000)之间所有数的和。n和m从键盘输入。 main() {int n,m; long sum; ___1___; clrscr(); printf("nInput n,mn"); scanf("%d,%d",&n,&m); while( n<=m ) { ___2___; n++; } printf("sum=% ___3___n",sum); } 第一处:sum=0 解析:求和问题 编辑特别推荐: 2011年全国计算机等级二级C语言模拟试题及答案汇总 2011年计算机等级二级C语言课后练习题及答案解析汇总 2011年全国计算机等级二级C笔试考前练习习题汇总 计算机等级考试二级C语言上机试题上汇总 计算机等级考试二级C语言上机模拟试题及答案 全国计算机等级考试二级C语言程序设计实战
第二处:sum+=x[i]
第三处:sum/n
第二处:i=2; i
最小的非负偶数是0,偶数间的大小关系是
相差2。
第二处:j
第三处:1.0/t
把所有商相加,需要用一个循环;
组合起来整个就需要二重循环。内循环求每个单项的和,外循环求商的和。
每单项的分子是1,应该用浮点数1.0;
每单项的分母是求和,和的初值为0.0;
函数的返回值是浮点数。
第二处:sum += n
第三处:ld相关阅读