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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。

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

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

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

试题程序:

#include<stdio.h>

#include<stdlib.h>

#define N8

typedef struct list

{int data;

struct list*next;

}SLIST;

SLTST*creatlist(char*);

void outlist(SLIST*);

int fun(SLTST*h,char ch)

{SLIST*p;int n=0;

p=h->next;

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

while(p!=【1】)

{n++;

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

if(p->data==ch)

return【2】

else p=p->next;

}

Eeturn0;

}

main()

{SLIST*head;int k;char ch;

chara[N]={’m’,’p’,’g’,’a’,’w’,’x’,’r’,’d’};

head=creatlist(a);

outlist(head);

printf(\\

(1)NULL

(2)n

(3)head,ch

解析:填空1:while循环语句用来判断是否到达链表结尾,链表结尾结点指针域是NULL。

填空2:若找到指定字符,则通过return语句将该结点在链表的顺序号返回给main函数。

填空3:函数调用语句,其形式是:函数名(实际参数表),因此根据函数定义语句,填入head,ch。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:求出S所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。

例如,当字符串中的内容为“abcdabfabcdx”,t中内容为“ab”时,输出结果应是“abcdx”。

当字符串中的内容为“abcdabfabcdx”,t中内容为“abd”时,则程序输出未找到信息“not be found!”。

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

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

试题程序:

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

#include<string.h>

char*fun(char*s,char*t)

{

char*p,*r,*a;

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

a=Null;

while(*s)

{

p=s;r=t;

while(*r)

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

if(r==p)

{r++;p++;)

else break;

if(*r==’\0’)a=s;

s++;}

return a;

}

void main()

{

char s[100],t[i00],*p;

system(\\

(1)a=NULL;

(2)if(*r==*p)

解析:(1)a=Null;是个明显的语法错误,指针指向空值的关键字应为NULL。

(2)r和p均为指针变量,分别指向两个字符串中的字符变量,循环条件是当r和p所指向的字符相同时,进行指针后移操作,故此处应为if(*r==*p)。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。

例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。

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

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

试题程序:

#include<stdlib.h>

#include<stdio.h>

#define N8

struct slist

{

double s;

struct sliSt*next;

};

typedef struct slist STREC;

double fun(STREC*h)

{

}

STREC*treat(double*s)/*创建链表*/

{

STREC*h,*p,*q;

int i=0;

h=p=(STREC*)malloc(sizeof(STREC));

p->S=0;

while(i<N)

{

q=(STREC*)malloc(sizeof(STREC));

q->s=s[i];i++;p->next=q;p=q;

}

p->next=0;

return h;

}

outlist(STREC*h)

{

STREC*p;

p=h->next;

printf(\\

double fun(STREC*h)

{

double av=0.0;

STREC*p=h->next;/*p直接指向“头结点”的下一个结点,即第一个成绩*/

while(p!=NULL)

{av=av+p->s;/*求总分数*/

p=p->next;

}

return av/N;/*返回平均值*/

}

解析:题目要求求链表中数据域的平均值,应首先使用循环语句遍历链表,求各结点数据域中数值的和,再求平均数。遍历链表时应定义一个指向结点的指针p,因为“头结点”中没有数值,所以程序中让p直接指向“头结点”的下一个结点,使用语句STREC*p=h->next;。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号