C+大學(xué)教程習(xí)題解答(第七版_第1頁
C+大學(xué)教程習(xí)題解答(第七版_第2頁
C+大學(xué)教程習(xí)題解答(第七版_第3頁
C+大學(xué)教程習(xí)題解答(第七版_第4頁
C+大學(xué)教程習(xí)題解答(第七版_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六章 函數(shù)和遞歸入門6.12#include #include #include using namespacestd;double calculateCharges( double hours );int main( ) double hours1, hours2, hours3;cout hours1 hours2 hours3;cout fixed setprecision( 2 );cout Car setw( 20 ) Hours setw( 20 ) Charge endl;cout 1 setw( 20 ) hours1 setw( 20 ) calculateCharges(

2、 hours1 )endl; cout 2 setw( 20 ) hours2 setw( 20 ) calculateCharges( hours2 )endl; cout 3 setw( 20 ) hours3 setw( 20 ) calculateCharges( hours3 )endl; cout TOTAL setw( 16 ) hours1 + hours2 + hours3 setw( 20 ) calculateCharges( hours1 ) + calculateCharges( hours2 ) + calculateCharges( hours3 ) 0 ) &

3、( hours 3 )& ( hours = 19 ) ) return 2.00+ceil( hours - 3 )*0.5;elsereturn 10;6.14#include #include #include using namespacestd;double roundToInteger( double );double roundToTenths( double ); double roundToHundredths( double );double roundToThousandths( double );int main( ) double x;cout x;cout roun

4、dToInteger : roundToInteger( x ) endl;cout roundToTenths : roundToTenths( x ) endl;cout roundToHundredths : roundToHundredths( x ) endl; cout roundToThousandths : roundToThousandths( x ) endl;double roundToInteger( double number )return floor( number + .5 ) ;double roundToTenths( double number )retu

5、rn floor( number*10 + .5 ) / 10;double roundToHundredths( double number )return floor( number*100 + .5 ) / 100;double roundToThousandths( double number )return floor( number*1000 + .5 ) / 1000;6.16#include #include #include #include using namespacestd;inf main()宀srand( fime( 0 )= inf X-XHl + rand()

6、& 1-coufAA=x H = AA X AAendrXHl + rand() & loq OOCXA-XH - AA X AAendrXH 0 + rand() & 4 OOCXA-XH - AA X AAendrXH 1000 + rand() & 112 OOCXA-XH - AA X AAendrXH 11 + rand() s 2_OOCXA-XH - AA X AAendrx= .w + rand() & 15- OOCXA-XH - AA X AAendr67#一nc-udeAiosfreamvnc-udeAiomanipv nc-udeACHmevnc-udeAcsfd-ib

7、vusing namespacesfainf maino宀inf arrayl 宀 2- 4- 6- 8-1$inf array2=3- 5- 7-9-Ill-inf array3=宀 6- -0-14-18- 22 ysrand( fime( 0 )=ror(inf iHO二 a3二+)宀OOC7A -M i2 aatxa -旁7?爲(wèi)7言.齢貓= AcendrOOC7A-S n。曾-齊y蠱Y 召Dpg P爲(wèi)?M .釁or-AAarrayIrando & gcAendr OOC7A-S i.2xf曲嬉蠱Y 召 D妄 ss 嬪 g=AAarray2and() & 5AAendrOOC7A-S P

8、 爲(wèi)?M 釁 qT Acarraygrando & gxendr coufAAend-AAendrreturn(0);6.18#include using namespacestd;int integerPower( int, int );int main()int x,y;cout x;cout y;cout integerPower( x , y ) = integerPower( x ,y );int integerPower( int base, int exponent )int value1 = 1;for( int counter = 1;counter = exponent ;

9、 counter+ ) value1 *= base;return value1;6.19#include #include #include using namespacestd;double hypotenuse( double, double );int main()double x,y;cout x;cout y;cout hypotenuse = fixed setprecision(2)hypotenuse( x ,y ); double hypotenuse( double side1, double side2 )return sqrt( pow( side1 ,2 ) + p

10、ow( side2 ,2 ) );6.20#include #include using namespacestd;bool multiple( double, double );int main( ) int x,y;cout x y;/coutboolalphamultiple( x, y )endl; if( multiple( x,y )=1 )cout truen ;elsecout falsen ;boolgoto loop;multiple( double number1, double number2 )if( ceil( number2 / number1 ) = floor

11、( number2 / number1 ) return true;elsereturn false;6.21#include #include using namespacestd;bool iseven( int );int main( ) int x;cout x ;/coutboolalphaiseven( x )endl; if( multiple( x,y )=1 )/cout truen ; else/cout falsen ;booliseven( int number)if( number % 2 =0 )return true;elsereturn false;6.22#i

12、nclude using namespacestd; void printSar( int );int main( )int x;cout x ;printSar( x );return 0;void printSar( int number)for( int counter1 = 1;counter1 = number; counter1 + ) for( int counter = 1; counter = number ;counter+ ) cout* ;coutendl;6.23#includeusing namespacestd; void printSar( int,char )

13、; char fillCharacter( char );int main( )int x;char c;cout x ;cin c;printSar( x,c ); return 0;void printSar( int number,char character )for( int counter1 = 1;counter1 = number; counter1 + ) for( int counter = 1; counter = number ;counter+ ) coutfillCharacter( character );coutendl;char fillCharacter(

14、char Character )return Character;6.24 #includeusing namespacestd; int Divide( int,int );int Remainder( int, int ); int NumberOrder( int );int main( ) int x,y; short z;cout x ;cin y;cin z;cout The result of divide : Divide( x,y ) endl;cout n The Remainder of divide : Remainder( x,y )endl; cout the nu

15、mber of z s order is :;NumberOrder( z );intintDivide( int number1,int number2 ) return number1 / number2 ;Remainder( int number1,int number2 )return number1 % number2 ;int NumberOrder( int number3 )for ( int counter = 1,mode=1;counter = 1,mode1 = mode1 /10;counter1-cout Divide( number3 ,mode1 ); num

16、ber3 = Remainder( number3 ,mode1 ); coutendl;return 0;6.25#include #include using namespacestd;double TimeFunction(int,int,int);int main()int H_1, M_1,S_1;int H_2, M_2,S_2; char Colon1,Colon2;cout H_1 Colon1 M_1 Colon2 S_1;cout The seconds from the last clock struck 12 oclock is: TimeFunction( H_1,

17、M_1,S_1 ) endl;cout H_2 Colon1 M_2 Colon2 S_2;cout The seconds from the last clock struck 12 oclock is: TimeFunction( H_2, M_2,S_2 ) endl;cout The number of seconds between two times are : fabs( TimeFunction( H_1, M_1,S_1 ) -TimeFunction( H_2, M_2,S_2 ) )endl; dcuble TimeFuncticn(int Hcurs,int Minut

18、es,int Seccnds)return Hcurs *3600 + Minutes * 60 + Seccnds ;6.26 #include #include using namespacestd;double Fahrenheit( int ); double Celsius( int );int main()int DegreeFahrenheit;/華a氏c?溫?度 int DegreeCelsius;攝 |?氏 O?溫?度cout fixed setprecision( 2 );cout DegreeFahrenheit ;cout Degree Celsius is : Cel

19、sius( DegreeFahrenheit )endl;cout DegreeCelsius ;cout Degree Fahrenheit is : Fahrenheit( DegreeCelsius )endl;cout the table of DegreeCelsiusDegreeFahrenheit endl;for( int counter = 0 ,i = 1; counter = 100; counter+ ) cout Fahrenheit( counter )t; if( i% 10 =0 )cout endl;i+;cout n the table of DegreeF

20、ahrenheitDegreeCelsius endl;for( int counter = 32 ,i = 1; counter = 212; counter+ ) cout Celsius( counter )t; if( i% 10 =0 )cout endl;i+;double Fahrenheit( int temperature ) return temperature * 1.8 + 32;double Celsius( int temperature )return ( temperature - 32 ) / 1.8;6.27#include #include using n

21、amespacestd; double min( double, double, double);int main() double x,y,z;cout x y z;cout the minimum number is min( x,y,z)endl;double min( double x, double y, double z ) double T;T=x y? x : y ; return T z ?T:z;6.28#include #include using namespacestd;int isperfect( int );int main() cout perfect numb

22、ers : endl;for( int counter = 1; counter = 1000; counter+ ) if( isperfect( counter ) = counter ) cout isperfect( counter )setw( 10 );int isperfect( int number ) int sum = 0; int counter1;for( counter1 = 1; counter1 number ; counter1+ ) if ( number % counter1 = 0 )sum += counter1;return sum6.29 #incl

23、ude #include #include using namespacestd;bool isprime( int );int main()cout the numbers between 2 and 10 000 is: endl; for( int counter1 = 2 , i=0;counter1 = 10000 ;counter1+ )if( isprime( counter1 )=true )cout setw(5)counter1setw(5); i+;if ( i%10 =0 ) coutendl;bool isprime( int number )if ( number

24、= 1 )return false;if ( number = 2 ) return true;for ( int counter = 2 ; counter number ; counter+ ) if ( number % counter = 0 )return false;return true;6.30 #include #include #include using namespacestd; void ReseredOrder(int );int main()int num;cout Input the number: num;voidReseredOrder( num );Res

