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

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)C語(yǔ)言練習(xí)題及答案第1章 C語(yǔ)言概述 一、選擇題:1、一個(gè)C程序的執(zhí)行是從( A )。A本程序的main函數(shù)開(kāi)始,到main函數(shù)結(jié)束B(niǎo)本程序文件的第一個(gè)函數(shù)開(kāi)始,到本程序文件的最后一個(gè)函數(shù)結(jié)束C本程序的main函數(shù)開(kāi)始,到本程序文件的最后一個(gè)函數(shù)結(jié)束D本程序文件的第一個(gè)函數(shù)開(kāi)始,到本程序main函數(shù)結(jié)束 2、 在 C 語(yǔ)言中,每個(gè)語(yǔ)句必須以( D )結(jié)束。 A. 回車(chē)符 B. 冒號(hào) C. 逗號(hào) D. 分號(hào) 3、C 語(yǔ)言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置( C )。

2、A. 必須在最開(kāi)始 B. 必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面 C. 可以任意 D. 必須在最后 4、一個(gè)C 語(yǔ)言程序是由( B )。A. 一個(gè)主程序和若干子程序組成 B. 函數(shù)組成 C. 若干過(guò)程組成 D. 若干子程序組成 5、下列說(shuō)法中錯(cuò)誤的是( D )。 A. 主函數(shù)可以分為兩個(gè)部分:主函數(shù)說(shuō)明部分和主函數(shù)體 B. 主函數(shù)可以調(diào)用任何非主函數(shù)的其他函數(shù) C. 任何非主函數(shù)可以調(diào)用其他任何非主函數(shù) D. 程序可以從任何非主函數(shù)開(kāi)始執(zhí)行 6、用 C 語(yǔ)言編寫(xiě)的源文件經(jīng)過(guò)編譯,若沒(méi)有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將( C )。 A. 生成可執(zhí)行目標(biāo)文件 B. 生成目標(biāo)文件 C. 輸出運(yùn)行結(jié)果 D. 自動(dòng)保存源文

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

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

5、依次為( B )。 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語(yǔ)言表達(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)&(n=cd)后, m,n 的值是( A)。 A. 0,0 B. 0

6、,1 C. 1,0 D. 1,1 9、 設(shè)有語(yǔ)句 int a=3;,則執(zhí)行了語(yǔ)句 a+=a-=a*=a;后,變量 a 的值是( B )。 A. 3 B. 0 C. 9 D. -12 10、在以下一組運(yùn)算符中,優(yōu)先級(jí)最低的運(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á)式出錯(cuò) 12、若已定義 x 和 y為double 類(lèi)型,則表達(dá)式 x=1,y=x+3/2 的值是( C )。 A. 1 B. 2 C. 2.0 D. 2.5 13、sizeof (dou

7、ble)的結(jié)果值是( A )。 A. 8 B. 4 C. 2 D. 出錯(cuò) 14、設(shè)a=1,b=2,c=3,d=4,則表達(dá)式:ab? a : cd? a : d的結(jié)果為( D )。 A. 4 B. 3 C. 2 D. 1 15、設(shè)a 為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系:10a15的 C 語(yǔ)言表達(dá)式是( A )。 A. 10a10 & a15 D. !(a=15) 16、設(shè) f是實(shí)型變量,下列表達(dá)式中不是逗號(hào)表達(dá)式的是( D )。 A. f= 3.2, 1.0 B. f0, f0 D. f=(3.2, 1.0) 17、 表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類(lèi)型是( C )。A. int B

8、. float C. double D. 不確定 18、已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語(yǔ)句C2=A+6-3;后c2中的值是( A )。 A. D B. 68 C. 不確定的值 D. C 19、以下用戶標(biāo)識(shí)符中,合法的是( B )。 A. int B. nit C. 123 D. a+b 20、C 語(yǔ)言中,要求運(yùn)算對(duì)象只能為整數(shù)的運(yùn)算符是( A )。 A. % B. / C. D. * 21、若有說(shuō)明語(yǔ)句:char c=72;則變量c在內(nèi)存占用的字節(jié)數(shù)是( A )。 A. 1 B. 2 C. 3 D. 4 22、字符串ABC在內(nèi)存占用的字節(jié)數(shù)是( B )。 A.

