C語言練習3(數(shù)組)=參考解答_第1頁
C語言練習3(數(shù)組)=參考解答_第2頁
C語言練習3(數(shù)組)=參考解答_第3頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C 語言(數(shù)組)一、選擇題1. 設(shè)有程序:main() int i,a11 ;printf("給數(shù)組賦值 :n") ;for (i=0;i<=10 ; i+)scanf("%d" , ( ) ;printf("輸出數(shù)組 :n") ;for(i=0; i<=10 ; i+ )printf("%d,",( ) ;則在程序中的兩個園括號中分別應(yīng)填入: CA) & ai和 &aiB) ai和 &aiC) &ai 和 aiD) ai 和 ai2. 設(shè)已定義: int a15; 則數(shù)

2、組 a 占用的內(nèi)存單元數(shù)是 ( C ).A) 15 B) 16 C) 30 D) 323. 閱讀程序:main() int a2=0,i,j,k=2;for(i=0;i<k;i+)for(j=0;j<k;j+) aj=ai+1;printf("%dn",ak);以上程序的輸出結(jié)果是 ( D ).A) 1 B) 3 C) 2 D) 不確定的值4. 閱讀程序:f(int b,int n) int i,r=1;for(i=0;i<=n;i+) r=r*bi; return r;main() int x,a=2,3,4,5,6,7,8,9; x=f(a,3);pr

3、intf("%dn",x); 以上程序的輸出結(jié)果是 ( D ).A) 720 B) 6C)24 D) 1205. 以下定義語句中,錯誤的是 ( B ).A) int a = 6,7,8;B) int n=5, an;C) char a = "string"D) char a5 ='0','1','2','3','4'6. 以下描述中正確的是 ( D ).A) 數(shù)組名后面的常量表達式用一對圓括弧括起來B) 數(shù)組下標從 1 開始C) 數(shù)組下標的數(shù)據(jù)類型可以是整型或?qū)嵭虳) 數(shù)組名

4、的規(guī)定與變量名相同7. 若定義數(shù)組并初始化 char a10='0','1 ','2','3','4','5','6','7','8','9'指出以下錯誤語句 ( AB ).A) scanf("%c",a0);B) scanf("%s",&a);C) printf("%c",a3);D) printf("%s",a);8. 若定義數(shù)組 int a10

5、 , 其最后一個數(shù)組元素為 ( C ).A) a0B) a1C) a9D) a109. 若定義數(shù)組并初始化 int a10= 1,2,3,4, 以下語句哪一個不成立 ( B ) ?A) a8的值為 0B) a1的值為 1C) a3的值為 4D) a9的值為 010. 指出以下錯誤語句 ( A ).A) int n=10,an;B) int n,a10;C) int a10=1,2,3;D) int a10=1,2,3,4,5,6,7,8,9,10;11. 請讀程序:main()int n2,i,j,k;for(i=0;i<2;i+) ni=0;k=2;for(i=0;i<k;i+)

6、for(j=0;j<k;j+) nj=ni+1;printf("%dn",nk);上面程序的輸出結(jié)果是 ( A ).A) 不確定的值B)3C)2D)112. 若有以下的定義和語句:int str12=1,2,3,4,5,6,7,8,9,10,11,12;char c='e',則數(shù)值為 2 的表達式是 ( C ).A) str'g'-c B)str2 C)str'd'-'c' D)str'd'-c13. 設(shè)有數(shù)組定義 :int a5; 則下列給數(shù)組元素賦值錯誤的是 ( B ).A) a3=9

7、3;B) scanf("%c",a3);C) a3=getchar();D) a3='a'+3;14. 以下數(shù)組定義中錯誤的是 ( D ).A) #define N 30int aN+30;B) #define N 30int aN;C) int a30;D) int aN;15. 在定義一個一維數(shù)組時,不能用來表示數(shù)組長度的是 ( D ).A) 常量B)符號常量 C)常量表達式D)已被賦值的變量則數(shù)組 a 在內(nèi)存中16. 若 float 型變量占用 4 個字節(jié),有定義 float a20=1.1,2.1,3.1; 所占的字節(jié)數(shù)是 ( D ).A) 12 B

