首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
admin
2021-02-25
34
问题
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 #include<stdlib.h>
3 #define N 5
4 typedef struct node{
5 int data;
6 struct node *next;
7 } NODE;
8 void fun(NODE *h)
9 { NODE *p,*q,*r;
10 /**********found**********/
11 p=h->___1___;
12 /**********found**********/
13 if(p==__2__)return;
14 q=p->next;
15 p->next=NULL;
16 while(q)
17 { r=q->next;q->next=p;
18 /**********found**********/
19 p=q;q=__3__ ;
20 }
21 h->next=p;
22 }
23 NODE *creatlist(int a[])
24 { NODE *h,*p,*q;int i;
25 h=(NODE *)malloc(sizeof(NODE));
26 h->next=NULL;
27 for(i=0;i<N;i++)
28 { q=(NODE *)malloc(sizeof(NODE));
29 q->data=a
;
30 q->next=NULL;
31 if(h->next==NULL)h->next=p=q;
32 else{p->next=q;p=q;}
33 }
34 return h;
35 }
36 void outlist(NODE *h)
37 { NODE *p;
38 p=h->next;
39 if(p==NULL)printf(’’The 1ist is NULL!\n’’);
40 else
41 { printf(’’\nHead’’);
42 do
43 { printf(’’->%d”,p->data);p=p->next;}
44 while(p!=NULL);
45 printf(’’->End\n’’);
46 }
47 }
48 main()
49 { NODE *head;
50 int a[N]={2,4,6,8,10};
51 head=creatlist(a);
52 printf(’’\nThe original list:\n’’);
53 outlist(head);
54 fun(head);
55 printf(’’\nThe list after inverting:\n¨);
56 outlist(head);
57 }
选项
答案
(1)next (2)0或NULL (3) r
解析
函数fun的功能是将带头结点的单向链表逆置。第一空:“p=h->__1__;”对结点p进行初始化,由审题分析可知,p初始化为链表的第二个结点,即p->next,故第一空处应为“next”。第二空:“if(p==__2__)return;”如果链表只有一个结点,无需逆置,即第二空处为“0”或“\0”或“NULL”。第三空:循环内完成结点的指针指向前一个结点,“r=q->next;”r已经指向q的下一个结点,“q->next=p;”将q结点指向链表的前一个结点,“p=q;”是将p结点往后移动一个结点位置,第三空处是q结点往后移动一个结点位置,即第三空处为“r”。
转载请注明原文地址:https://kaotiyun.com/show/56tp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设有宏定义;#defineIsDIV(k,n)((k%n==1)?l:0),且变量m已正确定义并赋值。则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是()。
39.有以下程序:#include<stdio.h>#include<stdio.h>structS{charname[10];};voidchange(structS*data,intvalue){strcpy(data一>
有以下程序:#include<stdio.h>intml(intx,inty){returnx<=y?x:y;}intm2(intx,inly){returnx<=y?y:x;}intfun(inta,intb){re
有以下程序:#include<stdio.h>main(){inta=一1.b=一1:for(;++a;)++b;printf("%d%d\n",a,b);}程序运行后的输出结果是()。
软件生命周期中的活动不包括( )。
下面关于位运算符的叙述,正确的是
某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为
对如下二叉树进行后序遍历的结果为
公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是()。
给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得吏改程序的结构!#include<stdio.h>
随机试题
A、芫花B、牵牛子C、京大戟D、郁李仁E、番泻叶性温,既泻水逐饮,又杀虫疗疮的药是
某公司是国有大型企业。2013年12月31日,完成了全年的业务,在对账、结账后编制了年度财务会计报告;该公司委托符合资质要求的新华会计师事务所进行年度审计,并出具了无保留意见的审计报告;2014年3月31日,同级财政部门完成了对该企业会计工作的检查。注册会
甲个人兴办个人独资企业A,并与乙个人共同兴办了合伙企业B,合伙企业出资比例为6:4。2019年个人独资企业A的应纳税所得额为6.59万元。2019年合伙企业B的经营情况如下:(1)营业收入220万元。(2)营业成本78万元。(3)营业税金及附加26万
以下所得,应按“工资、薪金所得”缴纳个人所得税的是()。
按照《公司法》规定,股东或者发起人可以用()等无形资产作价出资。
下列属于需要中国保监会审批的险种是()。
京沪铁路没有经过下列哪一名胜所在省份?()
设,求∫01x2f(x)dx.
Readthetextbelowabouttheuseofgold.ChoosethecorrectwordfromA,B,CorDontheoppositepagetofillineachgap.F
Thoreausaideducationoftenmadestraight-cutditchesoutoftwistingsmallstreams.ButnotattheEcoDorm,whichhouses36un
最新回复
(
0
)