首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
admin
2013-04-02
44
问题
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKI.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 5
typedef struct node {
int data;
struct node *next;
} NODE;
void fun(NODE *h)
{NODE *p, *q, *r;
/**********found**********/
p = h->【1】;
/**********found**********/
if (p==【2】) return;
q = p->next;
p->next = NULL;
while (q)
{r = q->next; q->next = p;
/**********found**********/
p = q; q = 【3】;
}
h->next = p;
}
NODE *creatlist(int a[])
{NODE *h,*p,*q; int i;
h = (NODE *)malloc(sizeof(NODE));
h->next = NULL;
for(i=0; i
{q=(NODE *)malloc(sizeof(NODE));
q->data=a
;
q->next = NULL;
if (h->next == NULL) h->next = p = q;
else {p->next = q; p = q;}
}
return h;
}
void outlist(NODE *h)
{NODE *p;
p = h->next;
if (p==NULL) printf("The list is NULL!\n");
else
{printf("\nHead ");
do
{printf("->%d", p->data); p=p->next;}
while(p!=NULL);
printf("->End\n");
}
}
main()
{NODE *head;
int a[N]={2,4,6,8,10};
head=creatlist(a);
printf("\nThe original list:\n");
outlist(head);
fun(head);
printf("\nThe list after inverting :\n");
outlist(head);
}
选项
答案
next 0 r
解析
第一空:“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/UDJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。intisprime(inta){inti;for(i=2;i<=a/2;i++)
数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为[]。
以下叙述中错误的是______。
有以下程序 main() { char *p[]={"3697","2548"}; int i,j; long num=0; for(i=0;i<2;i++) {j=
有以下程序 main() {int i,s=0,t[]={1,2,3,4,5,6,7,8,9 }; for(i=0;i<9;i+=2) s+=*(t+i); printf("%d\
有以下程序 fun(char p[][10]) {int n=0,i; for(i=O;i<7;i++) if(p[i][O]=T)n++; return n; } main
有以下程序 #include <stdio.h> main() {char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c
设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为______。
设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。fw=fopen("readme.txt",【 】);
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值 10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:口代表空格字符)
随机试题
A.尿比重>1.020,尿钠<20mmol/LB.尿比重<1.020,尿钠>40mmol/LC.尿比重低,血中血细胞比容下降,补液后尿量每日仍<400ml/dD.尿比重>1.030。血细胞比容增加,补液后尿量显著增加E.每日尿量>1000m
有关公文印章的犯罪,以下说法正确的是()
甲将乙杀害,经鉴定甲系精神病人,检察院申请法院适用强制医疗程序。关于本案,下列哪一选项是正确的?(2016年卷二42题)
关于非法证据的排除,下列哪些说法是正确的?(2012年卷二67题,多选)
下列关于混凝土路面伸缩缝构造设计的表述,哪一条是错误的?[2004年第061题]
根据计量法,下列计量标准器具中,县级以上人民政府计量行政部门需要进行强制检定的有()。
生成性学习就是要训练学生对所阅读的东西产生一个_______,以加强其深层理解。
专政职能是发挥民主职能的社会基础。()
(2011上项管)甲乙两个公司在项目实施过程中,对合同的生效时间产生了分歧。仲裁机构调查时发现以下事实:①双方签署的合同上并没有对合同的生效日期做出规定;②双方签署合同的过程如下:乙公司在拟定好合同文本并签署后以邮寄的方式寄给甲公司,信封上盖有乙公司所在地
AlongwiththegrandviewoftheGreatWall,travelerstoPekingshouldn’tmisstryingthePekingRoastedDuck.Toenjoythefam
最新回复
(
0
)