9、3 B. 4 C. 6 D. 8 23、要為字符型變量 a賦初值,下列語(yǔ)句中哪一個(gè)是正確的( 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 語(yǔ)言中的邏輯值“真”是用 1 表示的,邏輯值“假”是用 0 表示的。 2、若x和n都是int型變量,且x的初值為12,n的初值為5,則計(jì)算表達(dá)式x%=(n%=2)后x的值為 0 。 3、設(shè) c=w,a=1,b=2,d=-5, 則表達(dá)式 x+1c, y!=c+2, -a-5*b100) y=x/

10、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”,&t);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;printf(“input score,max as 100:n”);scanf(“%f

11、”,&t);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”,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(b0)&(s=3)&(s1)|(s8) case 1: x=3; break; case 0: x=1; break; break;cas

12、e 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-22. ch=getchar() ch=A&ch=Z3. s=s+t*i t=-t 三、閱讀下列程序,寫(xiě)出程序運(yùn)行的輸出結(jié)果 18522. 89213. 54. SUM=2468 四、程序改錯(cuò)1.main() int i=200,n=0; /*n用來(lái)記錄每行已打印數(shù)的個(gè)數(shù)*/ while(i=300) if(i%7=0) /break; printf(%5d,i); n=n+1; if(n=5) /*滿5個(gè)換行*/ p

13、rintf(n); n=0; i+; 2). main( ) int i,s=0,t=1; for(i=1;i=7;i+) t=t*i; s=s+t; printf(sum=%dn,s); 五、程序設(shè)計(jì)題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(

14、) 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+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的值為( )。DA. 5 B. 3 C. 8 D. 9 (2) 以下 4 個(gè)字符串函數(shù)中

15、,( )所在的頭文件與其他 3 個(gè)不同。A A. gets B. strcpy C. strlen D. strcmp(3) 以下 4 個(gè)數(shù)組定義中,( )是錯(cuò)誤的。 DA. int a7; B. #define N 5 long bN; C. char c5; D. int n,dn; (4) 對(duì)字符數(shù)組進(jìn)行初始化,( )形式是錯(cuò)誤。 BA. char c1 =1, 2, 3; B. char c2 =123; C. char c3 = 1, 2, 3, 0; D. char c4 =123; (5) 在數(shù)組中,數(shù)組名表示( )。 AA. 數(shù)組第 1 個(gè)元素的首地址 B.數(shù)組第 2 個(gè)元素的

16、首地址 C. 數(shù)組所有元素的首地址 D.數(shù)組最后 1 個(gè)元素的首地址(6) 若有以下數(shù)組說(shuō)明,則數(shù)值最小的和最大的元素下標(biāo)分別是( )。 Bint 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) 若有以下說(shuō)明,則數(shù)值為 4 的表達(dá)式是( )。 Dint 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

17、(s); 的輸出是( )。 AA. 6 B. 7 C. 11 D. 12 (9) 設(shè)有定義:char s12 = string; 則printf(%dn , sizeof(s); 的輸出是( )。 DA. 6 B. 7 C. 11 D. 12 (10) 合法的數(shù)組定義是( )。 AA. 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ù)組定義是( )。 DA. int a3 =0,1,2,3,4,5; B. int a 3 =0,1,2,3,4; C. in

18、t a23=0,1,2,3,4,5,6; D. int a23=0,1,2,3,4,5,; (12) 下列語(yǔ)句中,正確的是 ( )。DA. 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) ;的輸出是( )。 Cstatic str320 = basic, foxpro, windows; A. basic B. foxpro C. windows D. 輸出語(yǔ)句出錯(cuò)(14) 下列各語(yǔ)句定義了數(shù)組,其中哪一個(gè)是不正確的(

19、 )。 CA. char a310=China,American,Asia; B. 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ù)組元素是( )。 BA. a32 B. a21 C. a12 D. a23 (16) 下面的程序中哪一行有錯(cuò)誤( )。D#include main() float array5=0.0; /第A行 int i; for(i=0;i5;i+) scanf(%f,&arrayi); for(i=1;i5;i+)

