阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】N个游戏

题型:填空题

问题:

阅读以下说明和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;/*返回最后一个游戏者(即获胜者)的编号*/

}

考点:计算机软件水平考试初级程序员计算机水平考试初级程序员2013年上半年下午真题
题型:填空题

两圆相切,圆心距为9cm,已知其中一圆半径为5cm,另一圆半径为(    )。

题型:填空题

若关于x的方程2(x-3)+ax2=bx是一元一次方程,则a,b满足(  )

A.a=0且b≠0

B.a=-1且b≠0

C.a=0且b≠2

D.a=1且b≠2

题型:填空题

能防止水滴、尘土、铁屑或其他物体从上方或斜上方落入电动机内部,适用于较清洁的场所的电动机属于()。

A、开启式

B、防护式

C、防尘式

D、防爆式

题型:填空题

法制工作机构在行政复议决定作出后十五日内,应将哪些材料报上一级粮食行政机关备案?

题型:填空题

文化具有符号性、社会群体性和复合型。

更多题库