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

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

試題四(共15分)
    閱讀以下說(shuō)明和c函數(shù),填補(bǔ)c函數(shù)中的空缺(1)—(5),將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。  
【說(shuō)明】  
    約瑟夫問(wèn)題如下所述:有n個(gè)人(編號(hào)為1~n)圍成一圈,從第一個(gè)人開(kāi)始,按照順時(shí)針?lè)较驈?開(kāi)始計(jì)數(shù)到m(即數(shù)到第m個(gè)人),讓其出圈,然后再?gòu)钠漤槙r(shí)針?lè)较虻南乱粋€(gè)人開(kāi)始,依次計(jì)數(shù)到m并讓其出圈,重復(fù)這個(gè)過(guò)程,直到所有人都出圈,試給出出圈者的順序。  
    以n=5,m=3為例,其中圈順序?yàn)?,1,5,2,4,過(guò)程如下圖所示。
    
    下面的函數(shù)Joseph()在單向循環(huán)鏈表表示的基礎(chǔ)上訴出圈的過(guò)程。 
    n為5時(shí)的單向循環(huán)鏈表結(jié)構(gòu)如下圖所示。
    
    鏈表的結(jié)合類型定義如下: 
    typedef struct Node  {
        int no;
        struct Node*next; 
    }Node,*LinkList;  
    函數(shù)Joseph(LinkList tail,int n,int m)的處理思路如下:  
    (1)用k計(jì)數(shù),每次都從0開(kāi)始,當(dāng)計(jì)數(shù)到m-1時(shí)結(jié)束本次計(jì)數(shù);  
    (2)通過(guò)指針p查找出圈者所對(duì)應(yīng)的結(jié)點(diǎn),當(dāng)K的值等于是m-1時(shí),P應(yīng)指向出圈者對(duì)應(yīng)結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn);  
    (3)通過(guò)刪除結(jié)點(diǎn)表示出圈處理;  
    (4)當(dāng)m大于圈中剩余人數(shù)時(shí),為了避免重復(fù)計(jì)數(shù),用模運(yùn)算修改m的值; 
    (5)計(jì)數(shù)和刪除操作完成后再恢復(fù)m的原值;
【C函數(shù)】  
void Joseph(LinkList tail,int n,int m) 
{     /*單循環(huán)鏈表包含n個(gè)結(jié)點(diǎn),tail為鏈表的尾指針,m為計(jì)數(shù)值*/
LinkList p,q; 
int k,i,old_m=m; 
 
p=tail;  
for(i=n;i>1;--i)  {                       /*i 表示圈中剩余人數(shù)*/ 
          m=m%i;                         /*避免重復(fù)計(jì)數(shù)*/ 
if(0==m)    m=(1); 
   k=0;  
       while(k<(2))   {
            (3);  
k++; 
       }  
       printf("%d\n",(4));    /*輸出出圈者的編號(hào)*/ 
q=p->next;  
(5)=q->next;       /*刪除出圈者對(duì)應(yīng)的結(jié)點(diǎn)*/ 
free(q); 
          m=old_m; 
     }  
     printf(“%d\n”,p->No); 


相關(guān)試題

推薦文章