首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考
给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考
admin
2015-06-08
91
问题
给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 8
typedef struct list
{ int data;
struct list *next;
}SLIST ;
Void fun(SLIST *P)
{SLIST *t,*s;
t=P一>next;S=P;
while(t一>next!=NULL)
{ s=t;
/**********found***********/
t=t一> ___1____ ;
}
/**********found***********/
printf(“%d”,____2____ );
s一>hext=NULL;
/**********found***********/
free( ___3____ );
}
SLIST * creatlist(int *a)
{SLIST *h,*P,*q;int i ;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0; i
{q=(SLIST *)malloc(sizeof(SLIST));
q一>data=a
;P一>next=q; P=q;
P一>next=0 ;
return h;
}
void outlist(SLIST *h)
{ SLIST *P;
P=h一>next ;
if(p==NULL)printf(“\nThe list
is NULL!\n”);
else
{printf(“\nHead”);
do{printf(“一>%d”,P一>data);
p=p一>next;)while(P!=NULL);
printf(“一>End\n”);
}
}
main()
{SLIST *head;
int a[N]={11,12,15,18,19,22,25,
29);
head=creatlist(a);
printf(“\nOutput from head:\n”);
outlist(head);
printf(“\noutput from tail:\n”);
while(head一>next!=NULL){
fun(head);
printf(“\n\n”);
printf (“\nOutput from head
again:\n”);outlist(head);
}
}
选项
答案
(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,因此第:三空处应该为“free(t);”。
转载请注明原文地址:https://kaotiyun.com/show/RaJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
有以下函数定义:voidfun(intn,doublex){……}若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用语句是______。
有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",
有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}pr
设血型占2个字节,则unsignedint所能表示的数据范围是______。
若fp是指向某文件的指针,且已读到此文件的末尾,则函数feof(fp)的返回值是_______。
请读程序片段(字符串内没有空格字符):printf("%d\n",strlen("ATS\n012\1\\"));上面程序片段的输出结果是_______。
设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是_______。
请读程序:#include<stdio.h>func(inta,intb){intc;c=a+b;returnc;}main(){intx=
阅读以下函数:fun(char*s1,char*s2){inti=0;while(s1[i]==s2[i]&&s2[i]!=’\0’)i++;return(s1[i]==&&s2{i)!==’\0’)
随机试题
急性化脓性胆囊炎时,最易穿孔的胆囊部位是
假定某投资中心的经营资产为400000元,经营净收益为120000元。要求:(1)计算该投资中心的投资利润率。(2)如果利息按140A,计算,其剩余利润为多少?(3)如果采用投资利润率来衡量其工作业绩,预计对管理
施工企业各管理层、职能部门、岗位的安全生产责任应形成责任书,并应经责任部门或责任人确认。责任书的内容不包括()。
上题图中所示的外伸梁C处截面的弯矩和剪力分别为多大?
建设项目管理的工作内容主要包括( )。
圣诞树用成套灯具
证券公司对客户融资融券的额度按现行规定不得超过客户提交保证金的2倍,期限不超过9个月。()
相对于派发现金股利,企业发放股票股利的优点有()。
下列情形中,不违背货币资金“不相容岗位相互分离"控制原则的是()。
By using(26), a 600M -byte music CD can be compressed to 50M bytes or less. It can be streamed(downloaded in chunks) so that you
最新回复
(
0
)