首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是将带头结点的单向链表逆置,即若原链表中从头至尾结点数据域依次为2、4、6、8、10,逆置后,从头至尾结点数据域依次为10、8、6、4、2。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
给定程序中,函数fun的功能是将带头结点的单向链表逆置,即若原链表中从头至尾结点数据域依次为2、4、6、8、10,逆置后,从头至尾结点数据域依次为10、8、6、4、2。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
admin
2016-12-06
33
问题
给定程序中,函数fun的功能是将带头结点的单向链表逆置,即若原链表中从头至尾结点数据域依次为2、4、6、8、10,逆置后,从头至尾结点数据域依次为10、8、6、4、2。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
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)
32 h->next=p=q;
33 else{p->next=q ; p=q;}
34 }
35 return h;
36 }
37 void outlist(NODE*h)
38 { NODE*p;
39 p=h->next;
40 if(p==NULL)
41 printf(’’The list is NULL!\n’’);
42 else
43 {printf(’’\nHead’’);
44 do
45 {printf(’’->%d’’,p->data);
46 p=p->next;}
47 while(p!=NULL);
48 printf(’’->End\n’’);
49 }
50 }
51 main()
52 { NODE*head;
53 int a[N]={2,4,6,8,10};
54 head=creatliSt(a);
55 printf(’’\nThe original list:\n’’);
56 outlist(head);
57 fun(head);
58 printf(’’\nThe list after in-verting:\n’’);
59 outlist(head);
60 }
选项
答案
(1)next (2)NULL (3)r
解析
填空1:本空考查了为p赋初值,根据题目的要求是将带头结点的单向链表逆置可知,p的初值应该为h->next。
填空2:if判断语句表明当p等于什么时就要返回,因此只能当p等于NULL时返回,不用做后面的链表的逆置了。
填空3:把q的指针向后移动,才能实现将带头结点的单向链表逆置。因此本空填写r。
转载请注明原文地址:https://kaotiyun.com/show/CNDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#defineM2#defineN4
以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main(){inti,a[20],sum,count;sum=count=0;for(i=0;i<20;i
以下程序的功能是将字符串s中的数字字符放人d数组中,最后输出d中的字符串。例如,输入字符串abc123edf456gh,执行程序后输出123456。请填空。#include<stdio.h>#inclu
设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是______。
有以下定义:#include<stdio.h>chara[l0],*b=a;不能给a数组输入字符串的语句是______。
设有定义:intA,*pA=&A;,以下scanf语句中能正确为变量A读入数据的是______。
下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。#include<stdio.h>#include<ctype.h>main(){charc;
软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
随机试题
以下叙述中反映了陆地自然带分布规律的是()。
下列管理行为中,属于私人管理的是()
在对吗啡中毒的抢救处理中,首先应
胃阴不足型厌食证的首选方剂是久泻伤阴型泄泻的首选方剂是
患儿,女,13岁。不慎服用有机磷农药(对硫磷),予紧急洗胃,则选择的洗胃液是
经纪行为中最原始的一种方式是(),其特点是经纪人在最合交易成功之前与委托人之间一般没有明确的法律关系
某地拟兴建一个大型工业生产项目,产品主要用于供应整个甲地区的市场需求,由于项目投入大,建设周期长,投资人在项目立项前聘请了咨询专家对项目的经济可行性进行了初步分析,为项目立项提供咨询意见。【问题】1.为了分析甲地区的宏观经济运行周期情况,咨询专
工作说明书的内容包括()。
美育的直接功能是()
若在查询条件中使用了通配符"!",它的含义是( )。
最新回复
(
0
)