C語言練習(xí)題及答案_第1頁
C語言練習(xí)題及答案_第2頁
C語言練習(xí)題及答案_第3頁
C語言練習(xí)題及答案_第4頁
C語言練習(xí)題及答案_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C 語言練習(xí)題及答案 第 1 章 C 語言概述 一、選擇題: 1、一個 C 程序的執(zhí)行是從( A )。 A 本程序的 main 函數(shù)開始,到 main 函數(shù)結(jié)束 B 本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束 C 本程序的 main 函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束 D 本程序文件的第一個函數(shù)開始,到本程序 main 函數(shù)結(jié)束 2、 在 C 語言中,每個語句必須以( D )結(jié)束。 A. 回車符 B. 冒號 C. 逗號 D. 分號 3、C 語言規(guī)定:在一個源程序中,main 函數(shù)的位置( C )。 A. 必須在最開始 B. 必須在系統(tǒng)調(diào)用的庫函數(shù)的后面 C. 可以任意 D

2、. 必須在最后 4、一個 C 語言程序是由( B )。 A. 一個主程序和若干子程序組成 B. 函數(shù)組成 C. 若干過程組成 D. 若干子程序組成 5、下列說法中錯誤的是( D )。 A. 主函數(shù)可以分為兩個部分:主函數(shù)說明部分和主函數(shù)體 B. 主函數(shù)可以調(diào)用任何非主函數(shù)的其他函數(shù) C. 任何非主函數(shù)可以調(diào)用其他任何非主函數(shù) D. 程序可以從任何非主函數(shù)開始執(zhí)行 6、用 C 語言編寫的源文件經(jīng)過編譯,若沒有產(chǎn)生編譯錯誤,則系統(tǒng)將( C )。 A. 生成可執(zhí)行目標(biāo)文件 B. 生成目標(biāo)文件 C. 輸出運(yùn)行結(jié)果 D. 自動保存源文件 二、填空題: 1、C 語言只有 32 個關(guān)鍵字和 9 種控制語句。

3、 2、每個源程序有且只有一個 main 函數(shù),系統(tǒng)總是從該函數(shù)開始執(zhí)行 C 語言程序。 3、C 語言程序的注釋可以出現(xiàn)在程序中的任何地方,它總是以 * 符號作為開始 標(biāo)記,以 */ 符號作為結(jié)束標(biāo)記。 4、C 語言中,輸入操作是由庫函數(shù) scanf 完成的,輸出操作是由庫函 數(shù) printf 完成的。 5、系統(tǒng)默認(rèn)的 C 語言源程序文件的擴(kuò)展名是 .c ,經(jīng)過編譯后生成的目標(biāo)文件的擴(kuò) 展名是 .obj ,經(jīng)過連接后生成的可執(zhí)行文件的擴(kuò)展名是 .exe 。 6、C 語言的標(biāo)識符只能由字母、數(shù)字和 下劃線 三種字符組成。 第 2 章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 一、選擇題: 1、以下選項(xiàng)中,不正確的

4、 C 語言浮點(diǎn)型常量是( C )。 A. 160. B. 0.12 C. 2e4.2 D. 0.0 2、以下選項(xiàng)中,( D )是不正確的 C 語言字符型常量。 A. a B. x41 C. 101 D. a 3、 在 C 語言中,字符型數(shù)據(jù)在計算機(jī)內(nèi)存中,以字符的( C )形式存儲。 A. 原碼 B. 反碼 C. ASCII 碼 D. BCD 碼 4、若 x、i、j 和 k 都是 int 型變量,則計算下面表達(dá)式后,x 的值是( C )。 x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5、算術(shù)運(yùn)算符、賦值運(yùn)算符和關(guān)系運(yùn)算符的運(yùn)算優(yōu)先級按從高到低依次為( B )。

