国家二级C语言机试(程序填空题)模拟试卷20
程序填空题
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 <stdio.h>
#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******/
return(3);
}
main()
{
int b[N]={9,1,4,2,3,6,5,8,7},i,n;
printf(\\
(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 <stdio.h>
void fun(char *s,char c)
{
int i,j,n;
/******found******/
for(i=0;s[i]!=(1);i++)
if(s[i]==c)
{
/******found******/
n=(2);
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]=\\
(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 <stdio.h>
#define N 4
/******found******/
voidfun(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]=121,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;
printf(\\
(1)[N]
(2)t[i][j]
(3)t[j][i]
解析:本题考查:有参函数定义,需要根据题目要求和给定程序确定函数参数。N×N矩阵中如何表示左下角元素和右上角元素。
填空1:主函数中调用函数的参数为二维数组,所以此处形参应定义为指针数组。
填空2:根据题意可知,对称元素相加的和存放在左下三角元素中,那么应填入t[i][j]。
填空3:右上三角元素置0,应填入t[j][i]。
4.下列给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。
例如,形参s所指字符串为”abcdefgh”,执行结果为”ahcbedgf”。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
void fun(char *s)
{
int i,n,k;char c;
n=0;
for(i=0;s[i]!=’\0’;i++)
n++;
/******found******/
if(n%2==0) k=n
本文档预览:3600字符,共20776字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载