C語言題庫 填空題部分+部分程序設計--精選文檔_第1頁
C語言題庫 填空題部分+部分程序設計--精選文檔_第2頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、1. 完成程序填空,實現輸入兩個數字,若兩數相等,則直接輸出兩個數字,若不相等,則這兩個數中的較大者等于這個較大者減去較小者,再作比較,若不相等則重復上述操作,直到兩個數字相等為止。輸出相等的兩個數字。while(a 【a!=b】) if (【a>b】)a=a-b;if (【b>a】)b=b-a; 2. "百雞問題":雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?完成程序填空,實現求"百雞問題" 公雞一只5塊錢,母雞一只三塊錢,小雞三只一塊錢,一百塊錢買一百只雞應該怎么買?也就是問一百只雞中公雞、母雞、小雞各

2、多少?for(x=1;x<=20;【x+】)for(z=3;z<=99;【z+=3】)if(【5*x+3*y+z/3=100】)&&(x+y+z=100)3.完成程序填空,實現輸出下圖 * * * * * * *【printf(“*”)】【printf(“n”)】【j<=7+i】4.完成程序填空,將字符數組a的全部字符復制到字符數組b中(要求不用strcpy函數)。printf("str1:【%s】n",str1);for(i=0;str1i【!=0】;i+)str2i=【str1i】;5. 將a+ 或 +a 或 a- 或 -a 填入程序填

3、空中,實現如圖所示的輸出。(填入其他無效)【a+】【a-】【-a】6.完成程序填空,實現輸入4個整數,要求按由小到大的順序輸出。 t=a;【a=c】;c=t; t=b;b=c;【c=t】;【t=c】;c=d;d=t;7. 完成程序填空,輸出所有的水仙花數。水仙花數是一個三位數,其個、十、百位數字三次方之和為這個數。例如: 371=3*3*3+7*7*7+1*1*1for(num=100; 【num<=999】; num+)shi=【num/10%10】if (【num=bai*bai*bai+shi*shi*shi+ge*ge*ge】)8. 完成程序填空,實現的功能是輸出如下形式的方陣:

4、13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4for(j=4; j>=1 ; j-) for(i=1; i<=4; i+) x=(j-1)*4+i ;printf("%4d",x); 9. 【a=B】; b='O' c='Y'putchar(a);putchar(b);putchar(c);putchar(n);10. 完成程序填空實現輸入兩個數a、b,判斷如果a<b,則交換兩數,否則保持兩數值不變,這樣可以使得a始終大于b的值。按照先a后b的順序輸出即可。if(【?】) a<b t=a;

5、a=b;【?】; b=tprintf("%5.2f,%5.2fn",a,【?】); b11. 完成程序填空實現輸入三個數,按代數值由大到小輸出。if(【?】) a<b t=a;a=b;b=t; if(a<c) t=a;a=c;【?】; c=t if(b<c) t=b;【?】;c=t; b=c printf("%5.2f,%5.2f,%5.2fn",a,b,c); 12. 完成程序填空,實現已知三個數a,b,c,找出最大值放于max中。if(a>=b) 【?】; max=aelse max=b; if (【?】) max=c; c&

6、gt;maxprintf("max=%dn" 【?】); ,max13. 完成程序填空,實現求s=1+3+5+99.【i=1;】s=1;while(【?】) i<99 i=i+2; 【s=s+i;】 14. 完成程序填空,用do-while結構實現s=1+3+5+99.【sum=0;】i=1;item=2*i-1; do sum=sum+item;i+;item=【2*i-1;】while(【item<100】); /循環結束后,請考慮item的值是多少?printf("1+3+5+.99=%ldn",sum);15. 完成程序填空,實現輸入

7、一行字符,分別統計出其中的英文字母、空格、數字和其他字符的數。while(【c=getchar()】)!='n') if (c>='a'【&&c<=z】| c>='A'&&c<='Z') letters+ ;else if (c=' ') space+; else if(【c>=0&&c<=9】) digit+;else other+;16. 一個小球從100米高度自由下落,每次落地后反跳回原來高度的一半,再下落,求它在第十次下落時

8、,共經過多少米,第十次反彈多高?float height【=100】;sum=sum+height; while(【i<=10】)height=【height/2】; sum+=2*height;i+; 17. 完成程序填空,實現猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃了一半,還不過癮又多吃了一個。第二天早上有將剩下的挑子吃掉一半,又多吃了一個。后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃是,只剩下一個挑子了。求第一天共摘了多少桃子?int day【=10】;int m=0;int n=1; while(day>1) m=【2*(n+1)】; 【n=m】; d

