国家二级C语言机试(操作题)模拟试卷417
程序填空题
1.给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:47、30、32、40、6、17、45、15、48、26,其平均值为30. 500000。
移动后的输出为:30、6、17、15、26、47、32、40、45、48。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdlib.h >
#include < stdio.h >
#define N 10
double fun (double *x)
{ int i, j; double av, y N];
av =0;
/*********found*********/
av+= 【1】;
for(i=j=0;i < N;i++)
if(x[i] < av){
y[j]=x[i];x[i]=一1;
/*********found*********/
【2】;
}
i=0;
while (i < N)
{if(x[i]!=一1)y[j++]=x[i];
/*********found*********/
【3】;
}
for(i=0;i < N;i++)x[i]=y[i];
return av;
}
main ()
{ int i; double x[N];
printf (\\
(1)x[i]/N
(2)j++或++j
(3)i++或++i
解析:填空1:av代表平均值,本题考查了怎样求平均值,因此本空应该填写x[i]/N。
填空2:通过for循环和if判断找到x[i]中比平均值小的数,并把这些值赋值给y[j],因此本空应该填写j++或者++j。
填空3:通过while循环语句,把x[i]中比平均值大的数放在数组y的后半部分,因此本空应该填写i++或者++i。
程序修改题
2.下列给定函数中,函数fun的功能是:统计字符串中各元音字母(即A、E、I、O、U)的个数。注意:字母不分大小写。
例如,输入”THls is a boot”,则应输出是1 0 2 2 0。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdlib.h >
#include < conio.h >
#include < stdio.h >
/*********found*********/
fun (char * s, int num[ 5 ] )
{ int k, i=5;
for(k=0,k < i;k++)
/*********found*********/
num[i] =0;
/*********found*********/
switch (s)
{ case’a’: case’A’:
{i = 0 ;break; }
case ’e’: case ’E’ :
{1 =1;break; }
case ’i’: case ’I’:
{1 =2;break; }
case ’o’: case ’O’:
{1 =3;breakf }
case ’u’: case ’U’:
{1 =4;break; }
{i=4 ; break;}
}
if(i >=0)
num[i]++;
}
}
void main()
{char s1[81];int numl[5],i;
system(\\
(1)void fun(char *s, int num[5])
(2)num[k] =0;
(3)switch(*s)
解析:switch语句说明如下:
(1)switch后的表达式,可以是整型或字符型,也可以是枚举类型。在新的ANSIC标准中允许表达式的类型为任何类型。
(2)每个case后的常量表达式只能是由常量组成的表达式,当switch后表达式的值与某一个常量表达式的值一致时,程序就转到此case后的语句开始执行。如果没有一个常量表达式的值与switch后的值一致,就执行default后的语句。
(3)各个case后的常量表达式的值必须互不相同。
(4)各个case的次序不影响执行结果,一般情况下,尽量将出现概率大的case放在前面。
(5)在执行完一个case后面的语句后,程序会转到下一个case后的语句开始执行,因而必须使用break语句才能跳出。
程序设计题
3.请编写函数fun,该函数的功能是:求出二维数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予。
例如,若二维数组中的值为:
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数值为61。
注意:部分源程序在文件PROG1.C中。
请勿改主动函数main和其他函数中的任何内容,
仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include < conio.h >
#include < stdio .h >
#include < stdlib.h >
#define M 4
#define N 5
int fun ( int a [M] [N1)
{
}
void main ()
{
FILE *wf;
int aa[M] [N] = {{1,3,5,7,9 },
{2,9,9,9,4},{ 6,9,9,9,8},
{1,3,5,7,0 }};
int i, j, y;
system (\\
本文档预览:3600字符,共3973字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载