首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
admin
2015-08-23
61
问题
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 8
typedef struer list
{ int data;
Struct liSt*next;
} SLIST;
void fun(SLIST*h, int x)
{SLIST*p,*q,*s;
s=(SLIST*)malloc(sizeif(SLIST));
/**********found**********/
s->data= _____1_____ ;
q=h;
p=h->next;
while(P!=NULL&&x>p->data){
/**********found**********/
q= _____2_____ ;
p=p->next;
}
s->next=p;
/**********found**********/
q->next= _____3_____ ;
}
SLIST*crearlist(int*a)
{SLIST*h,*p,*q;int i;
h=p=(SLIST*)malloc(sLzeof(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(SLTST*h)
{STLIST*p;
p=h->next;
if(p==NULL)prLntf("\nThe list
is NULL!\n");
else
{printf("\nHead");
do{printf("->%d",p->data);
p=p->next;)while(P!=NULL);
printi("->End\12");
}
}
main()
{STLIST*head;int x;
int a[N]={11,12,15,18,19,22,25,29};
head=creatlist(a);
printf ("\nThe list before inserting:\n");outlist(head);
printf("\nEnter a number:");
scarlf("%d",&x);
fun(head,x);
printf("\nThe list afterinsert2ng:\n");outliSt(head);
}
选项
答案
(1)x (2)p (3)s
解析
第一空:“s=(SLIST*)malloc(sizeof(SLIST));”显然s是一个新结点,第一空处是给新结点的数据域赋值x,因此第一空处应该是“s->data=x;”。
第二空:循环“while(p!=NULL&&x>p->data)”是用来寻找插入位置,当链表没有结束且x仍然大于p所指向的结点的数据时,就不断的向链表后面搜索。在循环体内,语句“p=p->next;”是找到下一个结点的地址,变量q用来保存当前结点的地址,因此第二空处应该是“q=p;”。
第三空:“s->next=p;”将s插入链表当中,s指向p,此时s结点已经指向需要插入位置的下一个节点,因此在需要插入s结点的位置的上一个结点需要指向s结点,故第三处应该为“q->next=s;”。
转载请注明原文地址:https://kaotiyun.com/show/iHDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。
下列程序的输出结果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j=3‖k++==3))printf("%d%d%d\n",i,j,k);}
有以下程序:#include<stdio.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);p
有以下程序:main(){inti=0,s=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;
为了使模块尽可能独立,要求
若有以下定义:structlink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成
数据库设计包括两个方面的设计内容,它们是
已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是
用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序
随机试题
出版物生产成本中的直接成本包括()等项目。
A.弥散障碍B.第一秒用力呼气率降低C.两者均有D.两者均无支气管哮喘
当设计无具体要求时,对一、二级抗震等级的框架结构,其纵向受力钢筋检测所得的强度实测值应符合“钢筋抗拉强度实测值与屈服强度实测值的比值不应大于1.25,屈服强度实测值与强度标准值的比值不应小于1.3”的规定。()
按照住房城乡建设部、财政部《关于印发的通知》(建标[2013]44号)的规定,对建筑以及材料、构件和建筑安装物进行一般鉴定、检查所发生的费用,应在()中列支。
商业银行申请开展个人理财业务,应当向中国银监会报送的材料包括()。
(2017年)增值税一般纳税企业以支付现金方式取得联营企业股权的,所支付的与该股权投资直接相关的费用应计入当期损益。()
土地增值税纳税人是法人的,当转让的房地产坐落地与其机构所在地或经营所在地一致时,在办理税务登记的原管辖税务机关申报纳税即可。()
关于“重证据,重调查研究,严禁逼供信”的政策,下列说法错误的是()。
(厦门大学2011年初试真题)根据个人所得税法的规定,下列是个人所得税纳税人的有()。
下列变量名中,合法的()。A)B)C)D)
最新回复
(
0
)