中南大學(xué)《C語(yǔ)言程序設(shè)計(jì)》期末編程試題及答案_第1頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1. 以下程序由終端輸入兩個(gè)整數(shù)給變量x和y,然后輸出x和y,在交換x和y中的值后。再輸出x和y。main()int x,y,t;printf(Enterx&y:n);scanf(%d%d,&x,&y); t=x;x=y; y=t;printf(x=%d,y=%dn,x,y);以下是程序運(yùn)行情況:Enterx&y(由第四行的printf輸出)123 456(從鍵盤輸入兩個(gè)整數(shù),代表Enter鍵)x=123 y=456(由第六行的Printf輸出)x=456 y=123(由第八行的Printf輸出)2.輸入一個(gè)double類型的數(shù),使該數(shù)保留小數(shù)點(diǎn)后兩位,對(duì)第三位小數(shù)進(jìn)行四舍五入處理,然后輸出此

2、數(shù)。main()double x;printf(Enter:n);scanf(%lf,&x);printf(x=%fn,x);x=x*100;x=x+0.5;x=(int)x;x=x/100;printf(x=%fn,x);運(yùn)行結(jié)果如下:Enter x:(Printf輸出提示信息)123.456(從鍵盤輸入123.4567,代表Enter鍵)x=123.456700(輸出原始數(shù)據(jù))x=123.460000(輸出對(duì)第三位小數(shù)進(jìn)行四舍五入后的數(shù)據(jù))注意:在Scanf函數(shù)中給出double類型變量輸入數(shù)據(jù)時(shí),應(yīng)該使用%lf格式轉(zhuǎn)換說(shuō)明符,而輸出,對(duì)應(yīng)的格式轉(zhuǎn)換說(shuō)明符可以是%f,也可以是%f。3.編寫

3、程序:把560分鐘換算成用小時(shí)和分鐘表示,然后進(jìn)行輸出。main()int a=560,b,c;b=a/60;c=a%60;printf(b=%d,c=%dn,b,c);注:可以將該題改為輸入一個(gè)數(shù)將其分解為小時(shí)和分鐘來(lái)表示。main()int x,a,b;printf(Enter x:n);scanf(%ld,&x);printf(x=%dn,x);a=x/60;b=x%60;printf(a=%dnb=%dn,a,b);注:對(duì)于第一個(gè)printf(“Enter x:n”);有點(diǎn)麻煩。4.編寫程序:輸入兩個(gè)整數(shù):1500和350,求出它們的商和余數(shù)并進(jìn)行輸出。main()int x=1500

4、,y=350,a,b;a=x/y;b=x%y;printf(a=%d,b=%dn,a,b);注:本題同樣可以進(jìn)行以上操作將一個(gè)數(shù)分解。5.編寫程序:讀入三個(gè)雙精度數(shù),求它們的平均值并保留此平均值小數(shù)點(diǎn)后一位,對(duì)小數(shù)點(diǎn)后第二位進(jìn)行四舍五入,最后輸出結(jié)果。main()double x,y,z,a;printf(Enter x,y,z:n);scanf(%lf%lf%lf,&x,&y,&z);a=(x+y+z)/3.0;a=a*10;a=a+0.5;a=(int)a;a=a/10;printf(a=%fn,a);6.編寫程序:讀入三個(gè)整數(shù)給a,b,c然后交換它們中的數(shù),把a(bǔ)中原來(lái)的值給b,把b中原來(lái)

5、的值給c,把c中原來(lái)的值給a,然后輸出a,b,c。main()int a,b,c,t;printf(Enter a,b,c:n);scanf(%ld%ld%ld,&a,&b,&c);t=a;a=c;c=b;b=t;printf(a=%d,b=%d,c=%dn,a,b,c);7.輸入兩個(gè)數(shù),分別放入x和y中,若兩個(gè)數(shù)不相等,則輸出其中的大數(shù);若兩數(shù)相等,則輸出字符串x=y和x的值。main()int x,y;printf(Enter x,y:n);scanf(%d%d,&x,&y);printf(x=%d,y=%dn,x,y);if(xy) printf(x=%dn,x);if(xy) prin

