《C語言》期末復習資料.doc_第1頁
《C語言》期末復習資料.doc_第2頁
《C語言》期末復習資料.doc_第3頁
《C語言》期末復習資料.doc_第4頁
《C語言》期末復習資料.doc_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

09計本C語言程序設(shè)計期末復習資料說明:選擇題一(較靈活題)下列各題A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項寫在答題卡相應位置上,答在試卷上不得分。(1)以下所列的C語言常量中,錯誤的是A) 0xFF B) 1.2e0.5 C) 2L D) 72(2) 下列選項中,合法的C語言關(guān)鍵字是A) VAR B) cher C) integer D) default(3) 若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是A) -3 B) 9 C) -12 D) 6(4) 設(shè)x、y、t均為int型變量,則執(zhí)行語句:x=y=3;t=+x|+y;后,y的值為A) 不定值 B) 4 C) 3 D) 1(5)若變量已正確說明為float類型,要通過語句scanf(%f %f %f ,&a,&b,&c);給a賦于10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是:A) 10 B) 10.0,22.0,33.02233C) 10.0 D) 10 2222.0 33.0 33(6)若變量已正確定義并賦值,下面符合C語言語法的表達式是 A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b (7)C語言中運算對象必須是整型的運算符是 A) % B) / C) = D) =(8)若已定義x和y為double類型,則表達式x=1,y=x+3/2 的值是 A) 1 B) 2 C) 2.0 D) 2.5(9) 若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 則執(zhí)行后,c3中的值是 A) 0 B) 0.5 C) 1 D) 2 (10) 有如下程序 main( ) int y=3,x=3,z=1; printf(“%d %dn”,(+x,y+),z+2); 運行該程序的輸出結(jié)果是 A) 3 4 B) 4 2 C) 4 3 D) 3 3(11) 能正確表示邏輯關(guān)系:“a=10或a0”的C語言表達式是 A)a=10or a=0|a=10&a=10|a=0(12) 若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是A) 11 B) 10 C) 9 D) 8main( ) int n;scanf(%d,&n);if(n+10) printf(%dn,n);else printf(%dn,n-);(13) 有如下程序 main( ) int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%dn”,a,b); 該程序的輸出結(jié)果是 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2(14)有如下程序 main( ) float x=2.0,y; if(x0.0) y=0.0; else if(x10.0) y=1.0/x; else y=1.0; printf(“%fn”,y); 該程序的輸出結(jié)果是 A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000(15) 若a、b、c1、c2、x、y、均是整型變量,正確的switch語句是A) switch(a+b); B)switch(a*a+b*b) case 1:y=a+b; break; case 3: case 0:y=a-b; break; case 1:y=a+b;break; case 3:y=b-a,break; C)switch a D) switch(a-b) case c1 :y=a-b; break default:y=a*b;break;case c2: x=a*d; break case 3:case 4:x=a+b;break;default:x=a+b; case 10:case 11:y=a-b;break; (16)有以下程序段int k=0;while(k=1)k+;while 循環(huán)執(zhí)行的次數(shù)是A) 無限次 B)有語法錯,不能執(zhí)行 C)一次也不執(zhí)行 D)執(zhí)行1次(17) 以下程序執(zhí)行后sum的值是A)15 B)14 C) 不確定 D)0main() int i , sum;for(i=1;i6;i+) sum+=i;printf(%dn,sum);(18) 有以下程序段int x=3;do printf(%d,x-=2); while (!(-x);其輸出結(jié)果是A) 1 B) 3 0 C) 1 -2 D) 死循環(huán)(19) 若變量c為char類型,能正確判斷出c為小寫字母的表達式是A) a=c= a)|(c= z)C) (a=c) D) (c= a)&(c= z)(20) 有如下程序 main( ) int i,sum; for(i=1;i6) n-;printf(“%d”,n); 該程序段的輸出結(jié)果是 A) 987 B) 876 C) 8765 D) 9876 (23) 設(shè)有說明語句:char a=72;則變量a A)包含1個字符 B)包含2個字符 C)包含3個字符 D)說明不合法(24) 以下所列的各函數(shù)首部中,正確的是A) void play(var :Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)(25) 以下程序的輸出結(jié)果是A) 0 B) 29 C) 31 D) 無定值void fun(int x, int y, int z) z=x*x+y*y; void main() int a=31;fun(5,2,a);printf(%d,a);(26)當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是A)數(shù)組的長度 B)數(shù)組的首地址C)數(shù)組每一個元素的地址 D)數(shù)組每個元素中的值(27)有如下函數(shù)調(diào)用語句 func(rec1,rec2+rec3,(rec4,rec5); 該函數(shù)調(diào)用語句中,含有的實參個數(shù)是 A) 3 B) 4 C) 5 D) 有語法錯 (28) 有如下程序 int func(int a,int b) return(a+b); main( ) int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%dn”,r); 該程序的輸出的結(jié)果是 A) 12 B) 13 C) 14 D) 15(29)有如下程序 long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(2); main( ) printf(“%dn”,fib(3); 該程序的輸出結(jié)果是 A) 2 B) 4 C) 6 D) 8 (30) 在C語言中,函數(shù)的隱含存儲類別是 A) auto B) static C) extern D) 無存儲類別(31)以下只有在使用時才為該類型變量分配內(nèi)存的存儲類說明是A) auto和static B) auto和registerC) register和static D) extern和register(32)以下程序的輸出結(jié)果是A)20 B) 21 C)22 D)23main() int i, k, a10, p3;k=5;for (i=0;i10;i+) ai=i;for (i=0;i3;i+) pi=ai*(i+1);for (i=0;i3;i+) k+=pi *2;printf(%dn,k);(33) 以下程序的輸出結(jié)果是A) 1,5,9, B)1,4,7, C) 3,5,7, D)3,6,9,main() int i, x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+) printf(%d,xi2-i);(34) 以下程序的輸出結(jié)果是A) 18 B) 19 C) 20 D)21main() int a33= 1,2,3,4,5,6 ,i,j,s=0;for(i=1;i3;i+) for(j=0;j=i;j+)s+=aij;printf(%dn,s);(35) 有如下程序 main() int n5=0,0,0,i,k=2; for(i=0;i5;i+)ni=i;printf(“%dn”,nk); 該程序的輸出結(jié)果是 A) 不確定的值 B) 2 C) 1 D) 0 (36) 若有以下的定義:int t32;能正確表示t數(shù)組元素地址的表達式是 A)&t32 B)t3 C)t11 D)t2 (37) 有如下程序 main( ) int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;j3;j+)s+=aij;printf(“%dn”,s); 該程序的輸出結(jié)果是 A) 18 B) 19 C) 20 D) 21(38) 以下程序的輸出結(jié)果是A)ABCD B)ABCD C)EFG D)EFGHFGH EFG JK IJKLKL IJ OMmain() char w10= ABCD,EFGH,IJKL,MNOP,k;for(k=1;k3;k+) printf(%sn,wk);(39) 當執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是A)ABC6789 B)ABC67 C)12345ABC6 D)ABC456789#include stdio.h#include string.hmain() char ss10=1,2,3,4,5;gets(ss); strcat(ss, 6789); printf(%sn,ss);(40) 以下程序的輸出結(jié)果是A) 1 B) 2 C) 3 D) 4long fun( int n) long s;if(n=1|n=2) s=2;else s=n-fun(n-1);return s;main() printf(%ldn, fun(3); (41)當c的值不為0時,在下列選項中能正確將c的值賦給變量a、b的是 A)c=b=a; B)(a=c)(b=c); C)(a=c)&(b=c); D)a=c=b; (42)以下程序的輸出結(jié)果是 A)17,021,0x11 B)17,17,17 B)17,0x11,021 D)17,21,11 main( ) int k=17; printf(%d,%o,%x n,k,k,k); (43)以下程序的輸出結(jié)果是 A)-1 1 B)0 1 C)1 0 D)0 0 main( ) int a= -1,b=1; if(+a) printf(%d %dn,a,b); else printf(%d %dn,b,a); (44)以下程序的輸出結(jié)果是 A)6 9 9 B)6 6 9 C)6 15 15 D)6 6 15 int d=1; fun(int p) static int d=5; d+=p; printf(%d ,d); return(d); main( ) int a=3; printf(%d n,fun(a+fun(d); (45)以下程序的輸出結(jié)果是 A)4 2 1 1 B)0 0 0 8 C)4 6 7 8 D)8 8 8 8 main( ) char s=12134211; int v4=0,0,0,0,k,i; for(k=0;sk;k+) switch(sk) case 1:i=0; case 2:i=1; case 3:i=2; case 4:i=3; vi+; for(k=0;k4;k+)printf(“%d ”,vk); (46)有以下程序,則輸出結(jié)果是 A)n=5 B)n=2 C)n=3 D)n=4 void main( ) int i,n=0; for(i=2;i5;i+) do if(i%3) continue; n+;while(!i);n+; printf(n=%dn,n); (47)有以下程序,程序的執(zhí)行結(jié)果是 A)函數(shù)調(diào)用出錯 B)8 C)9 D)7char fun(char x,char y) if(xy) f(x,y); else if(yz) f(y,z); else f(x,z); printf(%d,%d,%dn,x,y,z); (49)有以下程序,程序的執(zhí)行結(jié)果是 A)2 B)3 C)4 D)5void main( ) char p10=abc,aabdfg,dcdbe,abbd,cd;printf(%dn,strlen(p4); (50)以下程序段中,不能正確賦字符串(編譯時會出錯)的是:A)char s10=”abcdefg”; B)char t=”abcdefg”; C)char s10;s=”abcdefg”; D)char s10;strcpy(s,”abcdefg”);選擇題二(較容易題)1 下面關(guān)于C語言的敘述中,正確的是( D )。 A 每行只能寫一條語句 B程序中必須包含有輸入語句 C main函數(shù)必須位于文件的開頭 D每條語句最后必須有一個分號2 以下( C )是正確的字符常量。 A c B C W D 32a3語句x=(a=3,b=+a);運行后,x、a、b的值依次為(C )。A 3,3,4 B 4,4,3 C 4,4,4 D 3,4,34 若有定義:int a,b;則表達式(a=2,b=5,a*2,b+,a+b)的值是( B)。 A 7 B 8 C 9 D 105已知 char a;使用scanf()函數(shù)輸入一個字符給變量a,不正確的函數(shù)調(diào)用是( B )。 A scanf(%d,&a); B scanf(%lf,&a); C scanf(%c,&a); D scanf(%u,&a);6 若已定義:int a=-36,b=-30,c; 則語句c=ab; 運行后c的值為(A)。 A 1 B .t. C 0 D.f.7若有定義:int b=7; float a=2.5,c=4.7;則表達式a+(b/2*(int)(a+c)/2)%4的值是( C )。 A 2.5 B 3.5 C 4.5 D5.58以下程序的運行結(jié)果是( C )。A error Bgood C error good Dwarnvoid main() int n=e; switch(n-) default: printf(error ); case a: case b: printf(good ); break; case c: printf(pass ); case d: printf(warn ); 9 以下程序的運行結(jié)果是( B )。A 10 B 13 C 15 D1void main() int sum = 0, item = 0; while(item 5) item+; if(item = 2) continue; sum += item; printf(%dn,sum);10 C語言中數(shù)組元素下標的數(shù)據(jù)類型是(B )。A 實型常量 B整型常量或整型表達式 C 任何類型的表達式 D字符型常量11若有定義 int a3=1,2,3,4,5,6,7,8,9;則表達式sizeof(a)/sizeof(a0)的值為(A)。 A 3 B 4 C 5 D 912有如下定義: char str32= a,b,c,0,e,f;則語句: printf(%s,str0);的輸出結(jié)果是( D )。A ab B abcef C abc0 D abc13若有如下函數(shù)定義:int fun() static int k=0; return +k;以下程序段運行后屏幕輸出為( D )。A 0 B 1 C 5 D 6int i;for(i=1;i=5;i+) fun();printf(%d,fun();14以下程序的運行結(jié)果是( B )。 A 9 B 10 C 12 D18#define ADD(x) x+xmain() int m=1,n=2,k; k=ADD(m+n)*3; printf(%d,k);15 設(shè)有以下語句,則( D )是對a數(shù)組元素的不正確引用,其中0i10。 int a10=0,1,2,3,4,5,6,7,8,9, *p=a; A ap-a B *(&ai) C pi D *(*(a+i)16以下程序執(zhí)行時,輸入1 2 3 4 5,輸出為:( A )#include #define N 5void main()int aN;int *p=a;while(pa) printf(%d ,*(-p); A 5 4 3 2 1 B 1 2 3 4 5 C 2 3 4 5 1 D 4 3 2 1 517若有定義:struct teacherint num; char name10; char sex; int age; float score;teacher1;則變量teacher1所占用的內(nèi)存字節(jié)數(shù)是(C )。A 5 B 14 C 19 D 20 18若有以下定義:struct link int data; struct link *next; *head, *p;并已建立如下圖所示的鏈表結(jié)構(gòu): p head datanextdatanext.dataNULL 則能保留鏈表其它結(jié)點,而刪除p所指向結(jié)點的程序段是( A )。 A head-next = p-next; free(p); B head-next = p; p-next = head-next; free(p); C free(p); head-next = p; p-next = head-next; D free(p); head-next = p-next; 19若有定義:int a=20,b=28,c;則執(zhí)行語句c=(a&b)2;后c的值為( A)。 A 5 B 7 C 80 D 11220對下面程序正確的描述是(C )。#include #include void main() FILE *in,*out; if(in=fopen(infile.txt,r)=NULL) printf(cannot open infilen); exit(0); if(out=fopen(outfile.txt,w)=NULL) printf(cannot open outfilen); exit(0); while(!feof(in) fputc(fgetc(in),out); fclose(in); fclose(out); A 程序?qū)崿F(xiàn)在屏幕上顯示磁盤文件infile.txt的內(nèi)容 B 程序?qū)崿F(xiàn)將兩個磁盤文件infile.txt和outfile.txt的內(nèi)容合二為一 C 程序?qū)崿F(xiàn)將磁盤文件infile.txt復制到磁盤文件outfile.txt D 程序?qū)崿F(xiàn)將兩個磁盤文件合并并在屏幕上輸出第二部分 編程題1 編寫程序?qū)崿F(xiàn)將一個整數(shù)存放到一個數(shù)組中,存放時按逆序存放,例如483存放成3842 編寫程序?qū)崿F(xiàn)將指定的字符串用冒泡排序法進行從大到小排序。3. 編寫程序?qū)崿F(xiàn)從10個數(shù)中找出最大值和最小值。4編寫程序?qū)崿F(xiàn)是將1到9這9個數(shù)字分成三個3位數(shù),要求第一個3位數(shù),正好是第二個3位數(shù)的二倍,是第三個3位數(shù)的三倍的分法(重復的數(shù)應剔除)。參考答案選擇題1-50題答案:1-5) BDCCB 6-10)CACAD 11-15)DBACD 16-20)ACCDC21-25)BBACC 26-30)BADBA31-35)BBCAB 36-40)DADAA41-45)CDCCB 46-50)DBCAC編程題參考答案:1. 編寫程序?qū)崿F(xiàn)將一個整數(shù)存放到一個數(shù)組中,存放時按逆序存放,例如483存放成384Conert(char *a,int n) int i; if(i=n/10)!=0) convert(a+,i); *a=n%10+0;char str10= ;main() int n

溫馨提示

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

評論

0/150

提交評論