20、array0=array0+arrayi;/第B行 printf(%fn,array0); /第C行 A. 第A行 B. 第B行 C. 第C行 D. 沒(méi)有(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) 若有以下說(shuō)明和語(yǔ)句,則輸出結(jié)果是哪一項(xiàng)( )。C (strlen(s)為求字符串s的長(zhǎng)度的函數(shù)) char s12=a book!; printf(%d,s

21、trlen(s); A. 12 B. 8 C. 7 D. 11(19) 若有以下說(shuō)明和語(yǔ)句,則輸出結(jié)果是( )。B (strlen(s)為求字符串s的長(zhǎng)度的函數(shù)) char sp=tv0willn; printf(%d,strlen(sp); A. 14 B. 3 C. 9 D. 字符串中有非法字符(20) 若有以下說(shuō)明和語(yǔ)句,則輸出結(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 語(yǔ)言中,數(shù)組的各元素必須具有相同的 ,元素的

22、下標(biāo)下限為 ,下標(biāo)必須是正整數(shù)、0、或者 。但在程序執(zhí)行過(guò)程中,不檢查元素下標(biāo)是否 。數(shù)據(jù)類(lèi)型,0,符號(hào)常量,越界(2) C 語(yǔ)言中,數(shù)組在內(nèi)存中占一片 的存儲(chǔ)區(qū),由 代表它的首地址。數(shù)組名是一個(gè) 常量,不能對(duì)它進(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è)有定義語(yǔ)句 static int a34 =1,2,3; 則 a10值為 ,a11 值為 ,a21的值為 。 2,0,0(5) 如定義語(yǔ)句為 char a = windows,b = 95;,語(yǔ)句 printf(%s,strca

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

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

25、float dell3=1,4,7,2,5,3,6,9;數(shù)組dell的長(zhǎng)度為_(kāi)。 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 請(qǐng)寫(xiě)出對(duì)該數(shù)組的說(shuō)明,并賦以上初值。 該數(shù)組的最小下標(biāo)值為_(kāi),最大下標(biāo)值為_(kāi)。寫(xiě)出下面各式的值:aa9的值為_(kāi) ;aa4+a8的值為_(kāi)。int a10=9,4,12,8,2,10,7,5,1,3; 0 9 8 8(10) 字符串a(chǎn)bn012/的長(zhǎng)度為_(kāi)。10 3. 判斷題( )(1) C允許

26、對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即可用變量定義數(shù)組的大小。 ( )(2) 字符數(shù)組不要求它的最后一個(gè)字符為0,甚至可以不包含0。( )(3) 數(shù)組定義 int a10; 也可以寫(xiě)成 int a(10); 。( )(4) 在對(duì)全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組長(zhǎng)度。( )(5) 定義s為56(5行6列)的數(shù)組可寫(xiě)成 float a5,6; ( )(6) 數(shù)組定義 int a10; 表示數(shù)組名為a,此數(shù)組有10個(gè)元素。( )(7) 數(shù)組定義 int a10; 表示數(shù)組名為a,此數(shù)組有10個(gè)元素,第10個(gè)元素為a10。( )(8) static char c=“a book”; 與static char

27、c=“a book”; 等價(jià)。( )(9) static char c=a , ,b,o,o,k,0;與 static char c=a , ,b,o,o,k; 等價(jià)。( )(10) 設(shè)已有說(shuō)明:static char c110,c210; 下面程序片段是合法的。c1=“book”; c2=c1; 4. 程序填空題(1) 輸入 20 個(gè)數(shù),輸出它們的平均值,輸出與平均值之差的絕對(duì)值為最小的數(shù)組元素。請(qǐng)?zhí)羁铡?#include void main( ) float a20,pjz=0,s,t; int i,k; for(i=0;i20;i+) pjz+=ai; s=fabs(a0-pjz); f

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

29、=0 ai-1 (3) 下面程序的功能是輸出數(shù)組 s 中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?void main( ) int k, p; int s =1,-9,7,2,-10,3; for(p=0,k=p; psk) ; printf(%dn ,k); k=p (4) 這個(gè)程序輸入了20個(gè)數(shù)存放在一個(gè)數(shù)組中,并且輸出其中最大者與最小者、20個(gè)數(shù)的和及它們的平均值。請(qǐng)?zhí)羁铡?void main() char array ; int max,min,average,sum; int i; for(i=0;i ;i+) printf(請(qǐng)輸入第%d個(gè)數(shù):,i+1); scanf(%d, ); max=arra

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

31、 si=getchar( ); if(si=n) break; si=0; i=0; while(si) putchar(si+); putchar(n); 從鍵盤(pán)輸入一個(gè)字符串,并逐一輸出 (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, strle

32、n (c); 從鍵盤(pán)輸入若干字符串,找到其中最長(zhǎng)的一個(gè)輸出及它的長(zhǎng)度 (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); 從鍵盤(pán)輸入若干字符串,

33、并將它們按大到小順序排好再輸出 (4) 閱讀程序,寫(xiě)出運(yùn)行結(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) 閱讀程序,寫(xiě)出運(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-) a

34、k=ak-1; a0=temp; printf(%sn,a); gabcdeffgabcdeefgabcd (6) 閱讀下列程序,寫(xiě)出程序運(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,

35、 43.4,0,111.2 ; int 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) 寫(xiě)出下面這個(gè)程序的輸出結(jié)果:void main() char str=ABCDEFGHIJKL; printf(%sn,str); 屏幕上顯示 printf(%sn,&str4); 屏幕上顯示 str2=str5; printf(%sn,str); 屏

36、幕上顯示 str9=0; printf(%sn,str); 屏幕上顯示 ABCDEFGHIJKLEFGHIJKLABFDEFGHIJKLABFDEFGHI (9) 讀懂下面的程序并填空。void main() char str80; int i=0; gets(str); while(stri!=0) if(stri=a&str=z) stri-=32; i+; puts(str); 程序運(yùn)行時(shí)如果輸入 upcase, 屏幕顯示 程序運(yùn)行時(shí)如果輸入 Aa1Bb2Cc3, 屏幕顯示 UPCASEAA1BB2CC第7章 函數(shù)習(xí)題A卷1. 單項(xiàng)選擇題 (1)C 語(yǔ)言總是從 函數(shù)開(kāi)始執(zhí)行。 AA. m

37、ain B. 處于最前的 C.處于最后的 D. 隨機(jī)選一個(gè) (2)函數(shù)在定義時(shí),省略函數(shù)類(lèi)型說(shuō)明符,則該函數(shù)值的類(lèi)型為 。A A. int B. float C. long D. double (2)以下 函數(shù),真正地沒(méi)有返回值。 BA. int a()int a=2;return (a); B. void b()printf(c); C. int a()int a=2;return a; D. 以上都是 (3)在 C 語(yǔ)言中,有關(guān)函數(shù)的說(shuō)法,以下正確的是 。 AA. 函數(shù)可嵌套定義,也可嵌套調(diào)用 B. 函數(shù)可嵌套定義,但不可嵌套調(diào)用 C. 函數(shù)不可嵌套定義,但可嵌套調(diào)用 D. 函數(shù)不可嵌套定

38、義,也不可嵌套調(diào)用 (4)以下函數(shù)調(diào)用語(yǔ)句中,含有實(shí)參的個(gè)數(shù)為 。C fun(2,3),(4,5+6,7); A. 1 B. 2 C. 5 D. 6(5)函數(shù)調(diào)用可以在 。 DA. 函數(shù)表達(dá)式中 B. 函數(shù)語(yǔ)句中 C. 函數(shù)參數(shù)中 D. 以上都是 (6)被調(diào)函數(shù)返回給主調(diào)函數(shù)的值稱(chēng)為 。C A. 形參 B. 實(shí)參 C. 返回值 D. 參數(shù) (7) ,可以不進(jìn)行函數(shù)類(lèi)型說(shuō)明。 DA. 被調(diào)函數(shù)的返回值是整型或字符型時(shí) B. 被調(diào)函數(shù)的定義在主調(diào)函數(shù)定義之前時(shí) C. 在所有函數(shù)定義前,已在函數(shù)外預(yù)先說(shuō)明了被調(diào)函數(shù)類(lèi)型 D. 以上都是 (8)被調(diào)函數(shù)通過(guò) 語(yǔ)句,將值返回給主調(diào)函數(shù)。 DA. if B

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

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

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

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

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

44、oat*,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 個(gè)元素的一維數(shù)組中,找出最大值、最小值并傳送到調(diào)用函數(shù),請(qǐng)?zhí)羁铡?#include void find(float *p, int ma

45、x, 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)鍵盤(pán)輸入 abcdef #include void fun( ) char c ; if(c=getchar( )!=n) fun( ) ; putchar(c); void main( ) fun( ); fedcba (3) #include #define C

46、 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 67 712 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) ; printf(%d,%d,%d,%dn,

47、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,&x,&y,&z); t=max(x,y); m=max(t,z); printf(%d,m);int max(int a,int b)

