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

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

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

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

程序填空题

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

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代表平均值,本题考查了怎样求平均值,因此本空应该填写x[i]/N。

填空2:通过for循环和if判断找到x[i]中比平均值小的数,并把这些值赋值给y[j],因此本空应该填写j++或者++j。

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

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功能是:删除数列中值为X的元素,变量n中存放数列中元素的个数。

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

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

试题程序:

#include<stdio.h>

#define N20

fun(int*a,int n,int x)

{

int p=0,i;

a[n]=x;

while(x!=a[p])

p=p+1;

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

if(p==n)

return-1;

else

{

for(i=p;i<n-1;i++)

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

a[i+1]=a[i];

return n-1;

}

}

void main()

{

int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;

n=10;

printf(\\

(1)if(p==n)return-1;

(2)a[i]=a[i+1];

解析:(1)需要确定if条件语句的条件表达式,发现变量p大写,C语言中变量是区别大小写的。

(2)删除数列中的元素,删除后,后面的元素依次前移一个位置,因此此处应为a[i]=a[i+1];。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun,其功能是:判断t所指字符串中的字母是否由连续递增字母序列组成(字符串长度大于等于2)。例如字符串:uvwxyz满足要求;而字符串:uvxwyz不满足要求。

注意:部分源程序存放在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<string.h>

void NONO();

int fun(char*t)

{

}

main()

{char s[26];

printf(\\

int fun(char*t)

{

int len=strlen(t);

if(len<2)

{

return0;

}

char before ch=t[0],

char current ch;

int flag=1;

for(int i=1;t[i]!=’\0’;++i)

{

current_ch=t[i];

iffbefore_ch!=current_ch-1)

{

flag=0;

break;

}

before_ch=current_ch;

}

return flag;

}

解析:函数fun的功能是判断指针t指向的字符串是否是由连续递增的字母构成,返回值为整数,0代表不满足条件。根据题目要求,字符串长度必须大于等于2,所以首先需要对t指向的字符串进行长度判断,小于2的字符串返回0。接着需要对字符串中的连续字符,逐个进行比较。C语言中字符变量可以当作整数使用,所以当前字符只有是前一个字符的ASCII码+1,才能说它们是连续递增字母序列,然后比较后一个字符与当前字符的ASCII码,如果字符串中的所有字符都满足条件,则返回1;否则说明该字符串不满足要求,此时设置flag=0,后面的字符也

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号