C語言試題及答案_第1頁
C語言試題及答案_第2頁
C語言試題及答案_第3頁
C語言試題及答案_第4頁
C語言試題及答案_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 1 章C 語 言 概 述 習 題1.單項選擇題(1)C語百是在B語言的基礎上產生的。A.回車符B.冒號C.逗號D.分號在C語言中,每個語句必須以D結束。A.回車符B.冒號C.逗號D.分號標識符和關鍵字間,要用CP仙。A.回車符B.冒號C.空格D.分號(4) 用C語言編寫的源文件經過編譯,若沒有產生編譯錯誤, 則系統將(B ) oA.生成可執行目標文件B. 生成目標文件 C.輸由運行結果 D.自動保存源文件(5) 下列說法中正確的是(B ) oA.由于C源程序是高級語言程序,因此一定要在TC軟件中輸入B.由C源程序是字符流組成,因此可以作為文本文件在任何文 本編輯的軟件中輸入C.由于C程序是

2、高級語言程序,因此輸入后即可執行D.由于C程序是高級語言程序,因此它由命令組成(6) 下列說法中正確的是(A ) oA. C語言程序由主函數和 0個或多個函數組成B. C語言程序由主程序和子程序組成C. C語言程序由子程序組成程組成D. C語言程序由過(7) 下列說法中錯誤的是(D ) oA.主函數可以分為兩個部分:主函數說明部分和主函數體(8) 函數可以調用任何非主函數的其他函數C.任何非主函數可以調用其他任何非主函數D.程序可以從任何非主函數開始執行2.填空題(1) C語言只有 37 個關鍵字和 9 種控制語句。(2) C語言是一種“中級語言"既具有高級語言的特點又 具有低級語言

