女人久久久www免费人成看片,国内自拍偷拍网,国产一区二区三区免费在线观看,欧美精品三区四区,91久久国产综合久久91,欧美成人精品第一区二区三区 ,美女成人在线观看

軟題庫 移動APP 掃碼下載APP 隨時隨地移動學(xué)習(xí) 培訓(xùn)課程
試卷名稱 2013年上半年程序員考試下午真題試題(案例分析)
考試中心《2013年上半年程序員考試下午真題試題(案例分析)》在線考試
試卷年份2013年上半年
試題題型【分析簡答題】
試題內(nèi)容

閱讀以下說明和C程序,填充函數(shù)中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
N個游戲者圍成一圈,從1~N順序編號,游戲方式如下:從第一個人開始報數(shù)(從1到3報數(shù)),凡報到3的人退出圈子,直到剩余一個游戲者為止,該游戲者即為獲勝者。
下面的函數(shù)playing(LinkList head)模擬上述游戲過程并返回獲勝者的編號。其中,N個人圍成的圈用一個包含N個結(jié)點的單循環(huán)鏈表來表示,如圖4-1所示,游戲者的編號放在結(jié)點的數(shù)據(jù)域中。

在函數(shù)中,以刪除結(jié)點來模擬游戲者退出圈子的處理。整型變量c(初值為1)用于計數(shù),指針變量p的初始值為head(如圖4-1所示)。游戲時,從p所指向的結(jié)點開始計數(shù),p沿鏈表中的指針方向遍歷結(jié)點,c的值隨p的移動相應(yīng)地遞增。當(dāng)c計數(shù)到2時,就刪除p所指結(jié)點的下一個結(jié)點(因下一個結(jié)點就表示報數(shù)到3的游戲者),如圖4-2所示,然后將c設(shè)置為0后繼續(xù)游戲過程。

結(jié)點類型定義如下:
typedef  struct node{
     int  code;       /*游戲者的編號*/
     struct  node  *next;
}NODE,*LinkList;
【C 函數(shù)】
     int  playing(LinkList  head ,int  n)
     {    /* head 指向含有n個結(jié)點的循環(huán)單鏈表的第一個結(jié)點(即編號為1的游戲者) */
     LinkList  p = head ,q;
     int theWinner ,c = 1;
             
 while   (  n  >     (1)  ){
          if (c == 2) { /*當(dāng)c等于2時,p所指向結(jié)點的后繼即為將被刪除的結(jié)點*/
              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;  /*返回最后一個游戲者(即獲勝者)的編號*/
}


相關(guān)試題

推薦文章
合作網(wǎng)站內(nèi)容