5、 A. 算術(shù)運(yùn)算、賦值運(yùn)算、關(guān)系運(yùn)算 B. 算術(shù)運(yùn)算、關(guān)系運(yùn)算、賦值運(yùn)算 C. 關(guān)系運(yùn)算、賦值運(yùn)算、算術(shù)運(yùn)算 D. 關(guān)系運(yùn)算、算術(shù)運(yùn)算、賦值運(yùn)算 6、若有代數(shù)式 ,則不正確的 C 語言表達(dá)式是( C )。 A.a/b/c*e*3 B. 3*a*e/b/c C.3*a*e/b*c D. a*e/c/b*3 7、表達(dá)式!x|a=b 等效于( D )。 A. !(x|a)=b) B. !(x|y)=b C. !(x|(a=b) D. (!x)|(a=b) 8、設(shè)整型變量 m,n,a,b,c,d 均為 1,執(zhí)行 (m=ab)后,變量 a 的值是( B )。 A. 3 B. 0 C. 9 D. -12

6、10、在以下一組運(yùn)算符中,優(yōu)先級最低的運(yùn)算符是( D )。 A. * B. != C. + D. = 11、設(shè)整型變量 i 值為 2,表達(dá)式(+i)+(+i)+(+i)的結(jié)果是( B )。 A. 6 B. 12 C. 15 D. 表達(dá)式出錯 12、若已定義 x 和 y 為 double 類型,則表達(dá)式 x=1,y=x+3/2 的值是( C )。 A. 1 B. 2 C. 2.0 D. 2.5 13、sizeof (double)的結(jié)果值是( A )。 A. 8 B. 4 C. 2 D. 出錯 14、設(shè) a=1,b=2,c=3,d=4,則表達(dá)式:ab? a : cd? a : d 的結(jié)果為( D

7、 )。 A. 4 B. 3 C. 2 D. 1 15、設(shè) a 為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系:10a15 的 C 語言表達(dá)式是( A )。 A. 10a10 后 c2 中的值是( A )。 A. D B. 68 C. 不確定的值 D. C 19、以下用戶標(biāo)識符中,合法的是( B )。 A. int B. nit C. 123 D. a+b 20、C 語言中,要求運(yùn)算對象只能為整數(shù)的運(yùn)算符是( A )。 A. % B. / C. D. * 21、若有說明語句:char c=72;則變量 c 在內(nèi)存占用的字節(jié)數(shù)是( A )。 A. 1 B. 2 C. 3 D. 4 22、字符串ABC在內(nèi)存占用的

8、字節(jié)數(shù)是( B )。 A. 3 B. 4 C. 6 D. 8 23、要為字符型變量 a 賦初值,下列語句中哪一個是正確的( B )。 A. char a=3; B. char a=3; C. char a=%; D. char a=*; 24、下列不正確的轉(zhuǎn)義字符是( C )。 A. B. C. 074 D. 0 二、填空題: 1、C 語言中的邏輯值“真”是用 1 表示的,邏輯值“假”是用 0 表示的。 2、若 x 和 n 都是 int 型變量,且 x 的初值為 12,n 的初值為 5,則計算表達(dá)式 x%=(n%=2)后 x 的值為 0 。 3、設(shè) c=w,a=1,b=2,d=-5, 則表達(dá)式

9、 x+1c, y!=c+2, -a-5*b100) y=x/100; printf(“%d”,y); else printf(“%d”,a+b); 2. if 結(jié)構(gòu) main() float t;char c; printf(“input score,max as 100:n”); scanf(“%f”, if(t=90) ch=A; else if(t=80) ch=B; else if(t=70) ch=C; else if(t=60) ch=D; else ch=E; printf(“Grade=%dn”,ch); switch 結(jié)構(gòu) main() float t;char c; pri

10、ntf(“input score,max as 100:n”); scanf(“%f”, switch(t/10) case 10: case 9: ch=A;break; case 8: ch=B;break; case 7: ch=C;break; case 6: ch=D;break; case 5: ch=E; printf(“Grade=%dn”,ch); 五、選做題 1. main() int a,b,c,t; scanf(“%d%d%d”, if(ab)t=a;a=b;b=t; if(ac)t=a;a=c;c=t; if(b0) break; case 0: x=1; break

11、; break; case 0: x=0; break; 第 5 章 循環(huán)結(jié)構(gòu)答案 一、選擇題 1B 2.A 3.A 4.C 5.A 6.B 7.A 8.C 9.D 10.D 二、填空題 1. x1 x1/2-2 2. ch=getchar() ch=A /*n 用來記錄每行已打印數(shù)的個數(shù)*/ while(i=300) if(i%7=0) /break; printf(%5d,i); n=n+1; if(n=5) /*滿 5 個換行*/ printf(n); n=0; i+; 2). main( ) int i,s=0,t=1; for(i=1;i=7;i+) t=t*i; s=s+t; pr

12、intf(sum=%dn,s); 五、程序設(shè)計題 1. main() int x,g,s,b; for(x=100;x1000;x+) b=x/100;s=x%100/10;g=x%10; if(g*g*g+s*s*s+b*b*b)=x) printf(“%dn”,x); 2. main() int i,s=0,f=1; for(i=2;i80;i+) s=s+f*(i-1)/i; f=-f; printf(s=%fn”,s); 六、選做題 1. main() float s=0,m=2.0,n=1.0,p; int i; for(i=1;i=20;i+) s=s+m/n; p=m; m=m+

13、n; n=p; printf(s=%fn”,s); 2.#include main( ) int i,j,k,s=1; for(i=1;i=20;i+) for(j=1;j=0) printf(“%2d %2d %2d”,i,j,k); s=s+1; if(s%5=0) printf(“n”); 第 6 章 數(shù)組習(xí)題 A 卷 1. 單項(xiàng)選擇題 (1) int a4=5,3,8,9;其中 a3的值為( )。D A. 5 B. 3 C. 8 D. 9 (2) 以下 4 個字符串函數(shù)中,( )所在的頭文件與其他 3 個不同。A A. gets B. strcpy C. strlen D. strcm

14、p (3) 以下 4 個數(shù)組定義中,( )是錯誤的。 D A. int a7; B. #define N 5 long bN; C. char c5; D. int n,dn; (4) 對字符數(shù)組進(jìn)行初始化,( )形式是錯誤。 B A. char c1 =1, 2, 3; B. char c2 =123; C. char c3 = 1, 2, 3, 0; D. char c4 =123; (5) 在數(shù)組中,數(shù)組名表示( )。 A A. 數(shù)組第 1 個元素的首地址 B.數(shù)組第 2 個元素的首地址 C. 數(shù)組所有元素的首地址 D.數(shù)組最后 1 個元素的首地址 (6) 若有以下數(shù)組說明,則數(shù)值最小的

15、和最大的元素下標(biāo)分別是( )。 B int a12 =1,2,3,4,5,6,7,8,9,10,11,12; A. 1,12 B. 0,11 C. 1,11 D. 0,12 (7) 若有以下說明,則數(shù)值為 4 的表達(dá)式是( )。 D int a12 =1,2,3,4,5,6,7,8,9,10,11,12; char c=a, d, g ; A. ag-c B. a4 C. ad-c D. ad-c (8) 設(shè)有定義:char s12 = string ; 則 printf( %dn,strlen(s); 的輸出是( )。 A A. 6 B. 7 C. 11 D. 12 (9) 設(shè)有定義:cha

16、r s12 = string; 則 printf(%dn , sizeof(s); 的輸出是( )。 D A. 6 B. 7 C. 11 D. 12 (10) 合法的數(shù)組定義是( )。 A A. char a = string ; B. int a5 =0,1,2,3,4,5; C. char a= string ; D. char a =0,1,2,3,4,5 (11) 合法的數(shù)組定義是( )。 D A. int a3 =0,1,2,3,4,5; B. int a 3 =0,1,2,3,4; C. int a23=0,1,2,3,4,5,6; D. int a23=0,1,2,3,4,5,;

17、 (12) 下列語句中,正確的是 ( )。D A. char a3 =abc, 1; B. char a 3 =abc, 1; C. char a3 =a, 1; D. char a 3 = a, 1; (13) 下列定義的字符數(shù)組中,輸出 printf(%sn, str2) ;的輸出是( )。 C static str320 = basic, foxpro, windows; A. basic B. foxpro C. windows D. 輸出語句出錯 (14) 下列各語句定義了數(shù)組,其中哪一個是不正確的( )。 C A. char a310=China,American,Asia; B.

18、 int x22=1,2,3,4; C. float x2 =1,2,4,6,8,10; D. int m3=1,2,3,4,5,6; (15) 數(shù)組定義為 int a32=1,2,3,4,5,6,值為 6 的數(shù)組元素是( )。 B A. a32 B. a21 C. a12 D. a23 (16) 下面的程序中哪一行有錯誤( )。D #include main() float array5=0.0; /第 A 行 int i; for(i=0;i5;i+) scanf(%f, for(i=1;i5;i+) array0=array0+arrayi;/第 B 行 printf(%fn,array

19、0); /第 C 行 A. 第 A 行 B. 第 B 行 C. 第 C 行 D. 沒有 (17) 下面哪一項(xiàng)是不正確的字符串賦值或賦初值的方式( )。 C A. char *str; str=string; B. char str7=s,t,r,i,n,g; C. char str110;str1=string; D. char str1=string,str2=; (18) 若有以下說明和語句,則輸出結(jié)果是哪一項(xiàng)( )。C (strlen(s)為求字符串 s 的長度的函數(shù)) char s12=a book!; printf(%d,strlen(s); A. 12 B. 8 C. 7 D. 1

20、1 (19) 若有以下說明和語句,則輸出結(jié)果是( )。B (strlen(s)為求字符串 s 的長度的函數(shù)) char sp=tv0willn; printf(%d,strlen(sp); A. 14 B. 3 C. 9 D. 字符串中有非法字符 (20) 若有以下說明和語句,則輸出結(jié)果是( )。 C char str=c:abc.dat; printf(%s,str); A. 字符串中有非法字符 B. c:abc.dat C. c:abc.dat D. c:abc.dat 2. 填空題 (1) C 語言中,數(shù)組的各元素必須具有相同的 ,元素的下標(biāo)下限為 , 下標(biāo)必須是正整數(shù)、0、或者 。但在

21、程序執(zhí)行過程中,不檢查元素下標(biāo)是否 。 數(shù)據(jù)類型,0,符號常量,越界 (2) C 語言中,數(shù)組在內(nèi)存中占一片 的存儲區(qū),由 代表它的首地址。 數(shù)組名是一個 常量,不能對它進(jìn)行賦值運(yùn)算。連續(xù),數(shù)組名,地址 (3) 執(zhí)行 static int b5, a 3 =1,2,3,4,5,6; 后,b4 = ,a12 = 。 0,6 (4) 設(shè)有定義語句 static int a34 =1,2,3; 則 a10值為 ,a11 值 為 ,a21的值為 。 2,0,0 (5) 如定義語句為 char a = windows,b = 95;,語句 printf(%s,strcat(a,b);的輸 出結(jié)果為 。W

22、indows95 (6) 根據(jù)以下說明,寫出正確的說明語句:men 是一個有 10 個整型元素的數(shù)組。 step 是一個有 4 個實(shí)型元素的數(shù)組,元素值分別為 1.9, -2.33, 0, 20.6。 grid 是一個二維數(shù)組,共有 4 行,10 列整型元素。 int mesh10; float step4 = 1.9, -2.33, 0, 20.6; int grid410; (7) array 是一個一維整形數(shù)組,有 10 個元素,前 6 個元素的初值是 9,4,7,49,32,-5,正確的 說明語句為: 。該數(shù)組下標(biāo)的取值范圍是從_到_(從小到大)。用 scanf 函數(shù)輸入 數(shù)組的第二個

23、元素表示為: 。用賦值語句把 39 存入第一個元素表 示為: 。 把第六個和第四個元素之和存入第一個元素表示為: 。 int array10 = 9,4,7,49,32,-5; 0 9 scanf(%d, array0 = 39; array0= array5+array3; (8) 寫出以下初始化數(shù)組的長度:int chn3;數(shù)組 chn 的長度為_。float isa =1.0,2.0,3.0,4.0,5.0; 數(shù)組 isa 的長度為_。int doom8;數(shù)組 doom 的長度為_。float pci42;數(shù)組 pci 的長度為_。 int ast33;數(shù)組 ast 的長度為_。int

24、att34;數(shù)組 att 的長度為_。 float dell3=1,4,7,2,5,3,6,9;數(shù)組 dell 的長度為_。 6 20 16 32 18 24 36 (9) 若有以下整型的 a 數(shù)組,數(shù)組元素和它們得值如下所示: 數(shù)組元素: a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 元素的值: 9 4 12 8 2 10 7 5 1 3 請寫出對該數(shù)組的說明,并賦以上初值。 該數(shù)組的最小下標(biāo)值為_,最大下標(biāo)值為_。 寫出下面各式的值:aa9的值為_ ;aa4+a8的值為_。 int a10=9,4,12,8,2,10,7,5,1,3; 0 9 8 8 (10) 字符串a(chǎn)bn0

25、12/的長度為_。10 3. 判斷題 ( )(1) C 允許對數(shù)組的大小作動態(tài)定義,即可用變量定義數(shù)組的大小。 ( )(2) 字符數(shù)組不要求它的最后一個字符為0,甚至可以不包含0。 ( )(3) 數(shù)組定義 int a10; 也可以寫成 int a(10); 。 ( )(4) 在對全部數(shù)組元素賦初值時,可以不指定數(shù)組長度。 ( )(5) 定義 s 為 56(5 行 6 列)的數(shù)組可寫成 float a5,6; ( )(6) 數(shù)組定義 int a10; 表示數(shù)組名為 a,此數(shù)組有 10 個元素。 ( )(7) 數(shù)組定義 int a10; 表示數(shù)組名為 a,此數(shù)組有 10 個元素,第 10 個元素

26、為 a10。 ( )(8) static char c=“a book”; 與 static char c=“a book”; 等價。 ( )(9) static char c=a , ,b,o,o,k,0;與 static char c=a , ,b,o,o,k; 等價。 ( )(10) 設(shè)已有說明:static char c110,c210; 下面程序片段是合法的。 c1=“book”; c2=c1; 4. 程序填空題 (1) 輸入 20 個數(shù),輸出它們的平均值,輸出與平均值之差的絕對值為最小的數(shù)組元 素。請?zhí)羁铡?#include void main( ) float a20,pjz=0

27、,s,t; int i,k; for(i=0;i20;i+) pjz+=ai; s=fabs(a0-pjz); for(i=1;i20;i+) if(fabs(ai-pjz)s) s=fabs(ai-pjz); t=ai; - for(i=0;i20;i+) scanf(“%f”, pjz/=20; printf(“%f,%fn”,piz,t); (2) 以下程序以每行 10 個數(shù)據(jù)的形式輸出 a 數(shù)組,請?zhí)羁铡?void main( ) int a50,i; printf(輸入 50 個整數(shù):); for(i=0; i50; i+) scanf( %d, ); for(i=1; i=50;

28、i+) if( ) printf( %3dn , ) ; printf( %3d,ai-1); int s =1,-9,7,2,-10,3; for(p=0,k=p; psk) ; printf(%dn ,k); k=p (4) 這個程序輸入了 20 個數(shù)存放在一個數(shù)組中,并且輸出其中最大者與最小者、20 個 數(shù)的和及它們的平均值。請?zhí)羁铡?void main() char array ; int max,min,average,sum; int i; for(i=0;i ;i+) printf(請輸入第%d 個數(shù):,i+1); scanf(%d, ); max=array0; min=arr

29、ay0; for(i=0;i= ;i+) if(maxarrayi) sum= ; average = ; printf(20 個數(shù)中最大值是%d,max); printf(最小值是%d,min); printf(和是%d,sum); printf(平均值是%d.n,average); 20 20 min=arrayi; sum+arrayi sum/20 B 卷 5. 閱讀程序,分析程序的功能。 (1) #include #include void main( ) char s80; int i ; for(i=0; i80; i+) si=getchar( ); if(si=n) brea

30、k; si=0; i=0; while(si) putchar(si+); putchar(n); 從鍵盤輸入一個字符串,并逐一輸出 (2) #include #include void main( ) char str1080, c80; int i; for(i=0; i10; i+) gets(stri); strcpy(c, str0) ; for(i=1; i10; i+) if(strlen(c) strlen(stri) strcpy(c,stri); printf( %sn, c); printf( %dn, strlen (c); 從鍵盤輸入若干字符串,找到其中最長的一個輸出

31、及它的長度 (3) #include #include void main( ) char a1080, c80; int i, j, k; for(i=0; i10; i+) gets(ai); for(i=0; i9; i+) k=i ; for(j=i+1; j10; j+) if(strcmp (a j, ak)0) k=j; if(k!=i ) strcpy(c,ai) ; strcpy(ai, ak); strcpy(ak,c); / 字符串交換 for(i=0; i10; i+) puts (ai); 從鍵盤輸入若干字符串,并將它們按大到小順序排好再輸出 (4) 閱讀程序,寫出運(yùn)

32、行結(jié)果 #include void main( ) int a6=12,4,17,25,27,16,b6=27,13,4,25,23,16,i,j; for(i=0;i6;i+) for(j=0;j6;j+) if(ai=bj)break; if(j6) printf(%d ,ai); printf(n); 4 25 27 16 (5) 閱讀程序,寫出運(yùn)行結(jié)果。 #include void main( ) char a8,temp; int j,k; for(j=0;j7;j+) aj=a+j; a7=0; for(j=0;j0;k-) ak=ak-1; a0=temp; printf(%sn

33、,a); gabcdef fgabcde efgabcd (6) 閱讀下列程序,寫出程序運(yùn)行的輸出結(jié)果。 #include #include void main( ) char str1 =*; for(int i=0;i4;i+) printf(%sn,str1); str1i= ; str1strlen(str1)-1=0; * * * * (7) 該程序的運(yùn)行結(jié)果是: min= ,m= ,n= 。 void main() float array43= 3.4,-5.6,56.7, 56.8,999.,-.0123, 0.45,-5.77,123.5, 43.4,0,111.2 ; int

34、 i,j; int min; int m,n; min = array00; m=0;n=0; for(i=0;i3;i+) for(j=0;j arrayij) min = arrayij; m=i;n=j; printf(min=%d,m=%d,n=%dn,min,m,n); -5.77 2 1 (8) 寫出下面這個程序的輸出結(jié)果: void main() char str=ABCDEFGHIJKL; printf(%sn,str); 屏幕上顯示 printf(%sn, 屏幕上顯示 str2=str5; printf(%sn,str); 屏幕上顯示 str9=0; printf(%sn,s

35、tr); 屏幕上顯示 ABCDEFGHIJKL EFGHIJKL ABFDEFGHIJKL ABFDEFGHI (9) 讀懂下面的程序并填空。 void main() char str80; int i=0; gets(str); while(stri!=0) if(stri=a i+; puts(str); 程序運(yùn)行時如果輸入 upcase, 屏幕顯示 程序運(yùn)行時如果輸入 Aa1Bb2Cc3, 屏幕顯示 UPCASE AA1BB2CC 第 7 章 函數(shù)習(xí)題 A 卷 1. 單項(xiàng)選擇題 (1)C 語言總是從 函數(shù)開始執(zhí)行。 A A. main B. 處于最前的 C.處于最后的 D. 隨機(jī)選一個

36、(2)函數(shù)在定義時,省略函數(shù)類型說明符,則該函數(shù)值的類型為 。A A. int B. float C. long D. double (2)以下 函數(shù),真正地沒有返回值。 B A. int a()int a=2;return (a); B. void b()printf(c); C. int a()int a=2;return a; D. 以上都是 (3)在 C 語言中,有關(guān)函數(shù)的說法,以下正確的是 。 A A. 函數(shù)可嵌套定義,也可嵌套調(diào)用 B. 函數(shù)可嵌套定義,但不可嵌套調(diào)用 C. 函數(shù)不可嵌套定義,但可嵌套調(diào)用 D. 函數(shù)不可嵌套定義,也不可嵌套調(diào)用 (4)以下函數(shù)調(diào)用語句中,含有實(shí)參的

37、個數(shù)為 。C fun(2,3),(4,5+6,7); A. 1 B. 2 C. 5 D. 6 (5)函數(shù)調(diào)用可以在 。 D A. 函數(shù)表達(dá)式中 B. 函數(shù)語句中 C. 函數(shù)參數(shù)中 D. 以上都是 (6)被調(diào)函數(shù)返回給主調(diào)函數(shù)的值稱為 。C A. 形參 B. 實(shí)參 C. 返回值 D. 參數(shù) (7) ,可以不進(jìn)行函數(shù)類型說明。 D A. 被調(diào)函數(shù)的返回值是整型或字符型時 B. 被調(diào)函數(shù)的定義在主調(diào)函數(shù)定義之 前時 C. 在所有函數(shù)定義前,已在函數(shù)外預(yù)先說明了被調(diào)函數(shù)類型 D. 以上都是 (8)被調(diào)函數(shù)通過 語句,將值返回給主調(diào)函數(shù)。 D A. if B. for C. while D. retur

38、n (9)被調(diào)函數(shù)調(diào)用結(jié)束后,返回到 。 D A.主調(diào)函數(shù)中該被調(diào)函數(shù)調(diào)用語句處 B.主函數(shù)中該被調(diào)函數(shù)調(diào)用語句處 C.主調(diào)函數(shù)中該被調(diào)函數(shù)調(diào)用語句的前一語句 D.主調(diào)函數(shù)中該被調(diào)函數(shù)調(diào)用語句的后一語句 (10)以下對 C 語言函數(shù)的有關(guān)描述中,正確的是 。A A. 在 C 中,調(diào)用函數(shù)時,只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參 B. C 函數(shù)既可以嵌套定義又可遞歸調(diào)用 C. 函數(shù)必須有返回值,否則不能使用函數(shù) D. C 程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中 (11)C 語言中函數(shù)的隱含存儲類型是 。 C A. auto B. static C. extern D.

39、無存儲類型 (12)能把函數(shù)處理結(jié)果的兩個數(shù)據(jù)返回給主調(diào)函數(shù),在下面的方法中不正確的是 。A A. return 這兩個數(shù) B. 形參用兩個元素的數(shù)組 C. 形參用兩個這種數(shù)據(jù)類型的指針 D. 用兩個全局變量 (13)C 語言可執(zhí)行程序從什么地方開始執(zhí)行 ( )。 C A. 程序中第一條可執(zhí)行語句 B. 程序中第一個函數(shù) C. 程序中的 main 函數(shù) D. 包含文件中的第一個函數(shù) (14)有一個函數(shù)原型如下所示,則該函數(shù)的返回類型為( ) 。 C abc(float x,float y); A. void B. double C. int D. float 2. 填空題 (1) 變量的作用域

40、主要取決于變量 ,變量的生存期既取決于變量 ,又 取決于變量 。 所處的位置,所處的位置,存儲類型 (2) 說明變量時,若省略存儲類型符,系統(tǒng)默認(rèn)其為 存儲類別,該存儲類別 的類型符為: 。動態(tài),auto (3) 靜態(tài)型局部變量的作用域是 ,生存期是 。它所在的局部,整個程序 (4) 函數(shù)中的形參和調(diào)用時的實(shí)參都是數(shù)組名時,傳遞方式為 ,都是變量時, 傳遞方式為 。 址傳遞,值傳遞 (5) 函數(shù)的形式參數(shù)的作用域?yàn)?,全局的外部變量和函數(shù)體內(nèi)定義的局部變 量重名時, _變量優(yōu)先。 該函數(shù)中,局部 (6) 若自定義函數(shù)要求返回一個值,則應(yīng)在該函數(shù)體中有一條 語句,若自定 義函數(shù)要求不返回一個值,

41、則應(yīng)在該函數(shù)說明時加一個類型說明符 。 return,void (7) 若函數(shù)的形式參數(shù)是指針類型,則實(shí)參可以是 或 。指針,數(shù)組名 (8) 函數(shù)的參數(shù)為 char *類型時,形參與實(shí)參結(jié)合的傳遞方式為 。址傳遞 (9) 函數(shù)的實(shí)參為常量時,形參與實(shí)參結(jié)合的傳遞方式為 。值傳遞 (10) 下面這個函數(shù)的功能是求兩個整數(shù)的積,并通過形參傳回結(jié)果,請?zhí)羁铡nt int int* *result void mul(_x,_y,_result) _=x*y; 3. 判斷題 ( )(1) 函數(shù)說明指的是在程序中設(shè)定一個函數(shù)模塊。 ( )(2) 形參只有在被調(diào)用時才分配存儲空間。 ( )(3) 在 C

42、的函數(shù)中,最好使用全局變量。 ( )(4) 在調(diào)用函數(shù)時,實(shí)參傳值給形參,調(diào)用結(jié)束時,形參值傳給實(shí)參。 ( )(5) 所有函數(shù)定義都是并行的,相互獨(dú)立的。 ( )(6) 函數(shù)的隱含存儲類型是 extern。 ( )(7) 形參可以是常量、變量或表達(dá)式。 ( )(8) 函數(shù)調(diào)用可以作為一個函數(shù)的形參。 ( )(9) C 語言規(guī)定,實(shí)參應(yīng)與其對應(yīng)的形參類型一致。 ( )(10) 定義函數(shù)時,形參的類型說明可以放在函數(shù)體內(nèi)。 4. 程序填空題 (1) 對數(shù)組按值從大到小的順序排序后輸出,請?zhí)羁铡?#include void main() float a7=2,6,3,8,3,12,9; int i

43、; void sort(float*,int); ; for(i=0;i7;i+) printf(%f ,ai); printf(n); void sort( ) int i,j,k; float t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if( ) k=j; t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; sort(a,7) float* p,int n *(p+k)*(p+j) if(k!=i) (2) 下列函數(shù)在 n 個元素的一維數(shù)組中,找出最大值、最小值并傳送到調(diào)用函數(shù), 請?zhí)羁铡?#include void find(f

44、loat *p, int max, int min, int n) int k; *max=*p; for(k=1;kn;k+) t=*(p+k); if( ) *max=t; if(t*min) *min=t; float t; *min=*p; *maxb) f=1; else if(a=b) f=0; else f=-1; return f; -1 (2)鍵盤輸入 abcdef #include void fun( ) char c ; if(c=getchar( )!=n) fun( ) ; putchar(c); void main( ) fun( ); fedcba (3) #in

