二級(jí)C語(yǔ)言機(jī)試真題2010年03月_第1頁(yè)
二級(jí)C語(yǔ)言機(jī)試真題2010年03月_第2頁(yè)
二級(jí)C語(yǔ)言機(jī)試真題2010年03月_第3頁(yè)
二級(jí)C語(yǔ)言機(jī)試真題2010年03月_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 真題 二級(jí) C語(yǔ)言機(jī)試真題 2010 年 03 月一、填空題第 1 題:給定程序中已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,在 main 函數(shù)中將多次調(diào)用 fun 函數(shù),每調(diào)用一次 fun 函數(shù),輸出鏈表尾部結(jié)點(diǎn)中的數(shù)據(jù),并釋放該結(jié)點(diǎn),使 鏈表縮短。 注意 部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù) main 和其他函數(shù)中的任何內(nèi)容,僅在函數(shù) fun 的橫線上填入所 編寫(xiě)的若干表達(dá)式或語(yǔ)句。 試題源程序 #include #include #define N 8typedef struct listint data;struct list *next;SLIST;void fun(SLIST *p)SLIST

2、 *t, *s;t=P- next;s=p;while(t- next!=NULL)s=t;*found*/t=t- (1) ;foundprintf( ”%d”, (2) ); s- next=NULL:foundfree( (3) );SLIST *creatlist(int *a)SLIST *h, *p, *q;int i;h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; i data=ai;p- next=q;p=q;P- next=0;return h;void outlist(SLIST *h)SLIST *p;p=h- next; if(p

3、=NULL) printf( “ nThe list is NULL!n); elseprintf(nHead);doprintf(- %d, P- data);p=p- next;while(P!=NULL);printf(- Endn);main()SLIST *head;int aN=(11, 12, 15, 18, 19, 22, 25, 29);head=creatlist(a);printf(nOutput from head:n);outlist(head);printf(nOutput from tail:n);while(head- next!=NULL) fun(head)

4、;printf(nn);printf (nOutput from head again:n);outlist(head);參考答案:(1) next (2) t- data (3) t填空 1:要求輸出鏈表尾部的數(shù)據(jù),函數(shù)利用 while 循環(huán)語(yǔ)句找出鏈表尾部的指針并存入臨時(shí)變量 s 中,即每循環(huán)一次就要判斷鏈表是否已結(jié)束位置, 如果 是,則退出循環(huán),進(jìn)行輸出,由于是通過(guò) t 指針變量進(jìn)行操作的,因此,都要取 t 的 next 指針重新賦給 t 來(lái)實(shí)現(xiàn),所以本處應(yīng)填 next 。 填空 2 :輸出最后一個(gè) 結(jié)點(diǎn)的數(shù)據(jù),所以應(yīng)填 t- data 或(*t).data 。 填空 3:輸出最后一個(gè)結(jié)

5、點(diǎn)的 數(shù)據(jù)后,并把此結(jié)點(diǎn)刪除,程序要求釋放內(nèi)存,故應(yīng)填 t 。二、改錯(cuò)題第 2 題:給定程序中函數(shù) fun 的功能是:將一個(gè)由八進(jìn)制數(shù)字字符組成的字符串轉(zhuǎn)換為 與其值相等的十進(jìn)制整數(shù)。規(guī)定輸入的字符串最多只能包含 5 位八進(jìn)制數(shù)字字 符。例如,若輸入: 77777,則輸出將是: 32767。 請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。 注意 不要改動(dòng) main 函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。 試題源程序 #include #include #include int fun(char *p) int n;foundn=*p- o;p+;while(*p!=0) n=n*8+*p- o

6、;foundp+; return n;main()char s6; int i; int n;printf(Enter a string(Ocatal digits):); gets(s);if(strlen(s) 5)printf(Error: String too longer!nn); exit(0);for(i=0; si; i+)if(si 7)printf(Error: %c not is ocatal digits!nn, si);exit(0);printf(The original string:); puts(s);n=fun(s);printf(n%s is conver

7、ed to integer number: %dnn, s, n);參考答案:(1) 錯(cuò)誤:*p 正確:*p (2) 錯(cuò)誤:o; 正確:o;錯(cuò)誤 1:函數(shù)的形參用的是小寫(xiě) p,而函數(shù)中調(diào)用參數(shù)時(shí)用了大寫(xiě) p, *p 錯(cuò) 寫(xiě)成了*p 。 錯(cuò)誤 2:編譯后可知,o錯(cuò)寫(xiě)成了o。三、編程題第 3 題:請(qǐng)編寫(xiě)函數(shù) fun() ,它的功能是:實(shí)現(xiàn)兩個(gè)字符串的連接 ( 不使用庫(kù)函數(shù) strcat() ,即把 p2 所指的字符串連接到 p1 所指的字符串后。 例如,分別輸入下面兩個(gè)字符串:FirstString-SecondString則程序輸出:FirstString-SecondString 注意 部分源

8、程序給出如下。請(qǐng)勿改動(dòng)主函數(shù) main 和其他函數(shù)中的任何內(nèi)容,僅在函數(shù) fun 的花括號(hào)中填入 所編寫(xiě)的若干語(yǔ)句。 試題源程序 #include #include void fun(char p1, char p2)main()char s180, s240;clrscr();printf(Enter s1 and s2:n); scanf(%s%s, s1, s2);printf(s1=%sn, s1);printf(s2=%sn, s2); printf(Invoke fun(s1, s2):n);fun(s1, s2);printf(After invoking:n);printf(%sn, s1);參考答案:void fun(char p1, char p2) int i=0, n=0; char *p=p1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論