48、 if(ab) return(a); else return(b);運(yùn)行時(shí)若輸入:10,15,9 則輸出:_ 15運(yùn)行時(shí)若輸入: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,&n1,&n2); a=sum(n1,n2); printf(a=%1d,a);long sum(int a,int b) long c1,c2; c1=factorial(a); c2=factorial(b); return(c1+c2

49、);long factorial(int n) long rtn=1; int i; for(i=1;i=n;i+) rtn*=i; return(rtn);運(yùn)行時(shí)若輸入:2,3 則輸出:_ 8運(yùn)行時(shí)若輸入: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=_,c=_。#include int func(i

50、nt a,int *p);void main() int a=1,b=2,c; c=func(a,&b); b=func(c,&a); a=func(b,&c); 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部分(本、專(zhuān)科必做)一、選擇題 以下不正確的敘述是(D) A、宏替換不占用運(yùn)行時(shí)間。 B、宏名無(wú)類(lèi)型。C、宏替換只是字符替換。 D、宏名必須用大寫(xiě)字母表示。C語(yǔ)言的編譯系統(tǒng)對(duì)宏命令的處理(D) A、在程序運(yùn)行時(shí)進(jìn)行的。 B、在程序連接時(shí)進(jìn)行。C、

51、和C程序中的其它語(yǔ)句同時(shí)進(jìn)行編譯的。D、在對(duì)源程序中其它語(yǔ)句正式編譯之前進(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”。 若一些源程序中包含某個(gè)頭文件;當(dāng)該文件有錯(cuò)時(shí),只需對(duì)該頭文件進(jìn)行修改,包含此頭文件的所有源程序不必重新進(jìn)行編譯。 宏命令行可以看作是一行C語(yǔ)句。 預(yù)處理是在編譯之前進(jìn)行的

52、。 5、以下敘述中正確的是(C) A、源程序中所有的行都參加編譯。 B、宏定義常量與const定義常量是一樣的。 C、宏定義可以嵌套定義,即在宏定義中的字符串可以引用另一個(gè)宏定義的標(biāo)識(shí)符。 D、以上都不正確。二、填空題 以下程序中for 循環(huán)執(zhí)行的次數(shù)是 6 。 #define N 2#define M N+1#define NUM (M+1)*M/2void main() int i; for(i=1;i=A&c=a&c=z)?1:0) 第9章 指針 A部分(本、專(zhuān)科必做)一、選擇題1、若有定義:int x,*pb;則以下正確的表達(dá)式是(A) A、pb=&x B、pb=x C、*pb=&x

53、D、*pb=*x2、以下程序的輸出結(jié)果是(B) A、因變量無(wú)定義輸出不定值 B、0 C、-1 D、1 #include void main()printf(“%dn”,NULL);3、以下程序的輸出結(jié)果是(B) A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7#includevoid sub(int x,int y,int *z)*z=y-x;void main() int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%dn”,a,b,c);4、以下程序的輸出結(jié)果是(C) A、4

54、B、6 C、8 D、10#includevoid main() int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(“%dn”,n);5、已知指針p的指向(圖一)的a1,則執(zhí)行語(yǔ)句*p+;后,*p的值是(B)。 A、20 B、30 C、21 D、31 a0 a1 a2 a3 a410 20 30 40 50 (圖一)6、已知指針p的指向(圖一)的a1,則表達(dá)式*+p的值是(B)。 A、20 B、30 C、21 D、317、已知指針p的指向(圖一)的a1,則表達(dá)式+*p的值是(C)。 A、20 B、30 C、21 D、

55、318、以下程序的輸出結(jié)果是(D)。 A、23 B、24 C、25 D、26#includevoid prtv(int *x)printf(“%dn”,+*x);void main() int a=25;prtv(&a);9、以下程序的輸出結(jié)果是(B)。 A、運(yùn)行出錯(cuò) B、100 C、a的地址 D、b的地址#includevoid main()int *k,*a,b=100; a=&b;k=&a; printf(“%dn”,*k);10、以下程序運(yùn)行后,輸出結(jié)果是(D)。A) 8 B) 7 C) 6 D) 5 #include ss(char *s) char *p=s; while(*p)

56、p+; return(p-s); main() char *a=abded; int i; i=ss(a); printf(%dn,i); 二、填空題1、若有定義:char ch; (1)使指針p指向變量ch的定義語(yǔ)句是 char *p=&ch; 。 (2)若已定義char *p;,使指針p指向變量ch的賦值語(yǔ)句是 p=&ch; 。 (3)在(1)的基礎(chǔ)上,通過(guò)指針p給變量ch讀入字符的scanf調(diào)用語(yǔ)句是 scanf(“%c”,p); 。 (4)在(1)的基礎(chǔ)上,通過(guò)指針p給變量ch賦字符a的語(yǔ)句是*p=a; 。 (5)在(1)的基礎(chǔ)上,通過(guò)指針p用格式輸出函數(shù)輸出ch中字符的語(yǔ)句是prin

57、tf(“%c”,*p); 。2、以下程序輸出的是 C 。 void main( ) int i=3, j=2; char *a=; printf(%c%cn,ai,aj); 3、以下函數(shù)的功能是,把兩個(gè)整數(shù)指針?biāo)傅拇鎯?chǔ)單元中的內(nèi)容進(jìn)行交換。請(qǐng)?zhí)羁铡?void exchange(int *x, int *y) int t; t=*y; *y= *x ; *x= t ; B部分(本科必做)程序填空:1、下面程序的輸出結(jié)果是 A B C D B C D C D D 。 char b=; void main() char *chp; for(chp=b; *chp: chp+=2) printf(%

58、s,chp); printf(n);下面是一個(gè)字符串連接函數(shù),請(qǐng)補(bǔ)充完整。 void mystrcat(char *s1,char *s2) char *p,*q; for(p=s1; *p ; p+ ); for( q=s2 ;*q;q+) *p+=*q ; *p=0 ; 第10章 結(jié)構(gòu)體與共用體 A部分(本、專(zhuān)科必做)一、選擇題1、設(shè)有如下定義: struct skint a;float b;data,*p; 若有p=&data;,則對(duì)data中的a域的正確引用是(B)。A)(*p).data.a B)(*p).a C)p-data.a D)p.data.a 2、根據(jù)以下定義,能輸出字母M的語(yǔ)句是(D)。 A、printf(“%cn”,); B、printf(“%cn”,1); C、printf(“%cn”,1); D、printf(“%cn”,0); struct personchar name9;int age;struct person class10=“John”,17,”P(pán)aul”,19,”Mary”

溫馨提示

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