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

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

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

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

程序填空题

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

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

主函数中输出:4632404548。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。

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

试题程序:

#lnclucte<stdlib.h>

#include<stdio.h>

#define N10

double fun(double x[],double*y)

{int i,j;double av;

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

av=【1】

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

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

av=av+【2】

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

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

if(x[i]>av)y【3】=x[i];

y[j]=-1;

return aV;

}

main()

{int i;double x[N],y[N];

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

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

printf(\\

(1)0.0

(2)x[i]/N

(3)j++

解析:填空1:通过上面的程序可以看出此空考的是给变量赋初值,av代表的是平均值,因此av的初值应该是0.0。

填空2:通过for循环可知,此空代表求平均值,因此应该填写x[i]/N。

填空3:先把大于平均值的数放在形参y所指数组中,然后使下标值加1,因此此空应该填j++。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件nodi1.C。此程序建立了—个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。

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

注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

typedef struct aa

{intdata;

struct aa*next;

}NODE;

int fun(NODE*h)

(int sum=0;

NODE*p;

p=h->next;

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

while(p->next)

{if(p->data%2==0)

sum+=p->data;

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

p=h->next;

}

return sum;

}

NODE*creatlink(int n)

{

NODE*h,*p,*s;

int i;

h=p=(NODE*)malloc(Sizeof(NODE));

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

{

s=(NODE*)malloc(Sizeof(NODE));

s->data=rand()%16;

s->next=p->next;

p->next=s;

p=p->next;

}

p->next=NULL;

return h;

}

outlink(NODE*h)

{NODE*p;

p=h->next;

printf(\\

(1)while(p!=NULL)

(2)p=p->next;

解析:(1)判断当前指针p指向的结点是否存在,若存在则对该结点数据域进行判断操作。

(2)判断结束后指针指向下一个结点。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“ABCDEFG”。

注意:部分源程序给出如下。

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

试题程序:

#include<conio.h>

#include<stdio.h>

void fun(char*a)

{

}

void main()

{

char s[81];

printf(\\

void tun(char*a)

{

int i,j=0;

for(i=0;a[i]!=’\0’;i++)

if(a[i]!=’s’)

a[j++]=a[i];

/*若不是要删除的字符’*’则保留*/

a[j]=’\0’;

/*最后加上字符串结束符’\0’*/

}

解析:用循环操作从字符串开始往后逐个进行比较,若不是要删除的字符(用if(a[i]!=’*’)来控制)则保留。变量i和j用来表示原字符串的下标和删除*号后新字符串的下标。注意,下标变量j要从0开始,最后还要加上字符串结束标识‘\0’。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号