首页 > 全部 > 二级C语言 > 国家二级(C语言)机试模拟试卷968

国家二级(C语言)机试模拟试卷968

本单篇文档共4077字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 模拟试卷 7134人下载
价格: 免费 原价:¥9.60
收藏

国家二级(C语言)机试模拟试卷968

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是计算形参X所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:47、30、32、40、6、17、45、15、48、26,其平均值为30.600000。

移动后的输出为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;

for(i=0; i<N;i++)

/*********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];

for(i=0; i<N;i++)

{x[i]=rand()%50;

printf(\\

(1)x[i]/N (2)j++或++j (3)i++或++i

解析:填空1:变量av代表平均值,本题考查了求数组元素的平均值,故空1处应该填x[i]/N。

填空2:通过for循环和if判断找到数组x中比平均值小的数,并把这些值赋给数组y。数组中下标j自增,故空2处应该填j++或++j。

填空3:通过while循环语句,把数组x中比平均值大的数放在数组y的后半部分,故空3处应该填i++或者++i。

程序修改题

2.使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.c。此程序给定函数中,函数fun()的功能是统计字符串中各元音字母(A、E、I、O、U)的个数。注意:字母不分大小写。

例如,输入THisisaboot,则输出10220。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件modil.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;

for(;*s;s++)

{i=-1;

/*********found*********/

switch(s)

{case’a’:case’A’:

{i=0;break;}

{case’e’:case’E’:

{i=1;break;}

case’i’;case’I;:

{i=2;break;}

case’o’:case’O’:

{i=3;break;}

case’U’:case’U’:

{i=4;break;}

}

if(i>=0)

num[i]++;

}

}

void main()

{char s1[81];int num1[5],i;

system(\\

(1)void fun(char *s,int num[5])

(2)num[k]=0;

(3)switch(*s)

解析:(1)函数fun()没有返回值,所以函数定义时使用void。

(2)在for循环中,将数组num元素赋值为0,此时的下标为k。

(3)因为s是字符指针变量,switch后的表达式为*s。switch语句说明如下。

①switch后的表达式,可以是整型或字符型,也可以是枚举型。

②每个ease后的表达式只能是常量表达式。当switch后表达式的值与某一个常量表达式的值一致时,程序跳转到此ease后的语句开始执行。如果没有一个常量表达式的值与switch后的值一致,就执行default后的语句。

③各个case后的常量表达式的值必须互不相同。

④各个ease的次序不影响执行结果,一般情况下,尽量将出现概率大的ease放在前面。

⑤在执行完一个case后的语句后,程序会转到下一个case后的语句开始执行,因而必须使用break语句才能跳出。

程序设计题

3.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数fun(),该函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

例如,若二维数组中的值为

1 3 5 7 9

2 9 9 9 4

6 9 9 9 8

1 3 5 7 0

则函数值为61。

注意:部分源程序在文件progl.c中。

请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。

试题程序:

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#define M 4

#define N 5

int fun(int a[M][N])

{

}

void main()

{

FILE *wf;

int aa[M][

本文档预览:3600字符,共4077字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级(C语言)机试模拟试卷968

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号