C語言復(fù)習(xí)要點(diǎn)及應(yīng)用示例(BIT)_第1頁
C語言復(fù)習(xí)要點(diǎn)及應(yīng)用示例(BIT)_第2頁
C語言復(fù)習(xí)要點(diǎn)及應(yīng)用示例(BIT)_第3頁
C語言復(fù)習(xí)要點(diǎn)及應(yīng)用示例(BIT)_第4頁
C語言復(fù)習(xí)要點(diǎn)及應(yīng)用示例(BIT)_第5頁
已閱讀5頁,還剩103頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C 語言程序設(shè)計(jì)史樹敏復(fù) 習(xí)2【1】一個(gè)語言程序是由 組成的。 A) 主程序 B) 子程序 C) 函數(shù) D) 過程 答案:C【2】語言中char型數(shù)據(jù)在內(nèi)存中是以 形式存儲(chǔ)。 A) 原碼 B) 補(bǔ)碼 C) 反碼 D) ASCII碼 答案:D【3】C的運(yùn)算符按運(yùn)算對(duì)象的數(shù)目可以分為 。 A) 單目算符一種 B) 單目和雙目算符 C) 單目、雙目和三目算符 D) 單目、雙目、三目和四目算符 答案:C 3【4】以下選項(xiàng)中屬于C語言的數(shù)據(jù)類型是 。 A)復(fù)數(shù)型 B) 邏輯型 C) 雙精度型 D) 集合型 答案:C 【5】設(shè)int類型的數(shù)據(jù)長(zhǎng)度為2個(gè)字節(jié),則unsigned int類型數(shù)據(jù)的取值范圍是

2、。 A) 0至255 B) 0至65535 C) -32768至32767 D) -256至255 答案:B【6】int i; float f; 正確的語句是: A. (int f)%i B. int (f)%i C. int(f%i) D. (int)f%i 答案:D4【7】已知:char w;int x;float y;double z;則表達(dá)式w*x+z-y的結(jié)果為 類型。 A) float B) char C) int D) double 答案:D【8】下列可以正確表示字符型常數(shù)的是 。 A) a“B) t C) n D) 297 答案:B【9】已知:int a,b;使用語句:scan

3、f(“%d%d”,&a,&b);輸入a、b的值時(shí),不能用 作為輸入分隔符的是 。 A) , B) 空格 C) 回車 D) Tab 答案:A5【10】下列運(yùn)算符的操作數(shù)必須是int型的運(yùn)算是 A) % B) / C) - D) + 答案:A【11】已知:char *s=tNameAddressn;則s所指的字符串的長(zhǎng)度為 A) 19 B) 15 C) 18 D) 說明不合法 答案:B【12】與條件表達(dá)式“(n)?(c+):(c-)”中的表達(dá)式(n)等價(jià)的表達(dá)式是:A. (n=0)B. (n=1) C. (n!=0)D. (n!=1) 答案:C6選擇題【12】為判斷char型變量m

4、是否是數(shù)字,可用表達(dá)式 A)0=m & m=9 B)0=m & m=9 C)“0”=m & mb)&+n; 則n的值是: A. 1 B. 2 C. 3 D. 4 答案:B8【16】可作為函數(shù) fopen 中第一個(gè)參數(shù)的正確格式是 A) c:usertext.txtB) c:usertext.txt C) c:usertext.txtD) c:usertext.txt“ 答案:D【17】C對(duì)嵌套if的規(guī)定是:else總是與 配對(duì)。 A) 其之前最近的if B) 第一個(gè)if C) 縮進(jìn)位置相同的if D) 其之前最近的且尚未配對(duì)的if 答案:D9【18】若int i

5、=10,則后,變量的結(jié)果是 。 switch (i) case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; A) 10 B) 11 C) 12 D) 13 答案:D【19】若:int a34;則數(shù)組元素的非法引用是。 A)a02*1 B)a13 C)a4-20 D)a04 答案:D10【20】對(duì)字符數(shù)組s賦值,不合法的一個(gè):A. char s =“Beijing”;B. char s20=“Beijing”;C. char s20; s=“Beijing”;D. char s20=B,e,i,j,i,n,j; 答案:C【21】以下

