国家二级(C语言)机试模拟试卷16(共28题).pdfVIP

  • 0
  • 0
  • 约4.24万字
  • 约 25页
  • 2026-01-28 发布于河北
  • 举报

国家二级(C语言)机试模拟试卷16(共28题).pdf

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

共(9套)

共(28题)

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

一、程序填空题本(题共7题,每题7.0分,共1分。)

1、给定程序中,函fun的功能是:计算出带有头结点的单向链表中各结点据

域中值之和作为函值返回。请在程序的下划线处填入正确的内容并把下划线删

除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKI.C

中。不得增行或删行,也不得更改程序的结构!#include#include#defineN8

lypedefstructlist{intdata;structlist*next;)SLIS;SLIS*creatlist(int*);void

outlist(SLIS*);intfun(SLIS*h){SLIS*p;ints=0;p=h-next;while(p)

{/**********found**********/s+=[]]•/**********found**********/P=p〉・

[2];}returns;}main(){SLIS*head;inta[N]={12,87,45,32,91,16,20,48);

M

head=creatlist(a);ouilisl(head);/**********found**********/printf(\nsum=%d\n,

fun([3]));)SLIS*creatlist(inta[]){SLIS*h.*p?q:inti:h=p=(SLIS

*)malloc(sizcof(SLIS));for(i=0;idata=a[i];p-ncxt=q;p=q;}p-ncxt=0;returnh;}

voidoutlist(SLIS*h){SLIS*p;p=h-next;if(p==NULL)printf(helistis

n

NULL!\n);else{printf(\nHead);do{printf(-%d,p-data);p=p-next;}

,

while(p!=NULL);printf(-End\n);}}

标准答案:datanexthead

知识点解析:第一空:循环“whilc(p)”遍历整个链表,在循环体中,s是累加变量,

每个结点的据域上的据都累加在s上,因此第一空处应为“s+=p・dala;。第二

空:p是循环变量,p不断指向下一个结点,故第二空处应为“p=p-ncxt;。第三

空:fun函的声明为:imfun(SLIS*h),参是SLIS结构体指针,表示头结

点地址,因此第三空处的函调用应为“prinlR“\nsum=%d\n”,fun(head));”。

二、程序修改题本(题共7题,每题7.0分,共I分0)

2、给定程序MODII.C中函fun的功能是:将U所指字符串中的小写字母都改

为对应的大写字母,其他字符不变。例如,若输入Ab,cD,则输出AB,

CD”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函

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

文档评论(0)

1亿VIP精品文档

相关文档