版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言概述 一、選擇題:1、一個(gè)C程序的執(zhí)行是從( A )。A本程序的main函數(shù)開始,到main函數(shù)結(jié)束B本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束C本程序的main函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束D本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束2、 在 C 語言中,每個(gè)語句必須以( D )結(jié)束。 A. 回車符 B. 冒號(hào) C. 逗號(hào) D. 分號(hào) 3、C 語言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置( C )。A. 必須在最開始 B. 必須在系統(tǒng)調(diào)用的庫函數(shù)的后面 C. 可以任意 D. 必須在最后4、一個(gè)C 語言程序是由( B )。A. 一個(gè)主程序和若干子程序組
2、成 B. 函數(shù)組成 C. 若干過程組成 D. 若干子程序組成5、下列說法中錯(cuò)誤的是( D )。 A. 主函數(shù)可以分為兩個(gè)部分:主函數(shù)說明部分和主函數(shù)體 B. 主函數(shù)可以調(diào)用任何非主函數(shù)的其他函數(shù) C. 任何非主函數(shù)可以調(diào)用其他任何非主函數(shù) D. 程序可以從任何非主函數(shù)開始執(zhí)行6、用 C 語言編寫的源文件經(jīng)過編譯,若沒有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將( C )。 A. 生成可執(zhí)行目標(biāo)文件 B. 生成目標(biāo)文件 C. 輸出運(yùn)行結(jié)果 D. 自動(dòng)保存源文件 二、填空題:1、C 語言只有 32 個(gè)關(guān)鍵字和 9 種控制語句。2、每個(gè)源程序有且只有一個(gè) main 函數(shù),系統(tǒng)總是從該函數(shù)開始執(zhí)行C語言程序。 3、C 語
3、言程序的注釋可以出現(xiàn)在程序中的任何地方,它總是以 * 符號(hào)作為開始標(biāo)記,以 */ 符號(hà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í)符只能由字母、數(shù)字和 下劃線 三種字符組成。第三章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 一、選擇題:1、以下選項(xiàng)中,不正確的 C 語言浮點(diǎn)型常量是( C )。 A. 160. B. 0.12 C. 2e4.2 D. 0.02、以下選項(xiàng)中,( D
4、 )是不正確的 C 語言字符型常量。 A. a B. x41 C. 101 D. a3、 在 C 語言中,字符型數(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í)按從高到低依次為( 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)算
5、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)&(n=cd)后, m,n 的值是( A)。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 9、 設(shè)有語句 int a=3;,則執(zhí)行了語句 a+=a-=a*=a;后,變量 a 的值是( B )。 A. 3 B. 0 C.
6、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 類型,則表達(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. 出錯(cuò) 14、設(shè)a=1,b=2,c=3,d=4,則表達(dá)式:ab? a : cd? a : d的結(jié)果
7、為( D )。 A. 4 B. 3 C. 2 D. 1 15、設(shè)a 為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系:10a15的 C 語言表達(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ù)類型是( C )。A. int B. float C. double D. 不確定 18、已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句C2=A+6-3;后c2中的值是( A )
8、。 A. D B. 68 C. 不確定的值 D. C 19、以下用戶標(biāo)識(shí)符中,合法的是( B )。 A. int B. nit C. 123 D. a+b 20、C 語言中,要求運(yùn)算對(duì)象只能為整數(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)存占用的字節(jié)數(shù)是( B )。 A. 3 B. 4 C. 6 D. 8 23、要為字符型變量 a賦初值,下列語句中哪一個(gè)是正確的( B )。 A. char a=3; B. char a=3; C. c
9、har 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,則計(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/100; printf(“%d”,y); else printf(“%d”,a+b);2. if結(jié)構(gòu)main() float t;char c;printf(“in
10、put 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”,&t);switch(t/10) case 10:case 9: ch=A;break;case 8: ch=B;break;case 7: ch=C;break
11、;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;case 0: x=0; break;循環(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
12、2. ch=getchar() ch=A&ch=Z3. s=s+t*i t=-t三、閱讀下列程序,寫出程序運(yùn)行的輸出結(jié)果 18522. 89213. 54. SUM=2468四、程序改錯(cuò)1.main() int i=200,n=0; /*n用來記錄每行已打印數(shù)的個(gè)數(shù)*/ while(i=300) if(i%7=0) /break; printf(%5d,i); n=n+1; if(n=5) /*滿5個(gè)換行*/ 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; printf(sum=%dn,s
13、); 五、程序設(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() 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.#
14、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”); 第7章 數(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ù)中,( )所在的頭文件與其他 3 個(gè)不同。A A. gets B. strcpy C. strlen D. strcmp(3) 以下 4 個(gè)數(shù)組定義中,( )是錯(cuò)誤的。 DA. int a7;
15、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è)元素的首地址 C. 數(shù)組所有元素的首地址 D.數(shù)組最后 1 個(gè)元素的首地址(6) 若有以下數(shù)組說明,則數(shù)值最小的和最大的元素下標(biāo)分別是( )。 Bint a12 =1,2,3,4,5,6,7,8,9
16、,10,11,12; A. 1,12 B. 0,11 C. 1,11 D. 0,12 (7) 若有以下說明,則數(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(s); 的輸出是( )。 AA. 6 B. 7 C. 11 D. 12 (9) 設(shè)有定義:char s12 = string; 則printf(%dn , sizeof(s); 的輸出是(
17、)。 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. int a23=0,1,2,3,4,5,6; D. int a23=0,1,2,3,4,5,; (12) 下列語句中,正確的是 ( )。DA. char a3 =abc, 1; B. char a
18、 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. 輸出語句出錯(cuò)(14) 下列各語句定義了數(shù)組,其中哪一個(gè)是不正確的( )。 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=
19、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+) array0=array0+arrayi;/第B行 printf(%fn,array0); /第C行 A. 第A行 B. 第B行 C. 第C行 D. 沒有(17) 下面哪一項(xiàng)是不正確的字符串賦
20、值或賦初值的方式( )。 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=12345678;(18) 若有以下說明和語句,則輸出結(jié)果是哪一項(xiàng)( )。C (strlen(s)為求字符串s的長度的函數(shù)) char s12=a book!; printf(%d,strlen(s); A. 12 B. 8 C. 7 D. 11(19) 若有以下說明和語句,則輸出結(jié)果是( )。B (strlen(s)為求字符串s的長度的函數(shù)) char s
21、p=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.dat2. 填空題 (1) C 語言中,數(shù)組的各元素必須具有相同的 ,元素的下標(biāo)下限為 ,下標(biāo)必須是正整數(shù)、0、或者 。但在程序執(zhí)行過程中,不檢查元素下標(biāo)是否 。數(shù)據(jù)類型,0,符號(hào)常量,越界(2) C 語言中,數(shù)組在內(nèi)存中占一片 的存儲(chǔ)區(qū),由 代表它的首
22、地址。數(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è)有定義語句 static int a34 =1,2,3; 則 a10值為 ,a11 值為 ,a21的值為 。 2,0,0(5) 如定義語句為 char a = windows,b = 95;,語句 printf(%s,strcat(a,b);的輸出結(jié)果為 。Windows95(6) 根據(jù)以下說明,寫出正確的說明語句:men是一個(gè)有10個(gè)整型元素的數(shù)組。 step是一個(gè)有4個(gè)實(shí)型元素的數(shù)組,元素值分別為1
23、.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,正確的說明語句為: 。該數(shù)組下標(biāo)的取值范圍是從_到_(從小到大)。用scanf函數(shù)輸入數(shù)組的第二個(gè)元素表示為: 。用賦值語句把39存入第一個(gè)元素表示為: 。把第六個(gè)和第四個(gè)元素之和存入第一個(gè)元素表示為: 。int array10 = 9,4,7,49,32,-5; 0 9 scanf(%d
24、,&array1); 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 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ù)組元素和它們得值如下所示:
25、 數(shù)組元素: a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 元素的值: 9 4 12 8 2 10 7 5 1 3 請(qǐng)寫出對(duì)該數(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)bn012/的長度為_。103. 判斷題( )(1) C允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即可用變量定義數(shù)組的大小。 ( )(2) 字符數(shù)組不要求它的最后一個(gè)字符為0,甚至可以不包含0。( )(3) 數(shù)組定義 int a10; 也可以寫成 int
26、 a(10); 。( )(4) 在對(duì)全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組長度。( )(5) 定義s為56(5行6列)的數(shù)組可寫成 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 c=“a book”; 等價(jià)。( )(9) static char c=a , ,b,o,o,k,0;與 static char c=a , ,b,o,o,k; 等價(jià)。( )(10
27、) 設(shè)已有說明: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); for(i=1;i20;i+) if(fabs(ai-pjz)s) s=fabs(ai-pjz); t=ai; -for(i=0;i20;i+) scanf(“%f”,&ai); pj
28、z/=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=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=
29、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=array0; min=array0; for(i=0;i= ;i+) if(maxarrayi) sum= ; average = ; printf(20個(gè)數(shù)中最大值是%d,max); prin
30、tf(最小值是%d,min); printf(和是%d,sum); printf(平均值是%d.n,average);20 20 &arrayi 19 max=arrayi; min=arrayi; sum+arrayi sum/20B卷5. 閱讀程序,分析程序的功能。 (1)#include #include void main( ) char s80; int i ; for(i=0; i80; i+) si=getchar( ); if(si=n) break; si=0; i=0; while(si) putchar(si+); putchar(n); 從鍵盤輸入一個(gè)字符串,并逐一輸出
31、(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); 從鍵盤輸入若干字符串,找到其中最長的一個(gè)輸出及它的長度(3)#include #include void main( ) char a1080, c80; int i, j, k
32、; 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)行結(jié)果#include void main( ) int a6=12,4,17,25,27,16,b6=27,13,4,25,23,16,i
33、,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,a); gabcdeffgabcdeefgabcd(6) 閱讀下列程序,寫出程序運(yùn)行的輸出結(jié)果。 #include #include void
34、 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 i,j; int min; int m,n; min = array00; m=0;n=0; for(i=0;i3;i+) for(j=0;j arrayij)
35、min = arrayij; m=i;n=j; printf(min=%d,m=%d,n=%dn,min,m,n); -5.77 2 1(8) 寫出下面這個(gè)程序的輸出結(jié)果:void main()char str=ABCDEFGHIJKL;printf(%sn,str); 屏幕上顯示 printf(%sn,&str4); 屏幕上顯示 str2=str5;printf(%sn,str); 屏幕上顯示 str9=0;printf(%sn,str); 屏幕上顯示 ABCDEFGHIJKLEFGHIJKLABFDEFGHIJKLABFDEFGHI(9) 讀懂下面的程序并填空。void main() ch
36、ar 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第8章 函數(shù)習(xí)題A卷1. 單項(xiàng)選擇題 (1)C 語言總是從 函數(shù)開始執(zhí)行。 AA. main B. 處于最前的 C.處于最后的 D. 隨機(jī)選一個(gè) (2)函數(shù)在定義時(shí),省略函數(shù)類型說明符,則該函數(shù)值的類型為 。A A. int B. float C. long D. double (2)以下 函數(shù),真
37、正地沒有返回值。 BA. 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ù)的說法,以下正確的是 。 AA. 函數(shù)可嵌套定義,也可嵌套調(diào)用 B. 函數(shù)可嵌套定義,但不可嵌套調(diào)用 C. 函數(shù)不可嵌套定義,但可嵌套調(diào)用 D. 函數(shù)不可嵌套定義,也不可嵌套調(diào)用 (4)以下函數(shù)調(diào)用語句中,含有實(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ù)語句中
38、C. 函數(shù)參數(shù)中 D. 以上都是 (6)被調(diào)函數(shù)返回給主調(diào)函數(shù)的值稱為 。C A. 形參 B. 實(shí)參 C. 返回值 D. 參數(shù) (7) ,可以不進(jìn)行函數(shù)類型說明。 DA. 被調(diào)函數(shù)的返回值是整型或字符型時(shí) B. 被調(diào)函數(shù)的定義在主調(diào)函數(shù)定義之前時(shí) C. 在所有函數(shù)定義前,已在函數(shù)外預(yù)先說明了被調(diào)函數(shù)類型 D. 以上都是 (8)被調(diào)函數(shù)通過 語句,將值返回給主調(diào)函數(shù)。 DA. if B. for C. while D. return (9)被調(diào)函數(shù)調(diào)用結(jié)束后,返回到 。 DA.主調(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)函
39、數(shù)中該被調(diào)函數(shù)調(diào)用語句的后一語句(10)以下對(duì) C語言函數(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 語言中函數(shù)的隱含存儲(chǔ)類型是 。 CA. auto B. static C. extern D. 無存儲(chǔ)類型 (12)能把函數(shù)處理結(jié)果的兩個(gè)數(shù)據(jù)返回給主調(diào)函數(shù),在下面的方法中不正確的是 。AA. return 這兩個(gè)數(shù) B. 形參用兩個(gè)元素的數(shù)組 C. 形參用兩個(gè)這種數(shù)據(jù)類型的指
40、針 D. 用兩個(gè)全局變量 (13)C語言可執(zhí)行程序從什么地方開始執(zhí)行 ( )。 CA. 程序中第一條可執(zhí)行語句 B. 程序中第一個(gè)函數(shù)C. 程序中的main函數(shù) D. 包含文件中的第一個(gè)函數(shù)(14)有一個(gè)函數(shù)原型如下所示,則該函數(shù)的返回類型為( ) 。 C abc(float x,float y);A. void B. double C. int D. float2. 填空題 (1) 變量的作用域主要取決于變量 ,變量的生存期既取決于變量 ,又取決于變量 。 所處的位置,所處的位置,存儲(chǔ)類型(2) 說明變量時(shí),若省略存儲(chǔ)類型符,系統(tǒng)默認(rèn)其為 存儲(chǔ)類別,該存儲(chǔ)類別的類型符為: 。動(dòng)態(tài),auto(
41、3) 靜態(tài)型局部變量的作用域是 ,生存期是 。它所在的局部,整個(gè)程序(4) 函數(shù)中的形參和調(diào)用時(shí)的實(shí)參都是數(shù)組名時(shí),傳遞方式為 ,都是變量時(shí),傳遞方式為 。 址傳遞,值傳遞(5) 函數(shù)的形式參數(shù)的作用域?yàn)?,全局的外部變量和函數(shù)體內(nèi)定義的局部變量重名時(shí), _變量優(yōu)先。 該函數(shù)中,局部(6) 若自定義函數(shù)要求返回一個(gè)值,則應(yīng)在該函數(shù)體中有一條 語句,若自定義函數(shù)要求不返回一個(gè)值,則應(yīng)在該函數(shù)說明時(shí)加一個(gè)類型說明符 。 return,void(7) 若函數(shù)的形式參數(shù)是指針類型,則實(shí)參可以是 或 。指針,數(shù)組名(8) 函數(shù)的參數(shù)為 char *類型時(shí),形參與實(shí)參結(jié)合的傳遞方式為 。址傳遞(9) 函數(shù)
42、的實(shí)參為常量時(shí),形參與實(shí)參結(jié)合的傳遞方式為 。值傳遞(10) 下面這個(gè)函數(shù)的功能是求兩個(gè)整數(shù)的積,并通過形參傳回結(jié)果,請(qǐng)?zhí)羁?。int int int* *resultvoid mul(_x,_y,_result) _=x*y;3. 判斷題( )(1) 函數(shù)說明指的是在程序中設(shè)定一個(gè)函數(shù)模塊。 ( )(2) 形參只有在被調(diào)用時(shí)才分配存儲(chǔ)空間。 ( )(3) 在C的函數(shù)中,最好使用全局變量。 ( )(4) 在調(diào)用函數(shù)時(shí),實(shí)參傳值給形參,調(diào)用結(jié)束時(shí),形參值傳給實(shí)參。 ( )(5) 所有函數(shù)定義都是并行的,相互獨(dú)立的。 ( )(6) 函數(shù)的隱含存儲(chǔ)類型是extern。 ( )(7) 形參可以是常量、變
43、量或表達(dá)式。 ( )(8) 函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參。( )(9) C語言規(guī)定,實(shí)參應(yīng)與其對(duì)應(yīng)的形參類型一致。 ( )(10) 定義函數(shù)時(shí),形參的類型說明可以放在函數(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(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;
44、 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 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;
45、 *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) #include #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-;
46、 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, 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; voi
47、d 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)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);lo
48、ng 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);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
49、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(int 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
50、+; *p=a+2; return(*p+a);36 16 19第九章 預(yù)處理 A部分(本、專科必做)一、選擇題 以下不正確的敘述是(D) A、宏替換不占用運(yùn)行時(shí)間。 B、宏名無類型。C、宏替換只是字符替換。 D、宏名必須用大寫字母表示。C語言的編譯系統(tǒng)對(duì)宏命令的處理(D) A、在程序運(yùn)行時(shí)進(jìn)行的。 B、在程序連接時(shí)進(jìn)行。C、和C程序中的其它語句同時(shí)進(jìn)行編譯的。D、在對(duì)源程序中其它語句正式編譯之前進(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;
51、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ù)處理是在編譯之前進(jìn)行的。 5、以下敘述中正確的是(C)A、源程序中所有的行都參加編譯。B、宏定義常量與const定義常量是一樣的。C、宏定義可以嵌套定義,即在宏定義中的字符串可以引用另一個(gè)宏定義的標(biāo)識(shí)符。D、以上都不正確。二、填空題 以下程序中for 循環(huán)執(zhí)行的次數(shù)是 6 。 #define N 2
52、#define M N+1#define NUM (M+1)*M/2void main() int i; for(i=1;i=A&c=a&c=z)?1:0)第十章 指針 A部分(本、專科必做)一、選擇題1、若有定義:int x,*pb;則以下正確的表達(dá)式是(A)A、pb=&x B、pb=x C、*pb=&x D、*pb=*x2、以下程序的輸出結(jié)果是(B)A、因變量無定義輸出不定值 B、0 C、-1 D、1#includevoid main()printf(“%dn”,NULL);3、以下程序的輸出結(jié)果是(B)A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7#
53、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 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í)行語句*p+;后,*p的值是(B)。A、20 B
54、、30 C、21 D、31 a0 a1 a2 a3 a41020304050(圖一)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、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的地址#inclu
55、devoid 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) p+; return(p-s); main() char *a=abded; int i; i=ss(a); printf(%dn,i); 二、填空題1、若有定義:char ch;(1)使指針p指向變量ch的定義語句是 char *p=&ch; 。(2)若已定義char *p;,使指針p指向變量ch的賦值語句是 p=&
56、ch; 。(3)在(1)的基礎(chǔ)上,通過指針p給變量ch讀入字符的scanf調(diào)用語句是 scanf(“%c”,p); 。(4)在(1)的基礎(chǔ)上,通過指針p給變量ch賦字符a的語句是*p=a; 。(5)在(1)的基礎(chǔ)上,通過指針p用格式輸出函數(shù)輸出ch中字符的語句是printf(“%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=
57、*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(%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 ;第十一章 結(jié)構(gòu)體與共用體 A部分(本、專科必做)一、選擇
58、題1、設(shè)有如下定義: struct skint a;float b;data,*p; 若有p=&data;,則對(duì)data中的a域的正確引用是(B)。2、根據(jù)以下定義,能輸出字母M的語句是(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,”Paul”,19,”Mary”,18,”Adam”,16,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 項(xiàng)目研發(fā)專門財(cái)務(wù)制度
- 農(nóng)發(fā)資金財(cái)務(wù)制度
- 建宗祠財(cái)務(wù)制度
- 財(cái)務(wù)制度管理與銷售
- 農(nóng)發(fā)行貸款三查制度
- 養(yǎng)老院老人緊急救援人員職業(yè)道德制度
- 養(yǎng)老院老人活動(dòng)參與制度
- 電廠清單化管理制度模板(3篇)
- 浮筒浮橋施工方案(3篇)
- 周口樁基施工方案(3篇)
- 技術(shù)規(guī)范評(píng)審匯報(bào)
- GB/T 462-2023紙、紙板和紙漿分析試樣水分的測(cè)定
- 不組織不參與非法集資承諾書
- 2023春國開農(nóng)業(yè)經(jīng)濟(jì)基礎(chǔ)單元自測(cè)1-16試題及答案
- 2023年高鐵信號(hào)車間副主任述職報(bào)告
- GB/T 879.4-2000彈性圓柱銷卷制標(biāo)準(zhǔn)型
- GB/T 1957-2006光滑極限量規(guī)技術(shù)條件
- GB 28480-2012飾品有害元素限量的規(guī)定
- 劉一秒演說智慧經(jīng)典(內(nèi)部筆記)
- 管道TOFD檢測(cè)記錄及續(xù)表
- 馬克思主義哲學(xué)精講課件
評(píng)論
0/150
提交評(píng)論