6、4個(gè)關(guān)于C語言的結(jié)論中,錯(cuò)誤的是 。 A) 用while語句實(shí)現(xiàn)的循環(huán)一定可用for語句實(shí)現(xiàn) B) 用for語句實(shí)現(xiàn)的循環(huán)一定可用while語句實(shí)現(xiàn) C) 用do-while語句實(shí)現(xiàn)的循環(huán)一定可用while語句實(shí)現(xiàn) D) do-while語句與while語句的區(qū)別僅是關(guān)鍵字while出現(xiàn)的位置不同 答案:Dchar *s;s=“Beijing”;11【22】若有說明:int b410, i, j,(且0=i4, 0=j10),則對(duì)數(shù)組元素bij引用錯(cuò)誤的是:A. *(&b00+10*i+j) B. *(b+i)j C. *(*(b+i)+j) D. *(bi+j) 答案:B【23】若有

7、定義int b35, i, j; (且0=i3, 0=j0 ) return( n * try (n-2) ); else return(1); 答案:1516【2】寫出程序的運(yùn)行結(jié)果。 #include stdio.h struct cmplx int x; int y; cnum2 = 1, 3, 2, 7 ; main( ) printf(%dn,cnum0.y * cnum1.x); 答案:617【1】下面的程序是求數(shù)組中的最小元素,請(qǐng)選擇填空。 findmin ( int *s, int t, int *k ) int p; for ( p=0, *k=p; pt; p+ ) if

8、( sp s*k ) ; main ( ) int a10, i, *k=&i; for ( i=0; i10; i+ ) scanf (”%d”, &ai ); findmin (a, 10, k); printf (”%d,%dn”, *k, a*k); A) k=p B) *k=p-s C) k=p-s D) *k=p【1】答案: D18【1】下面的函數(shù)是求1到n之和。 int add ( int x ) if ( n = 1 ) ; else return ( ); 【1】答案: return (1) n + add(n-1)19【2】程序讀入20個(gè)整數(shù),統(tǒng)計(jì)非負(fù)數(shù)個(gè)數(shù)

9、,計(jì)算非負(fù)數(shù)之和。 main ( ) int i, a20, s, count; s=count=0; for ( i=0; i20; i+ ) scanf(%d, ); for ( i=0; i20; i+ ) if ( ai0 ) ; s += ai; count+; printf (s=%dt count=%dn, s, count); 【2】答案: &ai continue20【3】下面的函數(shù)fun的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位放在一維數(shù)組中返回,二進(jìn)制的最低位放在下標(biāo)為0的元素中,其它依次類推。fun( int x, int b ) int k=0,

