首頁考試吧論壇Exam8視線考試商城網(wǎng)絡(luò)課程模擬考試考友錄實用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托?荚
托業(yè)考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計算機 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報 關(guān) 員
外 銷 員
價格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護士
會計從業(yè)資格
基金從業(yè)資格
統(tǒng)計從業(yè)資格
經(jīng)濟師
精算師
統(tǒng)計師
會計職稱
法律顧問
ACCA考試
注冊會計師
資產(chǎn)評估師
審計師考試
高級會計師
注冊稅務(wù)師
國際內(nèi)審師
理財規(guī)劃師
美國注冊會計師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價師
二級建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
造價員考試
注冊計量師
環(huán)保工程師
化工工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
監(jiān)理工程師
房地產(chǎn)估價
土地估價師
安全評價師
房地產(chǎn)經(jīng)紀(jì)人
投資項目管理師
環(huán)境影響評價師
土地登記代理人
繽紛校園 實用文檔 英語學(xué)習(xí) 作文大全 求職招聘 論文下載 訪談|游戲
計算機等級考試
您現(xiàn)在的位置: 考試吧 > 計算機等級考試 > 計算機二級 > C語言 > 上機題庫 > 正文

2013年計算機二級C語言上機題庫及答案解析(10)

  填空題

  給定程序中已建立一個帶有頭結(jié)點的單向鏈表,鏈表中的各結(jié)點按結(jié)點數(shù)據(jù)域中的數(shù)據(jù)遞增有序鏈接。函數(shù)fun的功能是:把形參x的值放入一個新結(jié)點并插入到鏈表中,插入后各結(jié)點數(shù)據(jù)域的值仍保持遞增有序。

  請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

  注意:源程序存放在考生文件夾下的BLANK1.C中。

  不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

  給定源程序:

  #include

  #include

  #define N 8

  typedef struct list

  { int data;

  struct list *next;

  } SLIST;

  void fun( SLIST *h, int x)

  { SLIST *p, *q, *s;

  s=(SLIST *)malloc(sizeof(SLIST));

  s->data=___1___;

  q=h;

  p=h->next;

  while(p!=NULL && x>p->data) {

  q=___2___;

  p=p->next;

  }

  s->next=p;

  q->next=___3___;

  }

  SLIST *creatlist(int *a)

  { SLIST *h,*p,*q; int i;

  h=p=(SLIST *)malloc(sizeof(SLIST));

  for(i=0; i

  { q=(SLIST *)malloc(sizeof(SLIST));

  q->data=a[i]; p->next=q; p=q;

  }

  p->next=0;

  return h;

  }

  void outlist(SLIST *h)

  { SLIST *p;

  p=h->next;

  if (p==NULL) printf("\nThe list is NULL!\n");

  else

  { printf("\nHead");

  do { printf("->%d",p->data); p=p->next; } while(p!=NULL);

  printf("->End\n");

  }

  }

  main()

  { SLIST *head; int x;

  int a[N]={11,12,15,18,19,22,25,29};

  head=creatlist(a);

  printf("\nThe list before inserting:\n"); outlist(head);

  printf("\nEnter a number : "); scanf("%d",&x);

  fun(head,x);

  printf("\nThe list after inserting:\n"); outlist(head);

  }

  解題思路:

  本題是要求在一個有序的鏈表中插入一個數(shù),插入后各結(jié)點仍然是有序的。程序中共有三要填上適當(dāng)?shù)膬?nèi)容,使程序能運行出正確的結(jié)果。

  第一處:在函數(shù)fun的開始處,已經(jīng)對結(jié)構(gòu)指針s分配了內(nèi)存,其中data是一個整型變量,實際要求填入一個整型數(shù)據(jù)。根據(jù)本題要求在一個鏈表插入一個整型數(shù),該數(shù)已通過函數(shù)的形參x傳入,因此應(yīng)填x。

  第二處:使用一個while循環(huán)找出要插入一個數(shù)的位置,在循環(huán)體中q實際上保留當(dāng)前鏈表p位置的臨時變量,如果x>p->data時,那么再移動鏈表指針到下一個結(jié)果,再進行判斷是否符合條件,如果仍大于,則仍q保留鏈表p的位置。因此,此處應(yīng)填p。

  第三處:當(dāng)找到結(jié)點位置后,就要插入這個數(shù),完成插入過程。由于函數(shù)體中分配了結(jié)構(gòu)指針s,s的next指針已經(jīng)指向了p,所以,當(dāng)前位置q的next指針就應(yīng)該指向指針s完成鏈表的鏈接。因此,此處應(yīng)填s。

1 2 3 4 下一頁
文章搜索
計算機等級考試欄目導(dǎo)航
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。