c語言練習習題_第1頁
c語言練習習題_第2頁
c語言練習習題_第3頁
c語言練習習題_第4頁
c語言練習習題_第5頁
免費預覽已結束,剩余26頁可下載查看

下載本文檔

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

文檔簡介

1、41 選擇題1. 以下關于數組的描述正確的是(c )。 A. 數組的大小是固定的,但可以有不同的類型的數組元素B. 數組的大小是可變的,但所有數組元素的類型必須相同C. 數組的大小是固定的,所有數組元素的類型必須相同D. 數組的大小是可變的,可以有不同的類型的數組元素2. 以下對一維整型數組a的正確說明是( D)。 a(10); B. int n=10,an; n; D. #define SIZE 10 scanf(%d,&n); int aSIZE; int an; 3. 在C語言中,引用數組元素時,其數組下標的數據類型允許是(C )。 A. 整型常量B. 整型表達式C. 整型常量或整型表達

2、式D. 任何類型的表達式4. 以下對一維數組m進行正確初始化的是(C )。 A. int m10=(0,0,0,0) ; B. int m10= ;C. int m =0; D. int m10=10*2; 5. 若有定義:int bb 8;。則以下表達式中不能代表數組元bb1的地址的是( c)。 A. &bb0+1 B. &bb1 C. &bb0+ D. bb+16. 假定int類型變量占用兩個字節,其有定義:int x10=0,2,4;,則數組x在內存中所占字節數是(B )。 A. 3 B. 6 C. 10 D. 207. 若有以下說明: int a12=1,2,3,4,5,6,7,8,9

3、,10,11,12; char c=a,d,g; 則數值為4的表達式是(D )A. ag-c B. a4 C. ad-c D. ad-c8. 以下程序段給數組所有的元素輸入數據,請選擇正確答案填入(A )。 #includemain() int a10,i=0;while(i=0;i-) ai=10-i;printf(%d%d%d,a2,a5,a8);A. 258 B. 741 C. 852 D. 36911. 以下程序運行后,輸出結果是( D)。 main() int n5=0,0,0,i,k=2;for(i=0;i=1); for(j=i-1;j=0;j-) printf(%d,aj);

4、printf(n);A. 10000 B. 10010 C. 00110 D. 1010013. 以下程序運行后,輸出結果是(A )。 main()int a10, a1 =1,3,6,9,10, a2 =2,4,7,8,15,i=0,j=0,k;for(k=0;k4;k+)if(a1ia2j) ak=a1i+;else ak=a2j+; for(k=0;k4;k+) printf(%d,ak); A. 1234 B. 1324 C. 2413 D. 432114. 以下程序運行后,輸出結果是(B )。 main() int i,k,a10,p3;k=5;for (i=0;i10;i+) ai

5、=i;for (i=0;i3;i+) pi=ai*(i+1);for (i=0;i3;i+) k+=pi*2;printf(%dn,k);A. 20 B. 21 C. 22 D. 2315. 以下程序運行后輸出結果是( D)。 main( ) int n3,i,j,k;for(i=0;i3;i+) ni=0;k=2;for (i=0;ik;i+)for (j=0;jk;j+) nj=ni+1;printf(%dn,n1); A. 2 B. 1 C. 0 D. 316. 下列程序的主要功能是輸入10個整數存入數組a,再輸入一個整數x,在數組a中查找x。找到則輸出x在10個整數中的序號(從1開始)