9、ay-; 18. 完成程序填空,實現輸出以下圖案: * * * * for(i=1;【i<=4】;i+) for(j=1;j<=10-i;j+) printf(" "); for(j=1;j<=2*i-1;j+) printf(【"*"】); printf(【”n”】); 19. 完成程序填空,實現找出1000之內的所有完數,并按如圖所示格式輸出其因子。一個數如果恰好等于它的公約數之和,這個數就稱為"完數"。例如:6=123。 6就是一個完數。for(a=2;a<=【1000】;a+) b=0; for(i=1

10、;i<a;i+) f(a%i=0) b=【b+i】; if(a=b) printf("%d its factors are 1",a);for(i=2;i<a;i+) if(【a%i=0】)printf(",%d ",i); printf("n"); 20. 完成程序填空,實現求1+ 1/3+ 1/5+ .之和,直到某一項的值小于10的-6次方時停止累加。n【=1;】while(1.0/n【>=1e-6】) s=s+1.0/n; 【n=n+2;】 21. 完成程序填空,輸出如下數陣: 1 1 2 1 1 2 3 2

11、1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1for (i=1;【i<=5】;i+) for(k=1;【k<=10-i】;k+) printf(" "); for(j=1;【j<=2*i-1】;j+) printf("%d",i-abs(i-j); printf("n"); 22. 兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單,有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x、z比,請完成程序填空,實現找出三隊賽手的名單。char i,j,k

12、; /i是a的對手,j是b的對手,k是c的對手for(i='x'i<='z'i+)for(j='x'j<='z'j+) if (【i!=j】) /a和b不能是同一個對手【for】(k='x'k<='z'k+) if(i!=k&&j!=k) /a、b、c不能是同一個對手 if(i!='x' && k!='x' &&【k!=z】 ) printf("a-%cnb-%cnc-%cn",i,

13、j,k); 23. 完成程序填空,實現打印下列的圖形 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 4 5 6 7 8 9 5 6 7 8 9 6 7 8 9 7 8 9 8 9 9for(i=1;【i<=9】;i+) for(j=i;j<=9;【j+】)printf("%2d",【j);】24. 在數組a中,存放著10個整型數據,數據是從下標0開始存放的,完成程序填空,實現順序輸出下標為奇數的各數組元素的值。int i, a10=0,1,2,3,4,5,6,7,8,9【】; for(i=1;i<=9; 【

14、i=i+2】)printf("%d ",【ai】);printf("n");25. 完成程序填空,實現用冒泡排序法對從鍵盤輸入的10個整型數據進行由小到大排序。scanf("%d",【&ai】); printf("n"); for(j=0;j<9;j+) for(i=0;i<9-j;i+) if (ai>ai+1) t=ai; ai=ai+1;【ai+1=t;】printf("the sorted numbers :n");for(i=0;i<10;i+)prin

15、tf("%d ",【ai】);26. 完成程序填空,實現輸出所有的水仙花數,所謂水仙花數是一個3位數,其各位數字的立方和等于該數本身。例如153=13+53+33,故153是一個水仙花數。for(n=100;【n<1000】;n+) a=n/100;b=n/10-a*10; c=n%10;if(【a*a*a+b*b*b+c*c*c=n】) mk=n;【k+;】27. 有一個已排好的數組,完成程序填空,實現要求輸入一個數后,按原來排序的規律將它插入到數組中。while( find【=0】&& left<=right) ai+1=【ai】; for(

16、i=N-1;i>=left;【i-】)28. 在字符數組str181和str281中分別存放著2個字符串,完成程序填空,實現將兩個字符串連接起來構成一個新的字符串,并將新生成的字符串存放在字符數組str181中(要求不用strcat函數)。【gets】(str1);for(i=0;str1i【!=0】;i+)for(j=0;str2j!='0'j+,【i+】)29. 完成程序填空,進行兩個字符串str1和str2的比較,若str1str2 ,輸出一個正數;若str1str2,輸出0;若str1str2,輸出一個負數,輸出的數是兩個字符的Ascii碼值的差(要求不用strc

17、mp函數)。【gets】(str1);for(i=0;str1i【=str2i】 && str1i!='0'i+)printf("the compare result is: %dn",【x】);30. 完成程序填空,實現編程輸出以下圖案。* * * *for(i=0;【i<5】;i+)for(j=1;j<=【i】;j+)puts(【str】;31. 功能:輸出9*9口訣。for (i=1;【?】;i+)i<10 for(j=1;j<10;【j+】) result=i*j; printf("%d*%d=%-3

18、d",i,j,【result】);32.功能:將字母轉換成密碼,轉換規則是將當前字母變成其后的第四個字母,但W變成A、X變成B、Y變成C、Z變成D。小寫字母的轉換規則同樣。while(c=【getchar()】)!='n')if(c>='a'&&c<='z')|(c>='A'&&c<='Z')【c+=4】;if(c>'Z'【&&】c<='Z'+4)|c>'z') c-=

19、26;33. 功能:輸入一個學生的生日(年:y0、月:m0、日:d0),并輸入當前日期(年:y1、月:m1、日:d1)。求出該學生的年齡(實足年齡)。【scanf】("%d,%d,%d",&y0,&m0,&d0);if(m0【>】m1)age-;if(m0【=】m1)&&(d0>d1)age-;34. 完成程序填空,實現求兩數最小公倍數.if(【i%m=0】)if(i%n【=0】) printf("%dn",i);【break】; 二、程序設計1. 功能:求1到w之間的奇數之和。(w是大于等于100小于

20、等于1000的整數)long d,s=1; while (n>0) d=n%10; s*=d; n/=10;return s;2. 功能:對某一正數的值保留2位小數,并對第三位進行四舍五入。int i;i=(int) (h*1000)%10;if (i>=5)return(int) (h*100+1)/100.0;elsereturn(int) (h*100)/100.0;3. 功能:產生20個30,120上的隨機整數放入二維數組a54中, 求其中的最小值。int i,j,s;s=a00;for(i=0;i<5;i+) for(j=0;j<4;j+) if (s>

21、aij)s=aij;return(s);4. 功能:編寫程序求無理數e的值并輸出。計算公式為:e=1+1/1!+1/2!+1/3!+.+1/n!long int j;int i,k;float e,jc;i=1;e=0.0;jc=1.0; while(jc>=0.000001) e=e+jc; j=1; for(k=1;k<=i;k+) j=j*k; jc=1.0/j; i+;return e;5. 功能:對任意輸入的 x,用下式計算并輸出 y 的值。 5 x<10 y= 0 x=10 -5 x>10int m; if(n<10) m=5; else if(n=1

22、0) m=0; else m=-5; return m;6. 功能:判斷一個整數w的各位數字平方之和能否被5整除,可以被5整除則返回1,否則返回0。int k,s=0;dos=s+(w%10)*(w%10);w=w/10;while(w!=0);if(s%5=0)k=1;else k=0;return(k);7. 功能:編寫函數求3!+6!+9!+12!+15+18!+21!。int i,j; float t,s=0; for(i=3;i<=n;i=i+3) t=1; for(j=1;j<=i;j+) t=t*j; s=s+t; return(s);8. 功能:編寫函數fun求su

23、m=d+dd+ddd+dd.d(n個d),其中d為1-9的數字。例如:3+33+333+3333+33333(此時d=3,n=5),d和n在主函數中輸入。long int s=0,t=0; int i; for(i=1;i<=n;i+) t=t+d; s=s+t; d=d*10; return s;9.給定N個數據,求最小值出現的位置(如果最小值出現多次,求出第一次出現的位置即可)int i,k; k=0; for(i=1;i<n;i+) if(si<sk) k=i;return(k);10. 求一批數中最大值和最小值的積。int i,max,min; max=min=a0;

24、 for(i=1;i<n;i+) if(ai>max) max=ai; else if(ai<min) min=ai;return(max*min);11. 從鍵盤上輸入任意實數x,求出其所對應的函數值z=(x-4)的二次冪, z=x的八次冪(x>-4), z=4/(x*(x+1)(x>-10), z=|x|+20(其他).float z; if(x>4) z=sqrt(x-4); else if(x-4) z=pow(x,8); else if(x>-10) z=4/(x*(x+1); else z=fabs(x)+20; return(z);12.

25、 求出N*M整形數組的最大元素及其所在的行坐標及列坐標(如果最大元素不唯一,選擇位置在最前面的一個)。.int max,i,j;max=array 00;Row=0;Col=0; for(i=0;i<N;i+) for(j=0;j<M;j+) if(max<arrayij) max=arrayij; Row=i;Col=j;return(max);13. 求一個n位自然數的各位數字的積。(n是小于10的自然數)long d,s=1; while (n>0) d=n%10; s*=d; n/=10; return s;14. 計算n門課程的平均值,計算結果作為函數值返回。

26、例如:若有5門課程的成績是:92,76,69,58,88,則函數的值為76.599998int i; float y=0; for(i=0;i<n;i+) y+=ai; y=y/n; return y;15. 求一批數中小于平均值的個數。int i,sum=0,k=0; float average; for(i=0;i<n;i+) sum=sum+ai; average=sum*1.0/n; for(i=0;i<n;i+) if(average>ai)k+;return(k);16. 編寫函數判斷一個整數m的個位數字之和能否被7整除,可以被7整除則返回1,否則返回0.調

27、用該函數找出100200之間滿足條件的所有數。int k,s=0; do s=s+m%10; m=m/10; while(m!=0); if(s%7=0)k=1; else k=0; return(k);17. 編寫函數fun用比較法對主程序中用戶輸入的具有10個數據的數組a按由大到小排序,并在主程序中輸出排序結果。int k,j,t; for (k=0;k<n-1;k+) for (j=k+1;j<n;j+) if (arrayk<arrayj) t=arrayk; arrayk=arrayj;arrayj=t; 18. 將字符串中的小寫字母轉換為對應的大寫字母,其他字符不

28、變。int i; for(i=0;stri!='0'i+) if(stri>='a' && stri<='z') stri=stri-32;19. 求給定正整數m以內的素數之和。int i,k,s=0;for(i=2;i<=m;i+)for (k=2;k<i;k+)if(i%k=0)break;if(k=i)s=s+i; return s;20. 編寫程序,實現矩陣(3行3列)的轉置.int i,j,t;for(i=0;i<3;i+)for(j=0;j<i;j+) t=arrayij;array

29、ij=arrayji;arrayji=t;21. 功能:從鍵盤為一維整型數組輸入10個整數,調用fun函數找出其中最小的數,并在main函數中輸出。請編寫fun函數。int min,i;min=x0;for(i=1;i<10;i+) if(xi<min) min=xi; return min;22. 用do-while語句求1100的累計和。int i=1,sum=0; dosum=sum+i;i+; while(i<=n);return sum;23. 調用函數fun判斷一個三位數是否"水仙花數"。在main函數中從鍵盤輸入一個三位數,并輸出判斷結果。請

30、編寫fun函數。說明:所謂"水仙花數"是指一3位數,其各位數字立方和等于該數本身。例如:153是一個水仙花數,因為153=1+125+27。int a,b,c;a=n%10;b=n/10%10;c=n/100;if(a*a*a+b*b*b+c*c*c=n)return 1;else return 0;24. 功能:判斷一個整數w的各位數字平方之和能否被5整除,可以被5整除則返回1,否則返回0。使用DO WHILEint k,s=0; dos=s+(w%10)*(w%10);w=w/10; while(w!=0); if(s%5=0)k=1; else k=0; return

31、(k);25. 功能:求一個n位自然數的各位數字的積。(n 是小于10的自然數)long d,s=1; while(n>0) d=n%10; s*=d; n/=10; return s;26. 功能:把20個隨機數存入一個數組,然后輸出該數組中的最大值。int i,j=0;for(i=0;i<size;i+) if(listi>listj) j=i; return j;27. 功能:求一批數中小于平均值的數的個數。int i,sum=0,k=0; float average; for(i=0;i<n;i+) sum=sum+ai; average=sum*1.0/n;

32、for(i=0;i<n;i+) if(average>ai)k+; return(k);28. 功能:編寫函數求1100中奇數的平方和。結果為166650。float s=0;int i,j; for(i=1;i<=n;i=i+2) s=s+i*i;return(s);29. 功能:產生20個30,120上的隨機整數放入二維數組a54中, 求其中的最小值。int i,j,s; s=a00; for(i=0;i<5;i+) for(j=0;j<4;j+) if(s>aij)s=aij; return(s);30. 功能:編寫函數fun生成一個對角線元素為1,其

33、他元素都為0的3*3的二維數組。for(i=0;i<3;i+) for(j=0;j<3;j+) if(i+j=1 | i+j=3) arrij=0; else arrij=1;31. 功能:求5行5列矩陣的主、副對角線上元素之和。注意,兩條對角線相交的元素只加1次。例如:主函數中給出的矩陣的兩條對角線的和為45。int s=0; int i; for(i=0;i<M;i+) s=s+aii+aiM-1-i; s=s-a(M-1)/2(M-1)/2; return s;31. 功能:編寫函數用選擇排序法對數組中的數據進行從小到大的排序.int i,j,k,t;for(i=0;i<n-1;j+)k=i;for(j=j+1;j<n;j+)if(ak>aj) k=j;if(k!=i)t=ai;ai=ak;ak=t;32. 功能:編寫函數fun求sum=d+dd+ddd+dd.d(n個d),其中d為1-9的數字。例如:3+33+333+3333+33333(此時d=3,n=5),d和n在主函數中輸入。long int s=0,t=0;int i; for(i=1;i<n;i+)t=t+d; s=s+t; d=d*10; return s;33. 功能:編寫函數fun將一個數組中的值按逆序存放,并在main()函數中輸出。例如:原來存順序為8,

溫馨提示

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

評論

0/150

提交評論