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

下載本文檔

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

文檔簡(jiǎn)介

1、真題二級(jí)C語言機(jī)試真題2006年09月一、填空題第1題:給定程序中,函數(shù)fun的功能是:將形參 std所指結(jié)構(gòu)體數(shù)組中年齡最 大者的 數(shù)據(jù)作為函數(shù)值返回,并在main函數(shù)中輸出。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容,并把下畫線刪除,使程序得出正確的結(jié)果。注意局部源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù) main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所 編寫的假設(shè)干表達(dá)式或語句。試題源程序#inelude vstdio.h >typedef struct char n ame10; int age;)STD;STD fun(STD std, int n)廠 foundFSTD max; i

2、nt i;max= ; for(i=1; i <n; i+)fou ndif(max.age < (2) ) max=stdi; return max;mai n()STD std5="aaa", 17, "bbb", 16, "ccc", 18, "ddd", 17, "eee", 15; STD max; max=f un( std, 5);foundprin tf("nThe result: n");prin tf("nName: %s, Age:

3、 %dn", (3) , max.age);參考答案:(1) *stdstdi.agemax. name此題是從結(jié)構(gòu)體中找出年齡最大的記錄。填空1 :給存放最大者 max賦初 值,所以應(yīng)填:*std。填空2 : 當(dāng)前最大者的年齡和結(jié)構(gòu)中所有的年齡進(jìn)行比較,所以應(yīng)填:stdi.age 。填空3 :輸出最大者的姓名和年齡,所以 應(yīng)填:。二、改錯(cuò)題 第2題:以下給定程序是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表, 并用隨機(jī)函數(shù)為各結(jié)點(diǎn)賦值。函數(shù)fun()的功能是:將單向鏈表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來,并作為函數(shù)值返回。其累加和通過函數(shù)值返回main()函數(shù)。例如,假設(shè)n

4、=5 ,那么應(yīng)輸出8.391667。請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題源程序#include vstdio.h >#include <stdiib.h >typedef struct aa int data;struct aa *n ext;NODE;int fun(NODE *h) int sum=0;NODE *P;foundi/p=h;while(P- >next)if(p- >data%2=0)sum+=p- >data;found"/p=h- >n ext;

5、return sum;NODE *creatlink(int n)NODE *h, *p, *s, *q ; int i, x;h=p=(NODE *)malloc(si zeof(NODE); for(i=1; i<=n; i+)s=(NODE *)malloc(sizeof(NODE); s- > data=ra nd()%16;s- > next=p- >next;p- > n ext=s;p=p->n ex t;p- > n ext=NULL; retur n h; outli nk(NODE *h, FILE *Pf) NODE *p; p=

6、h- >next; fprintf(Pf, "nnTHE LIST:nn HEAD"); while(P) fprintf(Pf, "->%d", p- > data); p=p- >next; fprintf(pf, "n"); outresult(i nt s, FILE *pf) fpri ntf(Pf, "n The sum of eve n nu mbers : %dn", s);mai n() NODE *head; i nt eve n; head=creatl in k(12

7、); head->data=9000; outl in k(head, stdout); even=fun(head); printf("nThe result :n"); outresult(even, stdout); 參考答案:(1) 錯(cuò)誤: while(p- >next) 正確: while(p!=NULL) 或 while(p) (2) 錯(cuò)誤: p=h- >next ;正確: p=p- > next ;錯(cuò)誤 1:循環(huán)時(shí)要注意循環(huán)中止的條件是p!=NULL( 最后一個(gè)結(jié)點(diǎn)為空,就像 字符串的最后一個(gè)字符為結(jié)尾標(biāo)志符0 '一樣),whi

8、le(p- >next) 使循環(huán)提前結(jié) 束,所以應(yīng)改為 while(p!=NULL) 或 while(p) 。 錯(cuò)誤2 :當(dāng)累加完后,應(yīng)該把指針指向下一個(gè)結(jié)點(diǎn)的指針賦給p,而不是把頭指針指向的下一個(gè)結(jié)點(diǎn)賦給p,否 那么還會(huì)造成死循環(huán),所以p=h- >next ;應(yīng)該改為p=p- >next; 。三、編程題 第 3 題:請(qǐng)編寫函數(shù) fun() ,它的功能是:將帶頭結(jié)點(diǎn) 單向鏈表按 data 域由大到小排序 ( 排序時(shí)不考慮頭結(jié)點(diǎn) ) ,主函數(shù)用 隨機(jī)函數(shù)為各節(jié)點(diǎn) data 域賦值,頭結(jié)點(diǎn) data 域賦值為 0。 注意 局部源程序給出如下。 請(qǐng)勿改動(dòng)主函數(shù) main 和其他函數(shù)

9、中的 任何內(nèi)容,僅在函數(shù) fun 的花括號(hào)中填入 所編寫的假設(shè)干語句。 _ 試題源程序 #include < stdio.h > #include <coni0.h > struct asint data;struct aa *next;void fun(struct aa *p) main() int i, n, m=100;struct aa *h=NULL, *s=NULL, *p=NULL;clrscr()s=(struct aa*) malloc(sizeof(struct aa);h=s; h- > data=0; h- >next=NULL;p

10、rintf("Please input n:"); scanf("%d", n); for(i=1; i <=n; i+) p=(struct aa*) malloc(sizeof(struct aa); p->data=rand()%m; P- > next=NULL; printf("%d", P- >data); s- > next=p; s=s- >next;fun(h);printf("n");for(h=h- >next; h!=NULL; h=h- > nnext) printf("%d", h- >data); 參考答案:void fun(struct as *p) int temp; struct as *1st; for(p=p->next;p- >next!=NULL; p=p- >next) for(1st=p- >next; 1st!=NULL; 1st=1st- > next) if(1st- >data >p- >da

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論