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

2013年3月計算機等考二級C語言模擬試題及答案9

來源:考試吧 2013-3-19 11:39:42 考試吧:中國教育培訓第一門戶 模擬考場

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


  第09套:

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

  請在程序的下劃線處填入正確的內容并把下劃線刪除, 使程序得出正確的結果。

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

  不得增行或刪行,也不得更改程序的結構!

  給定源程序:

  #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)語句,對鏈表的結點數(shù)據進行升序排列。

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

  指針,因此應填寫:p.next。

  第二處:判斷內循環(huán)q指針是否結束,所以應填:q。

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

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

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

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

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

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

  給定源程序:

  #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是否結束,所以應改為:while(*s)。

  第二處: 取字符串指針s的下一個位置,所以應改為:s++;。

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

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

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

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

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

  請勿改動主函數(shù)main和其它函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

  給定源程序:

  #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ù)組中的內容存入b中。

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

  3. 最后把數(shù)組b的內容依次存放到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  下一頁
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。