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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,已建立一个带有头结点的单向链表,链表中的各结点包含数据域(data)和指针域(next),数据域为整型。函数fun的作用是:找出链表各结点数据域中的最大值,其最大值由函数值返回。

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

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

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

#include

#include

#pragma warning (disable:4996)

struct list

{

\\tint data;

struct list *next;

};

struct list *createlist(int data[], int n)

{

\\tstruct list *head = 0, *p, *q;

int i;

head = (struct list *) malloc(sizeof(struct list));

head->data = data[0];

p = q = head;

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

{ p = (struct list *) malloc(sizeof(struct list));

p->data = data[i]; q->next = p; q = p;

}

p->next = NULL;

return head;

}

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

int func(___1___head)

{ int pmax = head->data;

struct list *p = head->next;

while(p != NULL)

{ if(p->data > pmax) pmax = p->data;

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

p =___2___;

}

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

___3___

}

void main( )

{

int data[] = {123, 21, 65, 789, 32, 310, 671, 651, 81, 101}, pmax;

struct list *head;

head = createlist(data, 10);

pmax = func(head);

printf(\\

(1)struct list *

(2)p->next;

(3)return pmax;

解析:程序定义了结构体类型list,用来作为链表的结点类型,它包含两个成员: data数据成员,next指针成员,func( )函数参数为链表的头结点指针,pmax用 来存放最大值,通过while循环遍历整个链表,在遍历的过程中,将当前结点的data与pmax比较,若pmax小于当前结点的data,则使用当前结点的data更新pmax,最后将pmax的值作为函数返回值返回。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:从低位开始依次取长整型变量s中奇数位上的数,构成一个新数放在t中(注意:位置从0开始计算)。

例如:输入: 12345678, 则输出: 1357

输入: 123456789,则输出: 2468

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

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

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

#include

#pragma warning (disable:4996)

void fun (long s, long *t)

{ long sl = 10;

s /= 10;

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

*t = s / 10;

while(s > 0) {

s = s / 100;

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

t = s % 10 * sl+t;

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

sl /= 10;

}

}

main( )

{ long s, t;

printf(\\

(1)*t=s%10;

(2)*t=s%10*s1+*t;

(3)s1 *= 10;

解析:fun( )函数中,s是待处理的数,t是用来存放新数的指针,s1表示当前数字在新数中某位上的基数,由于题意从s的低位到高位从0开始,所以第1个奇数位是s的十位数字,需要将s除以10去掉个位数字,s1赋初值为十位的基数10,将处理后的s的个位数字存放到指针t中,接着通过while循环,每次将s除以100,跳过偶数位上的数字,然后将奇数位上的数字乘以对应的基数s1后,与t指向的数累加,重新存放到指针t中,并将基数s1乘以10,表示下一位的基数,直到s为0。

程序设计题

3.使VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。请编写函数fun,其功能是: 在一个含有11个四位数的数组中,统计出这些数的奇数、偶数个数,然后计算出个数多的那些数的算术平均值并由函数返回,个数通过y传回。

例如,若11个数据为: 1101,1202,1303,1404,1505,2611,2712,2813,2914,3202,4222则输出: yy=6, pjz=2609.33

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

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

#include

#define N 11

double fun( int xx[], int *yy )

{

}

main( )

{

int yy, xx[N]={1101,1202,1303,1404,1505,2611,2712,2813,2914,3202,4222};

double pjz ;

void NONO( );

pjz = fun( xx, &

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号