8、)20 C)40 D)80則元素 x11 的正確初值是 ( A ).17. 設(shè)已定義: int x24=1,2,3,4,5,6,7,8;A) 6 B) 5 C) 7 D) 118. 設(shè)有定義: int a3=1,2,3,4,5,6,7,8,9;則 a12 的初值為 ( C ).A) 2 B) 4 C) 6 D) 819. 設(shè)有:int a45;貝擻組a占用的內(nèi)存字節(jié)數(shù)是(C ).A) 12 B) 24 C) 40 D) 2020. 以下數(shù)組定義中,不正確的是 ( B ).A) int b34;B) int c3 =1,2,1,2,3,4,5,6,7;C) int b200100=0;D) in

9、t c 3=1,2,3,4,5,6;21. 定義數(shù)組: int x23;則數(shù)組 x 的維數(shù)是 ( 2 ).A) 1 B) 2 C) 3 D) 622.若定義數(shù)組并初始化 int b23= 1,2,3,4,5,6,以下語句哪一個成立 ( C ) ?A)表達式 b12 的值為 1B)表達式 b12 的值為 4C)表達式 b12 的值為 6D)表達式 b12 的值為 223. 若定義數(shù)組并初始化 int a23=1,2,3,4,5,6; for(i=0;i<2;i+)for(j=0;j<3;j+)printf("%d",aij); 語句的結(jié)果是哪一個 ( C )?A)

10、 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定義數(shù)組并初始化 int a23= 1,2, 3,4,5,6; 以下語句哪一個不成立 ( B ) ?A) a 數(shù)組中有 6 個元素B) a23 是 a 數(shù)組的最后一個元素的引用C) a 數(shù)組中每個元素都為整數(shù)D) a 數(shù)組是整型數(shù)組25. 定義如下變量和數(shù)組:int i;int x33=1,2,3,4,5,6,7,8,9; 則下面語句的輸出結(jié)果是 ( C ).for(i=0;i<3;i+) printf("%d",xi2-i);A) 1 5 9B) 1 4 7C) 3 5 7D) 3 6

11、926. 如有以下定義 :double s5=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14; 則數(shù)值為 2 的 元素是 ( C ).A) s13 B) s03 C) s02 D) s1227. 以下程序的輸出結(jié)果是 ( A ).main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i<3;i+)for(j=0;j<=i;j+)s+=aij;printf("%d",s);A) 18 B) 19 C) 20 D) 2128. 若已有 char b1050; 則該二維字符數(shù)組在內(nèi)存所占字節(jié)數(shù)為 ( D ).A) 1

12、0 B)50 C)60 D)50029. 設(shè)有: char a10; 下列語句那個是正確的 ( D ) ?A) scanf("%s",a0);B) scanf("%s",&a);C) printf("%s",a0)D) printf("%s",a)30. 閱讀程序:main() char a10;int i;for(i=1;i<=5;i+)scanf("%c",&ai);printf("%c",a0);設(shè)從鍵盤輸入字符串:abcde,則程序的輸出結(jié)果是(

13、C ).A) aB)空格C)不確定D)031. 合法的數(shù)組定義是 ( D ).A) int a = "string"B) int a5=0,1,2,3,4,5;C) char a= "string"D) char a ='0','1','2','3'32. 設(shè)有數(shù)組定義: char string ="China" ;則數(shù)組 string 所占的空間為 ( B ). A) 5 個字節(jié)B) 6 個字節(jié)C) 7 個字節(jié)D) 10 個字節(jié)33. 定義字符數(shù)組 c:char c =