45、clude #define C 5 int x=1,y=C; void main( ) int x; x=y+; printf(%d %dn, x,y); if(x4) int x ; x=+y; printf(%d %dn,x,y) ; x+=y-; printf(%d %dn,x,y); 5 6 7 7 12 6 (4) #include int c , a=4 ; func(int a , int b) c=a*b ; a=b-1 ; b+ ; return (a+b+1) ; void main( ) int b=2 , p=0 ; c=1 ; p=func(b , a) ; prin

46、tf(%d,%d,%d,%dn, a,b,c,p) ; 4,2,8,9 (5) unsigned fun6(unsigned num) unsigned k=1; do k*=num%10; num/=10; while(num); return k; void main( ) unsigned n=26; printf(%dn, fun6(n); 12 (6) #include int max(int a,int b); main() int x,y,z,t,m; scanf(%d,%d,%d, t=max(x,y); m=max(t,z); printf(%d,m); int max(in

47、t a,int b) if(ab) return(a); else return(b); 運(yùn)行時若輸入:10,15,9 則輸出:_ 15 運(yùn)行時若輸入:300,129,300 則輸出:_ 300 (7) #include long sum(int a,int b); long factorial(int n); main() int n1,n2; long a; scanf(%d,%d, a=sum(n1,n2); printf(a=%1d,a); long sum(int a,int b) long c1,c2; c1=factorial(a); c2=factorial(b); retur

