二级C语言程序填空题专项强化真题试卷4
程序填空题
1.下列给定程序中,函数fun的功能是:计算直到
(1)x
(2)n
(3)t
解析:本题考查:累加、累乘;算术运算;复合赋值运算;do…while循环条件。
填空1:通过下面的语句可以知道n是从2开始的,而根据题目的要求是从1+x开始的,因而此空应填写x。
填空2:由于本题用的是do…while,先循环后再判断,因此本空应该填写n。
填空3:根据题目要求和复合赋值运算可知此空应填t。
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.给定程序中,函数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。
4.给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include
typedef struct
{ char name[10];
int age;
}STD;
STD fun(STD std[],int n)
{ STD max;int i;
/**********found**********/
max=【1】;
for(i:1;i<n;i++)
/**********found**********/
if(max.age<一【2】)max=std[i];
return max;
}
main()
{ STD std[5]={“aaa”,17,“bbb”,16,“ccc”,18,“ddd”,17,“egg”,15};
STD max:
max=fun(std,5);
printf(\\
(1)std[0]
(2)std[i].age
(3)max.name
解析:填空1:变量max用于存储数组中年龄组大的元素。首先将数组的第一个元素赋给max,然后依次向后比较,得到年龄最大的元素,因而在给max赋初值时,应为:max=std[0]。
填空2:if条件判断语句表达的是max.age,应该和结构体数组中的每个年龄进行比较,从而得到最大者的年龄。
填空3:从printf的表达式可看出,要输出的值应为年龄最大者的name。
本文档预览:3600字符,共3504字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载