首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 N个游戏者围成一圈,从1~N顺序编号,游戏方式如下;从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,直到剩余一个游戏者为止,该游戏者即为获胜者。
阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 N个游戏者围成一圈,从1~N顺序编号,游戏方式如下;从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,直到剩余一个游戏者为止,该游戏者即为获胜者。
admin
2013-07-03
61
问题
阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。
【说明】
N个游戏者围成一圈,从1~N顺序编号,游戏方式如下;从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,直到剩余一个游戏者为止,该游戏者即为获胜者。
下面的函数playing(Linklist head)模拟上述游戏过程并返回获胜者的编号。其中,N个人同成的圈用一个包含N个结点的单循环链表来表示,如图4—1所示,游戏者的编号放在结点的数据域中。
在函数中,以删除结点来模拟游戏者退出圈子的处理。整型变量c(初值为1)用于计数,指针变量P的初始值为head,如图4一1所示。游戏时,从P所指向的结点开始计数,P沿链表中的指针方向遍历结点,c的值随P的移动相应地递增。当c计数到2时,就删除P所指结点的下一个结点(因下一个结点就表示报数到3的游戏者),如图4—2所示,然后将C设置为0后继续游戏过程。
结点类型定义如下:
typedef struct node{
int code; /*游戏者的编号*/
struct node*next;
}NODE,*LinkList;
【C函数】
int playing(LinkList head,int n)
{/*head指向含有n个结点的循环单链表的第一个结点(即编号为1的游戏者)*/
LinkList p=head,q;
int thewinner,c=1;
while(n>
(1)
){
if(c==2){ /*当c等于2时,p所指向结点的后继即为将被删除的结点*/
q=p->next;
p->next=
(2)
;
printf(“%d\t”,q->code);/*输出退出圈子的游戏者编号*/
free(q);
c=
(3)
;
n- -;
}/*if*/
p=
(4)
;
c++:
}*while*/
theWinner=
(5)
;
free(p);
return theWinner;/*返回最后一个游戏者(即获胜者)的编号*/
}
选项
答案
(1)1 (2)q->next或p->next->next (3)0 (4)p->next (5)p->code
解析
本题要求完成程序,该程序的功能是删除报 号为3的结点,直到剩下一个结点为止。while语句中的n 的取值范围从1到N,又因为while语句先执行中括号里的 语句在判断n值,所以(1)应填n>1,while语句中的if条件 语句是判断p指向的下一结点是否该删除,若当c为2时, 则p指向的当前结点报号为2,p指向的下一个结点,即p- >next的报号应为3,该删除,这时应该将p->next的指 向c为3的结点的下一个结点,即p->next->next,再将 p->next删除,所以(2)应该填p->next->next,删除P ->next之后将开始新一轮的报数,根据题意,将c值重新 设置为0后继续,所以(3)对c重新赋值,应该填0,此时,n 个数已经删去一个数,所以n的值相应的要减少,if语句执 行完后,跳出if语句,将p重新赋值,即(4)p=p->next, 当从1到n都执行一遍后,会有一个人留下,即为获胜者, (5)是给获胜者编号赋值所以应该填p->code,最后返回 获胜者编号,该程序执行完毕。
转载请注明原文地址:https://kaotiyun.com/show/jnjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
要使Word能自动提醒英文单词的字母拼写是否正确,应设置Word的(47)选项功能。
在统计学中,用来衡量一个样本中各个数据波动大小的量是______。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
许多书上都说,人一次只能记住或处理5~9(7±2)条信息。为了检验这个结论是否正确,宜采用()调查方法。经过多次调查统计研究发现,人一次平均只能记住或处理4条信息。经考证,原来7±2的说法只是一位专家在一个讲演稿中的估计,并不是真正的调研报告,但却
在Access2007中,若要想查询所有姓名为2个汉字的学生记录,应在准则中输入______。
计算机在接通电源后,系统首先由(41)程序对内部每个设备进行测试。
阅读以下说明,回答问题1至问题6,将解答填入答题纸对应的解答栏内。【说明】在Linux下安装配置DHCP服务,DHCP服务程序/usr/sbin/dhcpd需要读取配置文件/etc/d/hcpd.conf,以下是一个DHCP配置文件的主要内容:
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明在一台计算机上安装完成Windows2000服务器及相应的服务组件。
综合布线系统由6个子系统组成,将图1-1中(1)~(6)处空缺子系统的名称填写在答题纸对应的解答栏内。考虑性能与价格因素,图1-1中(1)、(2)和(4)中各应采用什么传输介质?
从以下备选答案中为程序中(1)~(5)处空缺内容选择正确答案,填入答题纸对应的解答栏内。(1)A.CreatObject()B.connect0C.go()D.open()(2)A."select*fromdata"B."select
随机试题
关于血浆蛋白的性质,下列说法不正确的有()。
根据我国民事诉讼法的规定,执行担保成立无须具备以下哪项条件?()
台湾地区对地权采取了一定的限制措施,包括()。
经济学家萨缪尔森在其经典著作《经济学》中,对通货膨胀的定义是()。
世界银行认为,在知识成为战略性资源之日,发展中国家遇到了迅速赶上发达国家的大好槐遇,缩小彼此存在着的技术差距。在电信领域,发展中国家直接采用新技术,实现了电信网络数字化。上述文字没有提及的一项是()。
如果你站在大桥上看桥下急速的流水,一会儿之后,你就会感觉到桥在动。这种现象心理学称之为()
在关于公务员要不要实行末位淘汰制的争论中,张宏的观点是:实行末位淘汰制,能促使人们积极工作,从而提高机关的工作效率。金晶的观点是:问题在于当一个公务员已经完成了自己的本职工作后,是否还应该被淘汰。在一些机关试行了末位淘汰制后,确实提高了工作效率。
操作系统通常采用(228)解决进程间合作和资源共享所带来的同步与互斥问题。若在系统中有若干个互斥资源R,5个并发进程,每个进程都需要5个资源R,那么使系统不发生死锁的资源R的最少数日为(229)。
【B1】【B3】
Giventhelackoffitbetweengiftedstudentsandtheirschools,itisnotsurprisingthatsuchstudentsoftenhavelittlegood
最新回复
(
0
)