首页
登录
从业资格
阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】
阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】
admin
2022-08-02
41
问题
阅读以下说明和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本题考查数据结构的应用和C程序的运算逻辑,主要涉及指针和链表。 由于游戏最后剩一人时结束,因此空(1)处应填入"1",表示N>1时游戏过程要继续。当c等于2时,p所指结点的后继表示为q(q = p->next),q所指结点即为要删除的结点,即如下图所示。
此时,需要修改p所指结点的指针域,令其指向q所指结点的后继结点,对应的操作为p->next=q->next(等同于p->next = p->next->next) ,因此空(2)处应填入"q->next" 或 "p->next->next"。将q所示结点删除后的相关指针如下图所示。
题目中已经说明,完成结点的删除后将c的值置为0,因此空(3)处应填入"0",为开始下次报数做好准备。由于下次应从上图中的x+2所在结点从1开始报数,因此空(4)处应填入"p->next",以令p指向上图中的x+2所在结点。空(5)处应填入"p->code"。
转载请注明原文地址:https://tihaiku.com/congyezige/2427166.html
本试题收录于:
初级程序员题库软件水平考试初中高级分类
初级程序员
软件水平考试初中高级
相关试题推荐
下列哪种操作方式不能在界面中显示出属性面板?()A.在应用程序菜单中单击【选项】
两名护士运用护理程序,对所负责的病人从入院到出院提供连续的、全面的、整体的护理属
程序语言若规定程序中的变量必须先定义(或声明)再引用,则违反此规定的程序在()时
UML是一种()。A.面向对象的程序设计语言 B.面向过程的程序设计语言 C
在软件开发中使用函数库可()。A.提高软件的执行速度 B.降低系统负载 C.
若程序P经编译并连接后可执行,则()。A.P是正确的程序 B.P中没有语法
()不是良好的编程风格。A.变量名尽可能单字母符号或单字母加数字串 B.程序
若程序中使用的变量未设置初始值,则()。A.编译时会一定出错 B.运行时一定出
电子邮件应用程序利用POP3协议()。A.创建邮件 B.加密邮件 C.发送邮
CPU从内存中读取指令时,需要先将程序计数器(PC)的内容输送到()总线上。A.
随机试题
Shouldapartyrequestcancellationofthecontractwithoutavalidreason,itsh
Historically,humansgetseriousaboutavoidingdisastersonlyafteronehas
Itdawnedonme________hardworkwouldgetpeoplesomewhere.A、whichB、whomC、wh
[originaltext]M:Hello,Miss.Whatbringsyouheretoday?W:(13)Iamnotfeel
工程开工报审表内容应符合现行国家标准《建设工程监理规范》的有关规定。
“标明风景名胜区、基本农田保护区、生态敏感区以及重要的自然和历史文化遗产位置和范
(2018年真题)看涨期权多头的行权收益可以表示为()。(不计交易费用)A
下列关于资产或负债计税基础的表述中,正确的有()。A.资产的计税基础是指账
招标文件一般包括:投标邀请书、投标人须知、投标文件格式及( )等。A.评标标准和
下列物质中,食物的特殊动力作用最强的是A.糖 B.脂肪 C.蛋白质 D.维
最新回复
(
0
)