首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求13中的所有整数都是L1,并且不
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求13中的所有整数都是L1,并且不
admin
2009-02-15
31
问题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求13中的所有整数都是L1,并且不是 L2中的整数,还要求L3中的所有整数都两两不等。
【函数】
#include < malloc. h >
typedef struct node {
int d;
struct node * next
} Node;
void diff(Node *A,Node * B,Node * * r)
{
int lastnum;
Node * p;
*r = NULL;
if( ! A) return;
while((1))
if(A->d < B ->d)
{
lastnum =A -> d;
p= ( Node * ) malloc( sizeof(Node) );
p->d = lastnum;
p->next= *r;(2);
do
A = A -> next;
while((3));
}
else if(A->d > B->d)
B=B- >next;
else {
(4);
lastnum=A -> d;
while ( A && A->d = = lastnum) A=A-> next;
}
while(A)
{
lastnum=A->d;
p=( Node * ) malloc( sizeof(Node) );
p-> d = lastnum;
(5);
*r=p;
while (A && A->d = = lastnum) A=A->next;
}
}
选项
答案
(1)A&&B (2)*r=p (3)A&&A->d==lastnum (4)B=B->next (5)p->next=*r
解析
函数的功能在函数说明中已经讲得很清楚了,这里就不再重复。程序的思路是:从链表A取一个元素和链表B中第一个元素进行比较,如果链表A元素小于链表B的元素,则将链表A中元素插入到链表C中,指针后移,在后移时要屏蔽所有相同元素;如果链表A元素大于链表B的元素,将链表B指针后移;如果链表A元素等于链表B的元素,链表A和链表B的指针都向后移,而且要屏蔽链表A中所有相同元素。当链表A和链表B都没有结束时,循环执行上述操作。如果链表B已经到链尾,但链表A没有结束,则将链表A中的剩余元素加入到链表C中,同时也要屏蔽所有相同元素。
根据上面的分析,(1)空处需要填写循环条件,显然是链表A没有结束,而且链表B也没有结束,即“A!=NULL&&B!=NULL”或其等价形式。
(2)空所在的语句块是处理链表A元素小于链表B的元素的情况,需要将链表A中元素插入到链表C中,在它的前一条语句已经把这个结点后继指针指向链表C的第一个结点,这里需要将链表C的第一个结点设置成该结点,即“*r=p”。
(3)空处所在do…while循环的目的是屏蔽所有相同元素,需要写出这个循环的条件,显然是当一个结点的值不等于刚刚插入的结点的值或链表A已经到了链尾时就要退出循环。因此(3)空处应填写“A! =NULL&&A->d==lastnum”及其等价形式。
(4)空所在语句块是处理链表A元素等于链表B元素的情况,链表A和链表B的指针都向后移,而且要屏蔽链表A中所有相同元素。链表A的指针向后移已经写出,因此,(4)空应填写“B=B->next”。
(5)空所在while循环是处理链表B已经到链尾,但链表A没有结束的情况。这时需要将链表A中的剩余元素加入到链表C中,插入的方法和(2)空处所在语句块插入方法一致。(5)空需将要插入结点的指针域指向链表C的头指针*r,因此(5)空处应填写“p->next=*r”。
转载请注明原文地址:https://kaotiyun.com/show/4bjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
数据展现常需要图表化。美化图表的原则不包括()。
计算机处理的数字数据有数值数据和字符数据之分。对信息处理技术员来说,它们的主要区别是______。
以下关于数据处理的叙述中,不正确的是__________。
在PowerPoint2007中,若想在一屏内观看多张幻灯片的大致效果,可采用的方法是(52)________________。
许多企业常把大量暂时不用的过期数据分类归档转存于(8)________________中。
某商场统计了每个月的销售总额,坚持了多年。每次公布上月销售额时,还都采用同比和环比概念与历史数据进行对比。以下叙述中,正确的是________________。
计算机网络中,防火墙的功能不包括________________。
Windows7中的文件命名规则不包括________________。
在Excel2010中,A1和B1单元格中的值分别为“12”和“34”,在C1中输入公式“=A1&)。??B1”,按回车键后,则C1中的值为(
在Access中使用参数查询时,应将条件栏中的参数提示文本写在(60)中。
随机试题
甲市A公司以信件方式向乙市B公司发出承诺通知。A公司于3月4日将信件送达甲市邮局,到达乙市邮局的日期为3月6日,该信件送达B公司收发室的日期为3月7日,公司总经理阅读该信件的日期为3月9日。A公司承诺生效的时间为()
体态肥胖的成年2型糖尿病病人,GHbA1c为7%,初治首选措施是( )。
性味咸寒,功能消痰软坚,利水、消肿,煅用制酸止痛的药是
基金财务会计报表一般不包括()。
下列说法,符合房产税规定的是()。
甲企业购入某上市公司股票并划分为交易性金融资产,下列各项中,不应计入交易性金融资产入账价值的有()。
阅读《荷塘月色》的教学实录片段,回答问题。师:朱自清的这篇散文是有名的美文,请大家讨论一下,说说自己觉得最美的句子并简述理由。生:我最喜欢“层层的叶子中间,零星地点缀着些白花,有袅娜地开着的,有羞涩地打着朵儿的;正如一粒粒的明珠,又如碧天里的星星,又如
二战时期,盟军统帅艾森豪威尔指挥盟军实施了历史上规模最大的诺曼底登陆战役,奠定了盟军反败为胜的契机。艾森豪威尔能把多国的庞大武装力量合为一体,协调行动、共同战斗,足见其统帅能力非常人能及。随后,艾森豪威尔又以压倒性的胜利,击败声望极高的政坛老手史蒂文生,出
阅读下列材料,回答问题。卢某在Y物业公司从事保安工作,双方签订了书面劳动合同。某日,卢某在Y物业公司提供物业服务的住宅小区值班站岗时突然晕倒在地,导致受伤,卢某的主治医师在调查笔录中认为卢某此次受伤有可能导致癫痫。后卢某以在工作时间和工作场所内,
A、Hewondersifhehasenoughtimeforthejob.B、Heisafraidheisnotexperiencedenough.C、Heisafraidthatthejobmaybe
最新回复
(
0
)