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

下載本文檔

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

文檔簡介

C語言(數(shù)組)一、選擇題1. 設有程序: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,( ); 則在程序中的兩個園括號中分別應填入:CA) &ai和&ai B) ai和&aiC) &ai和aiD) ai和ai 2. 設已定義:int a15; 則數(shù)組a占用的內存單元數(shù)是( C ).A) 15B) 16C) 30D) 32 3. 閱讀程序:main() int a2=0,i,j,k=2; for(i=0;ik;i+)for(j=0;jk;j+) aj=ai+1; printf(%dn,ak);以上程序的輸出結果是( D ).A) 1B) 3C) 2D) 不確定的值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);printf(%dn,x);以上程序的輸出結果是( D ).A) 720B) 6C)24D) 120 5. 以下定義語句中,錯誤的是( 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ù)據類型可以是整型或實型D) 數(shù)組名的規(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 ,其最后一個數(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;i2;i+) ni=0; k=2; for(i=0;ik;i+) for(j=0;jk;j+) nj=ni+1; printf(%dn,nk);上面程序的輸出結果是( A ).A)不確定的值 B)3 C)2 D)112. 若有以下的定義和語句:int str12=1,2,3,4,5,6,7,8,9,10,11,12;char c=e,則數(shù)值為2的表達式是( C ).A)strg-c B)str2 C)strd-c D)strd-c13. 設有數(shù)組定義:int a5;則下列給數(shù)組元素賦值錯誤的是( B ).A) a3=93;B) scanf(%c,a3);C) a3=getchar();D) a3=a+3;14. 以下數(shù)組定義中錯誤的是( D ).A) #define N 30 int aN+30;B) #define N 30 int aN;C) int a30;D) int aN;15. 在定義一個一維數(shù)組時,不能用來表示數(shù)組長度的是( D ).A)常量 B)符號常量 C)常量表達式 D) 已被賦值的變量16. 若float型變量占用4個字節(jié),有定義float a20=1.1,2.1,3.1;則數(shù)組a在內存中所占的字節(jié)數(shù)是( D ).A)12 B)20 C)40 D)8017. 設已定義:int x24=1,2,3,4,5,6,7,8; 則元素x11的正確初值是( A ).A) 6B) 5C) 7D) 1 18. 設有定義:int a3=1,2,3,4,5,6,7,8,9; 則a12的初值為( C ).A) 2B) 4C) 6D) 8 19. 設有:int a45; 則數(shù)組a占用的內存字節(jié)數(shù)是( C ).A) 12B) 24C) 40D) 20 20. 以下數(shù)組定義中,不正確的是( B ).A) int b34; B) int c3 =1,2,1,2,3,4,5,6,7; C) int b200100=0; D) int c 3=1,2,3,4,5,6; 21. 定義數(shù)組:int x23; 則數(shù)組x 的維數(shù)是( 2 ).A) 1 B) 2 C) 3 D) 6 22. 若定義數(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;i2;i+) for(j=0;j3;j+)printf(%d,aij);語句的結果是哪一個( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6 C) 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;則下面語句的輸出結果是( C ).for(i=0;i3;i+) printf(%d,xi2-i);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 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. 以下程序的輸出結果是( A ).main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;j=i;j+)s+=aij;printf(%d,s);A) 18 B) 19 C) 20 D) 2128. 若已有char b1050;則該二維字符數(shù)組在內存所占字節(jié)數(shù)為( D ).A) 10 B)50 C)60 D)50029. 設有: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);設從鍵盤輸入字符串:abcde,則程序的輸出結果是( C ).A) aB)空格C)不確定D)0 31. 合法的數(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ù)組定義:char string =China;則數(shù)組string所占的空間為( B ).A) 5個字節(jié) B) 6個字節(jié) C) 7個字節(jié) D) 10個字節(jié)33. 定義字符數(shù)組c:char c =c language;數(shù)組c在內存中所占字節(jié)數(shù)是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下錯誤語句( 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,2;D) char a2= a,b;35. 若定義數(shù)組并初始化char a10=hello,該數(shù)組的元素個數(shù)是( A ).A) 10B) 5C) 6D) 736. 若定義數(shù)組并初始化char a10=HELLO,該數(shù)組的元素中 a2是( A ).A) LB) EC) HD) O37. 若定義數(shù)組并初始化int b10= 1,2,3,4,以下哪幾個語句成立( A C D)?A)b8的值為0B)b1的值為1C)b3的值為整數(shù)D)b10不是b數(shù)組中的元素38. 若定義數(shù)組int a10;指出下列錯誤語句:ABCDA) a數(shù)組共有10個元素,其引用方法是:a1,a2.a10;B) a數(shù)組是整型數(shù)組,其元素自動初始化為0;C) a數(shù)組最后一個元素的引用方法是a10;D) a數(shù)組第一個元素的引用方法是a1; 二、判斷題1.數(shù)組是數(shù)目固定的若干變量的有序集合,數(shù)組中各元素的類型可以不同。 錯 2.數(shù)組是C語言的一種構造數(shù)據類型,其元素的類型可以是整型、實型、字符型甚至結構類型。 對 3.設需定義一個有15個元素的數(shù)組a,并對其前5個元素賦初值,可用如下語句實現(xiàn):int a=1,2,3,4,5; 錯 4.數(shù)組定義時,只允許使用常量表達式定義數(shù)組的大小,其值必須是正整數(shù),而不能用變量來定義數(shù)組長度。 對5.C語言數(shù)組的下標從0開始,下標必須是整數(shù)型的常量或變量。對6.數(shù)組是數(shù)目固定、類型相同的若干變量的有序集合。數(shù)組中的每一個數(shù)(變量)稱為數(shù)組元素,數(shù)組中的所有元素都屬于同一種數(shù)據類型。對7.數(shù)組元素下標的下界是固定的,總是為0。對8.一維數(shù)組在引用時下標的范圍是:0 = 下標 數(shù)組的長度 。對9.若有數(shù)組定義為:int a100;則該數(shù)組的下界為0,上界為100。數(shù)組元素下標范圍是: 下界 = 下標 上界。對10.設已定義:double a55; 則數(shù)組a在內存中的存放順序是:a00,a01,a02, . ,a43,a44 。 對 二填空題1.在C語言中,二維數(shù)組的元素在內存中的存放順序是 按行的順序依次存放 。2.若有定義:double x35,則x數(shù)組中行下標的下限為 0 ,列下標的下限為 0 。3.若有定義:int a34=1,2,0,4,6,8,10;則初始化后,a12的值為 0 ,a21得到的值為 6 。4.字符串”abn012”的長度是 8 。5.下面程序段的運行結果是 he 。char x =”the teacher”;int i=0;while (x+i!=0)if (xi-1=t) printf(“%c”,xi);6.欲為字符串S1輸入”Hello World!”,其語句是 scanf(“%s”,S1); 。7.欲將字符串S1復制到字符串S2中,其語句是 strcpy(S2,S1); 。8.如果在程序中調用了strcat函數(shù),則需要預處理命令 #include 。如果調用了gets函數(shù),則需要預處理命令 #include 。9.C語言數(shù)組的下標總是從 0 開始,不可以為負數(shù);構成數(shù)組各個元素具有相同的 數(shù)據類型 。10.字符串是以 0 為結束標志的一維字符數(shù)組。有定義:char a=”;則a數(shù)組的長度是 0 。三程序閱讀題1.寫出下面程序的運行結果。main ( ) int a66,i,j ;for (i=1; i6 ; i+)for (j=1 ; j6 ; j+)aij=(i/j)*(j/i) ;for (i=1;i6 ; i+) for (j=1 ; j=bi) ci=ai-32 ;else ci=bi-32 ;i+;ci=0;puts(c);運行結果:AQM3.當運行下面程序時,從鍵盤上輸入AabD,則寫出下面程序的運行結果。main ( ) char s80;int i=0;gets(s);while (si!=0) if (si=a)si=z+a-si ;i+;puts(s);運行結果:AzyD4.寫出下面程序的運行結果。main ( ) 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);運行結果:注:s數(shù)組中每個字符的ASCII值為:5.當運行下面程序時,從鍵盤上輸入7 4 8 9 1 5,則寫出下面程序的運行結果。main ( ) int a6,i,j,k,m;for (i=0 ; i=0; i-) k=a5;for (j=4; j=0; j-)aj+1=aj ;a0=k;for (m=0 ; m6 ; m+)printf(“%d ”,am);printf(“n”);運行結果:四程序填空題1.下面程序可求出矩陣a的主對角線上的元素之和,請?zhí)?2)空使程序完整。main ( ) int a33=1,3,5,7,9,11,13,15,17 , sum=0, i, j ;for (i=0 ; i3 ; i+)for (j=0 ; j0;j-】) printf(“%d ”,numj) ;3.下面程序的功能是輸入10個數(shù),找出最大值和最小值所在的位置,并把兩者對調,然后輸出調整后的10個數(shù),請?zhí)?3)空使程序完整。main ( ) int a10,max,min,i,j,k ;for (i=0; i10; i+)scanf(“%d”,&ai);max=min=a0;for (i=0; i10; i+) if (aimax) max=ai; 【k=i】; 【max=aj;aj=ak;ak=max;】for (i=0; i10; i+)printf(“%d ”,ai);4.下面程序的功能是在一個字符串中查找一個指定的字符,若字符串中包含該字符則輸出該字符在字符串中第一次出現(xiàn)的位置(下標值),否則輸出1,請?zhí)?2)空使程序完整。# include main ( ) char c=a ; /* 需要查找的字符*/char t50 ; int i,j,k;gets(t) ;i = 【strlen(t) 】;for (k=0; ki; k+)if (【tk=c 】) j = k ; break ;else j=-1;printf(“%d”,j);5.下面程序用“順序查找法”查找數(shù)組a中是否存在某一關鍵字,請?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 (【i10 】) printf(“found=%dn”,i);else printf(“cant found!n”);6. 以下程序是將字符串b的內容連接字符數(shù)組a的內容后面,形成新字符串a,請?zhí)?2)空使程序完整。main ( ) char a40=”Great ”, b =”Wall”;int i=0,j=0 ;while (ai!=0) i+ ;while (【bj!=0 】) ai=bj ; i+ ; j+ ;【ai=0】;printf(“%sn”,a);五、編程題1 輸入一行數(shù)字字符,請用數(shù)組元素作為計數(shù)器來統(tǒng)計每個數(shù)字字符的個數(shù)。用下標為0元素統(tǒng)計字符“0”的個數(shù),下標為1的元素統(tǒng)計字符“1”的個數(shù),.。#include #define N 80void main() char chsN;int i,count10;printf(Input a string:);scanf(%s,chs);for(i=0;i10;i+) counti=0;for(i=0;iN;i+)countchsi-0+;for(i=0;i10;i+)if(counti) printf(%d counts:%dn,i,counti);2 編寫程序求任意方陣每行、每列、兩對角線元素之和。#include #define N 5#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, 5,6,4,1,7;int s1N;/存放每行的和int s2M;/存放每列的和int sum1=0,sum2=0;/存放兩對角線的和int i=0,j=0;for(i=0;iN;i+) s1i=0;for(i=0;iM;i+) s2i=0;for(i=0;iN;i+)/計算每行的和for(j=0;jM;j+)s1i+=aij;for(j=0;jM;j+)/計算每列的和for(i=0;iN;i+)s2j+=aij;for(i=0;iN;i+)/計算對角線的和sum1+=aii;for(i=0;iN;i+)/計算每行的和sum2+=aiM-1-i;printf(每行和:);for(i=0;iN;i+) printf(%d ,s1i);printf(n每列和:);for(i=0;iM;i+) printf(%d ,s2i);printf(n對角線和:);printf(%d,%d ,sum1,sum2);3 編寫程序求兩個矩陣的和。#include #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;iN;i+) /計算矩陣的和for(j=0;jM;j+)cij=aij+bij;for(i=0;iN;i+) for(j=0;jM;j+)printf(%d ,cij);printf(n);4 編寫程序打印出以下形式的乘法九九表。 * A MULTIPCATION TABLE * (1) (2) (3) (4) (5) (6) (7) (8) (9) (1) 1 2 3 4 5 6 7 8 9 (2) 2 4 6 8 10 12 14 16 18 (3) 3 6 9 12 15 18 21 24 27 (4) 4 8 12 16 20 24 28 32 36 (5) 5 10 15 20 25 30 35 40 45 (6) 6 12 18 24 30 36 42 48 54 (7) 7 14 21 28 35 42 49 56 64 (8) 8 16 24 32 40 48 56 64 72 (9) 9 18 27 36 45 54 63 72 81#include void main() int

溫馨提示

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

評論

0/150

提交評論