国家二级C语言程序设计机试(程序填空题)模拟试卷3
程序填空题
1.下列给定程序中,函数fun的功能是:将N X N矩阵主对角线元素的值与反向对角线对应位置上元素的值进行交换。
例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
交换后为:
3 2 1
4 5 6
9 8 7
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#define N 4
/******found******/
void fun(int___1___,int n)
{
int i,s;
/******found******/
for(___2___;i++)
{
s=t[i][i];
t[i][i]=t[i][n—i一1];
/******found******/
t[i][n一1一i]=___3___;
}
}
main()
{
int t[][N]=t 21,12,13,24,25,16,47,
38,29,11,32,54,42,21,33,10},i,j;
prinff(“\nThe original array:\n”);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
prinff(“%d”,t[i][j]);
printf(“\n”);
}
fun(t,N);
prinff(“\nThe result is:\n”);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
prinff(“%d”,t[i][j]);
printf(“\n”);
}
}
(1)t[][N] (2)i=0;i<N (3)s
解析:本题考查:函数定义;for循环语句;数组元素的引用和赋值;变量值交换算法。
填空1:根据main函数中的函数调用语句,可以填写fun函数定义中的形参内容。
填空2:由于是N×N矩阵,所以for语句中循环变量i的取值范围是0到N。
填空3:for循环体中是变量值交换算法。
2.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回一1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#define N 5
#define M 8
int fun(char(*ss)[M],char*t)
{
int i;
/******found******/
for(i=0;i<____1____;i++)
if(stremp(ss[i],t)==0)
/****found****/
return____2____;
return一1;
}
main()
{
char ch[N][M]={.if“,”while”,”switch”,
”int“,”for”},t[M];
int n,i;
printf(“\nThe original string\n\n”);
for(i=0;i<N;i++)
puts(ch[i]);
printf(“\n”);
prinff(“\nEnter a string for search:”);
gets(t);
n=fun(ch,t);
/******found******/
if(n==____3____)
prinff(“\nDon’t found!\n”);
else
printf(“\nThe position is%d.\n”,n);
(1)N (2)i (3)一1
解析:本题考查:for循环语句;函数返回值;if语句条件表达式。
填空1:变量i是循环变量,它的取值范围是在0到N之间。
填空2:如果ss所指字符串数组中的字符串和t所指字符串相同的话,则返回其下标值,即
return i;否则返回一1,即return一1;。
填空3:在ma,in函数中输出最后结果,判断函数返回值n,如果n=一1,说明没有找到,否则输出n。
3.人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#defiRe N 8
typedef struet
{
int num;
int year,month,day;
}STU;
int fun(STU*std,STU*k,int year)
{
int i,n=0;
f10r(i=0;i<N;i++)
/******found******/
if(__1__==year)
/******found******/
k[n++]=__2__;
/******found******/
retum(__3__);
}
main()
{
STU std[N]={{1,1984,2,15},
{2,1983,9,21},{3,1984,9,1},
{4,1983,7,15},{5,1985,9,28},
{6,1982,11,15},{7,1982,6,22},
{8,1984,8,19}};
STU k[N];
int i,n,year;
printf(“Enter a year:”);
scartf(“%d”,a,year);
n=fun(std,k,year);
<本文档预览:3600字符,共5593字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载