6、;找不到則輸出0。程序缺少的是 ( B)。 main()int i,a10,x,flag=0;for(i=0;i10;i+) scanf(%d,&ai);scanf(%d,&x);for(i=0;i2!1 D. a2018. 若有定義:int b34=0;則下述正確的是( D) 。 A. 此定義語句不正確B. 沒有元素可得初值0C. 數組b中各元素均為0D. 數組b中各元素可得初值但值不一定為019. 若有以下數組定義,其中不正確的是( D) 。 A. int a23;B int b3=0,1,2,3;C. int c100100=0;D. int d3=1,2,1,2,3,1,2,3,4;2

7、0. 若有以下的定義:int t54;能正確引用t數組的表達式是(C )。A. t24 B. t50 C. t00 D. t0,021. 在定義int m 3=1,2,3,4,5,6;后,m10的值是( C)。 A. 4 B. 1 C. 2 D. 522. 在定義int n56后第10個元素是(C )。 A. n25 B. n24 C. n13 D. n1423. 若二維數組c有m列,則計算任一元素cij在數組中的位置的公式為( A)。(假設c00位于數組的第一個位置)A. i*m+j B. j*m+i C. i*m+j-1 D. i*m+j+124. 若有以下定義語句,則表達式“x11*x2

8、2”的值是( B)。 float x33=,;A. B. C. D. 25. 以下程序運行后,輸出結果是 (A )。 main() int a44=1,3,5,2,4,6,3,5,7;printf(%d%d%d%dn,a03,a12,a21,a30);A. 0650 B. 1470 C. 5430 D. 輸出值不定26. 以下程序運行后,輸出結果是( B)。 main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for(i=0;i4;i+) s+=aai1;printf(“%dn”,s);A. 11 B. 19 C. 13 D.

9、2027. 有以下程序 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(%dn,s);該程序的輸出結果是( A)。A. 18 B. 19 C. 20 D. 2128. 若定義如下變量和數組: 則下面語句的輸出結果是(C )。 int i;int x33=1,2,3,4,5,6,7,8,9;for(i=0;i= 0&chi= 9;i+=2)s=10*s+chi- 0;printf(%dn,s);A. 12ba56 B. 6521 C. 6 D. 6238. 運行下面的程序,如果從鍵盤上

10、輸入:123456789,輸出結果是(D )。 A. 123,456,789 B. 1,456,789C. 1,23,456,789 D. 1,23,456 main() char s100; int c, i; scanf(%c,&c); scanf(%d,&i); scanf(%s,s); printf(%c,%d,%sn,c,i,s); 39. 運行下面的程序,如果從鍵盤上輸入: ab c def則輸出結果為( C)。A. a B. a C. ab D. abcdefb b cc c dd def#include #define N 6 main() char cN; int i=0;

11、for( ;iN;ci=getchar(),i+); for( i=0;iN;i+) putchar(ci); printf(n); 40. 運行下面的程序,如果從鍵盤上輸入:ABC時,輸出的結果是(D )。 #includemain() char ss10=12345;strcat(ss, 6789 );gets(ss);printf(%sn,ss); A. ABC B. ABC9 C. 123456ABC D. ABC45678941. 判斷兩個字符串是否相等,正確的表達方式是(C )。A. while(s1=s2) B. while(s1=s2) C. while(strcmp(s1,s

12、2)=0) D. while(strcmp(s1,s2)=0)42. 以下程序的輸出結果是( A)。main() char str12= s,t,r,i,n,g; printf(%dn,strlen(str); A. 6 B. 7 C. 11 D. 1243. 若有以下程序片段: char str =abn012;printf(%d,strlen(str);上面程序片段的輸出結果是 ( )。A. 3 B. 4 C. 6 D. 1244. 若有以下程序段,輸出結果是( )。 char s =141141abct;printf (%dn,strlen(s);A. 9 B. 12 C. 13 D.

13、1445. 設有static char str =Beijing;則執行printf(%dn, strlen(strcpy(str,China);后的輸出結果為 ( )。 A. 5 B. 7 C. 12 D. 1446. 以下程序運行后,輸出結果是( )。 main() char cf35=AAAA,BBB,CC;printf(%sn,ch1);A. AAAA B. BBB C. BBBCC D. CC47. 以下程序運行后,輸出的結果是( )。 #include #includemain() char w 10=ABCD,EFGH,IJKL,MNOP,k; for (k=1;k3;k+)pr

14、intf(%sn,&wkk);A. ABCD B. ABCDFGH EFGKL IJMC. EFG D. FGHJK KLO 48. 以下程序運行后,輸出結果是( )。 main() char arr24; strcpy(arr,you); strcpy(arr1,me); arr03=&; printf(%s n,arr); A. you&me B. you C. me D. err42 填空題1. C語言中,數組元素的下標下限為 _整型常量或整形表達式_。 2. C程序在執行過程中,不檢查數組下標是否_。 3. 在定義時對數組的每一個元素賦值叫數組的_;C語言規定,只有_存儲類型和_存儲類

15、型的數組才可定義時賦值。 4. 下面程序的運行結果是_。 #define N 5main()int aN=1,2,3,4,5,i,temp;for(i=0;iN/2;i+)temp=ai; ai=aN-i-1; aN-i-1=temp;printf(n);for(i=0;iN;i+) printf(%d , ai);5. 以下程序以每一行輸出4個數據的形式輸出a數組。#includemain()int a20,i;for(i=0;i20;i+) scanf(%d, 【1】);for(i=0;i20;i+)if ( 【2】 ) 【3】 ;printf(%3d,ai);printf(n);6. 以

16、下程序分別在a數組和b數組中放入an+1和bn+1個由小到大的有序數,程序把兩個數組中的數按由小到大的順序歸并到c數組中。#includemain()int a10=1,2,5,8,9,10, an=5,b10=1,3,4,8,12,18,bn=5;int i,j,k,c20,max=9999;aan+1=bbn+1=max;i=j=k=0;while(ai!=max)|(bj!=max)if(aibj) ck= 【1】; k+; 【2】;else ck= 【3】; k+; 【4】;for(i=0;i=& n1000) sum+=【1】 ; xn= 【2】 ; n+; scanf(%f,&a)

17、; ave=【3】 ; printf(Output:n); printf(ave=%fn,ave); for (i=0;in;i+) if ( 【4】) printf (%fn,xi); 8. 以下程序把一個整數轉換成二進制數,所得二進制數的每一位放在一維數組中,輸出此二進制數。注意:二進制數的最低位在數組的第一個元素中。#includemain()int b16,x,k,r,i;printf(please input binary num to x); scanf(%d,&x);printf(%dn,x);k=-1;do r=x% 【1】 ;b+k=r;x/= 【2】 ;while(x=1)

18、;for(i=k; 【3】 ;i-)printf(%d,bi); printf(n); 9. 輸入10個整數,用選擇法排序后按從小到大的次序輸出。 #define N 10main( ) int i,j,min,temp,aN;for(i=0;iN;i+)scanf(%d, 【1】);printf(n);for(i=0; 【2】; i+)min=i;for(j=i;jaj) 【3】 ;temp=ai;ai=amin;amin=temp; for (i=0;iN;i+)printf(%5d,ai);printf(n);10. 當先后輸入1,3,4,12,23時,屏幕上出現_;再輸入12時,屏幕上

19、出現_。#include#define N 5main()int i,j,number,top,bott,min,loca,aN,flag;char c;printf(please input 5 numbers aiai-1n);scanf(%d,&a0); i=1;while(i=ai-1) i+; printf(n);for(i=0;iN;i+) printf(%4d,ai); printf(n);flag=1;while(flag) scanf(%d,&number); loca=0; top=0; bott=N-1;if (numberaN-1) loca=-1;while(loca

20、=0)&(top=bott)min=(bott+top)/2;if(number=amin)loca=min;printf(%d is the %dth numbern,number,loca+1);else if (numberamin) bott=min-1;else top=min+1;if (loca=0|loca=-1) printf(%d is not in the list n,number);c=getchar();if (c=N|c=n) flag=0;11. 以下程序運行結果是 _. #includemain()int a33=1,2,3,4,5,6,7,8,9,i,s1=

21、0,s2=1;for(i=0;i=2;i+) s1=s1+ aii;s2=s2*aii;printf(s1=%d,s2=%d,s1,s2); 12. 以下程序完成功能是:計算兩個3*4階矩陣相加,并打印出結果。請填空。#includemain()int a34=3,-2,1,2,0,1,3,-2,3,1,0,4;int b34=-2,3,0,-1,1,0,-2,3,-2,0,1,-3;int i,j,c34; for(i=0;i3;i+) for(j=0;j4;j+) _; for(i=0;i3;i+) for(j=0;j4;j+)printf(%d,cij);printf(n);13. 以下

22、程序的運行結果是_.main() int i, j,a33;for(i=0;i3;i+)for(j=0;j3;j+)if(i=3) aij=ai-1ai-1j+1;else aij=j;printf(%4d,aij); printf(t);14. 閱讀下列程序:#includemain() int i, j, row, column,m;static int array33=100,200,300,28,72,-30,-850,2,6;m=array00;for (i=0; i3; i+)for (j=0; j3; j+)if (arrayijm) m=arrayij; row=i; colu

23、mn=j;printf(%d,%d,%dn,m,row,column);上述程序的輸出結果是 _。 15. 若想通過以下輸入語句使a中存放字符串1234,b中存放字符5,則輸入數據的形式應該是_。 : . char a10,b; scanf(a=%s b=%c,a,&b); : .16. 以下程序段的輸出結果是_。main() char b=Hello,you; b5=0; printf(%sn, b ); 17. 若有以下程序段,若先后輸入:EnglishGood則其運行結果是_。main() char c160,c23; int i=0,j=0; scanf(%s,c1); scanf(%

24、s,c2); while(c1i!= 0) i+; while(c2j!= 0) c1i+=c2j+; c1i= 0;printf(n%s,c1);18. 從鍵盤輸入由5個字符組成的單詞,判斷此單詞是不是hello,并顯示結果。#includemain()static char str =h,e,l,l,o; char str15;【1】 ;for(i=0;i5;i+)【2】 ;flag=0;for(i=0;i5;i+)if 【3】 flag=1; break;if(flag) printf(this word is not hello);else printf(this word is he

25、llo);19. 以下程序的功能是:將字符數組a中下標值為偶數的元素從小到大排列,其它元素不變。請填空。 #include #include main() char a=clanguage,t; int i, j, k; k=strlen(a); for(i=0; i=k-2; i+=2) for(j=i+2; j=k; 【1】) if( 【2】 ) t=ai; ai=aj; aj=t; puts(a); printf(n); 20. 輸入5個字符串,將其中最小的打印出來。 main()char str10,temp10; int i;【1】;for(i=0;i0) 【2】;printf(nT

26、he first string is:%sn,temp);21. 以下程序用來對從鍵盤上輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼之差。例如:輸入的兩個字符串分別為abcdef和abceef,則輸出為-1。請填空。 #include main( ) char str1100,str2100,c; int i,s; printf(n input string 1:n); gets(str1); printf(n input string 2:n); gets(str2); i=0; while(strli=str2i&(str1i!= 【1】) i+; s= 【

27、2】 ; printf(%dn,s); 22. 設有下列程序:#include#includemain() int i;char str10, temp10;gets(temp);for (i=0; i4; i+) gets(str);if (strcmp(temp,str)0) strcpy(temp,str);printf(%sn,temp);上述程序運行后,如果從鍵盤上輸入(在此代表回車符):C+BASICQuickCAdaPascal則程序的輸出結果是 _。 23. 以下程序功能是:統計從終端輸入的字符中每個大寫字母的個數。用#號作為輸入結束標志,請填空。 #include #include main( ) int num26,i; char c; for(i=0; i26; i+) numi=0; while( 【1】 != #) /*統計從終端輸入的大寫字母個數*/ if( isupper(c) numc-65+=1; for(i=0; i26; i+) /*輸出大寫字母和該字母的個數*/ if(numi) printf(%c:%dn,i 【2】 , numi); 24. 下面程序段

溫馨提示

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

評論

0/150

提交評論