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

2013年3月計(jì)算機(jī)等考二級(jí)C語言模擬試題及答案9

 >>>考試吧考后首發(fā)2013年3月計(jì)算機(jī)等考試題答案  


  第09套:

  給定程序中,函數(shù)fun的功能是將不帶頭節(jié)點(diǎn)的單向鏈表結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)從小到大排序。即若原鏈表結(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:10、4、2、8、6,排序后鏈表結(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:2、4、6、8、10。

  請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除, 使程序得出正確的結(jié)果。

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

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

  給定源程序:

  #include

  #include

  #define N 6

  typedef struct node {

  int data;

  struct node *next;

  } NODE;

  void fun(NODE *h)

  { NODE *p, *q; int t;

  p = h;

  while (p) {

  q = __1__ ;

  while (__2__)

  { if (p->data > q->data)

  { t = p->data; p->data = q->data; q->data = t; }

  q = q->next;

  }

  p = __3__ ;

  }

  }

  NODE *creatlist(int a[])

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

  h=NULL;

  for(i=0; i

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

  q->data=a[i];

  q->next = NULL;

  if (h == NULL) h = p = q;

  else { p->next = q; p = q; }

  }

  return h;

  }

  void outlist(NODE *h)

  { NODE *p;

  p=h;

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

  else

  { printf("\nHead ");

  do

  { printf("->%d", p->data);

  p=p->next; }

  while(p!=NULL);

  printf("->End\n");

  }

  }

  main()

  { NODE *head;

  int a[N]= {0, 10, 4, 2, 8, 6 };

  head=creatlist(a);

  printf("\nThe original list:\n");

  outlist(head);

  fun(head);

  printf("\nThe list after inverting :\n");

  outlist(head);

  }

  解題思路:

  本題是考察使用鏈表方法,使用兩重while循環(huán)語句,對(duì)鏈表的結(jié)點(diǎn)數(shù)據(jù)進(jìn)行升序排列。

  第一處:由于外循環(huán)變量使用p指針,內(nèi)循環(huán)變量使用q指針,所以q指向必須指向p的next

  指針,因此應(yīng)填寫:p.next。

  第二處:判斷內(nèi)循環(huán)q指針是否結(jié)束,所以應(yīng)填:q。

  第三處:外循環(huán)控制變量p指向自己的next指針,所以應(yīng)填:p.next。

  ***************************************************

  給定程序MODI1.C中函數(shù)fun的功能是: 將s所指字符串中的字母轉(zhuǎn)換為按字母

  序列的后續(xù)字母(但Z轉(zhuǎn)換為A, z轉(zhuǎn)換為a),其它字符不變。

  請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤, 使它能得出正確的結(jié)果。

  注意: 不要改動(dòng)main函數(shù), 不得增行或刪行, 也不得更改程序的結(jié)構(gòu)!

  給定源程序:

  #include

  #include

  void fun (char *s)

  {

  while(*s!='@')

  { if(*s>='A' & *s<='Z' || *s>='a' && *s<='z')

  { if(*s=='Z') *s='A';

  else if(*s=='z') *s='a';

  else *s += 1;

  }

  (*s)++;

  }

  }

  main()

  { char s[80];

  printf("\n Enter a string with length < 80. :\n\n "); gets(s);

  printf("\n The string : \n\n "); puts(s);

  fun ( s );

  printf ("\n\n The Cords :\n\n "); puts(s);

  }

  解題思路:

  第一處: 使用while循環(huán)來判斷字符串指針s是否結(jié)束,所以應(yīng)改為:while(*s)。

  第二處: 取字符串指針s的下一個(gè)位置,所以應(yīng)改為:s++;。

  ***************************************************

  請(qǐng)編寫函數(shù)fun, 函數(shù)的功能是: 移動(dòng)一維數(shù)組中的內(nèi)容; 若數(shù)組中有n個(gè)整數(shù), 要求把下標(biāo)從0到p(含p,p小于等于n-1)的數(shù)組元素平移到數(shù)組的最后。

  例如, 一維數(shù)組中的原始內(nèi)容為: 1,2,3,4,5,6,7,8,9,10; p的值為3。移動(dòng)

  后, 一維數(shù)組中的內(nèi)容應(yīng)為: 5,6,7,8,9,10,1,2,3,4。

  注意:部分源程序在文件PROG1.C中。

  請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。

  給定源程序:

  #include

  #define N 80

  void fun(int *w, int p, int n)

  {

  }

  main()

  { int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

  int i,p,n=15;

  printf("The original data:\n");

  for(i=0; i

  printf("\n\nEnter p: ");scanf("%d",&p);

  fun(a,p,n);

  printf("\nThe data after moving:\n");

  for(i=0; i

  printf("\n\n");

  NONO();

  }

  解題思路:

  本題是考察一維數(shù)組的操作。

  1. 定義一維數(shù)組中間變量b,把n值后面數(shù)組中的內(nèi)容存入b中。

  2. 再把m前的數(shù)組中的內(nèi)容存入b中。

  3. 最后把數(shù)組b的內(nèi)容依次存放到w中。

  參考答案:

  void fun(int *w, int p, int n)

  {

  int i, j = 0, b[N] ;

  for(i = p + 1 ; i < n ; i++) b[j++] = w[i] ;

  for(i = 0 ; i <= p ; i++) b[j++] = w[i] ;

  for(i = 0 ; i < n ; i++) w[i]= b[i] ;

  }

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