10、 r; do r = x%【 1 】; b k+ = r; x /= 【 2 】; while (x);【3】答案: 2 221【4】已知:任意一個(gè)正整數(shù)的立方都可以寫成一串連續(xù)奇數(shù)的和。例如:13*13*13=2197=157+159+ +177+179+181 main ( ) long int n, i, k, j, sum; printf (Enter n=); scanf(%ld, &n); k = n*n*n; for ( i=1; ik/2; i+=2 ) for ( j=i, sum=0; ; j+=2 ) sum += j; if ( ) printf( %ld*%l

11、d*%ld=%ld=form%ldto %ldn,n, n, n, sum, i, ); 答案: sumk sum=k j-222main( ) FILE *fp; int flag; char name30, data30; if(fp=fopen(try.dat,【 】)=NULL) exit(0); do printf (Enter name:); gets(name); if (strlen(name)=0)break; strcat (name, n); 【 】; flag=1; while (flag & (fgets(data, 30, fp)【 】) if ( strc

12、mp(data, name) = 0 ) 【 】; if (flag) fputs(name, fp); else printf (tData enter error !n) ; while ( 【 】 ); fclose(fp);A.r+ B. w+ C.a+ D. wa+rewind(fp)!=NULLA.rewind(fp) B. fseek(fp,0,1) C.ftell(fp) D. 空語句A. !=NULL B. =NULL C. !=EOF D. =EOFA.break B.flag=0 C.continueD.flag=-1flag=0A. ferror(fp)!=0 B. f

13、error(fp)=0 C. flag=0 D. flag=-1ferror(fp)=01 23 45 6A=7 8 910 11 12B=27 30 3361 68 7595 106 117C=A的行數(shù),B的列數(shù)條件:A的行數(shù)與B的列數(shù)相同A的列數(shù)與B的行數(shù)相同C00= A00B00 + A01 B10= 17 + 2 10 = 27C01= A00 B01 + A01 B11 = 18 + 2 11 = 30C02= A00 B02 + A01 B12 = 19 + 2 12 = 33C10= A10B00 + A11 B10 = 37 + 4 10 = 61C22= A20 B02 +

14、A21B12 = 59 + 6 12 = 117計(jì)算兩個(gè)矩陣A、B的乘積24/41#define M 3#define P 2#define N 3for ( i=0; iM; i+) /*輸A數(shù)組*/ for ( j=0; jP; j+) scanf(“%d”,&aij);for ( i=0; iP; i+) /*輸B數(shù)組*/ for ( j=0; jN; j+) scanf(“%d”,&bij);aMPbPNcMN;main ( ) int i, j, k, s; int aMP,bPN,cMN; 1 23 45 6A=7 8 910 11 12B=計(jì)算兩個(gè)矩陣A、B的乘積

15、25/41for ( i=0; iM; i+) for ( j=0; jN; j+) printf ( “%5d”,cij); printf ( “n”); for ( i=0; iM; i+) /*生成C數(shù)組( A的行)*/ for ( j=0; jN; j+) /*B的列*/ s=0; for ( k=0; kP; k+) /*A的列*/ s=s+aik*bkj; cij=s aMPbPNcMN;1 23 45 6A=7 8 910 11 12B=27 30 3361 68 7595 106 117C=計(jì)算兩個(gè)矩陣A、B的乘積26/41【1.1】編程,輸入n,輸出如下例(n=6)所示的圖形

16、: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *2728#include stdio.hmain() int n,j,i;printf(Please input number:);scanf(%d,&n);for(j=0;jn;j+)for(i=0;in;i+) printf( *);printf(n);29【1.2】編程,輸入n,輸出如下例(n=6)所示的圖形: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

17、 * * * * 30#includemain()int i,j,k,n;printf(nInput n=);scanf(%d,&n);for(i=0;in;i+)for(j=0;jn-i;j+) printf( );for(k=0;kn;k+) printf(*);printf(n);31【1.3】 輸入n,輸出如下例(n=6)所示的高為n的等腰三角形。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *32main()int i,j,n;printf(nInput n=);scanf(%d,

18、&n);for(i=1;i=n;i+) for(j=1;j=n-i;j+)printf( ); for(j=1;j=2*i-1;j+)printf(*); printf(n); 33【1.4】 編程,輸入n,輸出如下例(n=6)所示的高為n的等腰三角形。 * * * * 34main()int i,j,n;printf(nInput n=);scanf(%d,&n);for(i=1;i=n;i+)for(j=1;j=i-1;j+)printf( );for(j=1;j=2*(n-i)+1;j+)printf(*);printf(n); 35【1.11】輸入n,輸出如下例(n=3

19、)所示的圖形: * * * * * * * * * * * * *36main()int i,j,k,n;printf(nInput n=);scanf(%d,&n);for(i=1;i=2*n-1;i+)if(i=n)k=i;else k=2*n-i;for(j=1;j=n-k;j+)printf( );for(j=1;j=2*k-1;j+)printf(*);printf(n); 37【1.5】 編程,輸入n,輸出如下例(n=5)所示的高和上底均為n的等腰梯形。 * * * * 38main()int i,j,n;printf(nInput n=);scanf(%d,&n)

20、;for(i=1;i=n;i+)for(j=1;j=n-i;j+)printf( );for(j=1;j=2*i-2+n;j+)printf(*);printf(n); 39【1.6】 編程,輸入n,輸出如下例(n=5)所示的高和上底均為n的等腰空心梯形。 * * * * * * * * * * * * * * * * * * * * 40main()int i,j,n;printf(nInput n=);scanf(%d,&n);for(i=1;i=n;i+)for(j=1;j=n-i;j+) printf( );printf(*); for(j=1;j=n-4+2*i;j+) pr