6、tf(x=%dn,x);if(yy的值。如果x大于y,表達(dá)式的值為1,則調(diào)用printf函數(shù)輸出x的值;否則,如果x小于y,表達(dá)式的值為0,則跳過(guò)此輸出語(yǔ)句繼續(xù)執(zhí)行步驟(3);(3).執(zhí)行第八行的if語(yǔ)句。計(jì)算表達(dá)式y(tǒng)x的值。如果y大于x,則調(diào)用printf函數(shù),輸出y的值;否則跳過(guò)此輸出語(yǔ)句繼續(xù)執(zhí)行步驟(4);(4).執(zhí)行第九行的if語(yǔ)句。計(jì)算表達(dá)式x=y的值。如果x等于y,則調(diào)用printf函數(shù)輸出字符串x=y和x的值;否則跳過(guò)此輸出語(yǔ)句繼續(xù)執(zhí)行步驟(5);(5).程序結(jié)束。8.輸入三個(gè)整數(shù),分別放在變量a,b,c中,然后把輸入的數(shù)據(jù)重新按由小到大的順序放在變量a,b,c中,最后輸出a,b

7、,c中的值。main()int a,b,c,t;printf(Enter a,b,c:n);scanf(%ld%ld%ld,&a,&b,&c);printf(a=%d,b=%d,c=%dn,a,b,c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(a=%d,b=%d,c=%dn,a,b,c); 注:(1).在這里的if語(yǔ)句其下的語(yǔ)句 是必須要有的,否則其程是不正確的。 (2).在這里并不是將數(shù)字進(jìn)行討論(數(shù)學(xué)討論)的只需要將其表示出來(lái)即可。并不是討論。 (3).這里的if語(yǔ)句沒(méi)有else語(yǔ)句。在一個(gè)語(yǔ)句中可以有if而

8、沒(méi)有else但不可以有else而沒(méi)有if 9.輸入兩個(gè)數(shù),分別賦給x和y,輸出其中的大數(shù)。main()int x,y;printf(Enter x,y:n);scanf(%ld%ld,&x,&y);printf(x=%d,y=%dn,x,y);if(xy)printf(max=x=%dn,x);if(yx)printf(max=y=%dn,y); main()int x,y;printf(Enter x,y:n);scanf(%ld%ld,&x,&y);printf(x=%d,y=%dn,x,y);if(xy) printf(max=x=%dn,x); else printf(max=y=%d

9、n,y);這里對(duì)于if語(yǔ)句中是否有else分別作出了程序。10.輸入一個(gè)數(shù),判斷它是否能被3整除。若能被3整除,打印YES;不能被3整除打印NO。main()int x;printf(Enter x:n); scanf(%d,&x);if(x%3=0) printf(YESn,x);else printf(NOn,x);main()int n;printf(Input n: );scanf(%d,&n);if(n%3=0)printf(n=%dYESn,n);else printf(n=%dNOn,n);11.編寫程序:根據(jù)輸入的學(xué)生成績(jī)給出相應(yīng)的等級(jí),大于或等于90分以上的等級(jí)為A,60分以

10、下的等級(jí)為E,其余每10分為一個(gè)等級(jí)。main()int x;printf(Enter x:);scanf(%ld,&x);printf(x=%d :,x);switch(x/10)case 10:case 9:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);break;case 6:printf(Dn);break;default : printf(En);main()int x;printf(Enter x :n);scanf(%ld,&x);printf(x=%dn,x);if(x=90) printf(An);els

11、e if(x=80) printf(Bn);else if(x=70) printf(Cn);else if(x=60) printf(Dn);else printf(En);12.編寫程序;輸入一位學(xué)生的生日(年:y0、月:m0、日:d0),并輸入當(dāng)前的日期(年:y1、月:m1、日:d1),輸出該生的實(shí)際年齡。13.編寫程序:輸入一個(gè)整數(shù),打印出它是奇數(shù)還是偶數(shù)。main()int x;printf(Enter x:n);scanf(%ld,&x);printf(x=%dn,x);if(x%2=0) printf(偶數(shù)n);else printf(奇數(shù)n);14.編寫程序:輸入a,b,c三個(gè)

12、數(shù),打印出最大值。main()int a,b,c;printf(Enter a,b,c:n);scanf(%ld%ld%ld,&a,&b,&c);printf(a=%d,b=%d,c=%dn,a,b,c);if(ab) if(ac) printf(a=%dn,a);else if(bc) printf(b=%dn,b);else printf(c=%dn,c);15.對(duì)于以下函數(shù): X (-5x0)y= x-1 (x=0) x+1 (0 x10)main()double x,y;printf(Please input a number n);scanf(%lf,&x);if(-5x)&(x0)

13、 y=x;if(x=0) y=x-1;if(0 x)&(x10) y=x+1;printf(y=%fn,y);編寫程序,要求輸入x的值,輸出y的值。分別用(1)不嵌套的if語(yǔ)句(2)嵌套的if語(yǔ)句(3)if-else語(yǔ)句(4)switch語(yǔ)句。16.編寫程序:求1*1+2*2+3*3+n*n直到累加和大于或等于10000為止。main()int i=1,sum=0;while(sum10000)sum=sum+i*i;i=i+1;printf(sum=%d,i=%dn,sum,i);main()int i=1,sum=0;while(sum10000)sum=sum+i*i;i=i+1;pri

14、ntf(sum=%d,i=%dn,sum,i); 此兩個(gè)程序完全不同。注:while循環(huán)的執(zhí)行過(guò)程:(1).計(jì)算while后圓括號(hào)中表達(dá)式的值。當(dāng)值為非0時(shí),執(zhí)行步驟(2);當(dāng)值為0時(shí)執(zhí)行步驟(4)。(亦為1是才循環(huán),0不循環(huán))(2).執(zhí)行循環(huán)一次。(3).轉(zhuǎn)去執(zhí)行步驟(1)。(4).退出while循環(huán)。17.用/4=1-1/3+1/5-1/7+1/9-公式求的近似值,直到最后一項(xiàng)的絕對(duì)值小魚0.000001為止。#includemain()int s;float n,t,pi;t=1.0;pi=0;n=1.0;s=1;while(fabs(t)=1e-6)pi=pi+t;n+=2.0;s=-

15、s;t=s/n;pi=pi*4;printf(pi=%fn,pi);18.用迭代法求方程x=cosx的根,要求誤差小于0.000001.#includemain()double x1,x2;x1=0.0;x2=cos(x1);while(fabs(x2-x1)1e-6)x1=x2;x2=cos(x1);printf(x=%fn,x2); 19.計(jì)算Fibonacci數(shù)列,直到某項(xiàng)大于1000為止,并輸出該項(xiàng)的值。main()int f1,f2,f;f1=0;f2=1;do f=f1+f2;f1=f2;f2=f;while(f2=1000);printf(f=%dn,f2);20.編寫程序:求1

16、+2+3+100。main()int i,sum=0;for(i=1;i=100;i+)sum=sum+i;printf(“%dn”,sum);21.編寫程序:計(jì)算半徑為0.5mm、1.0mm、1.5mm、2.0mm、2.5mm時(shí)的圓的面積。main()double r,s,Pi=3.1416; for(r=0.5;r=2.5;r+=0.5) s=Pi*r*r; printf(r=%3.1f,s=%fn,r,s); 22.使用雙層for循環(huán)打印如下由星號(hào)組成的倒三角圖形。main()int k,i,j; for(i=0;i4;i+) for(k=1;k=i;k+) printf( ); for

17、(j=0;j7-i*2;j+) printf(*); printf(n); * * * *23.編寫程序:找出2100以內(nèi)的所有素?cái)?shù)。#includemain()int k,i,tag; printf(2,); for(i=3;i=100;i+=2) tag=0; for(k=2;tag=0&ksqrt(i);k+) if(i%k=0) tag=1; if(tag=0) printf(%d,i); main()int k,i,tag;for(i=2;i=100;i+)tag=0;for(k=2;k5000) break; printf(s=%d,i=%dn,s,i);25.編寫程序:打印所有的

