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

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

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

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

程序填空题

1.下列给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。

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

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

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

试题程序:

#include<stdio.h>

#include<stdlib.h>

#define N 8

typedef struer liSt

{ int data;

struct list *next;

}SLIST;

SLIST*creatlist(char*);

void outlist(SLIST*);

int fun(SLIST*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;

}

return 0;

}

main()

{ SLIST*head;int k;char ch;char a[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.下列给定程序中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。例如:把三个串“abc”、“CD”、“EF”连接起来,结果是“abcCDEF”。

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

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

试题程序:

#include<stdio.h>

#include<string.h>

void fun(char sir[][10],

int m,char*pt)

{

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

Tnt k,q,i;

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

{ q=strlen(sir[k]);

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

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

pt[i]=str[k,i];

pt+=q;

pt[0]=0;

}

}

main()

{ int m,h;

char s[10][10],P[120];

printf(“Please enter m:”);

scanf(“%d”,&m),gets(s[0]),

printf(“Please enter%d string:”,m);

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

gets(s[h]);

fun(s,m,p);

printf(“The result is:%s”, p);

}

(1)int k,q,i;

(2)pt[i]=str[k][i];

解析:本题考查:C语言的书写和语法性错误,这类错误比较简单,只要编译程序,根据错误提示修改即可。

(1)关键字书写错误,定义整型变量的关键字应使用int,而非Int。

(2)数组元素表示错误,表示二维数组元素,应使用方括号将行坐标和列坐标分别括起来,即str[k,i]应改为:str[k][i]。

程序设计题

3.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。

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

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

试题程序:

#include<stdlib.h>

#include<stdio.h>

#include<string.h>

#include<conio.h>

#defitie N 10

typedef struct ss /*定义结构体*/

{ char num[10];

int s;

}STU;

fun(STU a[],STU *s)

{

}

void main()

{

STU a[N]={{\\

fun(STU a[],STU*s)

{

int i;

*s=a[0];

for(i=0;i<N;i++) /*找出成绩最高的学生记录*/

if(s->s<a[i].s)

*s=a[i];

}

解析:本题的流程是先使s指向第1名学生,利用循环语句遍历所有学生的成绩,利用条件语句判断当前学生成绩是否最高,所以if语句的条件是s->s<a[i].s。此外,做题时应该熟练掌握“指向运算符”和“成员运算符”的相关知识,题中“s->s”等价于“(*s).s”。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号