首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数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
24
问题
给定程序中,函数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://jikaoti.com/ti/Nin0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO
先有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:#include<stdio.h>#include"myfun.c"main(){
有以下程序 main() { char *p[]={"3697","2548"}; int i,j; long num=0; for(i=0;i<2;i++) {j=
有以下程序 int fun(int x[],int n) { static int sum=0,i; for(i=0;i<n;i++) sum+=x[i]; return sum
有以下程序 void fun 1 (char *p) { char *q; q=p; while(*q!=’\0’) {(*q)++;q++;}
有以下程序 fun(char p[][10]) {int n=0,i; for(i=O;i<7;i++) if(p[i][O]=T)n++; return n; } main
“商品”与“顾客”两个实体集之间的联系一般是______。
设有说明structDATE{intyear;intmonth;intday;};请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值2006、10、1:【】。
以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。 void f(int b[],int n,int flag) { int i,j,t; for(i=0;i<n-1;i++)
下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如:#defineN4voidrotate(inta()[N]){inti,j,t;f
随机试题
《消防法》规定,()负责本行政区域内的消防工作。
男,74岁,诊断肺癌,化疗2周后咳嗽、脓痰、恶臭味,伴高热,听诊右下肺湿啰音,其主要感染源为()
下列关于牙震荡的描述,正确的是
《中华人民共和国药品管理法》中明确禁止医师等人员以任何名义收受药品生产企业、经营企业或者代理人给予的
工程施工质量不符合要求时,经返工重做或更换器具、设备的检验批应()。
导游领队人员应兼具为游客提供服务与()两项职责。
定势只会减慢问题解决的速度,不会提高问题解决的效率和质量。()
联合国的宗旨不包括()。
()对于“推理”相当于“技术”对于()。
Personswhoareoverweightshouldwatchtheirdietcarefullyinordertolosepounds.Thebestwaytodothisistostartaweig
最新回复
(
0
)