版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C 語言課后題編程答案 所有章節(jié)的課后習(xí)題的選擇題和填空題大家必須熟練掌握,編程 題掌握到第九章即可。 希望大家通過課后的編程題熟悉典型的編程算 法,掌握基本的編程思路,注意編程細(xì)節(jié)。第3章3-17 編寫程序, 把 560 分鐘換算成用小時(shí)和分鐘表示,然后進(jìn)行輸 出。#includemain()int h,m;h=560/60;m=560%60;printf( 560分鐘可轉(zhuǎn)換成d小時(shí)d分鐘”,h,m);程序總結(jié):(1)只要在程序中用到系統(tǒng)提供的庫函數(shù),必須把庫函數(shù)所在的頭 文件用 #include 命令包含進(jìn)來。 否則庫函數(shù)的使用無效。 輸入輸出庫 函數(shù)的頭文件是: stdio.h; 數(shù)學(xué)函
2、數(shù)的頭文件是: math.h; 字符處理函 數(shù)的頭文件是: ctype.h; 字符串處理函數(shù)的頭文件是: string.h 。(2)注意 C 語言中的“ /”和“% ”兩種運(yùn)算符。“/”的運(yùn)算結(jié)果取 決于兩操作數(shù)的類型。比如: 1/2=0(與數(shù)學(xué)中不同,結(jié)果與操作數(shù) 的類型一致,所以結(jié)果只取商值) , 1.0/2=0.5(除之前 2 要自動(dòng)類型轉(zhuǎn)換成 2.0,因?yàn)橹挥型愋偷牟僮鲾?shù)才能進(jìn)行除運(yùn)算), 1/2.0=0.5,1.0/2.0=0.5?!?% ”的兩個(gè)操作數(shù)都必須是整數(shù)。(3) printf( 560分鐘可轉(zhuǎn)換成d小時(shí)d分鐘” h,m); printf第一 個(gè)參數(shù)要盡量詳細(xì), 這樣可以
3、提高輸出結(jié)果的可讀性, 恰當(dāng)好處的添 加提示性信息,可以提高程序的質(zhì)量。( 4) int h,m; 變量起名要有藝術(shù)性,盡量做到見名知意。3-18 編寫程序,輸入兩個(gè)整數(shù), 1500和 350,求出它們的商和余數(shù) 并進(jìn)行輸出。#includemain()int a,b,m,n;printf( “請輸入兩個(gè)整數(shù) :n”);scanf(“%d%d ”,&a,&b);m=a/b;n=a%b;printf( %d 除以 %d 商 %d 余%d ” ,a,b,m,n);程序總結(jié):(1) printf( “請輸入兩個(gè)整數(shù) :n ”) ;這是一個(gè)提示信息, 避免用戶在看到 黑屏后不知所措。( 2) scan
4、f(“%d%d ”,&a,&b); scanf 的功能是用戶要通過鍵盤輸入數(shù) 據(jù),賦值給各輸入項(xiàng)。注意每個(gè)輸入項(xiàng)前面必須要加 & 符號(hào)。 %d 與 輸入項(xiàng)的個(gè)數(shù)要一致,類型要匹配。 %d 與 int 一致, %f 與 float 對 應(yīng),lf與double匹配,c與char對應(yīng)。3-19 編寫程序, 讀入三個(gè)雙精度數(shù), 求它們的平均值并保留此平均 值小數(shù)點(diǎn)后一位數(shù), 對小數(shù)點(diǎn)后第二位數(shù)進(jìn)行四舍五入, 最后輸出結(jié) 果。#includemain()double a,b,c,x;printf( “請輸入三個(gè)雙精度數(shù) :n ”); scanf(“%lf%lf%lf ”,&a,&b,&c);x=(a+b
5、+c)/3;x=x*10;x=x+0.5;x=(int)x;x=x/10;printf( “x=%.1lf ”,x);程序總結(jié):(1) double a,b,c,x; 和 scanf(“%lf%lf%lf ”,&a,&b,&c); 有 直 接 聯(lián) 系, %lf 與輸入項(xiàng) a,b,c 在定義時(shí)所用的類型 double 一致。(2) %.1lf,.1的意思是結(jié)果僅保留小數(shù)點(diǎn)后一位小數(shù)。3-20 編寫程序,讀入三個(gè)整數(shù)給 a、 b 、 c ,然后交換他們中的數(shù),把a(bǔ)中原來的值給b,把b中原來的值給c,把c中原來的值給a, 然后輸出 a,b,c。#includemain()int a,b,c,t;pr
6、intf(“請輸入三個(gè)整數(shù): n”);scanf(“%d%d%d”,&a,&b,&c);printf(“交換之前:a=%d,b=%d,c=%d”,a,b,c);t=a;a=c;c=b;b=t;printf(“交換之后:a=%d,b=%d,c=%d”,a,b,c);程序總結(jié): 交換兩個(gè)變量的值和三個(gè)變量的值,都需要借助另外一個(gè)變量。第4章4-21 若 a 的值小于 100,請將以下選擇結(jié)構(gòu)改寫成由 switch 語句構(gòu) 成的選擇結(jié)構(gòu)。if(a30) m=1;else if(a40) m=2; else if(a50) m=3;else if(a60) m=4;else m=5; #include
7、 main() int a;printf( “enter a(a100):n ”); scanf(“%d ”,&a);printf( “a=%dn ”,a); switch(a/10) case 0:case 1:case 2:printf( “m=1n ”);break; case 3: printf( “m=2n ”);break; case 4: printf( “m=3n ”);break;case 5: printf( “m=4n ”);break; default: printf( “m=5n ”);程序總結(jié):1)選擇結(jié)構(gòu)的實(shí)現(xiàn)除了使用 if 語句以外,還可以使用 switch 語
8、句 來實(shí)現(xiàn)。(2) switch后的表達(dá)式和case后的標(biāo)號(hào)的類型要一致,switch后的 表達(dá)式直接決定了 switch 語句體的執(zhí)行入口。執(zhí)行完入口的 case語句后,依次順序往下執(zhí)行,直到遇到break語句就徹底跳出 switch 語句體,轉(zhuǎn)去執(zhí)行 switch 語句體后的語句。( 3) default 語句可有可無, 位置無所謂, 當(dāng) switch 后的表達(dá)式和所 有case后的標(biāo)號(hào)都不一致時(shí),轉(zhuǎn)去執(zhí)行default語句,然后依次順序執(zhí)行 default 語句后其他的 switch 語句,直到遇到 break 語句,則徹底跳出 switch 語句體。(4) break 語句可出現(xiàn)在循環(huán)
9、語句體和 switch 語句體內(nèi), 目的是徹 底跳出循環(huán)體和 switch 語句體。(5) case和其后的標(biāo)號(hào)之間必須要加空格。4-22編寫程序,輸入一位學(xué)生的生日(年:yO、月m0、日dO),并 輸入當(dāng)前的日期(年:y1、月m1、日d1),輸出該生的實(shí)際年齡。#includemain()int yO,mO,dO,y1,m1,d1,age ;printf( “輸入一位學(xué)生的生日: n”);scanf(“%d%d%d ”,&yO,&mO,&dO);printf( “輸入當(dāng)前日期: n”);scanf(“%d%d%d ”,&y1,&m1,&d1);age=y1-yO;if(m1mO|mO=m1&
10、d1dO)age-;printf( “age=%dn ”,age);程序總結(jié) :(1)if(m1m0|m0=m1&d0d1) ,在程序設(shè)計(jì)中,要學(xué)會(huì)用邏輯 與、或、非代替復(fù)雜的 if 語句嵌套。(2)在 printf 語句中,要盡量加上 n ,這樣可以避免黑屏上的結(jié)束 語 press any key to continue 出現(xiàn)在有價(jià)值的輸出結(jié)果的后面, 而是換行輸出。這樣就提高了程序輸出結(jié)果的可讀性。(3) 通過本設(shè)計(jì),要加強(qiáng)對變量起名藝術(shù)性的認(rèn)識(shí)。4-23 編寫程序,輸入一個(gè)整數(shù),打印出它是奇數(shù)還是偶數(shù)。 #includemain()int x,y;printf( “請輸入一個(gè)整數(shù) :n
11、”)scanf(“%d ”,&x);y=x%2;if(y=0)printf( “%d 是一個(gè)偶數(shù)! n”,x);elseprintf( “%d 是一個(gè)奇數(shù)! n”,x);程序總結(jié):y=x%2; 這是判斷一個(gè)數(shù)是奇數(shù)還是偶數(shù)的一貫表示方式。計(jì)算機(jī)中 的等號(hào)是雙等號(hào),與數(shù)學(xué)中的等號(hào)不一樣。4-24編寫程序,輸入a,b,c三個(gè)數(shù),打印出最大者。方法一:#includemain()int a,b,c,max;printf( “請輸入三個(gè)數(shù): n”);scanf(“%d%d%d ”,&a,&b,&c);if(ab)if(ac)max=a;elsemax=c;elseif(bc)max=b;elsemax
12、=c;printf( “max=%d ”,max);程序總結(jié):利用 if-else 的嵌套,可求出一組數(shù)的最大值和最小值。在 if-else 的嵌套 中,要格外注意if和else的配對問題。配對的原則是:從最后一個(gè)else開始,尋找與其配對的if,找的原則是離else最近的還沒有配對的if就是該 else的配對對象。if和else的配對一旦出問題,輸出結(jié)果全錯(cuò)。方法二:#includemain()int a,b,c,t;printf( “請輸入三個(gè)數(shù): n”);scanf(“%d%d%d ”,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc
13、)t=b;b=c;c=t;printf( “最大值為: %d ”,c);程序總結(jié):(1)方法一利用 if-else 的嵌套來進(jìn)行程序設(shè)計(jì),極易容易出錯(cuò)。而方法二采 用三個(gè) if 語句的并列來實(shí)現(xiàn),同樣可以求出最大值。(2)方法二算法分析:第一個(gè) if 語句結(jié)束后, b 中保存 a 和 b 中的較大值; 第二個(gè) if 語句結(jié)束后, c 中保存 a 和 c 中的較大值;第三個(gè) if 語句結(jié)束 后, c 中保存 b 和 c 中的較大值;三次比較后, c 中的值就是三個(gè)數(shù)中 最大的。(3)現(xiàn)實(shí)生活中,交換兩盆水必須要借助第三個(gè)盆子;在程序設(shè)計(jì)中,要想 實(shí)現(xiàn)兩個(gè)變量中值的交換,就必須借助第三個(gè)變量。4-
14、25 對于以下函數(shù):Y=x(-5x0),y=x-1(x=0),y=x+1(0x10), 編寫程序,要求輸入 x 的值,輸出 y 的值。分別用:(1)不嵌套的 if 語句( 2)嵌套的 if 語句( 3) if-else 語 句( 4) switch 語句(1) #include main()int x,y;printf( “請輸入 x 的值: n”); scanf(“%d ”,&x);if(x=0) y=x-1;if(x-5&x0&x10) y=x+1;printf( “y=%dn ”,y);(2) #includemain()int x,y;printf( “請輸入 x 的值: n”); s
15、canf(“%d ”,&x);if(x-5)if(x0)if(x10)y=x+1;if(x=0)y=x-1;Printf( “y=%dn ”,y);(3) #includemain()int x,y;printf( “請輸入 x 的值: n”); scanf(“%d ”,&x);if(x-5&x0)y=x;else if(x=0)y=x-1;elsey=x+1;Printf( “y=%dn ”,y);(4) #includemain()int x,y,i;printf( “請輸入 x 的值: n”);scanf(“%d ”,&x);if(x-5&x0&x10) i=3;switch(i) ca
16、se 1:y=x;printf( “x=%d,y=%dn ”,x,y);break;case 2:y=x-1; printf( “x=%d,y=%dn ”,x,y);break;case 3:y=x-1; printf( “x=%d,y=%dn ”,x,y);程序總結(jié):對于這個(gè)程序設(shè)計(jì)我建議大家采用第一種方法,因?yàn)榈谝环N方法是大眾化 的思路,鑒于上機(jī)考試是機(jī)器閱卷,希望大家不要在上機(jī)試題上展現(xiàn)自己 的個(gè)性。大家可以在平常練習(xí)中,嘗試多種方法解決同一問題,這樣可以 通過一個(gè)程序設(shè)計(jì),鞏固多個(gè)知識(shí)點(diǎn)。第5章5-17編寫程序,求1-3+5-7+-99+101的值。方法一:#includemain()
17、 int s,n,t,j;s=0;n=1;t=1;j=1;while(n=101) s=s+t;n+=2;j=-j;t=j*n;printf( 1-3+5-7+ -99+10l=%d ”,s);程序總結(jié):( 1 )循環(huán)結(jié)構(gòu)可用循環(huán)語句來實(shí)現(xiàn),循環(huán)語句有三種:while,do-while,for ,循環(huán)語句的使用場合是:數(shù)之間有規(guī)律可循并且是重復(fù)執(zhí)行某項(xiàng)操作。(2)本程序設(shè)計(jì)是正負(fù)數(shù)交替求和,所以必須單獨(dú)定義一個(gè)變量,通過每次 乘以- 1 ,來實(shí)現(xiàn)正負(fù)交替。本題中的 j 就扮演了這個(gè)角色。(3) while 語句簡介:功能是可實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。 While 與其后的括號(hào)之間無 空格,括號(hào)里的表達(dá)式只
18、要是合法的表達(dá)式即可,不過關(guān)系表達(dá)式最為常 見。While的管轄范圍是緊跟在其后的一條“ C語句”(可以是單純的一條 C 語句,也可以是用花括號(hào)括起來的復(fù)合語句) 。程序設(shè)計(jì)最忌諱死循環(huán), 所以說循環(huán)體中必須要有使 while 后表達(dá)式為假的趨勢,這樣才能正常的跳出循環(huán)體,從而避免死循環(huán)的出現(xiàn)。方法二:#include#includemain()int a,b,c,s;a=1;b=1;c=1;s=0;while(fabs(c)=101)s+=c;b+=2;a=-a;c=a*b;printf( 1-3+5-7+ -99+10l=%d ”,s);程序總結(jié):若程序中用到了數(shù)學(xué)函數(shù),就必須把 #inc
19、lude 加上5-18 編寫程序,求 e 的值,1+1/1!+1/2!+1/3!+1/4!+(1) 用 for 循環(huán),計(jì)算前 50 項(xiàng)。(2) 用 while 循環(huán),要求直至最后一項(xiàng)的值小于10的-6次方。(1) 方法一:#includemain() int m,n;float e=1.0,i=1.0,t;for(n=1;n=1;m-)t=t*m;i=1/t;e=e+i;printf( “e=%f ”,e);程序總結(jié): for(t=1.0;m=1;m-) t=t*m; 實(shí)現(xiàn)的是階乘的求法 方法二:#includemain()float a,b,c,e; e=1.0;a=1.0;c=0;for(
20、b=1.0;b50;b+)e+=c;c=1.0/(a*b);a=a*b;printf( “e=%f ”,e);程序總結(jié): c=1.0/a*b; a=a*b; 這兩句是階乘的另一種實(shí)現(xiàn)方法。 此算法的設(shè)計(jì)思路是:1! *2=2 !, 2! *3=3 !, 3! *4=4 !后一項(xiàng)的分母是前一項(xiàng) 分母再乘以一個(gè)有規(guī)律的數(shù)。(2) #includemain()float a=1.0,b=1.0,c=1.0,e=1.0;while(c=1e-6) e+=c;b+;c=1.0/(a*b);a=a*b;printf( “e=%fn ”,e);程序總結(jié): 1 乘以 10的-6次方,在 C 語言中表示為 1e
21、-6。5- 1 9編寫程序,輸出從公元 2000年至 3000年所有閏年的年號(hào),每輸出 10 個(gè)年號(hào)換一行,判斷公元年是否為閏年的條件是:( 1 )公元年數(shù)如能被 4 整除,而不能被 100 整除,則是閏年。 (2)公元年數(shù)能被 400 整除也是閏年。#include main() int i,j=0;for(i=2000;i=3000;i+) if(i%4=0&i%100!=0|i%400=0)printf( “i=%d ”,i);j+;if(j%10=0)printf( “n”);printf( “n ”);程序設(shè)計(jì):(1) int i,j=0; 這條語句中的 j=0 非常必要,因?yàn)?j
22、的作用就是累計(jì)閏年的個(gè) 數(shù),在所有的程序設(shè)計(jì)中,具有累計(jì)功能的變量都需要初始化為零。否則 隨機(jī)數(shù)會(huì)來搗亂,從而導(dǎo)致最后累計(jì)結(jié)果的無意義。(2) if(j%10=0) 這是換行的一貫表示形式。(3) 語句 printf( “n ”);在程序的最后出現(xiàn)兩次,這兩次的作用是不一樣的, 前者實(shí)現(xiàn)的是每 10 個(gè)閏年換行一次。后者的功能是讓黑屏上的 press any key to continue 乖乖換行,從而提高程序輸出結(jié)果的可讀性。5- 20 編寫程序,打印以下圖形: *#include main() int i,j,k;for(i=3;i=0;i-) for(k=1;k=i;k+)Printf
23、( “”);for(j=0;j7-i*2;j+)printf( “* ”);printf( “n”);for(i=4;i7;i+)for(k=4;k=i;k+)printf( “”);for(j=3;j=15-i*2;j+)printf( “* ”);printf( “n ”);程序總結(jié):(1) 類似圖形的設(shè)計(jì)是有規(guī)律可循的,比如此題:空格的個(gè)數(shù)從上往 下依次是 3、 2、1、0、1、2、3,星號(hào)的個(gè)數(shù)從上往下依次是 1、 3、5、7、5、3、1,并且上下兩部分是對稱的。(2) 本題中 for 循環(huán)的控制條件很難想出來, 大家只要把這個(gè)題記住就 可以,到時(shí)候稍微變一下型就可以。第6章6-19
24、請編寫程序,輸入一行字符(用回車結(jié)束) ,輸出每個(gè)字符以及與之對應(yīng)的 ASCII 代碼值,每行輸出三對。#includemain()int n=0;char c;while(c=getchar()!= n )n+;printf( “ASCII=%d,c=%c ”,c,c);if(n%3=0)printf( “n ”);putchar( n );程序總結(jié):(1) 字符型數(shù)據(jù)在內(nèi)存中保存的是與之相對應(yīng)的 ASCII 碼值。大家要牢 記的ASCII代碼值有:數(shù)字字符 0的ASCII值是48,字符a的 ASCII值是65,字符 A 的ASCII值是97,字符的ASCII 值是 32,這 4個(gè)特殊字符的
25、 ASCII 值必須記住。其他的只要在它們 的基礎(chǔ)上遞推就可以。(2) 在 printf 和 scanf 中所用到的 %后的字母,取決于輸入輸出項(xiàng)在定 義時(shí)所用的關(guān)鍵字。Int與d對應(yīng),float與f對應(yīng),double與lf 對應(yīng),char與c對應(yīng),long int與%ld對應(yīng),short int與%hd對應(yīng)。(3) 本題中的語句char c;和printf( ASCII=%d,c=%c ”c,c);貌似與中 講的理論相沖突,其實(shí)是可行的,由于字符型數(shù)據(jù)在內(nèi)存中保存的 是與之相對應(yīng)的 ASCII 碼值, ASCII 碼值都是整型數(shù),所以 char 既可以與 %c 對應(yīng),也可以與 %d 對應(yīng)。(
26、 4)注意語句 while(c=getchar()!= n )中括號(hào)的用法,很多同學(xué)容易 把(c=getchar()外的這層括號(hào)忘掉,變成 while(c=getchar()!= n ,由 于! =的優(yōu)先級(jí)要高于 =,所以導(dǎo)致運(yùn)算順序的改變,最終引起結(jié)果的 錯(cuò)誤。(5)putchar( h的功能仍然是讓黑屏上的 press any key to continue 乖 乖換行,從而提高程序輸出結(jié)果的可讀性。與printf( “n ”) ;是完全等價(jià)的。(6) getchar()的功能是等待用戶從鍵盤輸入一個(gè)字符到內(nèi)存,它的功能 決定了它的寫法必須是賦給一個(gè)字符型的內(nèi)存變量,如本題的c=getch
27、ar() 。6- 20 請編寫程序,輸入一行數(shù)字字符(用回車結(jié)束) ,每個(gè)數(shù)字字符 的前后都有空格。 請編程,把這一行中的數(shù)字轉(zhuǎn)換成一個(gè)整數(shù)。 例如, 若輸入(代表Enter鍵):2 48 3,則輸出整數(shù):2483。#includemain()char ch,int i=0;while(ch=getchar()!= n )if(ch= 0&ch=0&ch= 9不能寫成 0=ch= 0&ch= 0&ch= 9) 和 i=i*10+ch- 0是一體的,是一條語句。而 while 恰恰只需要對這一條語句負(fù)責(zé),而不是對多條語句負(fù)責(zé),所以 花括號(hào)是多余的。(3) 大家要格外注意 i=i*10+ch- 0
28、;這條語句, 這條語句是本程序的一大 亮點(diǎn)。6- 21 請編寫程序統(tǒng)計(jì)輸入的行數(shù),用!號(hào)結(jié)束輸入, !號(hào)所在的行不 計(jì)入行數(shù)。#includemain()char ch;int i=0;while(ch=getchar()!= ! );if(ch= n ) i+;printf( “%d ”,i);putchar( n );程序總結(jié):本程序是要統(tǒng)計(jì)輸入的行數(shù),其實(shí)就是統(tǒng)計(jì)n 出現(xiàn)的次數(shù)。6-22 請編寫程序統(tǒng)計(jì)輸入的一行中小寫字母的個(gè)數(shù)。 #include main()char ch;int i=0;while(ch=getchar()!= n )if(ch= a&ch=a&ch= z不能寫成a
29、v二ch二 zo6-23 請編寫輸出以下圖案的程序,圖案的行數(shù)由輸入的整數(shù)值確定(每 行中字符之間沒有空格) 。 ABBBCCCCC DDDDDDDEEEEEEEEE#includemain()int i,j,k,m,n;char ch;printf( “Enter n:n ”);scanf(“%d ”,&n);for(i=1;i=i;k- -) putchar( “”);for(j=1;j=m;j+) putchar(ch);printf( “n ”);第7章7- 15 編寫函數(shù) int mymod(int a,int b) 用以求 a 被 b 除之后的余數(shù)。 int mymod(int a
30、,int b)int s;s=a%b;return s;程序總結(jié):(1) 函數(shù)定義分為兩部分,函數(shù)首部和函數(shù)體。結(jié)合本題,函數(shù)首 部是 int mymod(int a,int b) ,函數(shù)體是花括號(hào)內(nèi)的所有語句。(2) int mymod(int a,int b) 中的 int 是函數(shù)的返回值類型, return 后 的表達(dá)式是函數(shù)的返回值, 所以 int 類型的書寫,是根據(jù) return 后表達(dá)式的類型而定的,必須要保證兩處的一致性。要是函數(shù) 體中沒有 return 語句,或是只有 return 這個(gè)單詞, 其后沒有表 達(dá)式,則認(rèn)定為該函數(shù)沒有返回值。那么函數(shù)首部中 int 就要 改寫成 v
31、oid 。要是函數(shù)首部省略函數(shù)的返回值類型,寫成 mymod(int a,int b) 的形式,并不表示該函數(shù)沒有返回值,而是 系統(tǒng)默認(rèn)該函數(shù)的返回值為 int 類型。(3) int mymod(int a,int b) 中的 mymod 是函數(shù)名,只要符合標(biāo)識(shí)符 的命名規(guī)則即可,盡量做到見名知義。(4) int mymod(int a,int b) 中的 a, b 是該函數(shù)的兩個(gè)形參。 形參的個(gè) 數(shù)取決于題目的實(shí)際需要,形參前的類型名一定不能少。(5) return s;語句的功能是把該被調(diào)用函數(shù)得到的結(jié)果返回調(diào)用函 數(shù)。用 return 語句只能帶回一個(gè)數(shù)據(jù)。要想返回多個(gè)數(shù)據(jù),必 須用到后
32、面的知識(shí)點(diǎn):傳址。( 6) % (取余運(yùn)算符)是雙目運(yùn)算符,其左右的兩個(gè)運(yùn)算符必須都 是整型數(shù)。7- 16編寫函數(shù),根據(jù)整型形參 n 的值,計(jì)算如下公式的值:1-1/2+1/3-1/4+1/5-1/6+1/7 float res(int n) int i=1;float e=0,m,j;for(j=1.0;j=n;j+)m=1/j;e+=i*m;i=-i; return e;程序總結(jié):(1) 要注意 m=1/j; 中的 1/j ,若是把 j 的類型定義成 int 類型的,只 要 1 和 j( j 大于 1)進(jìn)行整除運(yùn)算,統(tǒng)統(tǒng)為 0。只要把 j 的類型 定 義 成 float 類 型, 這 種
33、情況 即 可避 免 。舉例 : 1/2=0,而 1/2.0=0.5,1.0/2=0.5,1.0/2.0=0.5,運(yùn)算結(jié)果的類型取決于兩操作數(shù) 中較大的類型,雙目運(yùn)算符在運(yùn)算之前,首先要統(tǒng)一兩操作數(shù) 的類型(統(tǒng)一的原則請參看附錄5)。7-17編寫函數(shù),根據(jù)整型形參 m 的值,計(jì)算如下公式的值:t=1-1/2*2-1/3*3-float fun(int m)float i,t=1,n;for(n=2;n=m;n+)i=-1/(n*n);t+=i;return t;7-18 編寫函數(shù)用以求表達(dá)式 x*x-5x+4 的值, x 作為參數(shù)傳送給函數(shù), 調(diào)用此函數(shù)求:y1=2*2-5*2+4 y2=(x+
34、15)*(x+15)+4y3=sinx*sinx-5*sinx+4y1的值為-2.0; x為0.5時(shí),y2的值為166.75, y3的值為1.832721double fun(double x)double y;y=x*x-5*x+4;return y;第8章8- 17 請編寫函數(shù),其功能是對傳送過來的兩個(gè)浮點(diǎn)數(shù)求出和值與差 值,并通過形參傳送回調(diào)用函數(shù)。Void fun(float a,float b,float *m,float *n)*m=a+b;*n=a-b;程序總結(jié):本題的要求是在調(diào)用函數(shù)中傳遞兩數(shù)到被調(diào)用函數(shù), 在被調(diào)用函數(shù)中 求出和值和差值,然后傳送到調(diào)用函數(shù)。顯然 return 語句無能為力, 因?yàn)?return 語句僅能返回一個(gè)數(shù)據(jù)。像這樣涉及到多個(gè)數(shù)據(jù)的傳遞 的必須要用到傳址運(yùn)算。8- 18 請編寫函數(shù),對傳送過來的三個(gè)數(shù)選出最大數(shù)和最小數(shù),并通 過形參傳回調(diào)用函數(shù)。void fun(float *a,float*b,float *c)float t;if(*a*b)t=*a;*a=*b;*b=t;if(*a*c)t=*a;*a=*c;*c=t;if(*b*c)t=*b;*b=*c;*c=t;程序總結(jié):本函數(shù)的設(shè)計(jì)思路是: 在被調(diào)用函數(shù)中利用指針遠(yuǎn)程遙控, 把三
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 皮革制品招投標(biāo)現(xiàn)狀解析
- 護(hù)理碩士畢業(yè)論文答辯
- 建筑維修審查合同
- 高中生物遺傳病概率計(jì)算
- 植物園綠化項(xiàng)目聘用合同
- 運(yùn)動(dòng)俱樂部泳池租賃協(xié)議
- 電子科技清罐施工合同
- 石油公司電氣安全檢查流程
- 地鐵站裝修改造協(xié)議
- 礦井排水泵機(jī)租賃協(xié)議
- 企業(yè)高校項(xiàng)目合作協(xié)議
- 班級(jí)文化建設(shè)研究課題研究報(bào)告
- 學(xué)而思寒假七年級(jí)尖子班講義第5講二元一次方程組進(jìn)階
- 淺議周記在班務(wù)工作中妙用
- 生物、地理會(huì)考背誦計(jì)劃表
- 國民經(jīng)濟(jì)統(tǒng)計(jì)學(xué) 第3章中間消耗及投入產(chǎn)出核算
- 課程設(shè)計(jì)(論文)3kta梨果醬車間工藝設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)長沙辦公樓空調(diào)系統(tǒng)設(shè)計(jì)
- 第三章電阻材料
- 體育科學(xué)研究方法(第三版)第07章實(shí)驗(yàn)法
- 公務(wù)員考試遴選、選調(diào)考試答題卡練字方格(A4紙可直接打印)
評論
0/150
提交評論