c語言試題 譚浩強(qiáng).doc_第1頁
c語言試題 譚浩強(qiáng).doc_第2頁
c語言試題 譚浩強(qiáng).doc_第3頁
c語言試題 譚浩強(qiáng).doc_第4頁
c語言試題 譚浩強(qiáng).doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言期末考試試題(譚浩強(qiáng)版) 2011-7-8 20:55 2011-7-8 21:23 最佳答案 C語言期末考試試題2008年04月12日 星期六 00:22一 選擇題(24分,每小題2分)1已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的是()。A 存放讀入數(shù)據(jù)項(xiàng)的存儲區(qū)B 存放讀入數(shù)據(jù)的地址或指向此地址的指針C 一個(gè)指向所讀文件的文件指針D 一個(gè)整形變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)2以下程序的輸出結(jié)果為( )。main( ) int i=010,j=10; printf(%d,%dn,i+,j-);A 11,9B 9,10C 8,10D 9,93設(shè)a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是( )。a=125.534;a=20.0/3;a=(int)125.521%4;a=52;A 125,6,31,1B 125,6,1,20C 125,6.666666,31,20D 125.534,6.666666,2,204設(shè)i和k都是int類型,則for循環(huán)語句( )。for(i=0,k=-1;k=1;i+,k+) printf(*n);A 循環(huán)結(jié)束的條件不合法B 循環(huán)體一次也不執(zhí)行C 循環(huán)體只執(zhí)行一次D 是無限循環(huán)5以下程序的輸出結(jié)果為( )。main( ) char c; int i; for(i=65;i68;i+) c=i+32; switch(c) case a: case b: case c:printf(%c,c);break; default:printf(end); A a,b,c,end B a,a,a,end C a,a,a, D a,b,c,6函數(shù)調(diào)用語句:fseek(fp,-10L,2);的含義是( )。A 將文件位置指針從文件末尾處向文件頭的方向移動(dòng)10個(gè)字節(jié)B 將文件位置指針從當(dāng)前位置向文件頭的方向移動(dòng)10個(gè)字節(jié)C 將文件位置指針從當(dāng)前位置向文件末尾方向移動(dòng)10個(gè)字節(jié) D 將文件位置指針移到距離文件頭10個(gè)字節(jié)處7以下程序的輸出結(jié)果為( )。main( ) int i=0,j=0; while(s1i!=0) i+; while(s2j!=0) s1i+=s2j+; s1i=0; printf(%sn,s1);A sideB countryC sidetryD countryside8下列說法不正確的是( )。A 主函數(shù)main中定義的變量在整個(gè)文件或程序中有效B 不同函數(shù)中,可以使用相同名字的變量C 形式參數(shù)是局部變量D 在一個(gè)函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效9在下列程序段中,枚舉變量 c1的值是( )。enum color red,yellow,blue=4,green,whitec1;c1=yellow; c1=white;A 1B 3C 5D 610設(shè)有說明 int (*ptr)();其中標(biāo)識符ptr是( )。A 是一個(gè)指向整形變量的指針B 是一個(gè)指針,它指向一個(gè)函數(shù)值是int的函數(shù)C 是一個(gè)函數(shù)名D定義不合法11定義由n個(gè)指向整形數(shù)據(jù)的指針組成的數(shù)組p,其正確的方式為( )。A int p;B int (*p)n;C int *pn;D int (*p)( );12具有相同類型的指針類型變量p與數(shù)組a,不能進(jìn)行的操作是( )。A p=a;B *p=a0;C p=&a0;D p=&a;二 判斷對錯(cuò),對的劃“”,錯(cuò)的劃“”(20分,每小題2分) 1參加位運(yùn)算的數(shù)據(jù)可以是任何類型的數(shù)據(jù)。 ( )2若有定義和語句:int a;char c;float f;scanf(%d,%c,%f,&a,&c,&f);若通過鍵盤輸入:10 A 12 5則a=10,c=A,f=12.5。 ( )3C語言把文件看作是一個(gè)字符(字節(jié))的序列。 ( )4若有宏定義:#define S(a,b) t=a;a=b;b=t由于變量t沒定義,所以此宏定義是錯(cuò)誤的。 ( )5在Turbo C中,下面的定義和語句是合法的:file *fp;fp=fopen(a.txt,r); ( ) 6若有定義:char s china;則Turbo C系統(tǒng)為數(shù)組s開辟6個(gè)字節(jié)的內(nèi)存單元。 ( )7若有定義和語句:int a333,5,8,9,12,35,i,sum=0;for(i=0;i3;i+) sum+=ai2-i;則sum=21。 ( )8若有定義和語句:struct student int num; char name10; float score; s5=1,lili,98.5,9,xiaohua,66,*p=s;printf(%d,*p+);輸出結(jié)果是1。 ( ) 9在程序中定義了一個(gè)結(jié)構(gòu)體類型后,可以多次用它來定義具有該類型的變量。 ( )10在Turbo C中,此定義和語句是合法的:enum aa a5,b,cbb;bb=(enum aa)5; ( )三 寫出下列程序的運(yùn)行結(jié)果(36分,每小題6分)1.main( ) int i=29,j=6,k=2,s; s=i+i/j%k-9;/s=i+(i/j)%k-9 printf(“s=%dn”,s);2.main( ) int x=31,y=2,s=0; do s-=x*y; x+=2;y-=3; while(x%3=0);/先執(zhí)行,后判斷 printf(“x=%dty=%dts=%dn”,x,y,s);3.main( ) int a610,20,30,40,50,60,i; invert(a,0,5); for(i=0;i6;i+) printf(“%d,”,ai); printf(“n”);invert(int s ,int i,int j)/倒置 int t; if(ij) invert(s,i+1,j-1);/函數(shù)自身的嵌套調(diào)用,形成循環(huán) t=si; si=sj; sj=t; 4.#include main() char str =The C program,c; int i; for(i=2;(c=stri)!=0;i+) switch(c) case g: +i; break;/由于+i,跳過了g后面的1個(gè)字母 case o: continue; default: printf(“%c”,c); continue; printf(“*”); printf(“n”);5.struct w/結(jié)構(gòu)體 char low; char high;union u/共用體 struct w byte; short word;uw;main( ) int result; uw.word=0x1234; printf(word value:%04xn,uw.word); printf(high byte:%02xn,uw.byte.high); printf(low byte:%02xn,uw.byte.low); uw.byte.low=0x74; printf(word value:%04xn,uw.word); result=uw.word+0x2a34; printf(the result:%04xn,result);6main() char *s2=I love China!,*s1=&s2; char *s3,c,*s4=w; s3=&c; *s3=H; s2=s2+2; printf(%st%ct%st%cn,s2,*s3,s4,*s1);四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(20分,每個(gè)空2分)1.百馬百擔(dān)問題:有100匹馬,馱100擔(dān)貨,大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān),問大、中、小馬各多少匹?main( ) int hb,hm,hl,n=0; for(hb=0;hb=100;hb+=(1) for(hm=0;hm=100-hb;hm+=(2) hl=100-hb- (3) ; if(hb/3+hm/2+2*(3)=100) n+; printf(hb=%d,hm=%d,hl=%dn,hb/3,hm/2,2*hl); printf(n=%dn,n);2.用“起泡法”對輸入的10個(gè)字符排序后按從小到大的次序輸出。#define N 10char strN;void main() int i,flag; for(flag=1;flag=1;) scanf(%s,str); flag=0; printf(n); sort(_(4)_); for(i=0;iN;i+) printf(%c,stri); printf(n);sort(char strN)/冒泡排序 int i,j; char t; for(j=1;jN;j+) for(i=0;istri+1) t=stri; _(5)_; _(6)_;/交換位置 3.以下程序是一個(gè)函數(shù),功能是求二階矩陣(m行n列矩陣)的所有靠外側(cè)的各元素值之和。(本程序中二階矩陣用一維數(shù)組來表示。)例如,矩陣為:3 0 0 32 5 7 31 0 4 2則所有靠外側(cè)的各元素值之和為3+0+0+3+2+3+1+0+4+2=18。add(int m,int n,int arr) for(i=0;im;i=i+m-1) for(j=0;jn;j+) sum=sum+_(7)_; for(j=0;jn;j=j+n-1) for(i=1;_(8)_;i+) sum=sum+arri*n+j; return(sum);4.用指針作函數(shù)參數(shù),編程序求一維數(shù)組中的最大和最小的元素值。#define N 10main() void maxmin(int arr,int *pt1,int *pt2,int n); int arrayN=10,7,19,29,4,0,7,35,-16,21,*p1,*p2,a,b; p1=&a; p2=&b; maxmin(array,p1,p2,N); printf(max=%d,min=%d,a,b);void maxmin(int arr,int *pt1,int *pt2,int n) int i; *pt1=*pt2=arr0; for(i=1;i*pt1) _(9)_ ; if(arri*pt2) _(10)_ ; 答案一 選擇題(24分,每小題2分)1.( B ) 2.( C ) 3.( B ) 4.( D ) 5.( D ) 6.( A ) 7.( D ) 8.( A ) 9.( D ) 10.( B ) 11.( C ) 12.( D )二 判斷對錯(cuò),對的劃“”,錯(cuò)的劃“”(20分,每小題2分)1.( ) 2.( ) 3.( ) 4.( ) 5.( ) 6.( ) 7.( ) 8.( ) 9.( ) 10.( )三 寫出下列程序的運(yùn)行結(jié)果(36分,每小題6分)1.s=20 2.x=35 y=-4 s=-29 3.60,50,40,30,20,10,4.e C pr*am 5.word value:123

溫馨提示

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

評論

0/150

提交評論