首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生
给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生
admin
2019-03-06
77
问题
给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 #include<Stdlib.h>
3 #define N 8
4 typedef struct list
5 { int data;
6 struct 1ist *next;
7 } SLIST;
8 void fun(SLIST *p)
9 { SLIST *t,*e;
10 t=p->next;s=p;
11 while(t->next!=NULL)
12 { s=t;
13 /**********found**********/
14 t=t->___1___;
15 }
16 /**********found**********/
17 printf(’’%d’’,___2____);
18 s->next=NULL;
19 /**********found**********/
20 free( ___3____);
21 }
22 SLIST *creatlist(int *a)
23 {SLIST *h,*p,*q;it i;
24 h=p=(SLIST*)malloc(sizeof(SLIST));
25 for(i=0;i<N;i++)
26 {q=(SLIST *)malloc(sizeof(SLIST));
27 q->data=a
;p->next=q;p=q;
28 }
29 p->next=0;
30 return h;
31 }
32 void outlist(SLIST *h)
33 {SLIST *p;
34 p=h->next;
35 if (p==NULL) printf(’’\nThelist is NULL!\n’’);
36 else
37 { printf(’’\nnead’’);
38 do {printf(’’->%d’’,p->data);p=p->next;} while(p!=NULL);
39 printf(’’->End\n’’);
40 }
41 }
42 main()
43 {SLIST *head;
44 int a[N]={11,12,15,18,19,22,25,29};
45 head=creatlist(a);
46 printf(’’\nOutput from head:\n’’);outlist(head);
47 printf(’’\nOutput from tail:\n’’);
48 while(head->next!=NULL) {
49 fun(head);
50 printf(’’\n\n’’);
51 printf(’’\nOutput from head again:\n’’);outlist Ihead);
52 }
53 }
选项
答案
(1)next (2)t->data (3)t
解析
fun函数的功能是输出链表尾部结点中的数据,并释放该结点,使链表缩短。由于链表是单向的,找到链表尾部结点需要利用循环从头结点开始查找,直至找到最后一个,找到之后输出尾部结点的数据,然后删除尾结点。
第一空:fun函数中的循环目的是找到尾结点“while(t->next!=NULL)”,利用结点变量s和t,s指向当前节点,t不断指向下一个结点,因此,第一空处应该是“t=t->next;”。第二空:这里是输出尾结点中的数据,已经利用循环找到了尾结点t,t的数据是t->data,因此,第二空处应该为“printf(’’%d’’,t->data),”。第三空输出尾结点数据之后删除尾结点,使用free,又因为尾结点是t,因此,第三空处应该为“flee(t);”。
转载请注明原文地址:https://kaotiyun.com/show/cIRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列程序执行输出的结果是______。#include<stdio.h>f(inta){intb=0;staticc=7;a=c++;b++;return(a);}main()
在下列字符序列中,不可用做C语言标识符的是()
有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是()。
以下不能正确进行字符串赋初值的语句是
下面程序段的运行结果是chara[]="lanuage",*p;p=a;while(*p!=′u′){printf("%c",*p-32);p++;}
若有定义:“inta=10,b=9,C=8;”接着顺序执行下列语句后,变量b中的值是________。c=(a-=(b-5)):c=(a%11)+(b=3);
下面程序在屏幕上的输出是_______。main(){printf("ab\b\bc");}
以下函数的功能是输出链表结点中的数据,形参指针h已知向如下链表请填空。structslist{chardata;structslist*next;};voidfun(structslist*h){structslis*P;
软件工程研究的内容主要包括:【】技术和软件工程管理。
在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
随机试题
PASSAGEFOURWhydidChopinwrite"RevolutionaryEtude"?
抄送机关指()
下列有关炭疽的叙述不正确的是
在研究项目技术方案过程中,对水资源消耗量大的项目,应提出节水措施,并对水耗指标进行分析。可以采用的节水措施有()。
设计施工总承包合同通用条款规定,承包人应当在收到经监理人批复的合同进度计划后()天内,将支付分解报告以及形成支付分解报告的支持性资料报监理人审批。
A注册会计师是X公司2009年度财务报表审计业务的项目负责人。在测试X公司采购与付款循环的自动化控制与人工控制时,需要考虑以下问题,请代为做出正确的专业判断。在针对下列与采购与付款交易相关的自动化控制中,最为重要的两个方面有()。
开学了,天气凉爽了不少,心,似乎还有一半儿留在暑假那边不想回来。但这一组20世纪70年代的同学故事会吸引你回到多彩的学校生活中来。苏叶和周佩红两位都是当代著名的女作家,在她们的笔下,老师同学各个姿采生动,从历史记忆的深处向我们走来,带着那个特殊时
每个人来到这个世界,都要在社会中生存,都要获取生存发展的物质条件,都要寻求慰藉心灵的精神家园,这一切首先得之于祖国。爱国是每个人都应当自觉履行的责任和义务,是对祖国的报答。检验一个人对祖国忠诚程度的试金石是
Thisfurnitureisnotsuitableforouruse,butmaybewecouldgiveitto______.
据新华社(XinhuaNewsAgency)报道,中国人每年浪费的食物约等同于5000万吨粮食。让人更为震惊的是,大学生浪费的食物数量是全国平均量的两倍。为了减少粮食浪费,许多高校食堂纷纷采取各种措施。通过提高饭菜的质量、提供小份菜等举措鼓励学生参与“
最新回复
(
0
)