18、四位數(shù)使其滿足于:千位*個(gè)位=十位+百位。main()int i,a,b,c,d;for(i=1000;i=9999;i+)a=i/1000;b=(i-a*1000)/100;c=(i-a*1000-b*100)/10);d=i-a*1000-b*100-c*10;if(a*d)=(c+b) printf(This number is %dn,i); 26.編寫程序:求1!+2!+3!+4!,用循環(huán)嵌套實(shí)現(xiàn)。27.用一角人民幣換1分,2分和5分硬幣,共有多少種換法?28.已知一首項(xiàng)大于0的等差數(shù)列的前4項(xiàng)和為26.前4項(xiàng)的積為880,求這個(gè)數(shù)列。29.求3個(gè)數(shù)的最小公倍數(shù)。30.打印輸出所有的水仙花數(shù)。(所謂水仙花數(shù),是指一個(gè)三位數(shù),是指一個(gè)數(shù),其各位數(shù)字的立方和等于該數(shù)本身)。31.從鍵盤輸入10整數(shù),求其中的最大值和最小值。32.用冒泡排序法將10個(gè)整數(shù)從小到大排序。33.在n個(gè)數(shù)中查找一個(gè)數(shù)x(順序查找算法)。34.將一個(gè)二維數(shù)組行和列的元素互換,存到另一個(gè)二維數(shù)組中。 1 2 3 1 4 A= 4 5 6 B= 2 5 3 635.有一個(gè)4*4矩陣,分別求主對(duì)角線元素之和與次對(duì)角線元素之和。36.有一個(gè)3*4的矩陣,要求編程求出其中值最大的那個(gè)元素,以及其所在的行號(hào)和列號(hào)。37.不借助另外的矩陣,將矩陣a轉(zhuǎn)置。38.輸入一個(gè)以回車符結(jié)束

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論