25、eredOrder(int number )docout number%10;number = number / 10; while ( number !=0 );6.31 #include #include #include using namespacestd; int gcd( int,int );int main() int x,y;cout Input two numbers: x y;gcd( x,y );cout GCD is gcd( x,y ) number1 )/number1 = number2; number2 = Mod;/do/Mod = number1 % num

26、ber2;/number1 = number2;/number2 = Mod; while( Mod != 0 ); return number1;/int gcd(int number1, int number2) if (number2 = 0) return number1;else return gcd(number2, number1%number2); 6.32 #include #include #include using namespacestd; int qualityPoints( double );int main()double x;cout input the st

27、udents grade : x ;cout the point is qualityPoints( x ) =90 )&( number =80 )&( number =70 )&( number =60 )&( number 70 ) return 1;elsereturn 0;6.33 #include #include #include using namespacestd; void flip();int number1=0, number2=0; int main()cout Analog coin 100 times: endl; srand ( time(0) );for( i

28、nt counter = 1;counter = 100; counter+ ) flip();if( counter % 10 =0 ) coutendl;cout n the face number is: number1 endl; cout the back number is: number2 endl;void flip( ) int face = 0 +rand( ) % 2; if( face =0 )coutsetw(2)0;number1+;if( face =1 )coutsetw(2)1;number2+;6.3.4猜字游戲#include #include#inclu

