南京大學2004年C語言期末試卷_第1頁
南京大學2004年C語言期末試卷_第2頁
南京大學2004年C語言期末試卷_第3頁
南京大學2004年C語言期末試卷_第4頁
南京大學2004年C語言期末試卷_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言程序設計期末筆試試卷(2004年6月4日上午,120分種,閉卷)系別 學號 姓名 成績 一、 單項選擇1、以下關于C源程序的敘述中正確的是 (1) 。A. 所有的變量聲明只能出現(xiàn)在函數(shù)之內B. 所有的預處理命令只能出現(xiàn)在函數(shù)之外C. 在一個函數(shù)的定義體內允許定義另一個函數(shù)D. 在一個函數(shù)的調用表達式內允許調用另一個函數(shù) 2、以下標識符中除 (2) 外,其它都必須先聲明后使用。A. 變量 B. 數(shù)據(jù)類型 C. 語句標號 D. 枚舉常量 3、聲明局部變量時若缺省存儲類型說明符,則等同于使用了以下存儲類型說明符中的 (3) 。A. auto B. register C. static D. e

2、xtern 4、已有聲明:char a4=”Tom”, b10=”Tom”; 以下表達式中只有 (4) 的值可以用于正確表示a數(shù)組和b數(shù)組中存儲的字符串是相等的。A. strcmp(a,b) B. !strcmp(a,b) C. a=b D. a4=b4 5、已有聲明:“int x=1,y10=0;”以下表達式中除 (5) 外,其它都是錯誤的。 A. *&x=1 B. &x=0 C. y=x+; D. +(x=y0) 6、已有聲明“int a33=1,2,3,4,5,6,*p=&a00;”,則以下表達式中除 (6) 外其它的值均為3。A. a11 B. *(a1+1) C. *p+4 D. p

3、4 7、聲明“int *fp();”中出現(xiàn)的標識符fp是 (7) 。 A. int 型變量 B. 指向int型變量的指針變量 C. 指向返回“int *”類型值的函數(shù)的指針變量 D. 返回值為“int *”類型的函數(shù)8、以下對象中除 (8) 外,其它均在程序開始執(zhí)行前獲得存儲空間并一直保持到程序終止運行。 A.函數(shù) B.全局變量 C. 靜態(tài)局部變量 D. 函數(shù)的形式參數(shù) 9、已知有函數(shù) f 的定義:void f(int x, int n) int j; for(j=0;jb?(a,b):(b,a); ,則在調用函數(shù)f(2,3)后得到的返回值是 (12) 。 A. 2 B. 3 C. 2和3 D

4、. 3和2 13、以下聲明中完全正確(沒有編譯錯誤和警告錯誤)的是 (13) 。 A. char n=2, pn; B. char *p2=“a”,”b”,”c”;C. char (*p)2=”a”; D. char *p(); 14、 已知有聲明int j,a4=1,2,3,4,5,*p=&a00; 執(zhí)行了語句 for(j=0;jname); D. puts(-p)-name); 結構定義與聲明struct p char name20; struct int y, m,d; birthday;ps2=“Zhao”,1980,2,3,”Wang”,1985,4,4,*p=ps+1;18、以下語

5、句中都可以包含由一對花括號組成的復合語句, break語句不可以放置在 (18) 語句所帶的復合語句內。A. switch B. while C. do/while D. if/else 19、 若程序中需要調用庫函數(shù)getchar(),則在函數(shù)調用之前必須出現(xiàn)預處理命令 (19) 。A. #include B. #include C. #include D. #include 20、若程序中需要對某個已經存在的文本文件中的原有部分數(shù)據(jù)直接做更新操作,則在調用fopen函數(shù)時所選用的文件打開模式應當是 (20) 。 A. w B. r+ C. w+ D. a+ 二、 填空1、表達式“(doub

6、le)(int)1.5+1%2”的值是 (1) 。 2、數(shù)學計算式“|sin ex+y |”的C語言表達式是 (2) 。3、需要兩個操作數(shù)并且其數(shù)據(jù)類型必須都是int、char或枚舉型的運算符是 (3) 。 4、與表達式“x=0”等價的表達式是 (4) 。 5、在表達式*(s+e)中,操作數(shù)s的類型應為 (5) ,e的類型應為 (6) 。 6、除 (7) 外的其它c語言語句都必須用分號結束。 7、如果函數(shù)體內的return語句中出現(xiàn)表達式(例如:return x*x;),則定義函數(shù)時的返回值類型不能為 (8) 。 8、當 (9) 函數(shù)中執(zhí)行了return語句時,程序立即終止運行。 9、調用函數(shù)

7、strlen(“bbxbb”)后的返回值是 (10) 。 10、在函數(shù)定義的形式參數(shù)表中的參數(shù)可以聲明為除 (11) 類型外的任何已定義的合法數(shù)據(jù)類型。 11、已知在一個程序的開始處有#include,則程序中出現(xiàn)的語句“fprintf(stdout,”%d”,25);”可以用 (12) 替換。 12、以下程序運行時輸出結果第一行為 (13) ,第二行為 (14) 。 enum ONE, TWO,THREE;#define S(x) (x)*(x)#define Y(x) 1/xmain() printf(%dn,S(ONE)+S(TWO); printf(%d,Y(TWO+THREE); 1