21、intf(%s,i=1|i=n?*: );printf(*);printf(n); 41【1.7】 編程,輸入n,輸出如下例(n=5)所示的邊長(zhǎng)為n的空心正六邊型。 * * * * * * * * * * * * 42main()int i,j,k,n;printf(nInput n=);scanf(%d,&n);for(i=1;i=2*n-1;i+)if(i=n)k=i;else k=2*n-i;for(j=1;j=n-k;j+)printf( );printf(*); for(j=1;j=n-4+2*k;j+) printf(%s,i=1|i=2*n-1?*: );printf(*

22、);printf(n); 43【1.8】編程,輸入n,輸出如下例(n=5)所示的圖形: * * * * * * * * * * * * * * * * * 44main()int i,j,k,n;printf(nInput n=);scanf(%d,&n);for(i=1;i=2*n-1;i+)if(i=n)k=i;else k=2*n-i;for(j=1;j=k-1;j+)printf( );printf(*);for(j=1;j=2*n-2*k-1;j+)printf( );printf(%s,i=n?n:*n); 45【1.9】輸入n,輸出如下例(n=5)所示的圖形: * * *

23、 * * * * * * * * * * * * * * * * * * * * * * * 46main()int i,j,n;printf(nInput n=);scanf(%d,&n);for(i=1;i=n;i+)if(i=1|i=n)for(j=1;j=n;j+)printf(*);printf(n);elsefor(j=1;j=n-i;j+)printf( );printf(*n); 47【1.10】輸入n,輸出如下例(n=5)所示的圖形: * * * * * * * * * * * * * 48main()int i,j,n;printf(nInput n=);scanf

24、(%d,&n);for(i=1;i=n;i+)for(j=1;j=n;j+)if(j=1|j=i|j=n)printf(*);else printf( );printf(n);49【1.12】輸入n,輸出如下例(n=5)所示的圖形: * * * * * * * * *50main()int i,j,n;printf(nInput n=);scanf(%d,&n);for(i=1;i=n;i+) for(j=1;j=n+i-1;j+) printf(%s,j=n-i+1|j=n+i-1?*: );printf(n);51【1.13】輸入n,輸出如下例(n=6)所示的高度為n的圖形

25、: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 17 1819 20 21 22 23 2425 26 27 28 29 3031 32 33 34 35 3652main()int i,n; printf(nInput n=);scanf(%d,&n);for(i=1;i=n*n;i+)printf(%2d ,i);if(i%n=0) printf(n);53【1.14】輸入n,輸出如下例(n=5)所示的圖形: 1 2 3 4 5 1 1 2 3 4 1 1 1 2 3 1 1 1 1 2 1 1 1 1 154main()int i,j,n,k; p

26、rintf(nInput n=);scanf(%d,&n);for(i=0;in;i+)k=1;for(j=0;jn;j+)if(ji+1) printf( 1);else printf(%2d,+k);printf(n);55【1.15】輸入n,輸出如下例(n=5)所示的的數(shù)字金字塔。 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 56main() int i ,j ,n; printf(nInput n=); scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n-i;j+)printf( )

27、; for(j=1;j=1;j-)printf(%d,j); printf(n); 57【1.16】編程,輸入n,輸出如下例(n=5)所示的圖形。 Z Y X W V U T S R Q P O N M L K58main()int i,j,k,n;char a=Z;printf(nInput n=);scanf(%d,&n);for(i=1;i=2*n-1;i+)if(i=n)k=i;else k=2*n-i; for(j=1;j=n+k-1;j+) printf(%c,j=n-k+1|j=n+k-1?a-: );printf(n);59【1.17】 輸入頂行字符c和高n,輸出如下例

28、(c=A,n=5)所示的圖形。 A B B C C D D E E D D C C B B A60main()int i,j,k,n;char abc;printf(nInput char c=);scanf(%c,&abc);printf(nInput n=);scanf(%d,&n);for(i=1;i=2*n-1;i+)if(i=n)k=i;else k=2*n-i;for(j=1;j=n-k;j+)printf( );for(j=1;j=2*k-1;j+) printf(%c,j=1|j=2*k-1?abc+k-1: );printf(n); 61【1.18】 輸出如圖