48、n(c1+c2); long factorial(int n) long rtn=1; int i; for(i=1;i=n;i+) rtn*=i; return(rtn); 運(yùn)行時若輸入:2,3 則輸出:_ 8 運(yùn)行時若輸入:0, 5 則輸出:_ 121 (8) #include int s(); int x,y; main() int n; x=1;y=2; n=s(); printf(x=%d,y=%d,n=%d,x,y,n); int s() int z; x=3;y=4; z=x+y; return(z); 程序運(yùn)行后輸出:_ 3,4,7 (9) 以下程序的輸出結(jié)果是 a=_,b=_

49、,c=_。 #include int func(int a,int *p); void main() int a=1,b=2,c; c=func(a, b=func(c, a=func(b, printf(a=%d,b=%d,c=%d,a,b,c); int func(int a,int *p) a+; *p=a+2; return(*p+a); 36 16 19 第 8 章 預(yù)處理 A 部分(本、??票刈觯?一、選擇題 以下不正確的敘述是(D) A、宏替換不占用運(yùn)行時間。 B、宏名無類型。 C、宏替換只是字符替換。 D、宏名必須用大寫字母表示。 C 語言的編譯系統(tǒng)對宏命令的處理(D) A、在

50、程序運(yùn)行時進(jìn)行的。 B、在程序連接時進(jìn)行。 C、和 C 程序中的其它語句同時進(jìn)行編譯的。 D、在對源程序中其它語句正式編譯之前進(jìn)行的。 3、以下程序的輸出結(jié)果是(C)。 A、15 B、100 C、10 D、150 #define MIN(x,y) (x)(y)?(x):(y) void main() int I,j,k; i=10;j=15;k=10*MIN(i,j); printf(“%dn”,k); 4、以下敘述中正確的是(D) 用#include 包含的文件的后綴必須是“.h”。 若一些源程序中包含某個頭文件;當(dāng)該文件有錯時,只需對該頭文件進(jìn)行修改,包含 此頭文件的所有源程序不必重新進(jìn)行