8、3、以下程序運行時輸出結果的第一行為 (15) ,第二行為 (16) 。 #includeint f1(int n) int s=0; return s+=n; int f2(int n) static int s; return s+=n; main() int i,sum1=0,sum2=0; for(i=1;i=2?+x:-x; for(i=0;ix)yi+; else if(yix) yi-;main() int i,a5=2,3,4,6,9,b=2; f(a,4,b); printf(%dn,b); for(i=0;i5;i+)printf(%d,ai);15、以下程序運行時輸出結果

9、第一行為 (19) ,第二行為 (20) 。 #include#includemain() char s=Thank; int i,j,k; for(i=0;si!=0;i+) if(islower(si)si=si-a+A; /* 函數(shù)islower(c)功能:判斷c是否小寫字母的編碼*/ puts(s); for(j=i-1,k=sj;j0;j-)sj=sj-1; sj=k; puts(s);16、以下程序運行時輸出結果第一行是 (21) ,第二行是 (22) 。 void f(int x) int j,s; if(x0=0) for(j=0,s=0;j4;j+) s=s*2+xj; pr

10、intf(%xn,s); f (x+4); main() int a=1,1,1,0,0,0,1,1,-1; f(a);17、以下程序運行時若鍵盤輸入3,則輸出結果第一行為 (23) ,第二行為 (24) ,第三行為 (25) . void m(int *s, int n) int i=n-1,j=n/2,k; si*n+j=1; for(k=2;k=n*n;k+) if(i+1=n&j+1n) i=0;j+; else if(i+1n&j+1=n) i+;j=0; else if(i+1=n&j+1=n | s(i+1)*n+j+1!=0) i-; else i+;j+; si*n+j=k;

11、 main() int i,j,n,*p,*q; scanf(%d,&n); p=(int *)malloc(n*n*sizeof(int); if(p=0)exit(1); q=p; for(i=0;in*n;i+)qi=0; m(p,n); for(i=0;in;i+) for(j=0;jn;j+) printf(%d ,*q+); printf(n); 三、 完善程序1、以下程序中函數(shù)f 對x 指向的數(shù)組中前n個不超過4位的正整數(shù)做數(shù)據(jù)加密。加密方法:將組成這個正整數(shù)的每一位數(shù)字加上該位數(shù)在數(shù)據(jù)中位置的序號(序號規(guī)定:個位為1,十位為2,百位為3,千位為4),若某位數(shù)加上其序號的值大于9

12、,則用該數(shù)除以10的余數(shù)替換。例如,原始數(shù)據(jù)為23,574,9815時,加密后的數(shù)據(jù)為44,895,3136。void f(int (1) , int n) int i,j,k,s,t4; for(i=0;i=0;k-) s=s*10+tk; xi=s; main() int i,x=23,574,9815; f(x,3); for(i=0;i3;i+)printf(%d,xi);2、函數(shù)str_del功能:從s字符串中刪除所有出現(xiàn)的t子串,程序正確時輸出結果為He a student. She a student too.。#include (4) str_del(char s, char

13、t) int i,j,k,u; for(i=0; (5) ;i+) for(j=i,k=0;tk!=0;j+,k+) if(sj!=tk) (6) ; if(tk=0) for(u=0;sj+u!=0;u+) si+u= (7) ; si+u=0; return s;main() char line80=He is a student. She is a student too.,str10=is; puts(str_del(line,str);3、以下程序中函數(shù)count統(tǒng)計形參a指向的結構數(shù)組的n個元素中(n為函數(shù)形參)不同的neme各自出現(xiàn)的次數(shù),并將統(tǒng)計結果保存在s指向的結構數(shù)組中,函

14、數(shù)返回s數(shù)組中有效數(shù)據(jù)的個數(shù)。例如,在main函數(shù)中調用count函數(shù)統(tǒng)計x數(shù)組的數(shù)據(jù),返回后y數(shù)組中得到的統(tǒng)計結果為3,”A”,1,”B”,1,”C”。#include#includetypedef struct int num; char name5; PT;int count(PT *a , int n , PT *s) int k=0; PT *p,*q; for(p=a;p (8) ;p+) for(q = s;qname,q-name)=0) q-num+; break; if( k=0 | q= (9) ) strcpy(q-name , p-name); (10) ; k+;

15、return k;main() PT x5=1,A,1,B,1,C,1,A,1,A,y5=0,*p; int m; m=count(x,5,y); for( (11) ;pname, p-num);4、已知結點的數(shù)據(jù)類型定義如下,函數(shù) sort 對 head 指向的一個由該類型的結點構造的單向鏈表中存儲的數(shù)據(jù)做排序處理,即根據(jù)結點中num成員的值從大到小排序,采用的排序算法為選擇法。typedef struct node int num; char name10; struct node *next;NODE;void sort( NODE *head) NODE temp,*tp,*p,*m

16、axp; if(head=NULL)printf( The list is empty!); else while(head-next!=NULL) maxp=head; p= (12) ; while(p!=NULL) if(p-nummaxp-num)maxp= (13) ; p=p-next; if( (14) ) /* 當條件滿足時交換兩個結點的數(shù)據(jù)域 */ temp=*head; *head=*maxp;*maxp=temp; tp=head-next;head-next=maxp-next;maxp-next=tp; head= (15) ; C語言程序設計期末筆試參考答案(2004年6月4日上午9:0011:00)【答題】一、單項選擇(20分)1. D2. C3. A4. B5. A6. C7. D8. D9. D10. A11. B12. A13. D14. B15. C16. B17. C18. D19. A20. B二、填空(25分)1. 2.02. fabs(sin(exp(x+y)3. %4. !x5. 指針型 6. 整型7. 復合語句8. void9. main10.

溫馨提示

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

評論

0/150

提交評論