首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 N个游戏者围成一圈,从1~N顺序编号,游戏方式如下;从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,直到剩余一个游戏者为止,该游戏者即为获胜者。
阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 N个游戏者围成一圈,从1~N顺序编号,游戏方式如下;从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,直到剩余一个游戏者为止,该游戏者即为获胜者。
admin
2013-07-03
81
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel2003中,A1到E6单元格的值如下图所示,若在A7单元格中输入计算众数的函数“=MODE(A1:E6)”,按回车键后,则.A7单元格显示的值为(47)。
在Word2007编辑过程中,为防止突然断电或电脑死机等突发情况,最大程度减少损失,下列做法较好的是__________。
在Excel中,设单元格A1中的值为100,B1中的值为200,A2中的值为300,B2中的值为400,若在A3单元格中输入函数“=SUM(A1:B2)”,按回车键后,A3单元格中的值为()。
双击某个非可执行程序的文件名将(24)。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
某大型企业下属每个事业部都自行建立了信息系统,各自存储数据,各自配备了技术人员维护系统。由于数据格式不同,难以交流,各系统难以连接,形成了一个个信息孤岛,业务难以协同。为此,公司采取了以下一些整合措施,其中(70)并不恰当。
下面记录的是某班36人期末考试的数学成绩:971009596100879610089100936999891008188
内存用于存放计算机运行时的指令、程序、需处理的数据和运行结果。但是,存储在(2)中的内容是不能用指令修改的。
ASP是(1)网页制作技术。A.动态B.静态从以下备选答案内为程序中(5)~(9)处空缺部分选择正确答案。(5)A.CreatObjectB.ConnectC.ExecuteSQLD.Open()(6)A.<body>
从表1-1中为图1-1中(1)~(4)处选择合适设备名称(每个设备限选一次)。表1-2是路由器A上的地址变换表,将图1-2中(8)~(11)处空缺的信息填写在相应的位置。
随机试题
交换的构成要素包括()
提高生产率的目的就是降低成本,提高经济效益。()
《晞发集》的作者是()
赤霉病麦中毒的病原物质为
A.宫颈癌B.外阴炎C.痛经D.阴道炎E.乳腺炎贴敷法可用于
患者,女,18岁。右食指被铁钉刺伤7天,现头晕头痛,张口不利,咀嚼无力。其诊断是
主张“非礼勿视,非礼勿听”的教育家是()。
科学家卡特赖特专门设计了一套关于梦和智能活动相联系的实验。结果发现,人在经过有梦的睡眠后,他对待问题时常常能从不利的方面来看,如果梦的内容是不愉快的,那么醒来后就会更能适应面对难题的现实环境,从而也就增加了解决难题的能力。除此以外,白天冥思苦想的人进入到梦
Wheredoesthisconversationmostprobablytakeplace?
Craigassuredhisbossthathewould______allhisenergiesindoingthisnewjob.
最新回复
(
0
)