14、"c language"A) 9 B) 10 C) 11 D) 12;數(shù)組 c 在內(nèi)存中所占字節(jié)數(shù)是 ( C ).34. 指出以下錯誤語句 ( C ).A) char a10='0','1','2','3','4','5','6','7','8','9'B) char a10='0','1 ','2','3'C) char a2= "1&quo

15、t;,"2"D) char a2= 'a','b ' ;35. 若定義數(shù)組并初始化 char a10="hello",A) 10B) 5C) 6D) 7該數(shù)組的元素個數(shù)是 ( A ).36. 若定義數(shù)組并初始化char a10="HELLO",該數(shù)組的元素中 a2 是( A ).18A) 'L'B) 'E'C) 'H'D) 'O'以下哪幾個語句成立 ( A C D) ?37. 若定義數(shù)組并初始化 int b10= 1,2,3,4,A) b8

16、 的值為 0B) b1 的值為 1C) b3 的值為整數(shù)D) b10 不是 b 數(shù)組中的元素38. 若定義數(shù)組 int a10 ;指出下列錯誤語句: ABCDA) a數(shù)組共有10個元素,其引用方法是:a1,a2a10;B) a數(shù)組是整型數(shù)組,其元素自動初始化為0;C) a數(shù)組最后一個元素的引用方法是a10;D) a數(shù)組第一個元素的引用方法是 a1;、判斷題1. 數(shù)組是數(shù)目固定的若干變量的有序集合,數(shù)組中各元素的類型可以不同。錯2. 數(shù)組是C語言的一種構(gòu)造數(shù)據(jù)類型,其元素的類型可以是整型、實型、字符型甚至結(jié)構(gòu)類 型。對3. 設(shè)需定義一個有15個元素的數(shù)組a,并對其前5個元素賦初值,可用如下語句實

17、現(xiàn):inta=1,2,3,4,5;錯4. 數(shù)組定義時,只允許使用常量表達式定義數(shù)組的大小,其值必須是正整數(shù),而不能用變量來定義數(shù)組長度。對5. C語言數(shù)組的下標從0開始,下標必須是整數(shù)型的常量或變量。對6. 數(shù)組是數(shù)目固定、類型相同的若干變量的有序集合。數(shù)組中的每一個數(shù)(變量)稱為數(shù)組 元素,數(shù)組中的所有元素都屬于同一種數(shù)據(jù)類型。對7. 數(shù)組元素下標的下界是固定的,總是為0。對8. 一維數(shù)組在引用時下標的范圍是:0 <=下標 < 數(shù)組的長度。對9. 若有數(shù)組定義為:int a100;則該數(shù)組的下界為0, 上界為100。數(shù)組元素下標范圍是: 下界 <=下標 < 上界。對1