29、所示上三角形式的乘法九九表: 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 - - 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 4 6 8 10 12 14 16 18 4 6 8 10 12 14 16 18 9 14 15 18 21 24 27 9 14 15 18 21 24 27 16 20 24 28 32 36 16 20 24 28 32 36 25 30 35 40 45 25 30 35 40 45 36 42 48 54 36 42 48 54 49 56 63 49 56 63 86 72 86 72 81 8162

30、main() int i ,j ,n=1; for(i=1;i=9;i+)printf(%3d,n+); printf(n-n); for(i=1;i=9;i+) for(j=1;ji;j+)printf( );for(j=i;j=9;j+)printf(%3d,j*i);printf(n); 63【1.19】編程,輸出如圖所示下三角乘法九九表。 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 81 81 86 72 86 72 49 56 63 49 56 63 36 42 48 54 36 42 48 54 25 30 35 40 45 25 30 35 40 45

31、 16 20 24 28 32 36 16 20 24 28 32 36 9 14 15 18 21 24 27 9 14 15 18 21 24 27 4 6 8 10 12 14 16 18 4 6 8 10 12 14 16 18 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 964main() int i ,j ,n=1; for(i=1;i=1;i-) for(j=1;ji;j+)printf( );for(j=i;j=9;j+)printf(%3d,j*i);printf(n); 65【1.20】編程,輸入n,輸出如下例(n=5)所示的數(shù)字菱形1 121 12

32、321 1234321 123454321 1234321 12321 1211 66main() int i ,j ,n; printf(nInput n=); scanf(%d,&n); for(i=1;in;i+) for(j=1;j=n-i;j+)printf( ); for(j=1;j=1;j-)printf(%d,j); printf(n); for(i=n;i=1;i-) for(j=1;j=n-i;j+)printf( ); for(j=1;j=1;j-)printf(%d,j); printf(n); 窮舉類完數(shù): 輸出1000以內(nèi)的所有完數(shù)及其因子。完數(shù)是指一個(gè)整數(shù)

33、的值等于它的因子之和,如6的因子是1、2、3,而6=1+2+3,故6是一個(gè)完數(shù)。自戀數(shù): 輸出1000以內(nèi)的所有阿姆斯特朗數(shù)。如果一個(gè)正整數(shù)等于其各個(gè)數(shù)字的立方和,則稱該數(shù)為阿姆斯特朗數(shù)(亦稱為自戀數(shù))。如407=43+03+73就是一個(gè)阿姆斯特朗數(shù)。親密數(shù): 輸出3000以內(nèi)的全部親密數(shù)。如果整數(shù)的全部因子(包括,不包括本身)之和等于;且整數(shù)的全部因子(包括,不包括本身)之和等于,則將整數(shù)和稱為親密數(shù)。水仙花數(shù): 是指一個(gè) n 位數(shù) ( n3 ),它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。(如:13 + 53 + 33 = 153;14 + 64 + 34+44 = 1634)反序數(shù)、對(duì)

34、稱數(shù)、6768【2.1】輸出所有由數(shù)字0至9組成且各位數(shù)字不重復(fù)的三位數(shù)的個(gè)數(shù)。main()int i,j,k,sum=0; for(i=0;i10;i+) for(j=0;j10;j+)for(k=0;k=9;k+)if (i=j|i=k|j=k) continue;else sum=sum+1; printf(%d,sum);69【2.2】小明有五本新書,要借給A、B、C三位小朋友,每人每次只能借一本,編程,輸出所有不同的借法。main()int a,b,c;for(a=1;a=5;a+)for(b=1;b=5;b+)for(c=1;c0)printf(%d,n%10);n=n/10;if

35、(n=0) printf(n);getchar();71【2.4】編程,輸出100以內(nèi)個(gè)位數(shù)為6、且能被3整除的所有數(shù),并統(tǒng)計(jì)個(gè)數(shù)。main() int n,sum=0;for(n=0;n100;n+)if(n%3!=0|n%10!=6) continue;sum=sum+1;printf(%6dn,n);printf(the number is : %6d,sum);getchar();72【2.5】一個(gè)口袋中放有12個(gè)球,其中有3個(gè)紅的,3個(gè)白的和6個(gè)黑的,每次從中任取8個(gè)球,編程,輸出所有不同的取法。main()int r,w,b,n=1; printf( red white black

36、n-n);for(r=0;r=3;r+)for(w=0;w=3;w+)for(b=0;b=6;b+)if(r+w+b=8) printf(%2d:%d%3d %3dn,n+,r,w,b); 73【2.6】100匹馬馱100擔(dān)貨,大馬一匹馱擔(dān),中馬一匹馱擔(dān),小馬兩匹馱擔(dān)。編程,輸出大、中、小馬的數(shù)目。main()int a,b,c;for(a=0;a=33;a+)for(b=0;b=50;b+)for(c=0;c=100;c+=2)if(a+b+c=100 & 3*a+2*b+c/2=100)printf(big-%d; middle-%d; small-%dn,a,b,c); 74【2

