版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言課后題編程答案所有章節(jié)的課后習(xí)題的選擇題和填空題大家必須熟練掌握,編程題掌握到第九章即可。希望大家通過課后的編程題熟悉典型的編程算法,掌握基本的編程思路,注意編程細(xì)節(jié)。第3章3-17編寫程序,把560分鐘換算成用小時(shí)和分鐘表示,然后進(jìn)行輸出。#include<stdio.h>main(){inth,m;h=560/60;m=560%60;printf(“560分鐘可轉(zhuǎn)換成%4小時(shí)%d分鐘”,h,m);}程序總結(jié):(1)只要在程序中用到系統(tǒng)提供的庫函數(shù),必須把庫函數(shù)所在的頭文件用#include命令包含進(jìn)來。否則庫函數(shù)的使用無效。輸入輸出庫函數(shù)的頭文件是:stdio.h;數(shù)學(xué)函數(shù)的頭文件是:math.h;字符處理函數(shù)的頭文件是:ctype.h;字符串處理函數(shù)的頭文件是:string.ho(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ù)。printf(“560分鐘可轉(zhuǎn)換成%d小時(shí)%d分鐘”,h,m);printf第一個(gè)參數(shù)要盡量詳細(xì),這樣可以提高輸出結(jié)果的可讀性,恰當(dāng)好處的添加提示性信息,可以提高程序的質(zhì)量。inth,m;變量起名要有藝術(shù)性,盡量做到見名知意。3-18編寫程序,輸入兩個(gè)整數(shù),1500和350,求出它們的商和余數(shù)并進(jìn)行輸出。#include<stdio.h>main(){inta,b,m,n;printf(“請輸入兩個(gè)整數(shù):\n”);scanf(“%d%d”,&a,&b);m=a/b;n=a%b;printf(“%d除以%d商%4余%4”,a,b,m,n);}程序總結(jié):(1)printf(“請輸入兩個(gè)整數(shù):\n”);這是一個(gè)提示信息,避免用戶在看到黑屏后不知所措。(2)scanf(“%d%d”,&a,&b);scanf的功能是用戶要通過鍵盤輸入數(shù)據(jù),賦值給各輸入項(xiàng)。注意每個(gè)輸入項(xiàng)前面必須要加&符號。%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é)果。#include<stdio.h>main(){doublea,b,c,x;printf(“請輸入三個(gè)雙精度數(shù):\n”);scanf(“%lf%lf%lf”,&a,&b,&c);x=(a+b+c)/3;x=x*10;x=x+0.5;x=(int)x;x=x/10;printf(“x=%.1lf”,x);}程序總結(jié):doublea,b,c,x;和scanf(“%lf%lf%lf”,&a,&b,&c);有直接聯(lián)系,%lf與輸入項(xiàng)a,b,c在定義時(shí)所用的類型double一致。%.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。#include<stdio.h>main(){inta,b,c,t;printf(“請輸入三個(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;prinf(“交換之后: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(a<30)m=1;elseif(a<40)m=2;elseif(a<50)m=3;elseif(a<60)m=4;elsem=5;#include<stdio.h>main(){inta;printf(“entera(a<100):\n”);scanf(“%d”,&a);printf(“a=%d\n”,a);switch(a/10){case0:case1:case2:printf(“m=1\n”);break;case3:printf(“m=2\n”);break;case4:printf(“m=3\n”);break;case5:printf(“m=4\n”);break;default:printf(“m=5\n”);}}程序總結(jié):選擇結(jié)構(gòu)的實(shí)現(xiàn)除了使用if語句以外,還可以使用switch語句來實(shí)現(xiàn)。switch后的表達(dá)式和case后的標(biāo)號的類型要一致,switch后的表達(dá)式直接決定了switch語句體的執(zhí)行入口。執(zhí)行完入口的case語句后,依次順序往下執(zhí)行,直到遇到break語句就徹底跳出switch語句體,轉(zhuǎn)去執(zhí)行switch語句體后的語句。default語句可有可無,位置無所謂,當(dāng)switch后的表達(dá)式和所有case后的標(biāo)號都不一致時(shí),轉(zhuǎn)去執(zhí)行default語句,然后依次順序執(zhí)行default語句后其他的switch語句,直到遇到break語句,則徹底跳出switch語句體。(4)break語句可出現(xiàn)在循環(huán)語句體和switch語句體內(nèi),目的是徹底跳出循環(huán)體和switch語句體。(5)case和其后的標(biāo)號之間必須要加空格。4-22編寫程序,輸入一位學(xué)生的生日(年:y0、月m0、日d0),并輸入當(dāng)前的日期(年:y1、月ml、日d1),輸出該生的實(shí)際年齡。#include<stdio.h>main(){inty0,m0,d0,y1,m1,d1,age;prinf(“輸入一位學(xué)生的生日:\n”);scanf(“%d%d%d”,&y0,&m0,&d0);printf(“輸入當(dāng)前日期:\n”);scanf(“%d%d%d”,&y1,&m1,&d1);age=y1-y0;if(m1<m0||m0==m1&&d1<d0)age--;printf(“age=%d\n”,age);}程序總結(jié):f(m1vm0llmO==m1&&dOvd1),在程序設(shè)計(jì)中,要學(xué)會用邏輯與、或、非代替復(fù)雜的if語句嵌套。在printf語句中,要盡量加上\n,這樣可以避免黑屏上的結(jié)束語pressanykeytocontinue出現(xiàn)在有價(jià)值的輸出結(jié)果的后面,而是換行輸出。這樣就提高了程序輸出結(jié)果的可讀性。通過本設(shè)計(jì),要加強(qiáng)對變量起名藝術(shù)性的認(rèn)識。4-23編寫程序,輸入一個(gè)整數(shù),打印出它是奇數(shù)還是偶數(shù)。#includevstdio.h>main(){intx,y;printf(“請輸入一個(gè)整數(shù):\n”)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ī)中的等號是雙等號,與數(shù)學(xué)中的等號不一樣。4-24編寫程序,輸入a,b,c三個(gè)數(shù),打印出最大者。方法一:#include<stdio.h>main(){inta,b,c,max;printf(“請輸入三個(gè)數(shù):\n”);scanf(“%d%d%d”,&a,&b,&c);if(a>b){if(a>c)max=a;elsemax=c;}else{if(b>c)max=b;elsemax=c;printf(“max=%d”,max);}程序總結(jié):利用if-else的嵌套,可求出一組數(shù)的最大值和最小值。在if-else的嵌套中,要格外注意if和else的配對問題。配對的原則是:從最后一個(gè)else開始,尋找與其配對的迅找的原則是離else最近的還沒有配對的if就是該else的配對對象。if和else的配對一旦出問題,輸出結(jié)果全錯(cuò)。方法二:#include<stdio.h>main(){inta,b,c,t;printf(“請輸入三個(gè)數(shù):\n”);scanf(“%d%d%d”,&a,&b,&c);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;}printf(“最大值為:%d”,c);}程序總結(jié):方法一利用if-else的嵌套來進(jìn)行程序設(shè)計(jì),極易容易出錯(cuò)。而方法二采用三個(gè)if語句的并列來實(shí)現(xiàn),同樣可以求出最大值。方法二算法分析:第一個(gè)if語句結(jié)束后,b中保存a和b中的較大值;第二個(gè)if語句結(jié)束后,c中保存a和c中的較大值;第三個(gè)if語句結(jié)束后,c中保存b和c中的較大值;三次比較后,c中的值就是三個(gè)數(shù)中最大的?,F(xiàn)實(shí)生活中,交換兩盆水必須要借助第三個(gè)盆子;在程序設(shè)計(jì)中,要想實(shí)現(xiàn)兩個(gè)變量中值的交換,就必須借助第三個(gè)變量。4-25對于以下函數(shù):Y=x(-5vxv0),y=x-1(x=0),y=x+1(0vxv10)編寫程序,要求輸入x的值,輸出y的值。分別用:(1)不嵌套的if語句(2)嵌套的if語句(3)if-else語句(4)switch語句#includevstdio.h>main(){intx,y;printf(“請輸入x的值:\n”);scanf(“%d”,&x);if(x==0)y=x-1;if(x>-5&&x<0)y=x;if(x>0&&x<10)y=x+1;printf(“y=%d\n”,y);}#include<stdio.h>main(){intx,y;printf(“請輸入x的值:\n”);scanf(“%d”,&x);if(x>-5)if(x<0)y=x;if(x>0)if(x<10)y=x+1;if(x==0)y=x-1;Printf(“y=%d\n”,y);}#include<stdio.h>main(){intx,y;printf(“請輸入x的值:\n”);scanf(“%d”,&x);if(x>-5&&x<0)y=x;elseif(x==0)y=x-1;elsey=x+1;Printf(“y=%d\n”,y);}#include<stdio.h>main(){intx,y,i;printf(“請輸入x的值:\n”);scanf(“%d”,&x);if(x>-5&&x<0)i=1;if(x==0)i=2;if(x>0&&x<10)i=3;switch(i){case1:y=x;printf(“x=%d,y=%d\n”,x,y);break;case2:y=x-1;printf(“x=%d,y=%d\n”,x,y);break;case3:y=x-1;printf(“x=%d,y=%d\n”,x,y);}}程序總結(jié):對于這個(gè)程序設(shè)計(jì)我建議大家采用第一種方法,因?yàn)榈谝环N方法是大眾化的思路,鑒于上機(jī)考試是機(jī)器閱卷,希望大家不要在上機(jī)試題上展現(xiàn)自己的個(gè)性。大家可以在平常練習(xí)中,嘗試多種方法解決同一問題,這樣可以通過一個(gè)程序設(shè)計(jì),鞏固多個(gè)知識點(diǎn)。第5章5-17編寫程序,求1-3+5-7+???-99+101的值。方法一:#include<stdio.h>main(){ints,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+101=%d”,s);}程序總結(jié):循環(huán)結(jié)構(gòu)可用循環(huán)語句來實(shí)現(xiàn),循環(huán)語句有三種:while,do-while,for,循環(huán)語句的使用場合是:數(shù)之間有規(guī)律可循并且是重復(fù)執(zhí)行某項(xiàng)操作。本程序設(shè)計(jì)是正負(fù)數(shù)交替求和,所以必須單獨(dú)定義一個(gè)變量,通過每次乘以-1,來實(shí)現(xiàn)正負(fù)交替。本題中的j就扮演了這個(gè)角色。⑶while語句簡介:功能是可實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。While與其后的括號之間無空格,括號里的表達(dá)式只要是合法的表達(dá)式即可,不過關(guān)系表達(dá)式最為常見。While的管轄范圍是緊跟在其后的一條“C語句”(可以是單純的一條C語句,也可以是用花括號括起來的復(fù)合語句)。程序設(shè)計(jì)最忌諱死循環(huán),所以說循環(huán)體中必須要有使while后表達(dá)式為假的趨勢,這樣才能正常的跳出循環(huán)體,從而避免死循環(huán)的出現(xiàn)。方法二:#include<stdio.h>#include<math.h>main(){inta,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+101=%d”,s);}程序總結(jié):若程序中用到了數(shù)學(xué)函數(shù),就必須把#includevmath?h>加上。5-18編寫程序,求e的值,e?l+l/l!+l/2!+l/3!+l/4!+…(1)用for循環(huán),計(jì)算前50項(xiàng)。⑵用while循環(huán),要求直至最后一項(xiàng)的值小于10的-6次方。(1)方法一:#includevstdio?h>main(){intm,n;floate=1.0,i=1.0,t;for(n=1;n<=50;n++){m=n;for(t=1.0;m>=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)的是階乘的求法。方法二:#include<stdio?h>main(){floata,b,c,e;e=1?0;a=1?0;c=0;for(b=1?0;b<50;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)#include<stdio?h>main(){floata=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=%f\n”,e);}程序總結(jié):1乘以10的-6次方,在C語言中表示為1e-6。5-19編寫程序,輸出從公元2000年至3000年所有閏年的年號,每輸出10個(gè)年號換一行,判斷公元年是否為閏年的條件是:公元年數(shù)如能被4整除,而不能被100整除,則是閏年。公元年數(shù)能被400整除也是閏年。#include<stdio.h>main(){inti,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ì):⑴intij=0;這條語句中的j=0非常必要,因?yàn)閖的作用就是累計(jì)閏年的個(gè)數(shù),在所有的程序設(shè)計(jì)中,具有累計(jì)功能的變量都需要初始化為零。否則隨機(jī)數(shù)會來搗亂,從而導(dǎo)致最后累計(jì)結(jié)果的無意義。⑵if(j%10==0)這是換行的一貫表示形式。⑶語句printf(“\n”);在程序的最后出現(xiàn)兩次,這兩次的作用是不一樣的,前者實(shí)現(xiàn)的是每10個(gè)閏年換行一次。后者的功能是讓黑屏上的pressanykeytocontinue乖乖換行,從而提高程序輸出結(jié)果的可讀性。5-20編寫程序,打印以下圖形:****#include<stdio.h>main(){inti,j,k;for(i=3;i>=0;i--){for(k=1;k<=i;k++)Printf(“”);for(j=0;j<7-i*2;j++)printf(“*”);printf(“\n”);}for(i=4;i<7;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,星號的個(gè)數(shù)從上往下依次是1、3、5、7、5、3、1,并且上下兩部分是對稱的。(2)本題中for循環(huán)的控制條件很難想出來,大家只要把這個(gè)題記住就可以,到時(shí)候稍微變一下型就可以。第6章6-19請編寫程序,輸入一行字符(用回車結(jié)束),輸出每個(gè)字符以及與之對應(yīng)的ASCII代碼值,每行輸出三對。#include<stdio.h>main(){intn=0;charc;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è)特殊字符的ASCII值必須記住。其他的只要在它們的基礎(chǔ)上遞推就可以。(2)在printf和scanf中所用到的%后的字母,取決于輸入輸出項(xiàng)在定義時(shí)所用的關(guān)鍵字。Int與%4對應(yīng),float與%『對應(yīng),double與%用對應(yīng),char與%(對應(yīng)Jongint與%血對應(yīng),shortint與%山4對應(yīng)。⑶本題中的語句charc;和printf(“ASCII=%d,c=%c”,c,c);貌似與⑵中講的理論相沖突,其實(shí)是可行的,由于字符型數(shù)據(jù)在內(nèi)存中保存的是與之相對應(yīng)的ASCII碼值,ASCII碼值都是整型數(shù),所以char既可以與%。對應(yīng),也可以與%d對應(yīng)。4)注意語句while((c=getchar())!=\n)中括號的用法,很多同學(xué)容易把(c=getchar())外的這層括號忘掉,變成while(c=getchar()!=\n),由于!=的優(yōu)先級要高于=,所以導(dǎo)致運(yùn)算順序的改變,最終引起結(jié)果的錯(cuò)誤。5)putchar(?\n);的功能仍然是讓黑屏上的pressanykeytocontinue乖乖換行,從而提高程序輸出結(jié)果的可讀性。與printf(“\n”);是完全等價(jià)的。⑹getchar()的功能是等待用戶從鍵盤輸入一個(gè)字符到內(nèi)存,它的功能決定了它的寫法必須是賦給一個(gè)字符型的內(nèi)存變量,如本題的c=getchar()。20請編寫程序,輸入一行數(shù)字字符(用回車結(jié)束),每個(gè)數(shù)字字符的前后都有空格。請編程,把這一行中的數(shù)字轉(zhuǎn)換成一個(gè)整數(shù)。例如,若輸入(vCR>代表Enter鍵):2483 vCR>,則輸出整數(shù):2483。#includevstdio.h>main(){charch,inti=0;while((ch=getchar())!=\n)if(ch>=0&&chv=9)i=i*10+ch-0;printf(“%d”,i);putchar(\n);}程序總結(jié):(1)ch>=0&&chv=9不能寫成0v=chv=9。數(shù)字字符轉(zhuǎn)換成相應(yīng)的數(shù)字,程序?qū)崿F(xiàn)為:ch=ch-0;大寫字母轉(zhuǎn)換成小寫字母,程序?qū)崿F(xiàn)為:ch=ch-A+a;小寫字母轉(zhuǎn)換成大寫字母,程序?qū)崿F(xiàn)為:ch=ch-a+A。(2)while((c=getchar())!=\n){if(ch>=0&&chv=9)i=i*10+ch-0;}紅色標(biāo)記的這對兒花括號是完全沒有必要的,因?yàn)閕f(ch>=0&&ch<=9)和i=i*10+ch-0是一體的,是一條語句。而while恰恰只需要對這一條語句負(fù)責(zé),而不是對多條語句負(fù)責(zé),所以花括號是多余的。(3)大家要格外注意i=i*10+ch-0;這條語句,這條語句是本程序的一大點(diǎn)。21請編寫程序統(tǒng)計(jì)輸入的行數(shù),用!號結(jié)束輸入,!號所在的行不計(jì)入行數(shù)。#include<stdio.h>main(){charch;inti=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<stdio.h>main(){charch;inti=0;while((ch=getchar())!=\n)if(ch>=a&&ch<=z)i++;printf(“%d”,i);putchar(?\n);}程序總結(jié):ch>=a&&chv=z不能寫成a<=ch<=z。6-23請編寫輸出以下圖案的程序,圖案的行數(shù)由輸入的整數(shù)值確定(每行中字符之間沒有空格)。ABBBCCCCCDDDDDDDLi1Li1Li1Li1Li1Li1Li1VLi1EEEEEEEEE#include<stdio.h>main(){inti,j,k,m,n;charch;printf(“Entern:\n”);scanf(“%d”,&n);for(i=1;i<=n;i++){ch=A+i-1;m=2*i-1;for(k=n;k>=i;k--)putchar(“”);for(j=1;j<=m;j++)putchar(ch);printf(“\n”);}}第7章7-15編寫函數(shù)intmymod(inta,intb)用以求a被b除之后的余數(shù)。intmymod(inta,intb){ints;s=a%b;returns;}程序總結(jié):(1)函數(shù)定義分為兩部分,函數(shù)首部和函數(shù)體。結(jié)合本題,函數(shù)首部是intmymod(intajntb),函數(shù)體是花括號內(nèi)的所有語句。(2)intmymod(inta,intb)中的int是函數(shù)的返回值類型,return后的表達(dá)式是函數(shù)的返回值,所以int類型的書寫,是根據(jù)return后表達(dá)式的類型而定的,必須要保證兩處的一致性。要是函數(shù)體中沒有return語句,或是只有return這個(gè)單詞,其后沒有表達(dá)式,則認(rèn)定為該函數(shù)沒有返回值。那么函數(shù)首部中int就要改寫成void。要是函數(shù)首部省略函數(shù)的返回值類型,寫成mymod(inta,intb)的形式,并不表示該函數(shù)沒有返回值,而是系統(tǒng)默認(rèn)該函數(shù)的返回值為int類型。intmymod(inta,intb)中的mymod是函數(shù)名,只要符合標(biāo)識符的命名規(guī)則即可,盡量做到見名知義。intmymod(inta,intb)中的a,b是該函數(shù)的兩個(gè)形參。形參的個(gè)數(shù)取決于題目的實(shí)際需要,形參前的類型名一定不能少。returns;語句的功能是把該被調(diào)用函數(shù)得到的結(jié)果返回調(diào)用函數(shù)。用return語句只能帶回一個(gè)數(shù)據(jù)。要想返回多個(gè)數(shù)據(jù),必須用到后面的知識點(diǎn):傳址。%(取余運(yùn)算符)是雙目運(yùn)算符,其左右的兩個(gè)運(yùn)算符必須都是整型數(shù)。16編寫函數(shù),根據(jù)整型形參n的值,計(jì)算如下公式的值:1-1/2+1/3-1/4+1/5-1/6+1/7 floatres(intn){inti=1;floate=0,m,j;for(j=1.0;j<=n;j++){m=1/j;e+=i*m;i=-i;returne;}程序總結(jié):(1)要注意m=1/j;中的1j若是把j的類型定義成int類型的,只要1和j(j大于1)進(jìn)行整除運(yùn)算,統(tǒng)統(tǒng)為0。只要把j的類型定義成float類型,這種情況即可避免。舉例: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)。17編寫函數(shù),根據(jù)整型形參m的值,計(jì)算如下公式的值:t=1-1/2*2-1/3*3 floatfun(intm){floati,t=1,n;for(n=2;n<=m;n++){i=-1/(n*n);t+=i;}returnt;}7-18編寫函數(shù)用以求表達(dá)式x*x-5x+4的值,x作為參數(shù)傳送給函數(shù),調(diào)用此函數(shù)求:y1=2*2-5*2+4y2=(x+15)*(x+15)+4y3=sinx*sinx-5*sinx+4y1的值為-2?0;x為0.5時(shí),y2的值為166.75,y3的值為1.832721doublefun(doublex){doubley;y=x*x-5*x+4;returny;}第8章17請編寫函數(shù),其功能是對傳送過來的兩個(gè)浮點(diǎn)數(shù)求出和值與差值,并通過形參傳送回調(diào)用函數(shù)。Voidfun(floata,floatb,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)閞eturn語句僅能返回一個(gè)數(shù)據(jù)。像這樣涉及到多個(gè)數(shù)據(jù)的傳遞的必須要用到傳址運(yùn)算。18請編寫函數(shù),對傳送過來的三個(gè)數(shù)選出最大數(shù)和最小數(shù),并通過形參傳回調(diào)用函數(shù)。voidfun(float*a,float*b,float*c){floatt;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)程遙控,把三個(gè)數(shù)按從大到小的順序排好,然后在調(diào)用函數(shù)中輸出最大數(shù)a和最小數(shù)c。第9章27輸入一行數(shù)字字符,請用數(shù)組元素作為計(jì)數(shù)器來統(tǒng)計(jì)每個(gè)數(shù)字字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國禮儀課件教學(xué)課件
- 開學(xué)課件模板教學(xué)課件
- 灌腸護(hù)理課件教學(xué)課件
- 2024年農(nóng)用搬運(yùn)機(jī)械項(xiàng)目資金籌措計(jì)劃書代可行性研究報(bào)告
- 精神病醫(yī)院藥劑科相關(guān)
- 3.2.3酸堿中和滴定 課件高二上學(xué)期化學(xué)人教版(2019)選擇性必修1
- DB1304T 480-2024商品煤采樣技術(shù)規(guī)范
- 社團(tuán)的活動(dòng)部部門介紹
- 靜脈輸液治療在臨床中的應(yīng)用
- 白血病飲食宣教
- 教育部產(chǎn)學(xué)合作協(xié)同育人項(xiàng)目師資培訓(xùn)項(xiàng)目申報(bào)書模板(校企合作背景下軟件開發(fā)類課程師資隊(duì)伍建設(shè))
- 部編版六年級上冊第五單元寫作《寫感受最深的人或事》課件
- 美容院顧客管理檔案表
- 錦鯉的繁殖與選優(yōu)技術(shù)
- 四年級數(shù)學(xué)家長會課件
- 《生物力學(xué)》配套教學(xué)課件
- 華北理工《社會醫(yī)學(xué)》講義11健康危險(xiǎn)因素評價(jià)
- 透析飲食課件
- 妊娠期高血壓護(hù)理查房醫(yī)學(xué)課件
- 新部編人教版四年級上冊語文課件(第16課 風(fēng)箏)
- 臨床診斷與思維步驟課件
評論
0/150
提交評論