29、de using namespacestd;int main()int number;int guess;char answer;cout I have a number between 1 and 1000. endl Can you guess my number?endl Please type your first guess. number;loop: while ( number 1000 )cout number;while ( (number = 0 )&( number =1000 ) )if( number = guess )cout Excellent ! You gue

30、ssed the number! endl answer;if( answer=N |answer =n ) break;if( answer=y |answer =Y ) coutnumber;guess = 1+rand( ) %1000;goto loop;if( number guess)cout number;if( number guess)cout number;6.35 #include #include#include using namespacestd;int main()int number;int guess; char answer;int i=0;cout I h

31、ave a number between 1 and 1000. endl Can you guess my number?endl Please type your first guess. number;loop: while ( number 1000 ) i=0;cout number;while ( (number = 0 )&( number =1000 ) ) if( number = guess )if( i 10 )cout Either you know the secret or you got luckyn ; if( i= 10 )cout 10 )cout you

32、should be abke to do better!n;cout Excellent ! You guessed the number! endl answer;if( answer=N |answer =n ) break;if( answer=y |answer =Y ) coutnumber;guess = 1+rand( ) %1000; goto loop;if( number guess) cout number;if( number guess)cout number;6.36 #include using namespacestd;int power( int, int )

33、;int main()int x;int y;cout x y;cout power( x , y )= power( x,y);int power( int base,int exponent ) if (exponent = 0 ) return 1;elseif( exponent = 1 ) return base;elsereturn base * power( base, exponent-1 );6.37(A)#include #include using namespacestd;int Fibonacci( int );int main()int x;cout x ;cout

