国家二级C语言程序设计机试(程序填空题)模拟试卷1
程序填空题
1.下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]…中,把奇数从数组中删除,偶数的个数通过函数值返回。
例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除奇数后a所指数组中的数据为:4,2,6,8,返回值为4。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#define N 9
int fun(int a[],int n)
{
int i,j;
j=0;
for(i=0;i<n;i++)
/******found******/
if(_______1______==0)
{
/******found******/
_________2________=a[i];j++;
}
/********found********/
retuen _______3_______;
}
main()
{
int b[N]={9,1,4,2,3,6,5,8,7},i,n;
prinff(“\nThe original data:\n”);
for(i=0;i<N;i++)
prinff(“%4d”,b[i]);
printf(“\n”);
n=fun(b,N);
prinff(“\nThe number of even:%d\n”,n)
prinff(“\nThe even:\n”);
for(i=0;i<n;i++)
prinff(“%4d”,b[i]);
prinff(“\n”);
}
(1)a[i]%2 (2)a[j] (3)j
解析:本题考查:if语句条件表达式;数组变量赋值;函数返回值。
填空1:if语句条件表达式,判断数组元素是否为偶数,对2求余,结果为0,则为偶数;结果为1则为奇数。
填空2:如果该数组元素是偶数,则将其值保存。
填空3:最后按要求将偶数个数通过return语句返回给main函数。
2.下列给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。
例如,若s所指字符串为“baacda”,c中的字符为a,执行后s所指字符串为“baaaacdaa”。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include
void fun(char*s,char c)
{
int i,j,n;
/******found******/
for(i=0;8[i]!=____0_____;i++)
if(s[i]==c)
{
/******found******/
n= Z______;
while(s[i+1+n]!=‘\0’)n+;
for(j=i+n+1;j>i;j一一)
s[j+1]=s [j];
/******found******/
s[j+1]=____3____;
i=i+1:
}
}
main()
{
char S[80]=“baacda”,c;
printf(“\nThe string:%s\n”,s);
prinff(“\nlnput a character:”);
scanf(“%e”,&c);
fun(s,e);
prinff(“\nThe result is:%s\n”,s);
}
(1)’\0’ (2)0 (3)c
解析:本题考查:字符串结束标识’\0’;变量赋初值操作;数组元素赋值。
填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为’\0’。
填空2:while语句用于确定字符串的长度,所以变量n赋初值为0。
填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,所以找到后,应该给数组元素赋值,该题目给出参数为c。
3.下列给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。
例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
计算后结果为
1 0 0
6 5 0
10 14 9
请在程序的下画线处填入正确的内容并把下画线删除。使程序得出正确的结果。
注意:不得增行或删行,也不得改程序的结构!
试颢程序:
#include
#define N 4
/******found******/
void fun(int(*t)____1____)
{
int i,j;
for(i=1;i<N;i++)
{
for(j=0;j<i;j++)
{
/******found******/
____2____=t[i][j]+t[j][i];
/******found******/
____3____=0;
}
}
}
main()
{
int t[][N]={21,12,13,24,25,16,47,38,
29,11,32,54,42,21,33,10},i,j;
pfinff(“\nThe original array:\n”);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
pfinff(“%2d”,t[i][j]);
pfinff(“\n”);
}
fun(t);
pnnff(“\nThe result is:\n”);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
pfinff(“%2d”,t[i][j]);
pfinff(“\n”);
}
}
(1)[N]
本文档预览:3600字符,共4870字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载