




已閱讀5頁,還剩124頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C程序設(shè)計(jì)(第三版)課后習(xí)題參考解答1.6 寫一個(gè)程序,輸入a,b,c三個(gè)值,輸出其中最大者。解:main ( )int a,b,c,max;printf(“請(qǐng)輸入三個(gè)數(shù)a,b,c: n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if (maxb)max=b;if (maxc)max=c;printf(“ 最大數(shù)為:%d ”,max);第2章 程序的靈魂算法2.1 什么叫結(jié)構(gòu)化的算法?為什么要提倡結(jié)構(gòu)化的算法?解:由一些基本結(jié)構(gòu)順序組成的算法稱為結(jié)構(gòu)化的算法。由于在基本結(jié)構(gòu)之間不存在非順序的跳轉(zhuǎn),流程的轉(zhuǎn)移只存在于一個(gè)基本結(jié)構(gòu)范圍之內(nèi),因而提高了算法的質(zhì)量。2.7 什么叫結(jié)構(gòu)化程序設(shè)計(jì)?它的主要內(nèi)容是什么?解:結(jié)構(gòu)化程序就是用高級(jí)語言表示的結(jié)構(gòu)化算法。它的主要內(nèi)容包括“自頂向下,逐步細(xì)化”的分析方法和“模塊化設(shè)計(jì)”的解決方法,以及“結(jié)構(gòu)化編碼”的實(shí)現(xiàn)方法。第3章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式33請(qǐng)將下面各數(shù)用八進(jìn)制和十六進(jìn)制數(shù)表示:(1)10 (2)32 (3)75 (4)617(5)111 (6)2483 (7)28654 (8)21003解:(1) (10) 10(12) 8(A) 16(2) (32)10=(40)8=(20) 16(3) (75)10=(113)8=(4B) 16(4) (617)10=(176627)8=(FD97) 16此題可以這樣考慮:帶符號(hào)數(shù)在計(jì)算機(jī)中采用補(bǔ)碼表示,正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼模真值。若使用16位存儲(chǔ),模為21665536。617的補(bǔ)碼為65536(167)64919(176627)8(FD97)16(5) (111)10=(177621)8=(FF91) 16(6) (2483)10=(4663)8=(9B3) 16(7) (28654)10=(110022)8=(9012) 16(8) (21003)10=(51013)8=(520B) 1634將以下三各整數(shù)分別賦給不同類型的變量,請(qǐng)畫出賦值后數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式。變量的類型25232769int型long型sort型signed char(8位)unsigned int型unsigned long型unsigned short型unsigned char型注:如果沒有學(xué)過二進(jìn)制和補(bǔ)碼,此題可以不做。解:各數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式如下表所示:變量的類型25232769int型00 0000110018 位1111111111111110 15 100 001(溢出) 14long型00 000011001 2411 1110 3100 0100 001 16 14short型00 00001100181111111111111110 15100 001(溢出) 14signed char(8位)000110011111111000000001(溢出)unsigned int型00 0000110018 11 110 15100 001 14unsigned long型00 0000110012411 110 3100 0100 001 16 14unsigned short型00 0000110018 11 110 15100 001 8unsigned char型000110011111111000000001其中int和short類型,其取值范圍是3276832767。32769在這兩種類型中實(shí)際表示負(fù)數(shù),它是一個(gè)負(fù)數(shù)的補(bǔ)碼,對(duì)其再求一次補(bǔ)碼可得其真值,即(6553632769)32767。char和unsigned char為8位,若將int或long類型數(shù)據(jù)賦給這種類型,則截取數(shù)據(jù)低8位。同理,若將long賦給int,則截取低16位。35字符常量和字符串常量有什么區(qū)別?解:字符常量是一個(gè)字符,用單引號(hào)括起來。字符串常量是由0個(gè)或若干個(gè)字符組合而成,用雙引號(hào)括起來,存儲(chǔ)時(shí)自動(dòng)在字符串最后加一個(gè)結(jié)束符號(hào)0。36寫出以下程序運(yùn)行的結(jié)果:# includevoid main ( ) char c1=a, c2=b, c3=c, c4=101, c5=116; printf (“a%c b%ct c%ct abcn”, c1, c2, c3); printf (“tb%c %c”, c4, c5);解:程序運(yùn)行的結(jié)果為:aa bb cc abc A N37要將“China”譯成密碼,密碼規(guī)律是:用原來的字母后面第4個(gè)字母代替原來的字母。例如,字母“A”后面第4個(gè)字母是“E”,用“E”代替“A”。因此,“China”應(yīng)譯為“Glmre”。請(qǐng)編一程序,用賦初值的方法使c1,c2,c3,c4,c5這5個(gè)變量的值分別為C,h,i,n,a,經(jīng)過運(yùn)算,使c1,c2,c3,c4,c5的值分別變?yōu)镚,l,m,r,e,并輸出。解:main ( ) char cl=C, c2=h, c3=i, c4=n, c5=a; c1+=4; c2+=4;c3+=4;c4+=4;c5+=4;printf(“密碼是cccccn, c1, c2, c3, c4, c5);運(yùn)行結(jié)果:密碼是Glmre38例2.6能否改成如下:main ( ) int c1, c2; (原為 char c1, c2) c1=97; c2=98; printf (“%c %cn”, c1, c2); printf (“%d %dn”, c1, c2);解:可以。因?yàn)樵诳奢敵龅淖址秶鷥?nèi),用整型和用字符型作用相同。39求下面算術(shù)表達(dá)式的值。(1) x+a%3*(int)(x+y)%2/4設(shè)x=2.5,a=7,y=4.7(2) (float)(a+b)/2+(int)x%(int)y設(shè)a=2,b=3,x=3.5,y=2.5解:(1)2.5(2)3.5 310寫出程序運(yùn)行的結(jié)果。main ( ) int i, j, m, n; i=8; j=10; m=+i; n=j+; printf (“%d, %d, %d, %d”, i, j, m, n);解:運(yùn)行結(jié)果為:9,11,9,10311寫出下面賦值的結(jié)果。格中寫了數(shù)值的是要將它賦給其他類型的變量,將所有空格填上賦值后的數(shù)值。int9942chardunsigned int7665535float53.65long int68解:int99100765368421charcdL5D*unsigned int991007653684265535float99.000000100.00000076.00000053.6568.00000042.00000065535.000000long int9910076536842655353.12 出下面表達(dá)式運(yùn)算后a的值,設(shè)原來a=12。設(shè)a和n都已定義為整型變量。(1)a+=a (2)a-=2 (3)a*=2+3(4)a/=a+a(5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a解:(1)24 (2)10(3)60 (4)0(5)0 (6)0 第4章 最簡單的C程序設(shè)計(jì)順序程序設(shè)計(jì)4.4 若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51247,n=128765,c1=a,c2=b,想得到以下的輸出格式和結(jié)果,請(qǐng)寫出程序(包括定義變量類型和設(shè)計(jì)輸出)。要求輸出的結(jié)果如下:a=3b=4c=5x= 1.200000,y= 2.400000,z= -3.600000x+y=3.60y+z=-1.20z+x=-2.40u= 51247n=128765c1=aor97(ASCII)c2=bor98(ASCII)解:main ( )int a,b,c; long int u,n; float x,y,z; char c1,c2; a=3;b=4;c=5; x=1.2;y=2.4;z= -3.6; u=51247;n=128765; c1=a;c2=b; printf(“n”); printf(“a=%2db=%2dc=%2dn”,a,b,c); printf(“x=%.6f,y=%.6f,z=%.6fn”,x,y,z); printf(“x+y=%.2fy+z=%.2fz+x=%.2fn”,x+y,y+z,z+x); printf(“u=%6ldn=%9ldn”,u,n); printf(“c1=%c or %d(ASCII)n”,c1,c1); printf(“c2=%c or %d(ASCII)n”,c2,c2);45請(qǐng)寫出下面程序的輸出結(jié)果:main ( ) int a=5,b=7; float x=67.8564,y=-789.124; char c=A; long n=1234567; unsigned u=65535; printf(“%d%dn”,a,b); printf(“%3d%3dn”,a,b); printf(“%f,%fn”,x,y); printf(“%-10f,%-10fn”,x,y); printf(“%8.2f, %8.2f,%4f, %4f, %3f, %3fn”,x,y,x,y,x,y); printf(“%e,%10.2en”,x,y); printf(“%c,%d,%o,%xn”,c,c,c,c); printf(“%ld,%lo,%xn”,n,n,n); printf(“%u,%o,%x,%dn”,u,u,u,u); printf(“%s,%5.3sn”,”COMPUTER”,”COMPUTER”);運(yùn)行結(jié)果:575767.856400, -789.12402367.856400, -789.12402367.86,-789.12,67.8564,-789.1240,67.856400,-789.1240236.785640e+01,-7.9e+02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER,COM可以發(fā)現(xiàn),輸出數(shù)據(jù)中若有負(fù)號(hào)、e和小數(shù)點(diǎn),這些字符也占位。4.6 用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a。問在鍵盤上如何輸入?#include void main()int a , b;float x , y;char c1 ,c2;scanf(“a=%d b=%d”,&a , &b);scanf(“ %f %e”,&x , &y);scanf(“ %c %c”,&c1 , &c2);解:a=3b=78.571.82Aa4.7下面的scanf函數(shù)輸入數(shù)據(jù),使a=10,b=20,c1=A,c2=a,x=1.5,y=-3.75,z=67.8,請(qǐng)問在鍵盤上如何輸入數(shù)據(jù)?scanf(“%5d%5d%c%c%f%f%*f,%f”,&a,&b,&c1,&c2,&x,&y,&z);解:main ( ) int a,b;float x,y,z; char c1,c2; scanf(“%5d%5d%c%c%f%f%*f,%f”,&a,&b,&c1,&c2,&x,&y,&z); printf(“a=%d, b=%d, c1=%c, c2=%c, x=%6.2f, y=6.2f, z=6.2fn”),a,b,c1,c2,x,y,z);運(yùn)行情況如下:1020Aa1.5 3.751.5,67.8 (此行為輸入的數(shù)據(jù),其中為空格)a=10, b=20, c1=A, c2=a, x=1.50, y=-3.75, z=67.80 (此行為輸出)說明:按%5d格式的要求輸入a和b時(shí),要先鍵入三個(gè)空格,然后再鍵入10與20。%*f是用來禁止賦值的。在輸入時(shí),對(duì)應(yīng)于%*f的地方,隨意打入了一個(gè)數(shù)1.5,該值不會(huì)賦給任何變量。4.8圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長,圓面積,圓球表面積,圓球體積,圓柱體積。用scanf輸入數(shù)據(jù),輸出計(jì)算結(jié)果,輸出時(shí)要求有文字說明,取小數(shù)點(diǎn)后2位數(shù)字。請(qǐng)編程序。解:main ( ) float pi,h,r,l,s,sq,vq,vz; pi=3.1415926; printf(“請(qǐng)輸入圓半徑r,圓柱高h(yuǎn):n”); scanf(“%f,%f”,&r,&h); l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h; printf(“圓周長為: l=%6.2fn”,l); printf(“圓面積為: s=%6.2fn”,s); printf(“圓球表面積為: sq=%6.2fn”,sq); printf(“圓球體積為: sv=%6.2fn”,vq); printf(“圓柱體積為: sz=%6.2fn”,vz);運(yùn)行結(jié)果:請(qǐng)輸入圓半徑r,圓柱高h(yuǎn):1.5,3圓周長為: l=9.42圓面積為: s=7.07圓球表面積為: sq=28.27圓球體積為: sv=7.95圓柱體積為: sz=21.214.9輸入一個(gè)華氏溫度,要求輸出攝氏溫度,公式為C=(5/9)(F-32)輸出要有文字說明,取2位小數(shù)。解:main ( ) float c,f; printf(“請(qǐng)輸入一個(gè)華氏溫度:n”);scanf(“%f”,&f); c=(5.0/9.0)*(f-32); /*注意5和9要用實(shí)型表示,否則5/9的值為0*/ printf(“攝氏溫度為:%5.2fn”,c); ;運(yùn)行結(jié)果:請(qǐng)輸入一個(gè)華氏溫度:78攝氏溫度為:25.56第5章 選擇結(jié)構(gòu)程序設(shè)計(jì)5.2語言中如何表示“真”和“假”?系統(tǒng)如何判斷一個(gè)量的“真”和“假”?解:設(shè)有一個(gè)邏輯表達(dá)式,若其結(jié)果為“真”,則以1表示;若其結(jié)果為“假”,則以0表示。但是判斷一個(gè)邏輯量的值時(shí),以0代表“真”,以非0代表“假”。例如3&5的值為“真”,系統(tǒng)會(huì)給出3&5的值為1。5.3寫出下面各邏輯表達(dá)式的值。設(shè)a=3,b=4,c=5。(1)a+bc&b=c(2)a|b+c&b-c(3)!(ab)&!c|1(4)!(x=a)&(y=b)&0(5)!(a+b)+c-1&b+c/2解:(1)0(2)1(3)1(4)0(5)15.4有3個(gè)整數(shù)a,b,c,由鍵盤輸入,輸出其中最大的數(shù)。解:方法一:程序如下:main ( ) int a,b,c; printf(“請(qǐng)輸入3個(gè)整數(shù):”); scanf(“%d,%d,%d”,&a,&b,&c); if (ab) if (bc)printf(“max=%dn”,c); elseprintf(“max=%dn”,b); else if (ab)? a:b; /* 將a和b中的大者存入temp中 */ max=(tempc)? temp:c; /* 將a和b中的大者與c比較,取最大者 */ printf(“3個(gè)整數(shù)中最大數(shù)是%dn”,max);方法三:ab?(ac?a:c):(bc?b:c)運(yùn)行結(jié)果:請(qǐng)輸入3個(gè)整數(shù):12,34,93個(gè)整數(shù)的最大數(shù)是34。5.5有一函數(shù): 寫一程序,輸入x值,輸出y值。解:程序如下main ( ) int x,y; printf(“輸入x:”); scanf(“%d”,&x); if (x1) /* x1 */ y=x; printf(“x=%d3d, y=x=%dn”,x,y); else if (x10) /* 1x100 | score9999)place=5; else if (num999)place=4; else if (num99)place=3;else if (num9)place=2;else place=1;printf(“place=%dn”,place);printf(“每位數(shù)字為:”);ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);switch(place)case 5:printf(“%d,%d,%d,%d,%d”,ten_thousand,thousand,hundred,ten,indiv);printf(“n反序數(shù)字為:”);printf(“%d%d%d%d%dn”,indiv,ten,hundred,thousand,ten_thousand);break;case 4:printf(“%d,%d,%d,%d”,thousand,hundred,ten,indiv); printf(“n反序數(shù)字為:”);printf(“%d%d%d%d n”,indiv,ten,hundred,thousand);break;case 3:printf(“%d,%d,%d”,hundred,ten,indiv); printf(“n反序數(shù)字為:”);printf(“%d%d%d n”,indiv,ten,hundred);break;case 2:printf(“%d,%d”, ten,indiv); printf(“n反序數(shù)字為:”);printf(“%d%d n”,indiv,ten);break;case 1:printf(“%d”, indiv); printf(“n反序數(shù)字為:”);printf(“%dn”,indiv);break; 運(yùn)行結(jié)果:請(qǐng)輸入一個(gè)整數(shù)(099999):98765位數(shù)5每位數(shù)字為:9,8,7,6,5反序數(shù)字為:567895.8企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤提成。利潤I低于或等于10萬元時(shí),獎(jiǎng)金可提10;利潤高于10萬元,低于20萬元(100000I200000)時(shí),其中10萬元按10提成,高于10萬元的部分,可提成7.5%;200000I400000時(shí),其中20萬元仍按上述辦法提成(下同),高于20萬元的部分按5提成;400000I600000時(shí),高于40萬元的部分按3提成;6000001000000時(shí),超過100萬的部分按1提成。從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)。要求:(1)用if語句編程序;(2)用switch語句編程序。解:計(jì)算利潤時(shí),要特別注意不同利潤的不同提成比例。例如,利潤為15萬元,其中由10萬元按10的比例提成,另外5萬元?jiǎng)t按7.5%提成。(1) 用if語句編程序,main ( ) long i; float bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; /*利潤為10萬元時(shí)的獎(jiǎng)金*/ bon2=bon1+100000*0.075 /*利潤為20萬元時(shí)的獎(jiǎng)金*/ bon4=bon2+100000*0.05 /*利潤為40萬元時(shí)的獎(jiǎng)金*/ bon6=bon4+100000*0.03 /*利潤為60萬元時(shí)的獎(jiǎng)金*/ bon10=bon6+400000*0.015; /*利潤為100萬元時(shí)的獎(jiǎng)金*/ printf(“請(qǐng)輸入利潤i:”); scanf(“%ld”,&i); if (i=100000) bonus=i*0.1; /*利潤在10萬元以內(nèi)按0.1提成獎(jiǎng)金*/ else if (i=200000) bonus=bon1+(i-100000)*0.075 /*利潤在10萬至20萬元時(shí)的獎(jiǎng)金*/ else if (i=400000) bonus=bon2+(i-200000)*0.05 /*利潤在20萬至40萬元時(shí)的獎(jiǎng)金*/ else if (i=600000) bonus=bon4+(i-400000)*0.03 /*利潤在40萬元至60萬元時(shí)的獎(jiǎng)金*/ else if (i10) then c=10; switch (c) case 0: bonus=i*0.1; break; case 1: bonus=bon1+(i-100000)*0.075; break; case 2: case 3: bonus=bon2+(i-200000)*0.05; break; case 4: case 5: bonus=bon4+(i-400000)*0.03; break; case 6: case 7: case 8: case 9: bonus=bon6+(i-600000)*0.015; break; case 10: bonus=bon10+(i-1000000)*0.01; printf(“獎(jiǎng)金是%10.2f”,bonus);運(yùn)行結(jié)果:請(qǐng)輸入利潤i:234000獎(jiǎng)金是:19200.005.9輸入4個(gè)整數(shù),要求按由小到大的順序輸出。解:程序如下#include stdio.hvoid main() int t,a,b,c,d; printf(請(qǐng)輸入4個(gè)整數(shù):); scanf(%d,%d,%d,%d,&a,&b,&c,&d); printf(a=%d,b=%d,c=%d,d=%d,a,b,c,d); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(ad) t=a;a=d;d=t; if(bc) t=b;b=c;c=t; if(bd) t=b;b=d;d=t; if(cd) t=c;c=d;d=t; printf(排序結(jié)果如下:n); printf(%d %d %d %dn,a,b,c,d);5.10有4個(gè)圓塔,圓心分別為(2,2),(2,2),(2,2),(2,2),圓半徑為1。見圖4.4。這4個(gè)塔的高度分別為10m。塔以外無建筑物。今輸入任一點(diǎn)的坐標(biāo),求該點(diǎn)的建筑高度(塔外的高度為0)。解:程序如下main ( ) int h=10; float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4; printf(“請(qǐng)輸入一個(gè)點(diǎn)(x,y):”); scanf(“%f,%f”,&x,&y); /*求該點(diǎn)到各中心點(diǎn)的距離*/ d1=(x-x1)*(x-x1)+(y-y1)* (y-y1); d2=(x-x2)*(x-x2)+(y+y2)* (y+y2; d3=(x+x3)*(x+x3)+(y-y3)* (y-y3); d4=(x+x4)*(x+x4)+(y+y4)* (y+y4); if (d11 & d21 & d31 & d41) h=0; /*判斷該點(diǎn)是否在塔外*/ printf(“該點(diǎn)高度為%d”,h);運(yùn)行情況:請(qǐng)輸入一個(gè)點(diǎn)(x,y):0.5,0.7該點(diǎn)高度為0請(qǐng)輸入一個(gè)點(diǎn)(x,y):2.1,2.3該點(diǎn)高度為10第6章 循環(huán)控制6.1輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。解:用輾轉(zhuǎn)相除法求最大公約數(shù)main ( ) int p,r,n,m,temp; printf(“請(qǐng)輸入兩個(gè)正整數(shù)n,m:”); scanf(“%d,%d”,&n,&m); if (nm) temp=n; n=m; m=temp; /*把大數(shù)放在n中,小數(shù)放在m中*/ p=n*m; /*先將m和n的乘積保存在p中,以便求最小公倍數(shù)時(shí)用*/while (m!=0) /*求m和n的最大公約數(shù)*/ r=n%m; n=m; m=r; printf(“它們的最大公約數(shù)為:%dn”,n);printf(“它們的最小公倍數(shù)為:%dn”,p/n); /*p是原來兩個(gè)整數(shù)的乘積*/運(yùn)行情況:請(qǐng)輸入兩個(gè)正整數(shù):12,8它們的最大公約數(shù)為:4它們的最小公倍數(shù)為:246.2輸入一行字符,分別統(tǒng)計(jì)出其中英文字母,空格,數(shù)字和其它字符的個(gè)數(shù)。解:#include main ( ) char c; int letter=0,space=0,digit=0,other=0; printf(“請(qǐng)輸入一行字符:n”); while(c=getchar( )!=n) if (c=a & c=A & c=0 & c=9) digit+;else other+; printf(“字母數(shù)%d,空格數(shù)%d,數(shù)字?jǐn)?shù)%d,其它字符數(shù)=%dn”,letter,space,digit,other);運(yùn)行情況:請(qǐng)輸入一行字符:My teachers address is “#123 Beijing Road,Shanghai”.字母數(shù):38,空格數(shù):6,數(shù)字?jǐn)?shù):3,其它字符數(shù):66.3求Sn=a+aa+aaa+aaa之值,其中a是一個(gè)數(shù)字。例如:222222222222222 n個(gè)a(此時(shí)n5),n由鍵盤輸入。解:main ( ) int a,n,i=1,sn=0,tn=0; printf(“a,n= :”); scanf(“%d,%d”,&a,&n); while (i=n) tn=tn+a; /*賦值后的tn為i個(gè)a組成數(shù)的值*/ sn=sn+tn; /*賦值后的sn為多項(xiàng)式前I項(xiàng)之和*/ a=a*10; +i;printf(“a+aa+aaa+=%dn”,sn);運(yùn)行情況:a,n:2,5a+aa+aaa+=246906.4求n!(即求1+2!+20!)。解:main ( )float s=0,t=1; int n; for (n=1;n=20;n+)t=t*n; /*求n!*/s=s+t; /*將各項(xiàng)累加*/ printf(“1!+2!+20!=%en”,s);運(yùn)行結(jié)果:1!+2!+20!=2.56133e+18注意:s不能定義為int型,因?yàn)閕nt型數(shù)據(jù)的范圍是-3276832767;也不能定義為long型,因?yàn)閘ong型數(shù)據(jù)的范圍為21億21億,無法容納求得的結(jié)果。6.5求解:#include stdio.h#include conio.hmain() int n1=100,n2=50,n3=10,k; float s1=0,s2=0,s3=0; for(k=1;k=n1;k+) s1+=k; for(k=1;k=n2;k+) s2+=k*k; for(k=1;k=n3;k+) s3+=1.0/k; printf(sum=%8.2fn,s1+s2+s3); getch();運(yùn)行結(jié)果:47977.93。6.6打印出所有的“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個(gè)3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如,153是一個(gè)“水仙花數(shù)”,因?yàn)?53135333。解:main ( ) int i,j,k,n; printf(“水仙花數(shù)”是:”); for (n=100;n1000;n+)i=n/100; j=n/10-i*10; k=n%10; if (n=i*i*i+j*j*j+k*k*k) printf(“%4d”,n); printf(“n”);運(yùn)行結(jié)果:“水仙花數(shù)“是:153 370 371 4076.7一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)“。例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數(shù)”。編程序找出1000以內(nèi)的所有“完數(shù)”,并按下面的格式輸出其因子:6 Its factors are 1,2,3解:方法一:#define M 1000 /*定義尋找范圍*/main ( ) int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10; int i,a,n,s; for (a=2;a=M;a+) /*a是21000之間的整數(shù),檢查它是否完數(shù)*/n=0; /*n用來累計(jì)a的因子的個(gè)數(shù) s=a; /*s用來存放尚未求出的因子之和,開始時(shí)等于a*/ for ( i=1;i1) printf(“%d,%d”,k1,k2); /*n1表示a至少有2個(gè)因子*/ if (n2) printf(“,%d”,k3); /*n2表示至少有3個(gè)因子,故應(yīng)再輸入一個(gè)因子*/ if (n3) printf(“,%d”,k4); /*以下類似*/ if (n4) printf(“,%d”,k5);if (n5) printf(“,%d”,k6);if (n6) printf(“,%d”,k7);if (n7) printf(“,%d”,k8);if (n8) printf(“,%d”,k9);if (n9) printf(“,%d”,k10); printf(“n”); 運(yùn)行結(jié)果:6 Its factors are 1,2,328 Its factors are 1,2,4
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司晨會(huì)活動(dòng)策劃方案
- 公司日常團(tuán)建活動(dòng)方案
- 公司秋游團(tuán)建活動(dòng)方案
- 公司日行萬步策劃方案
- 公司節(jié)日策劃活動(dòng)方案
- 2025年休閑體育管理師考試試卷及答案
- 2025年現(xiàn)代物流管理課程試題及答案
- 2025年手語翻譯人才能力考試試卷及答案
- 2025年技術(shù)經(jīng)濟(jì)與管理專業(yè)綜合考試試題及答案
- 幼兒園裝修合同
- 教科版小學(xué)科學(xué)五年級(jí)下冊(cè)6.設(shè)計(jì)我們的小船教學(xué)設(shè)計(jì)
- 飛機(jī)艙門及撤離滑梯-空客320型飛機(jī)艙門結(jié)構(gòu)及操作方法
- 中建型鋼懸挑卸料平臺(tái)專項(xiàng)施工方案
- 心搏呼吸驟停課件
- 12D10 防雷與接地工程
- 北京長峰醫(yī)院4.18火災(zāi)事故案例分析
- 國開《學(xué)前兒童心理學(xué)基礎(chǔ)》形考形成性考核1-4答案
- 乙酸安全周知卡、職業(yè)危害告知卡、理化特性表
- 工業(yè)廢水處理工初級(jí)測(cè)試題
- 投稿版權(quán)轉(zhuǎn)讓協(xié)議書
- 【部編版】三年級(jí)下冊(cè)道德與法治《期末測(cè)試卷》(含答案)
評(píng)論
0/150
提交評(píng)論