首页 > 全部 > 二级C语言 > 国家二级C语言机试(操作题)模拟试卷601

国家二级C语言机试(操作题)模拟试卷601

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

国家二级C语言机试(操作题)模拟试卷601

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数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 N9

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

解析:填空1:if语句条件表达式,判断数组元素是否为偶数,对2求余,结果为0,则为偶数;结果为1则为奇数。

填空2:如果该数组元素是偶数,则将其值保存。

填空3:最后按要求将偶数个数通过return语句返回给main函数。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码值为偶数的字符依次放人t所指数组中。例如,字符串中的数据为“AABBCCDDEEFF”,则输出应当是“ABBCDDEFF”。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conlo.h>

#include<stdio.h>

#include<string.h>

#define N80

void fun(char*s,char t[])

{

int i,j=0;

for(i=0;i<(int)strlen(s);

i++)

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

if(i%2&&s[i]%2==0)

t[j++]=s[i];

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

t[i]=’\0’;

}

main()

{

char s[N],t[N];

printf(\\

(1)if(i%2||s[i]%2==0)或if(i%21=0||s[i]%2==0)

(2)t[j]=’\0’;或t[j]=0;

解析:(1)根据题意,将字符串s中位于奇数位置的字符或.ASCII码值为偶数的字符,依次放人字符串t中,所以if条件中要使用“或”运算。

(2)变量j控制字符串t的下标,所以是t[j]。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。

注意:部分源程序在文件PROG1.C中。

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

试题程序:

#inclucle<stdio.h>

#define N50

#define M11

void fun(int*a,int*b)

{

}

double rnd()

{

static t=29,c=217,m=1024,r=0;

r=(r*t+c)%m;

return((double)r/m);

}

void main()

{

FILE*wf;

int age[N],i,d[M];

int b[N]={32,45,15,12,86,49,97,3,44,52,17,95,63};

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

age[i]=(int)(115*rnd());

/*产生一个随机的年龄数组*/

printf(\\

void fun(int*a,int*b)

{

int i,j;

for(j=0;j<M;j++)

b[j]=0;/*数组b初始化为0*/

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

if(a[i]>=100)

b[10]++;/*如果年龄大于等于100,b[10]自增1*/

else

b[a[i]/10]++;/*如果年龄小于100,则将其分别统计到b[a[i]/10]中*/

}

解析:本题是一个分段函数的问题,用两个循环来完成。第1个循环的作用是使b中的所有元素值都为0。这个循环不能省略,因为若未对b中的元素赋初值,则它们的值是不可预测的。第2个循环的作用是分别统计a中各年龄段的人数。当a[i]≥100时,按题意要将其统计到b[10]中。else的作用是如果年龄小于100,则将其分别统计到b[a[i]/10]中。由运算优先级可知先进行a[i]/10的运算,所得结果作为b的下标。若a[i]为0~9时,a[i]/10的值为0,且0~9岁的人数正好要存入b[0]中。若a[i]为10~19时,

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号