3、的特點;既適合于開發系統軟件又適合于編寫應用程序。(3) 每個源程序有且只有一個 函數,系統總是從該函數開始執行C語言程序。(4) 在C語言程序中允許由現的字符集是ASCII碼字符集。(5) C 語言的程序中有特殊含義的英語單詞稱為保留字 。(6) C語言標識符的長度是前 8 位有效。(7) C語言中,標識符的定義規則是以字母或下劃線為開頭 。(8) C語言程序的注釋可以由現在程序中的任何地方,它總是以/*符號作為開始標記,以3符號作為結束標記。第2章數據類型運算符和表達式習題1 .單項選擇題(1) 以下選項中,正確的 C語言整型常量是 D OA. 32L B. 510000 C. -1.00

4、 D. 567(2) 以下選項中,D 是不正確的C語言字符型常量。A. ' a' B.'x4TC. '101 D. "a"(3) 在C語言中,字符型數據在計算機內存中,以字符的C形式存儲。A. 原碼 B. 反碼 C. ASCII 碼 D. BCD 碼 (4)字符串的結束標志是 C。A. 0 B. 0' C. '0' D. "0"(5) 算術運算符、賦值運算符和關系運算符的運算優先級按從高到低依次為_B。A.算術運算、賦值運算、關系運算B.算術運算、關系運算、賦值運算C.關系運算、賦值運算、算術運算D

5、.關系運算、算術運算、賦值運算(6) 邏輯運算符中,運算優先級按從高到低依次為D。A. && , ! , | B. |, &&, ! C. &&, | , ! D. !,&&, 1| 表達式!x|a=b 等效于D 。A. !(x|a)=b) B. !(x|y)=b C. !(x|(a=b)D. (!x)|(a=b)(8)設整型變量m,n,a,b,c,d均為 1,執行(m=a>b)&&(n=c>d)后,m,n 的值是 A 。A. 0,0 B. 0,1 C. 1,0 D. 1,1(9) int b=0 ,

6、x=1 ;執行語句 if(x+) b=x+1; 后,x, b 的值 依次為 A oA. 2,3 B. 2,0 C. 3,0 D. 3,2(10)設有語句int a=3;,則執行了語句a+=a-=a*=a; 后,變量 a的值是 B。A. 3 B. 0 C. 9 D. -12(11)在以下一組運算符中,優先級最低的運算符是D oA. * B. != C. + D.=(12) 設整型變量i值為2,表達式(+i)+(+i)+(+i) 的結果是 B。A. 6 B. 12 C. 15 D.表達式由錯(13) 若已定義x 和y為double 類型,則表達式 x=1 , y=x+3/2 的值是 C。(都為整型

7、)A. 1 B. 2 C. 2.0 D. 2.5(14) size of (double)的結果值是A 。(表是長度)字節A. 8 B. 4 C. 2 D.由錯(15) 設 a=1, b=2, c=3, d=4,則表達式:a<b? a : c<d? a : d的結果為 D oA. 4 B. 3 C. 2 D. 1(16)設a為整型變量,不能正確表達數學關系:10<a<15的C語 表達式是 A。A. 10<a<15B.a= =11| a= =12 | a= =13 |a= =14C. a>10 && a<15D. !(a<=1

8、0) && !(a>=15)(17)設f 是實型變量,下列表達式中不是逗號表達式的是D。A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0, f>0 D.f=(3.2, 1.0)(18)設ch是char型變量,其值為'A',則下面表達式的值是B 。ch=(ch>='A'&& ch<='Z')? (ch+32):chA. A B. a C. Z D. Z(19)以下運算符中,結合性與其他運算符不同的是A。A. + B. % C. / D. +(20)以下用戶

9、標識符中,合法的是 B。A. int B. nit C. 123 D. a+b(21) C 語言中,要求運算對象只能為整數的運算符是*。A. % B. / C. > D. *(22) PC 機中,'n'在內存占用的字節數是 A。A. 1B. 2C. 3D. 4(23) 字符串"ABC"在內存占用的字節數是 B。A。 3B. 4C. 6D. 8(24)要為字符型變量a賦初值,下列語句中哪一個是正確的B。A. char a="3" B. char a= ' 3' ; C. char a=%; D.char a=*;(25

10、)下列不正確的轉義字符是 C。A. B. ' C. 074 D. 02.填空題(1) C語言中的邏輯值“真”是用 ! 0表示的,邏輯值“假” 是用 0 表示的。(2) 符號常量的定義方法是#define N 10。(3) 無符號基本整型的數據類型符為unsigned int ,雙精度實型數據類型符為 double,字符型數據類型符為 char 。(4) 設 c='w',a=1,b=2,d=-5,則表達式'x'+1>c,'y'!=c+2,-a-5*b<=d+1, b=a=2 的值分別為、0、1、 表達式錯誤。 設 float x

11、=2.5,y=4.7; int a=7;,表達式 x+a%3*(int)(x+y)%2/4 的值為 2.5。(6) 判斷變量 a、b的值均不為 0的邏輯表達式為 (a!=0)&&(b!=0)。(7) 求解賦值表達式a=(b=10)%(c=6),表達式值、a、b、c的值依次為4,4,10,6。(8) 求解逗號表達式x=a=3,6*a 后,表達式值、x、a的值依次為 18,3,3。(9) 數學式a/(b*c)的C語言表達式a/(b*c)。第3章順序結構程序設計習題1 .選擇題(1) printf("f=%3.2f %3.478);的輸生結果是 A 。A. f=3.48%

12、B. f=3.5% C. f=3.48% % D. f=347.8%(2) printf("%c,%d",'a','a');的輸由結果是 A。A. a,97 B. a 97 C. 97,a D. 97 a(3) scanf("%c",&a);若要給變量輸入大寫字母A,則以下正確的輸入是 B oA. 'A' <CR> B. A <CR> C. "A" <CR> D.以上都不對 若一個int類型的數據占2字節,則程序段:int x=-1;print

13、f("%u,%d",x,x); 的輸生結果是 A 。A. 65535, -1 B. -1,65535C. 32767,32768 D.32768,32767(5) 在 TC 中,getchar、putchar、printf 、scanf 四個函數, 均包含在頭文件_B中。A. math.hB. stdio.hC. stbio.hD.stdlib.h(6) 復合語句是用 C 括起來的語句組。A. ( ) B. C. D. < >(7) 下列格式符中,哪一個可以用于以八進制形式輸由整數C。A. %d B. %8d C. %o D. %ld(8) 下列格式符中,哪一個

14、可以用于以十六進制形式輸由整數B。A. %16d B. %8x C. %d16 D. %d(9) a是int類型變量,c是字符變量,下列輸入語句中哪一個是 錯誤的 B。A. scanf("%d,%c",&a,&c);B. scanf("%d%c",a,c);C. scanf("%d%c",&a,&c);D. scanf("d=%d,c=%c",&a,&c);(10 )要使double x; long a;的數據能正確的輸由,輸由語句應是-D。A. printf(&qu

15、ot;%d, %f',a, x);B. printf("%d,%1f',a,x);C. scanf("%1d, %1f',&a, &x);D.printf("%1d, %lf',a, x);2.程序改錯題(以下各個程序段均有 5個錯誤,請先找由錯誤的位置,然后再改正 )(1) 以下程序的功能是,從鍵盤輸入一個字符并鳴笛輸出。#include "stdio.h"mian() /main() char c / char c;getchar(c);/c = getchar();putchar('

16、007') ; /* 鳴笛 */c=putchar(); /putchar(c);/(2) 以下程序的功能是,輸入長方形的兩邊長( 邊長可以取整數和實數) ,輸出它的面積和周長。main /main()int a,b, s,l; /double a,b,s,l;scanf("%d,%d",&a,&b); /scanf("%lf,%lf",&a,&b);s=a*b;l= a+b; /l=(a+b)*2;printf("l=%f,s=%fn",l ); /printf(" l=%lf,s=

17、%lfn ",l,s);(3) 寫出程序運行結果(1)main()int a,b;scanf("%2d %*2s%2d",&a,&b);printf("%dn",a+b);運行時輸入:輸出 :68(2)main()int a=3,b=5,x,y;x=a+1, b+6;y=(a+1, b+6);printf("x=%dny=%dn",x,y);輸出: x=4y=11第 4 章 選擇結構程序設計習題B。根據判斷條件,選擇其中一個以上都是1. 單項選擇題(1) 選擇結構程序設計的特點是A. 自上向下逐個執行B.分支

18、執行C. 反復執行某些程序代碼D.假定所有變量均已正確定義,下列程序段運行后x的值是B_Oa=b=c=0, x=35;if(!a) x-; else if(b); if(c) x=3; else x=4;A. 34 B. 4 C. 35 D. 3(3)下面的程序片段所表示的數學函數關系是4 。if(x<0) y= -1;else if(x>0) y=1;else y=0;(4) 下列各語句序列中,能夠且僅輸由整型變量a、b中最大值的是(C )。A. if(a>b) printf("%d'n",a); printf("%d'n&qu

19、ot;,b);B. printf("%d'n",b); if(a>b) printf("%d'n",a);C. if(a>b) printf("%d'n",a); else printf("%d'n",b);D. if(a<b) printf("%d'n",a); printf("%d'n",b);(5) 以下程序段的輸由結果是Aint x=5;if(x>0) y=1;else if(x=0) y=0;e

20、lse y= 1;printf("%d",y);A. 1 B. 5 C. 0 D. 2(6) 程 序 段 int x=5,y=8,max; max=(x>y)?x:y; printf("%d",max); 的輸生結果是 B 。A. 5 B. 8 C. 3 D. 13(7) 程序段 int x=3,a=1;switch(x) case 4: a+;case 3: a+;case 2: a+;case 1: a+; printf ("%d",a);的輸生結果是D oA. 1 B. 2 C. 3 D. 4(8) 下列語句應將小寫字母轉

21、換為大寫字母,其中正確的是(B )。A.if(ch>='a'&ch<='z') ch=ch-32;B.if(ch>='a'&&ch<='z')ch=ch-32;C.ch=(ch>='a'&&ch<='z')?ch-32:D.ch=(ch>'a'&&ch<'z')?ch-32:ch;2.閱讀程序,寫生運行結果(1)void main ()int a=10, b=4,

22、c=3;if(a<b) a=b ;if(a<c) a=c ;printf("%d, %d, %dn”, a,b, c);J輸由:10, 4, 3(2)void main ()int x=100,a=10,b=20,ok1=5, ok2=0;if(a<b)if(b!=15)if(!ok1) x=1;else if(ok2) x=10;else x=-1;int k,a=1,b=2;k=(a+=b) ? 2:3;printf("%d",k);輸由:3void main()int s=1,k=0;switch (s)case 1: k+=1;case

23、2: k+=2;default: k+=3;第5章循環結構程序設計習題1.單項選擇題printf("%d'n", x);輸由:-1 ;printf( "d ,k);輸由:6(5)void main()int s=1,k=0;switch (s)case 1: k+=1;break;case 2: k+=2;break;default: k+=3;printf( "d ,k);輸由:1(1) for(i=1;i<9;i+=1);該循環共執行了 B次A. 7 B. 8 C. 9 D. 10int a=2;while(a=0) a-;該循環共執行

24、了A 次。A. 0 B. 1 C. 2 D. 3(3)執行完循環for(i=1;i<100;i+); 后,i的值為 BA. 99 B. 100 C. 101 D. 102(4)以下for語句中,書寫錯誤的是 D oA. for(i=1;i<5;i+); B. i=1;for(;i<5;i+);C. for(i=1;i<5;) i+;D. for(i=1,i<5,i+);(5) C 語句,在循環條件初次判斷為假,還會執行一次循環體A. for B. while C. do-while D.以上都不是(6)循環結構的特點是C 。A.從上至下,逐個執行一個分支C.滿足條

25、件時反復執行循環體i 、j已定義為int 類型,是 A ofor(i=5;i;i-)for(j=0;j<4;j+)A. 20 B. 24 C. 25 D. 30B. 根據判斷條件,執行其中D. 以上都對則以下程序段中內循環體的執行次數(8) C語言while語句中,用于條件的表達式是_D。A.關系表達式B.邏輯表達式C.算術表達式D. 任意表 達式(9) int a=1, x=1;循環語句 while(a<10) x+; a+;的循環執行D。A. 無限次 B. 不確定次 C. 10 次 D. 9 次(10)下列程序段執行后s的值為上。int i=1, s=0; while(i+)

26、if(!(i%3) break ; else s+=i ;A. 2 B. 3 C. 6 D.以上均不是2 .填空題(1)三種循環語句是 等價 價的。(2)當循環體中的switch語句內有break語句,則只跳由swicth 語 句。同樣,當switch語句中有循環語句,內有 break 語句,則只跳 出 循環 語句。(3)循環體執行遇到continue 語句時跳過本次循環進入下次循3 。(4)下列程序的功能是輸入一個正整數,判斷是否是素數,若為素數輸由1 ,否則輸由0 ,請為程序填空。void main()int i, x, y=1;scanf("%d", &x);

27、for(i=2; i<=x/2; i+)if ( x%i=0 ) y=0; break; printf("%d'n",y);(5)輸入N個實數,輸由其中的最大值、最小值#include <stdio.h> void main()int n,i;float no1,nmax,nmin;scanf("%d",&n); scanf("%f",&no1);nmax=no1;nmin=no1 ;for(i=2;i<=n;i+)scanf("%f", &no1 );if(

28、no1>nmax) nmax=no1;if(no1<nmin) nmin=no1;printf("MAX=%f MIN=%fn",nmax,nmin);(6)輸入若干個字符,分別統計數字字符的個數、英文字母的個數, 當輸入換行符時輸由統計結果,運行結束。#include <stdio.h> void main()char ch;int s1=0,s2=0 ;while( ch=getchar() )!='n')if(ch>='0'&&ch<='9') s1+;if(ch>

29、;='a'&&ch<='z' |ch>=,A 11ch<= ' Z,) s2+;3.閱讀下列程序,寫由程序運行的輸生結果(1)void main() int y=9;for( ;y>0; y-)if(y%3=0) printf("%d",-y);continue;輸由:852(2)main()int k,n,m;n=10;m=1;k=1;while(k+<=n)m*=2;printf("%d'n",m);輸由:1024(3)void main () int i=

30、5;doswitch (i%2)case4:i-;break;case6:i-;continue;i- ; i- ;printf("i=%d ",i); while(i>0);輸出: i=3 i=1 i=-1(4) #include <stdio.h>void main( )int k=0; char c='A'doswitch(c+)case'A':k+;break;case 'B': k-;break;case 'D':k=k%2;break;case 'E': k=k*1

31、0;break;default: k=k/3;k+;while(c<'G');printf("k=%dn", k);輸出: 8(5) 輸入數據: 2,4#include <stdio.h>void main( )int s=1,t=1,a,n;int i ;scanf("%d , %d",&a,&n);for(i=1;i<n;i+) t=t*10+1; s=s+t;case'C':k+=2;s*=a;printf("SUM=%dn",s);輸由:24684.程序改

32、錯(1)以下程序是顯示200, 300所有能被7整除的數,每行顯示5個數,此程序有5處錯。main()int i,n=0;/*n用來記錄每行已打印數的個數*/while(i<300) /while(i <= 300)&&(i >= 200)/i+;if(i%7=0) /if(i%7!=0)break; /continue;printf("%5d",i);n=n+1;if(n=5)/* 滿 5 個換行 */ /if(n = 5)printf("n");n=0;(2)以下程序是求1!+2!+3!+4!+5!+6!+7!的值,

33、其中有 3處錯誤。main()int i,s,t=0; /long s = 0,t = 1;/int i;for(i=1;i<=7;i+) s=0; /去掉該語句t=t*i;s=s+t;printf("sum=dn",s); printf("sum=%ld' ,s);第6章函數習題1 .單項選擇題(1)C語言總是從 A 函數開始執行。A. main B.處于最前的C.處于最后的D. 隨機選一個(2)函數在定義時,省略函數類型說明符, 則該函數值的類型為A。A. int B. float C. long D. double(2)以下 B 函數,真正地沒

34、有返回值。A. int a()int a=2;return (a);B.voidb()printf("c");C. int a()int a=2;return a;D.以上都是(3)在C語言中,有關函數的說法,以下正確的是C oA.函數可嵌套定義,也可嵌套調用B.函數可嵌套定義,但不可嵌套調用C.函數不可嵌套定義,但可嵌套調用D.函數不可嵌套定義, 也不可嵌套調用(4)以下函數調用語句中,含有實參的個數為B。 7fun(2,3),(4,5+6,7);A. 1 B. 2 C. 5 D. 6 (5)函數調用可以在 D。A.函數表達式中 B.函數語句中C. 函數參數中D.以上都是

35、(6)被調函數返回給主調函數的值稱為C 。A.形參 B. 實參 C. 返回值 D. 參數(7) D,可以不進行函數類型說明。A.被調函數的返回值是整型或字符型時B.被調函數的定義在主調函數定義之前時C.在所有函數定義前,已在函數外預先說明了被調函數類型D.以上都是(8)被調函數通過 _D語句,將值返回給主調函數。A. if B. for C. while D. return (9)被調函數調用結束后,返回到 BA.主調函數中該被調函數調用語句處B.主函數中該被調函數調用語句處C.主調函數中該被調函數調用語句的前一語句D.主調函數中該被調函數調用語句的后一語句(10)以下對C語言函數的有關描述中

36、,正確的是 A 。A.在C中,調用函數時,只能把實參的值傳送給形參,形參的值不 能傳送給實參B. C函數既可以 嵌套定義 又可遞歸調用C.函數必須有返回值,否則不能使用函數D.| C程序中有調用關系的所有函數必須放在同一個源程序文件中(11)C語言中函數的隱含存儲類型是A oA. auto B. static C. extern D.無存儲類型(12)能把函數處理結果的兩個數據返回給主調函數,在下面的方法中不正確的是 A oA. return 這兩個數B.形參用兩個元素的數組C.形參用兩個這種數據類型的指針D.用兩個全局變量2.填空題(1) 變量的作用域主要取決于變量定義的位子 ,變量的生存期

37、既取決于變量存儲類型,又取決于變量存儲方式 。(2) 說明變量時,若省略存儲類型符,系統默認其為整形 存儲類別,該存儲類別的類型符為:Jnt o(3) 靜態型局部變量的作用域是靜態局部變吊定義的復合語句或函數體內 ,生存期是整個程序運行期內。(4) 函數中的形參和調用時的實參都是數組名時,傳遞方式為_Jt址傳遞 ,都是變量時,傳遞方式為值傳遞 。(5) 函數的形式參數的作用域為整個函數體內,全局的外部變量和函數體內定義的局部變量重名時,函數體內定義的局部變量優先。(6) 若自定義函數要求返回一個值,則應在該函數體中有一條return 語句,若自定義函數要求不返回一個值,則應在該函數說明 時加一

38、個類型說明符void 。(7) 若函數的形式參數是指針類型,則實參可以是 數組名 、 地址或指針變量。(8) 函數的參數為char *類型時,形參與實參結合的傳遞方式為 地址傳遞。(9) 函數的實參為常量時,形參與實參結合的傳遞方式為值傳1 O(10) 對數組按值從大到小的順序排序后輸由,請填空。#include <stdio.h>void main()float a7=2,6,3,8,3,12,9;int i?;void sort(float*,int);sort (a,7 ):for(i=0;i<7;i+) printf("%f ",ai);print

39、f("n");void sort( float *p, int n )int i,j,k; float t;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if( Pk<Pj ) k=j; if(k != i) t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; (11) 下列函數在n個元素的一維數組中,我由最大值、最小值并傳送到調用函數,請填空。#include <stdio.h>void find(float *p, float *max, float *min, int n)int k;flo

40、at t;*max=*p; *min = *p;for(k=1;k<n;k+)fun();#include <stdio.h>t=*(p+k);if( t>*max ) *max=t;if(t<*min) *min=t;3.寫由下列程序運行結果:(1)main()int i=1,p;p=fun(i,i+1);printf("%d'n",p);int fun(int a,int b)int f;(2)鍵盤輸入 abcdef<CR>#include <stdio.h>void fun()char c ;if(c=ge

41、tchar( )!='n')if(a>b)f=1;else if(a=b)f=0;elsef=-1;return f;輸由:-1putchar(c);void main() fun( ); 輸由:fedcba(3)#define C 5int x=1,y=C;void main( )int x;x=y+; printf("%d %dn",x,y);if(x>4) int x ;x=+y;printf("%d %dn",x,y) ; x+=y-;printf("%d %dn",x,y);(4)#include

42、 <stdio.h>int c , a=4 ;func(int a , int b) c=a*b ; a=b-1 ; b+ ;return (a+b+1) ; void main( )輸出: 5 6int 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;void main( )unsigne

43、d n=26;printf("%dn", fun6(n);輸出: 1212 6第7章數組習題1.單項選擇題(1) int a4=5,3,8,9; 其中 a3的值為(D )。A. 5 B. 3 C. 8 D. 9(2) 以下4個字符串函數中,(A ) 所在的頭文件與其他 3個 不同。A. gets B. strcpy C. strlen D. strcmp(3) 以下4個數組定義中,(D )是錯誤的。A. int a7; B. #define N 5 long bN; C. char c5;D. int n,dn;(4) 對字符數組進行初始化,(B ) 形式是錯誤。A. ch

44、ar c1 ='1','2','3' B.char c2尸123;C. char c3 = '1','2','3',''0'D. charc4 ="123"(5) 在數組中,數組名表示(A )。A.數組第1個元素的首地址B.數組第2個元素的首地址C.數組所有元素的首地址D.數組最后1個元素的首地址(6) 若有以下數組說明,則數值最小的和最大的元素下標分別是int a12 = 1,2,3,4,5,6,7,8,9,10,11,12;A. 1,12 B. 0,1

45、1 C. 1,11 D. 0,12(7) 若有以下說明,則數值為 4的表達式是(D ) oint a12 =1,2,3,4,5,6,7,8,9,10,11,12; charc=' a' , d,A. ag-c B. a4 C. a'd'-'c' D. a'd'-c(8) 設有定義:char s12= "string" ; 則printf( "%dn",strlen(s);的輸由是(A )。A. 6 B. 7 C. 11 D. 12(9) 設有定義:char s12 = "strin

46、g"則 printf("%dn ", sizeof(s); 的輸由是(B )A. 6 B. 7 C. 11 D. 12 (10)合法的數組定義是(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;=0,1,2,3,4;D. int='abc','1'str2);的輸(11)合法的數組定義是(B ) oA. int a3 =0,1,2,3,4,5; B.int a 3

47、C. int a23=0,1,2,3,4,5,6;a23=0,1,2,3,4,5,;(12)下列語句中,正確的是(D ) oA. char a3='abc','1' B. char a 3C. char a3 ='a', "1" D. char a 3 = "a", "1"(13) 下列定義的字符數組中,輸由 printf("%sn",由是(C ) static str320 = "basic", "foxpro", "

48、;windows"A. basic B. foxproC. windows D. 輸由語句由錯(14)下列各語句定義了數組,其中哪一個是不正確的(C )。A. char a310="China","American","Asia"B. intx22=1,2,3,4;C. float x2尸1,2,4,6,8,10;D.intm口3=1,2,3,4,5,6;(15)數組定義為int a32=1,2,3,4,5,6,值為6的數組元素是(B ) oA. a32B. a21C. a12D.a232.填空題(1) C語言中,數組的各元

49、素必須具有相同的類型 ,元素的下標下限為0,下標必須是正整數、0、或者 常量 。但在程序執行過程中,不檢查元素下標是否越界 。(2) C語言中,數組在內存中占一片 連續 的存儲區,由 數組 名 代表它的首地址。數組名是一個 字符 常量、不能對它進 行賦值運算。(3) 執行 static int b5, a 3 =1,2,3,4,5,6;后,b4=0, a12 = 6。| 設有定義語句 static int a34=1,2,3; 則a10值為 N, a11 值為 0 , a21的值為 0。(5) 如定義語句為char a = "windows",b = "2000&

50、quot;printf("%s",strcat(a,b);的輸由結果為 windows2000 c(6) 輸入20個數,輸由它們的平均值,輸由與平均值之差的絕對值為最小的數組元素。請填空。#include <stdio.h>#include <math.h>void main()float a20,pjz=0,s,t; inti,k;for(i=0; i < 20;i+)scanf( "f',&ai);for(i=0;i<20;i+)Pjz+=ai;pjz/=20;s=fabs(a0-pjz);for(i=1;i

51、<20;i+)if(fabs(ai-pjz)<s)s=fabs(ai-pjz);t=ai;printf( "f,%f” ,pjz,t);(7)以下程序以每行10個數據的形式輸由a數組,請填空void main() int a50,i;printf(" 輸入50個整數:");for(i=0; i<50; i+) scanf( "%d”, &ai);for(i=1; i<=50; i+) if( i%10=0 )printf( "%3d'n" , ai-1 ) ;else printf( "

52、;%3d”,ai-1);(8)下面程序的功能是輸由數組s中最大元素的下標,請填空 void main()int k, p;int s口 = 1,-9, 7, 2,-10, 3;for(p=0,k=p; p<6; p+) if(sp > sk) k = p ;printf("%d'n" ,k);3.閱讀程序,分析程序的功能(1)#include <stdio.h>#include <string.h>void main()char s80;int i ;for(i=0; i<80; i+) si=getchar();if(si

53、='n') break;while(si)putchar(si+);putchar( ' n');分析:輸入一個字符串,以回車 結束,并將其原樣輸由。(2)#include <stdio.h>#include <string.h>void main()si='0' i=0;char str1080, c80;int i;for(i=0;i<10;i+)gets(stri);strcpy(c, str0);for(i=1; i<10; i+)if(strlen(c)<strlen(stri)strcpy(c

54、,stri);printf( "%dn", strlen(c);分析:輸入10個字符串,輸由10 個字符串中最長的字符串和它的 長度。#include <stdio.h>#include <string.h>void main()char a1080, c80;int i, j, k;for(i=0; i<10; i+) gets(ai);for(i=0; i<9; i+)k=i;for(j=i+1; j<10; j+)k=j;if(k!=i)strcpy(c,ai);strcpy(ai, ak);strcpy(ak,c); / 字

55、符串交換for(i=0; i<10; i+)puts(ai);分析:輸入10個字符串,用選擇排序算法將10個字符串按從 小到大順序排列并輸由。printf( "%s'n", c);if(strcmp(aj,ak)<0)(4) 閱讀程序,寫生運行結果。#include <stdio.h>void main()int a6=12,4,17,25,27,16intb6=27,13,4,25,23,16,i,j;for(i=0;i<6;i+) for(j=0;j<6;j+)if(ai=bj)break;if(j<6)printf(&

56、quot;%d ",ai);printf("n");分析:按數組 a中元素順序輸由 與數組b中元素相同的數。輸由:4,25,27,16(5) 閱讀程序,寫生運行結果。#include <stdio.h>void main()for(j=0;j<7;j+)aj='a'+j; a7='0'for(j=0;j<3;j+)temp=a6;for(k=6;k>0;k-)ak=ak-1;a0=temp;printf("%s'n",a);分析:將字符串的最后的 3個元素移到字符串首位。輸由

57、:efgabcdchar a8,temp; int j,k;(6)閱讀下列程序,寫由程序運行的輸生結果#include <stdio.h> #include <string.h> void main()char stri ="*"; for(int i=0;i<4;i+)printf("%sn",str1);str1i=''str1strlen(str1)-1='0'輸出:*第8章指針習題1.單項選擇題。char 指針pstr所指字符串的長度為 D*pstr="t"1234abcd'n"A. 15B. 14C. 13D. 12碼值為1的字符 D.D. edcba,以下不正確的是A(2) 對于char *pstr 以下正確的是 BA. *pstr="Hi" B. pstr="Hi" C. *pstr="?Hi" D.*pstr="Hi"(3) 以下程序段的輸生結果為char astr5="1234"char *pstr=astr;printf("%c",pstr1-

溫馨提示

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

評論

0/150

提交評論