18、0. 設(shè)已定義:doublea55;則數(shù)組 a在內(nèi)存中的存放順序是:a00,a01,a02, . ,a43,a44。 對1. 在C語言中,二維數(shù)組的元素在內(nèi)存中的存放順序是按行的順序依次存放。2. 若有定義:double x35,則x數(shù)組中行下標的下限為_0_,列下標的下限為_0_。3. 若有定義:int a34=1,2,0,4,6,8,10;則初始化后,a12的值為 ,a21 得到的值為_6_。4. 字符串” ab”的長度是8。5. 下面程序段的運行結(jié)果是hechar x =” the teacher ”;int i=0;while (x+i!=0''if (xi- 1= &

19、#39; t ' ) printf( “ c” ,xi);6. 欲為字符串 S1輸入” Hello World!,其語句是。7欲將字符串 S1復(fù)制到字符串 S2中,其語句是strcpy(S2,S1); 。gets函數(shù),貝U數(shù)據(jù)類型08. 如果在程序中調(diào)用了strcat函數(shù),則需要預(yù)處理命令#inelude <string.h>。如果調(diào)用了需要預(yù)處理命令#i nclude <stdio.h>。9. C語言數(shù)組的下標總是從 _0_開始,不可以為負數(shù);構(gòu)成數(shù)組各個元素具有相同的10. 字符串是以0'為結(jié)束標志的一維字符數(shù)組。有定義:char a=則”數(shù)組的長度

20、是三.程序閱讀題1. 寫出下面程序的運行結(jié)果。mai n () int a66,i,j ;for (i=1; i<6 ; i+) for (j=1 ; j<6 ; j+) aij=(i/j)*(j/i);for (i=1;i<6 ; i+) for (j=1 ; j<6 ; j+)printf( “ 2d' ,aij); printf( n“);運行結(jié)果:1 0 0 0 00 10 0 00 0 10 00 0 0 1 00 0 0 0 12. 寫出下面程序的運行結(jié)果。mai n () int i=0;char a =” abm" , b =” aqi

21、d ” , c10;while (ai!=0' ' && bi!= 0' ')if (ai>=bi) ci=ai-32 ;else ci=bi-32 ;i+;ci= 0';puts(c);運行結(jié)果:AQM3. 當運行下面程序時,從鍵盤上輸入AabD /,則寫出下面程序的運行結(jié)果。main () char s80;int i=0;gets(s);while (si!=0' ) if (si<=' z'&& si>=' a')si=' z '-s+

22、9; a'i+; puts(s);運行結(jié)果:AzyD4寫出下面程序的運行結(jié)果。mai n () int i,c;char s25=“ 8980” , ” 9198 ” ;for (i=3; i>=0 ; i-) c=s0i+s1i- 2* ' 0';s0i = c % 10 +0' for (i=0; i<=1; i+) puts(si);運行結(jié)果:9198注:s數(shù)組中每個字符的 ASCII值為:7078574957565當運行下面程序時,從鍵盤上輸入7 4 8 9 1 5/,則寫出下面程序的運行結(jié)果。mai n () int a6,i,j,k,m;

23、for (i=0 ; i<6 ; i+) scanf (“ d' ,&ai);for (i=5 ; i>=0; i-) k=a5;for (j=4; j>=0; j-) aj+1=aj;a0=k;for (m=0 ; m<6 ; m+) printf( “ %d ” ,am);printf( n”');運行結(jié)果:574891157489915748891574489157748915四.程序填空題1下面程序可求出矩陣a的主對角線上的元素之和,請?zhí)?2)空使程序完整。mai n () int a33=1,3,5,7,9,11,13,15,17, s

24、um=0, i, j ;for (i=0 ; i<3 ; i+)for (j=0 ; j<3 ; j+)if (【i=j 】)sum=sum+ 【aij】;printf( “ sum=%d ,sum);2下面程序?qū)⑹M制整數(shù)n轉(zhuǎn)換成base進制,請?zhí)?3)空使程序完整。mai n () int i,base ,n,j,nu m20;scanf( “ d',&n);sca nf( “ %&base);do i+;numi=【n%base 】;n=【n/base; while (n !=0);for (【j=i;j>0;j-)printf( “ %b ,n

25、umj);3下面程序的功能是輸入10個數(shù),找出最大值和最小值所在的位置,并把兩者對調(diào),然后輸出調(diào)整后的10個數(shù),請?zhí)?空使程序完整。mai n () int a10,max, min ,i,j,k ;for (i=0; i<10; i+)scanf(“ d' ,&ai);max=min=a0;for (i=0; i<10; i+) if (ai<min) min=ai;【 j=i 】 ; if (ai>max) max=ai;【 k=i 】 ; 【 max=aj;aj=ak;ak=max; 】for (i=0; i<10; i+)printf(“

26、%”d ,ai);4. 下面程序的功能是在一個字符串中查找一個指定的字符,若字符串中包含該字符則輸出該字符在字符串 中第一次出現(xiàn)的位置(下標值) ,否則輸出 1,請?zhí)?(2)空使程序完整。# include <string.h>main ( ) char c=' a '需要; /*查找的字符 */char t50 ;int i,j,k;gets(t) ;i = 【 strlen(t) 】 ;for (k=0; k<i; k+)if ( 【 tk=c 】 ) j = k ; break ;else j=-1;printf(“ %d” ,j);5. 下面程序用 “