37、.7】編程,輸出用一元人民幣兌換成1分、2分和5分硬幣的所有不同兌換方法。main()int a,b,c,n=0;for(a=0;a=100;a+)for(b=0;b=50;b+)for(c=0;c=20;c+)if(a+2*b+5*c=100)printf(1fen-%d;2fen-%d;5fen-%dn,a,b,c);n+;printf(n=%d,n); 75【2.8】一輛卡車違犯交通規(guī)則,撞人逃跑?,F(xiàn)場(chǎng)三人目擊事件,但都沒記住車號(hào),只記下車號(hào)的一些特征。甲說:牌照的前兩位數(shù)字是相同的;乙說:牌照的后兩位數(shù)字是相同的;丙是位數(shù)學(xué)家,他說:四位的車號(hào)剛好是一個(gè)整數(shù)的平方。根據(jù)以上線索編程,輸

38、出車號(hào)。main()int a,b,c;for(a=0;a=9;a+)for(b=0;b=9;b+)for(c=32;c=99;c+)if(1100*a+11*b=c*c)printf(%d,c*c);76【2.10】如果一個(gè)正整數(shù)等于其各個(gè)數(shù)字的立方和,則稱該數(shù)為阿姆斯特朗數(shù)(亦稱為自戀數(shù))。如407=43+03+73就是一個(gè)阿姆斯特朗數(shù)。編程,輸出1000以內(nèi)的所有阿姆斯特朗數(shù)。main() int i,t,k,a4=0;printf(Armstrong number smaller than 1000:n);for(i=2;i=10;t+)at=(i%k)/(k/10);k/=10; i

39、f(a0*a0*a0+a1*a1*a1+a2*a2*a2+a3*a3*a3=i)printf(%dn,i); 77【2.12】編程,計(jì)算并輸出下式的值: 100 50 10 1 100 50 10 1 k + kk + k2 2 + + k=1 k=1 k=1 k k=1 k=1 k=1 kmain( ) int i;float s=0; for (i=1;i=100;i+) s=s+i; for (i=1;i=50;i+) s=s+i*i; for(i=1;i=10;i+) s=s+1.0/i;printf(Result=%fn,s);78【2.13】用40元買蘋果、西瓜和梨共100個(gè),3種

40、水果都要。已知蘋果0.4元一個(gè),西瓜4元一個(gè),梨0.2元一個(gè)。問可以各買多少個(gè)?編程,輸出全部購買方案。main() int a,b,c;for(a=1;a=98;a+)for(b=1;b=8;b+)for(c=1;c=98;c+)if(a+b+c=100&4*a+40*b+2*c=400)printf(apple-%d ; water melon-%d ; pear-%dn,a,b,c); 79【2.14】編程,輸出這樣一個(gè)三位數(shù),該三位數(shù)等于其每位數(shù)字的階乘之和。即:abc = a! + b! + c!main() int n,a,b,c,i,j,k,m;for(n=100;n10

41、00;n+)i=j=k=1;a=n/100;b=n/10%10;c=n%10;for(m=1;ma;m+) i*=(m+1);for(m=1;mb;m+) j*=(m+1);for(m=1;mc;m+) k*=(m+1); if(n=(i+j+k) printf(%d=%d!+%d!+%d!n,n,a,b,c);break;80【2.15】編程,任意輸入一個(gè)偶數(shù)n,請(qǐng)將它分解為兩個(gè)素?cái)?shù)之和。輸出形式為:*=*+*int fun(int n) int i,j;for(i=2;i=n-1;i+)for(j=2;j=n-1;j+)if(i*j=n)return(0);return(1);main()

