二级C语言程序填空题专项强化真题试卷6
程序填空题
1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun根据所给n名学生的成绩,计算出所有学生的平均成绩,把高于平均成绩的学生成绩求平均值并返回。
例如,若有成绩为:50,60,70,80,90,100,55,65,75,85,95,99,则运行结果应为:91.5
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#pragrna warnirig(disable:4996)
double fun(double x[],int n)
{int i,k=0;
double avg=0.0,sum=0.0;
for(i=0;i<n;i++)
avg+=x[i];
/*********found*********/
avg/=【1】;
for(i=0;i<n;i++)
if(x[i]>avg)
{
/*********found*********/
【2】+=x[i];
k++;
}
/*********found*********/
return【3】;
}
main()
{double score[12]={50,60,70,80,90,100,55,65,75,85,95,99};
double aa;
aa=fun(score,12);
printf(\\
(1)n
(2)sum
(3)sum/k
解析:填空1:fun()函数有两个参数,第一个为数组x,第二个为数组元素个数n,首先利用第一个for循环将传入的所有数组元素加起来存入变量avg中,因为求的是平均值,所以需要除以元素个数,所以该空填数组元素个数n。答案为n。
填空2:第二个for循环将数组中每个元素值与平均成绩进行比较,把高于平均值的元素值加起来以便后期求其平均,此时需要一个变量用来存放高于平均成绩的元素总和,所以该空填sum。答案为sum。
填空3:变量k的作用为统计高于平均成绩的元素个数,因为题目要求把高于平均成绩的学生成绩求平均值并返回,所以用高于平均成绩的分数总数除以元素个数,所以该空填sum/k。答案为sum/k。
2.给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#define N 20
void fun(int*a)
{ int i,x,n=0;
x=rand()%20;
/**********found**********/
while(n<【1】)
{for(i=0;i<n;i++)
/**********found**********/
if(X==a[i])
【2】;
/**********found**********/
if(i==【3】)
{a[n]=x;n++;}
x=rand()%20;
}
}
main()
{int x[N]={0},i;
fun(x);
printf(\\
【1】:N或20
【2】:break
【3】:n
解析:【1】:变量n用于存储数组的下标,要通过while语句对数组进行赋值,数组的容量为20,因此循环条件应为n<20。
【2】:通过一个for循环判断x是否与数组中已存的元素重复,若重复则跳出for循环。
【3】:若for循环是由break语句结束的,则x与数组中的元素重复,此时i必然小于n;若for循环是因为循环变量i递增到某值,而不再满足循环条件结束的,说明x的值与数组中的元素不重复,则此时i的值等于n。
3.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(int*px,int*py)
{
/**********found**********/
int【1】;
scanf(\\
(1)a=0,b=0,k
(2)(k!=0)
(3)scanf(\\
解析:填空1:下面的scanf函数用到变量k,需要提前定义,在while循环中使用了临时存放正、负数个数的变量a,b,因此也要提前定义。
填空2:根据题意,输入0时结束程序,因此当k!=0时进入循环记录正负数的个数。
填空3:需要不断从终端输入整数,因此在循环体内添加输入操作。
4.给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include
typedef struct
{ int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{ int i;
printf(\\
(1)STU
(2)score[i]
(3)&std
解析:本题是利用结构体存储学生记录,对记录进行修改并由实参ss返回。
填空1:实参ss是一个结构型指针变量,所以应填STIJ。
填空2:该学生的各科成绩都乘以一个系数a,所以应填score[i]。
填空3:函数的调用,由于函数定义时使用的指针结构型变量,所以应填&std。
本文档预览:3600字符,共3536字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载