27、順序查找法 ”查找數(shù)組 a 中是否存在某一關(guān)鍵字,請?zhí)?2)空使程序完整。main ( ) int a10=25,57,48,371,123,291,18,22,44;int i=0,x ;scanf( “ %d” ,&x);【 a10=x 】 ;while (ai!=x) i+ ;if ( 【i<10 】) printf(“ foundn=”%d,i);else printf(“'ct afonund!n” );6. 以下程序是將字符串b的內(nèi)容連接字符數(shù)組a的內(nèi)容后面,形成新字符串a(chǎn),請?zhí)?2)空使程序完整。main ( ) char a40=”Great ”, b =

28、”Wall ”;int i=0,j=0 ;while (ai!=0'') i+ ;while ( 【 bj!='0' 】 ) ai=bj ; i+ ; j+ ;【 ai='0' 】;printf(“n%”s,a);五、 編程 題0 元素統(tǒng)計字符1 輸入一行數(shù)字字符 , 請用數(shù)組元素作為計數(shù)器來統(tǒng)計每個數(shù)字字符的個數(shù)。用下標為 “0”的個數(shù),下標為 1 的元素統(tǒng)計字符“ 1”的個數(shù), . 。#include <stdio.h>#define N 80void main()char chsN;int i,count10;printf(&q

29、uot;Input a string:");scanf("%s",chs);for(i=0;i<10;i+) counti=0;for(i=0;i<N;i+)countchsi-'0'+;for(i=0;i<10;i+)if(counti) printf("%d counts:%dn",i,counti);2 編寫程序求任意方陣每行、每列、兩對角線元素之和。#include <stdio.h>#define N 5#define M 5void main()int aNM= 3,4,7,8,9,6,

30、8,2,1,3,8,5,4,3,2,7,6,9,1,5,5,6,4,1,7;int s1N;/存放每行的和int s2M;/存放每列的和int sum1=0,sum2=0;/ 存放兩對角線的和int i=0,j=0;for(i=0;i<N;i+) s1i=0;for(i=0;i<M;i+) s2i=0;for(i=0;i<N;i+)/ 計算每行的和for(j=0;j<M;j+)s1i+=aij;for(j=0;j<M;j+)/ 計算每列的和 for(i=0;i<N;i+) s2j+=aij; for(i=0;i<N;i+)/ 計算對角線的和 sum1+

31、=aii;for(i=0;i<N;i+)/ 計算每行的和 sum2+=aiM-1-i;printf(" 每行和: "); for(i=0;i<N;i+) printf("%d ",s1i); printf("n 每列和: "); for(i=0;i<M;i+) printf("%d ",s2i); printf("n 對角線和: "); printf("%d,%d ",sum1,sum2);3 編寫程序求兩個矩陣的和。#include <stdio.h

32、>#define N 4#define M 5void main()int aNM= 3,4,7,8,9,6,8,2,1,3,8,5,4,3,2, 7,6,9,1,5 ;int bNM= 2,4,7,5,9,7,8,2,5,3,9,5,4,3,2,8,6,9,1,5 ;int cNM,i,j;for(i=0;i<N;i+) /計算矩陣的和for(j=0;j<M;j+)cij=aij+bij;for(i=0;i<N;i+)for(j=0;j<M;j+)prin tf("%d ”,cij);prin tf("n");4 編寫程序打印出以下形式的乘法九九表。* A MULTIPCATION TABLE *(1)(8) (9)(1)1234 :5 67892468 10 12 14 16 183691215 -18 :21 :24 274812162024283236510152025303540456121824303642485471421283542495664(8)81624324048566472(9)91827364554637281#in clude <stdio.h> void mai n()int i=0,j=0;p

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論