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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

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

不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdlib.h>

#include<stdio.h>

#define N20

void fun(int*a)

{int i,x,n=0;

x=rand()%20;

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

while(n<【1】)

{for(i=0;i<n;i++)

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

if(X==a[i])

【2】

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

if(i==【3】)

{a[n]=x;n++;}

x=rand()%20;

}

}

main()

{int x[N]={0),i;

fun(x);

printf(\\

(1)N或20

(2)break

(3)n

解析:填空1:变量n用于存储数组的下标,要通过while语句对数组进行赋值,数组的容量为20,因此循环条件应为n<20。

填空2:通过一个for循环判断x是否与数组中已存的元素重复,若重复则跳出for循环结束。

填空3:若for循环是由break语句结束的,则x与数组中的元素重复,此时i必然小于n;若for循环是因为循环变量i递增到某值,而不再满足循环条件结束的,说明x的值与数组中的元素不重复,则此时i的值等于n。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,规定输入的字符串全部为字母,fun函数的功能是:统计a所指字符串中每个字母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字母输出(如果有多个相同,输出一个即可)。

例如对于字符串:dadbedbabdb,对应的输出应为:b或d。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

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

试题程序:

#include<stdio.h>

#include<stdio.h>

#include<string.h>

void fun(char a[])

{int b[26],i,n,max;

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

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

a[i]=0;

n=strlen(a);

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

if(a[i]>=’a’&&a[i]<=’z’)

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

b[a[i]-’A’]++;

else if(a[i]>=’A’&&a[i]<=’Z’)

b[a[i]-’A’]++;

max=0;

for(i=1;i<26;i++)

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

if(b[max]>b[i])

max=i;

printf(\\

(1)b[i]=0;

(2)b[a[i]-’a’]++;

(3)if(b[max]<b[i])

解析:要统计字符串中每个字符在这个字符串中出现的次数,可以设数组b中存放每个字符出现的次数b[0]存放字符a的次数,b[1]存放字符b的次数……。统计之前为数组b各元素赋初值为0。然后依次取出字符串的每个字符进行判断,使对应数组b加1。max初始值为0,与数组b中的每个元素进行比较,如果小于,就把下标进行交换。

(1)数组a存放的是字符串,数组b为整型数组存放的是每个字符的个数,应将数组b每个元素初始化为0。

(2)小写字母的ASCII码减去’a’的ASCII即为相应字母的下标值,相应下标值的数组元素的值增加1。

(3)最大值小于被比较数时,把被比较数的下标值赋给max,max中存放的总是当前最大值。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。程序中,m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int fun(int score[],int m,int below[])

{

}

void main()

{

FILE*wf;

int i,n,below[9];

int score[9]={10,20,30,40,50,60,70,80,90、;

system(\\

int fun(int score[],int m,int below[])

{

int i,j=0;

float av=0.0;

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

av=av+score[i]/m;/*求平均值*/

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

if(score[i]<av)/*如果分数低于平均分,则将此分数放入below数组中*/

below[j++]=score[i];

return j;/*返回低于平均分的人数*/

}

解析:要计算低于平均分的人数,首先应该求出平均分,然后通过for循环语句和if条件语句找出低于平均分的分数。该题第1个循环的作用是求出平均分av,第2个循环的作用是找出低于平均分的成绩记录并存入below数组中。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号