51、編譯。 宏命令行可以看作是一行 C 語句。 預(yù)處理是在編譯之前進(jìn)行的。 5、以下敘述中正確的是(C) A、源程序中所有的行都參加編譯。 B、宏定義常量與 const 定義常量是一樣的。 C、宏定義可以嵌套定義,即在宏定義中的字符串可以引用另一個宏定義的標(biāo)識符。 D、以上都不正確。 二、填空題 以下程序中 for 循環(huán)執(zhí)行的次數(shù)是 6 。 #define N 2 #define M N+1 #define NUM (M+1)*M/2 void main() int i; for(i=1;i=A 3、以下程序的輸出結(jié)果是(B) A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、

52、5,-2,-7 #include void sub(int x,int y,int *z) *z=y-x; void main() int a,b,c; sub(10,5, sub(7,a, sub(a,b, printf(“%d,%d,%dn”,a,b,c); 4、以下程序的輸出結(jié)果是(C) A、4 B、6 C、8 D、10 #include void main() int k=2,m=4,n=6; int *pk= *(p= printf(“%dn”,n); 5、已知指針 p 的指向(圖一)的 a1,則執(zhí)行語句*p+;后,*p 的值是(B)。 A、20 B、30 C、21 D、31 a0

53、a1 a2 a3 a4 10 20 30 40 50 (圖一) 6、已知指針 p 的指向(圖一)的 a1,則表達(dá)式*+p 的值是(B)。 A、20 B、30 C、21 D、31 7、已知指針 p 的指向(圖一)的 a1,則表達(dá)式+*p 的值是(C)。 A、20 B、30 C、21 D、31 8、以下程序的輸出結(jié)果是(D)。 A、23 B、24 C、25 D、26 #include void prtv(int *x) printf(“%dn”,+*x); void main() int a=25;prtv( 9、以下程序的輸出結(jié)果是(B)。 A、運(yùn)行出錯 B、100 C、a 的地址 D、b 的地址 #in

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論