42、 int n,a,b;printf(Input n=);scanf(%d,&n);for(a=2;a=100;i-)if (n%i=0)printf(The max factor with 3 digits in %ld is: %dn,n,i);break;82【2.17】編程,輸出所有滿足下列條件的四位數(shù)N:N的9倍恰好是其反序數(shù)(例如:1234的反序數(shù)是4321)。 main()int a=1,b,c,d;for(d=0;d=9;d+)for(b=0;b=1;b+)for(c=0;c=9;c+)if(9000*a+900*b+90*c+9*d=1000*d+100*c+10*b+

43、a)printf(%dn,1000*a+100*b+10*c+d); 83【2.18】 一個(gè)自然數(shù)的七進(jìn)制表達(dá)式是一個(gè)三位數(shù),而這個(gè)自然數(shù)的九進(jìn)制表示也是一個(gè)三位數(shù),且這兩個(gè)三位數(shù)的數(shù)碼順序正好相反,編程,輸出這個(gè)三位數(shù)。main()int n,a,b,c,x,y,z;for(n=81;n=342;n+)a=n%7;b=(n/7)%7;c=(n/49)%7;x=n%9;y=(n/9)%9;z=(n/81)%9;if(a=z&b=y&c=x)printf(%dn,n);84int fun(int i) int k,re=0;for(k=1;ki;k+)if(i%k=0)re+=k

44、;return(re);main() int n;for(n=1;n=0&n0) a-k=n%2; n=n/2; for(i=0;i16;i+)printf(%2d,ai);87【3.4】 將一個(gè)數(shù)的數(shù)碼倒過來所得到的新數(shù)叫原數(shù)的反序數(shù)。如果一個(gè)數(shù)等于它的反序數(shù),則稱它為對(duì)稱數(shù)。編程,輸出不超過1993的最大的二進(jìn)制的對(duì)稱數(shù)。main() int i,j,n,k,a16=0; for(i=1;i0) ak+=n%2;n=n/2; for(j=0;j=k) printf(%d:,i); for(j=0;jk;j+) printf(%2d,aj); printf(n); 88【3.5】編程

45、,輸入兩個(gè)字符串s1和s2,將它們合并為一個(gè)字符串,合并后的字符串按其ASCII碼值從小到大進(jìn)行排序并輸出。main() char strA80,strB80,temp;int i,j;gets(strA); gets(strB); strcat(strA,strB);for(i=0;istrlen(strA);i+)for(j=0;jstrAj)temp=strAi;strAi=strAj;strAj=temp;puts(strA); 89【3.6】編程,將任一正整數(shù)轉(zhuǎn)換為二進(jìn)制形式并輸出。void fun(int i) if(i1) fun(i/2);printf(%d,i%2);main

46、() int n;printf(Input decimal :);scanf(%d,&n);fun(n); 90【3.7】編程,將輸入的兩個(gè)字符串連接后,將串中全部空格移到串首后輸出。main()char strA80,strB80,temp;int i,j;gets(strA);gets(strB);strcat(strA,strB);for(i=0;istrlen(strA);i+)if(strAi= ) for(j=i;j=0;j-) strAj+1=strAj; strA0= ;puts(strA); 91【3.8】編程,輸入字符串并輸出其長(zhǎng)度(不能用strlen( )函數(shù))。

