首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件
admin
2020-10-26
37
问题
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#defitie N 8
typedef Struct list
{ int data ;
struct list*next:
} SLIST;
void fun(SLIST*h)
{SLIST*p,*q;
p=h->next;
if(p!=NULL)
{ q=p->next;
while(q!=NULL)
{ if(p->data==q->data)
{p->next=q->next ;
/**********found**********/
free(____1____);
/**********found**********/
q=p->____2____;
}
else
{p=q;
/**********found**********/
q=q->____3____;
}
}
}
}
SLIST*creatlist(int*a)
{STIST*h,*p,*q;int i ;
h=p=(SLIST*)malloc(sizeof(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)
{ SLIST*p;
p=h->next ;
if (p==NULL)printf("\nThe list
is NULL!\n");
else
{printf("\nHead");
do{ printf("->%d",p->data);
p=p->next;}while(p!=NULL);
printf("->End\n");
}
}
main()
{SLTST*head;int a[N]={1,2,2,3,4,
4,4,5};
head=crearlist(a);
prinLf("\nThe list before deleting:
\n");outlist(head);
fun(head);
printf("\nThe list after deleting:
\n");outliSt(head);
}
选项
答案
(1)q (?)next (3)next
解析
第一空:p和q是两个SLIST结构体指针,分别指向两个相邻的结点。“if(p->data==q->data)”成立则应该删除其中一个结点,“p->next=q->next;”p指向q的下一个结点,那么q结点就可以删除了,因此第一空处应该为“free(q);”。
第二空:在第一空处,q指向的结点已经被删除,如果要继续循环搜索数据域值相同的结点,那么q需要重新指向p的下一个结点,因此第二空处应该为“q=p->next;”。
第三空:如果“if(p->data==q->data)”不成立,那么p和q都向结点尾移动一个结点位置,因此第三空处应该是“q=q->next;”。
转载请注明原文地址:https://kaotiyun.com/show/zx3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有以下程序#include<stdio.h>char*a="you";charb[]="WelcomeyoutoChina!";main(){inti,j=0;char*p;for(i=0;b[i]!=’\0’;i++){if(*a=
有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);cont
以下叙述中正确的是
若要求从键盘读入含有空格字符的字符串,应使用函数
下面是有关C语言字符数组的描述,其中错误的是
若有定义语句:inta=3,b=2,c=1;以下选项中错误的赋值表达式是()。
结构化程序的3种基本控制结构是()。
以下选项中,能用作数据常量的是()。
以下函数实现按每行8个输出w所指数组中的数据:#include<stdio.h>voidfun(int*w,intn){inti;for(i=0;i<n;i++){______________prinff("%d",w[i]);}p
有两个关系R,S如下:由关系R通过运算得到关系S,则所使用的运算为()。
随机试题
美国一家跨国公司与中国某企业合资经营一家酒店,双方在签订了合资企业协议后又签订了一份合资企业合同,但有些问题在合资企业协议中有规定而在合资企业合同中却没有规定。1年后,双方在经营中发生争议,由于合资企业合同与合资企业协议的内容存在差异,解决争议应以(
心理社会治疗模式认为人生活在特定的社会环境中,包括生理、心理和社会三个方面。这三个层次的因素相互作用,一起推动个人的成长和发展,这属于心理社会治疗模式对()的假设。
男,45岁,发热、咳嗽、咳脓性痰2天。查体:体温38.5℃,双下肺可闻及湿啰音,痰涂片革兰染色示阳性球菌成簇分布。胸部X线片示双下肺炎,其中可见多个透亮区。该患者最可能感染的病原体是
女性,30岁。月经量多已2年,近3天来感头晕、乏力、心悸,查血红蛋白65g/L,白细胞6.0×109/L,血小板140×109/L,骨髓象结果提示:粒比红为1:1,红细胞增生活跃,中晚幼红细胞45%,体积小,胞浆偏蓝,下列哪项治疗方案最合适
下列哪些行为构成反不正当竞争法中的虚假宣传行为?
大气环境影响评价的工作程序分为三个阶段,以下属于第二阶段工作的是()。
薄板焊接或点焊时宜采用的焊条牌号为()。
随着行业生产技术的成熟、生产成本的降低和市场需求的扩大,新行业从幼稚期迈入成长期,其变化是()
下列可以表示连续性随机变量的统计图是()
在标准ASCII码表中,英文字母A的十进制码值是65,英文字母a的十进制码值是
最新回复
(
0
)