34、 Fibonacci( x )= Fibonacci( x );int Fibonacci( int number )int numA=0, numB=0, Result=1;if ( number = 0 ) return 0;elseif ( number = 1 ) return Result;elsefor( int counter=1; counter = number-1; counter+ ) numA = numB;numB = Result;Result = numA + numB;return Result;(B)6.38 #include usingnamespacest

35、d;void move(char x,char y)cout vv Move vxvv-vvyvvendl;void hanoi(int n,char one,char two,char three)if (n =1) move(one,three);elsehanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three); int main()int m;coutvv請(qǐng)?輸(?入磕?子 a 7 數(shù)cy:;cinm;coutvv移 ?動(dòng)咖?子 a ?的?步?驟-為a:vvendl;hanci(m,A,B,C);return 0;

36、6.43 #include #include usingnamespacestd;double distance( double,double,double,double );int main() double x1,y1,x2,y2;coutvv Please input the coordinate of forst point : ;cin x1 y1;coutvv Please input the coordinate of second point : ;cin x2 y2;cout The distance between two point is : : ; cout dista

37、nce( x1,y1,x2,y2 ) ;double distance( double x1value ,double y1value ,double x2value,double y2value )return sqrt( pow( x1value - x2value ,2) + pow( y1value - y2value ,2 ) );6.49 #include #include #include using namespacestd;int rollDice();int Pointmake();int main()enum Status CONTINUE, WON, LOST ; in

38、t myPoint;Status gameStatus;int bankBalance = 1000;int wager;cout wager;while ( wager = bankBalance ) srand( time( 0 );int sumOfDice = rollDice();switch( sumOfDice ) case7:case11:gameStatus = WON; break;case2:case3:case12:gameStatus = LOST; break;default:gameStatus = CONTINUE; myPoint = sumOfDice; c

39、outPoint is myPointendl; break;while( gameStatus = CONTINUE ) sumOfDice = rollDice();if( sumOfDice = myPoint ) gameStatus = WON;elseif( sumOfDice =7 ) gameStatus = LOST;if( gameStatus = WON )coutPlayer wins endl; bankBalance = bankBalance + wager; cout The bankBalance is : bankBalanceendl; cout Your

40、e up big ,Nows the time to cash in your chips 1 endl; elsecoutPlayer losesendl;bankBalance = bankBalance - wager;cout The bankBalance is : bankBalanceendl; cout Oh youre going for broke,huh? endl;if ( bankBalance =0 ) break;if ( bankBalance =0 )cout Sorry , You busted! ; int rollDice() int die1 = 1

41、+ rand()%6;int die2 = 1 + rand()%6;int sum = die1 +die2;coutPlayer rolled die1 + die2 = sumendl; return sum;6.50 #include #include using namespacestd;const double PI = 3.1415926;inline double circleArea( double radius) return pow(radius, 2) * PI ; int main()double R;cout R;cout the Area is : circleA

42、rea( R )endl;6.51 #include using namespacestd;int tripleByValue( int ); void tripleByReference( int & );int main() int count ;cout count;cout use tripleByValue tripleByValue( count ) endl countendl; cout use tripleByReference endl;tripleByReference( count );cout countendl;int tripleByValue( int number) return number *3;void tripleByReference( int &numberRef ) numberRef= numberRef *3;6.53 #include #includeminimum.h using namespacestd;int main( ) int int1,int

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論