47、main() char s180;int i;printf(input string s1:n);gets(s1);i=0;while(s1i!=0)i+;printf(i=%dn,i);92【3.9】編程,輸入若干個(gè)字符串,以stop作為輸入的最后一個(gè)字符串。每個(gè)串的長(zhǎng)度不超過80個(gè)字符,輸出其中最長(zhǎng)字符串的內(nèi)容。main() char s180,max80; int k,len=0; printf(input string:n); do gets(s1); k=strlen(s1); if(klen)len=k;strcpy(max,s1);while(!(strcmp(s1,stop)=

48、0); printf(max=%sn,max);93【3.11】編程,輸入一個(gè)字符串,輸出該字符串是否回文?;匚氖侵疙樧x和倒讀都一樣的字符串。 main() char strA80,strB80,temp;int i,j;gets(strA);for(i=0;istrlen(strA);i+) strBstrlen(strA)-1-i=strAi;strBstrlen(strA)=0;if(!strcmp(strA,strB)printf(Yes);else printf(No); 94【3.12】編程,輸入兩個(gè)字符串s1,s2和字符ch,實(shí)現(xiàn)在字符串s1中的字符ch位置前插入字符串s2并輸出

49、。 main()char strA80,strB80,ch;int i,j,lenA,lenB;puts(Input s1);gets(strA);puts(Input s2);gets(strB);puts(Input ch);ch=getch();lenA=strlen(strA);lenB=strlen(strB);for(i=0;i=i;j-)strAj+lenB=strAj;for(j=0;jlenB;j+)strAi+j=strBj;lenA+=lenB;i+=lenB;puts(strA); 95【3.13】編程,輸入一個(gè)字符串和整數(shù)K和M,設(shè)字符串長(zhǎng)度為N(其中N、M=80,K

50、=N),從其第K個(gè)字符起,刪去M個(gè)字符,組成長(zhǎng)度為N-M的新字符串并輸出。例如,輸入字符串We are poor students.、K=8、M=5,則輸出的字符串是We are students.。main() char str180,*p,*q; int i,j,k,m; printf(Enter string1:); gets(str1);printf(k,mn);scanf(%d,%d,&k,&m);for(p=str1,i=0;ik & *p!=0;p+,i+) if(i=k-1)q=p; for(j=0;jm;j+) q+;for( ;*q!=0;p+,q+

51、) *p=*q;*p=0; printf(Result:);puts(str1);96【3.14】編程,輸入一個(gè)字符串,分別輸出字符串中所包含的各個(gè)不同的字符及其各自字符的數(shù)量。如:輸入字符串:abcedabcdcd 則輸出:a=2 b=2 c=3 d=3 e=1。main() char str80;int a256=0,i,temp;puts(Input string);gets(str);for(i=0;stri!=0;i+)temp=stri;atemp+; puts();for(i=0;i256;i+)if(ai!=0)printf(%c=%d ;,i,ai); 97【3.15】編程,

52、任意輸入一個(gè)4位自然數(shù),輸出該自然數(shù)的各位數(shù)字組成的最大數(shù)。例如,輸入1593,則輸出為9531。 main() int a4,n,m,i,j;printf(Input n :);scanf(%d,&n);for(i=0;i4;i+)ai=n%10;n/=10;for(i=0;i4;i+)for(j=i+1;j4;j+)if(aiaj)n=ai;ai=aj;aj=n;printf(%d,m=a0*1000+a1*100+a2*10+a3); 98【3.16】編程,找出一個(gè)二維數(shù)組中的鞍點(diǎn),即該位置上的元素是該行上的最大值,是該列上的最小值。二維數(shù)組也可能沒有鞍點(diǎn)。main() int

53、a1010=1,2,3,14,4,3,2,11,2,0,5,7,8,4,2,11;int i,j,k,l,re=0 ,m=4,n=4;for(i=0;im;i+)for(j=0;jn;j+)for(k=0;km;k+) if(akjaij) break;for(l=0;laij) break;if(k=m & l=n)re+;printf(n a%d%d=%d is An Dian,i,j,aij);if(re=0)puts(No An Dian!); 99【3.17】編程,將輸入的字符串按反序存放并輸出。 main()char strA80,strB80,temp;int i,j;g

54、ets(strA);for(i=0;istrlen(strA);i+) strBstrlen(strA)-1-i=strAi;strBstrlen(strA)=0;puts(strB); 100【3.18】編程,任意輸入5個(gè)長(zhǎng)度不超過10的字符串按從小到大排序輸出。main()char a680;int i,j;for(i=0;i5;i+)printf(string %d:,i+1);gets(ai);for(i=0;i5;i+)for(j=i+1;j0)strcpy(a5,ai);strcpy(ai,aj);strcpy(aj,a5);for(i=0;i5;i+)puts(ai); 101【3.19】編程,輸入一行字符串,請(qǐng)將其中的字符按照單詞進(jìn)行分割,輸出該行中包含的全部單詞。(單詞是用空格、t或n分割的字符串。)int fun(char ch)if(ch= | ch=t |

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論