《C++ Primer Plus(第五版)编程习题解答.doc》由会员分享,可在线阅读,更多相关《C++ Primer Plus(第五版)编程习题解答.doc(73页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Solutions for Programming Exercises in C+ Primer Plus, 5th EditionChapter 2/ pe2-2.cpp#include int main(void) using namespace std; cout furlongs; double feet; feet = 220 * furlongs; cout furlongs furlongs = feet feetn; return 0;/ pe2-3.cpp#include using namespace std;void mice();void run();int main(
2、) mice(); mice(); run(); run(); return 0;void mice() cout Three blind micen;void run() cout See how they runn;/ pe2-4.cpp#include double C_to_F(double);int main() using namespace std; cout C; double F; F = C_to_F(C); cout C degrees Celsius = F degrees Fahrenheitn; return 0;double C_to_F(double temp)
3、 return 1.8 * temp + 32.0;Chapter 3/ pe3-1.cpp#include const int Inch_Per_Foot = 12;int main(void) using namespace std;/ Note: some environments dont support the backspace character cout ht_inch; int ht_feet = ht_inch / Inch_Per_Foot; int rm_inch = ht_inch % Inch_Per_Foot; cout Your height is ht_fee
4、t feet, ; cout rm_inch inch(es).n; return 0;/ pe3-3.cpp#include const double MINS_PER_DEG = 60.0;const double SECS_PER_MIN = 60.0;int main() using namespace std; int degrees; int minutes; int seconds; double latitude; cout Enter a latitude in degrees, minutes, and seconds:n; cout degrees; cout minut
5、es; cout seconds; latitude = degrees + (minutes + seconds / SECS_PER_MIN)/MINS_PER_DEG; cout degrees degrees, minutes minutes, seconds seconds = latitude degreesn; return 0; / pe3-5.cpp#include int main(void) using namespace std; cout miles; cout gallons; cout Your car got miles / gallons; cout mile
6、s per gallon.n; return 0;/ pe3-6.cpp#include const double KM100_TO_MILES = 62.14;const double LITERS_PER_GALLON = 3.875;int main ( void ) using namespace std; double euro_rating; double us_rating; cout euro_rating; / divide by LITER_PER_GALLON to get gallons per 100-km / divide by KM100_TO_MILES to
7、get gallons per mile / invert result to get miles per gallon us_rating = (LITERS_PER_GALLON * KM100_TO_MILES) / euro_rating; cout euro_rating liters per 100 km is ; cout us_rating miles per gallon.n; return 0;Chapter 4/ pe4-2.cpp - storing strings in string objects#include #include int main() using
8、namespace std; string name; string dessert; cout Enter your name:n; getline(cin, name); / reads through newline cout Enter your favorite dessert:n; getline(cin, dessert); cout I have some delicious dessert; cout for you, name .n; return 0; / pe4-3.cpp - storing strings in char arrays#include #includ
9、e const int SIZE = 20;int main() using namespace std; char firstNameSIZE; char lastNameSIZE; char fullName2*SIZE + 1; cout firstName; cout lastName; strncpy(fullName,lastName,SIZE); strcat(fullName, , ); strncat(fullName, firstName, SIZE); fullNameSIZE - 1 = 0; cout Heres the information in a single
10、 string: fullName endl; return 0; / pe4-5.cpp/ a candybar structurestruct CandyBar char brand40; double weight; int calories; #include int main() using namespace std; /introduces namespace std CandyBar snack = Mocha Munch, 2.3, 350 ; cout Brand name: snack.brand endl; cout Weight: snack.weight endl;
11、 cout Calories: snack.calories endl; return 0;/ pe4-7.ccp#include const int Slen = 70;struct pizza char nameSlen; float diameter; float weight;int main(void) using namespace std; pizza pie; cout What is the name of the pizza company? ; cin.getline(pie.name, Slen); cout pie.diameter; cout pie.weight;
12、 cout Company: pie.name n; cout Diameter: pie.diameter inchesn; cout Weight: pie.weight ouncesn; return 0;Chapter 5/ pe5-2.cpp#include int main(void) using namespace std; double sum = 0.0; double in; cout in; while (in != 0) sum += in; cout Running total = sum n; cout in; cout Bye!n; return 0;/ pe5-
13、4.cpp/ book sales#include const int MONTHS = 12;const char * monthsMONTHS = January, February, March, April, May, June, July, August, September, October, November, December;int main() using namespace std; /introduces namespace std int salesMONTHS; int month; cout Enter the monthly sales for C+ for F
14、ools:n; for (month = 0; month MONTHS; month+) cout Sales for monthsmonth salesmonth; double total = 0.0; for (month = 0; month MONTHS; month+) total += salesmonth; cout Total sales: total endl; return 0;/ pe5-6.cpp#include struct car char name20; int year;int main(void) using namespace std; int n; c
15、out n; while(cin.get() != n) / get rid of rest of line ; car * pc = new car n; int i; for (i = 0; i n; i+) cout Car # (i + 1) :n; cout Please enter the make: ; cin.getline(pci.name,20); cout pci.year; while(cin.get() != n) / get rid of rest of line ; cout Here is your collection:n; for (i = 0; i n;
16、i+) cout pci.year pci.name n; delete pc; return 0;/ pe5-7.cpp - count words using C-style string #include #include / prototype for strcmp()const int STR_LIM = 50;int main() using namespace std; char wordSTR_LIM; int count = 0; cout word & strcmp(done, word) +count; cout You entered a total of count
17、words.n; return 0; / pe5-9.cpp/nested loops #include int main() using namespace std; /introduces namespace std int rows; int row; int col; int periods; cout rows; for (row = 1; row = rows; row+) periods = rows - row; for (col = 1; col = periods; col+) cout .; / col already has correct value for next
18、 loop for ( ; col = rows; col+) cout *; cout endl; return 0;Chapter 6/ pe6-1.cpp#include #include int main( ) using namespace std; /introduces namespace std char ch; cin.get(ch); while(ch != ) if (!isdigit(ch) if (isupper(ch) ch = tolower(ch); else if (islower(ch) ch = toupper(ch); cout ch; cin.get(
19、ch); return 0;/ pe6-3.cpp#include int main(void) using namespace std; cout Please enter one of the following choices:n; cout c) carnivore p) pianistn ch; while (ch != c & ch != p & ch != t & ch != g) cout ch; switch (ch) case c : cout A cat is a carnivore.n; break; case p : cout Radu Lupu is a piani
20、st.n; break; case t : cout A maple is a tree.n; break; case g : cout Golf is a game.n; break; default : cout The program shouldnt get here!n; return 0;/ pe6-5.cpp/ Neutronia taxation#include const double LEV1 = 5000;const double LEV2 = 15000;const double LEV3 = 35000;const double RATE1 = 0.10;const
21、double RATE2 = 0.15;const double RATE3 = 0.20;int main( ) using namespace std; double income; double tax; cout income; if (income = LEV1) tax = 0; else if (income = LEV2) tax = (income - LEV1) * RATE1; else if (income = LEV3) tax = RATE1 * (LEV2 - LEV1) + RATE2 * (income - LEV2); else tax = RATE1 *
22、(LEV2 - LEV1) + RATE2 * (LEV3 - LEV2) + RATE3 * (income - LEV3); cout You owe Neutronia tax tvarps in taxes.n; return 0;/ pe6-7.cpp#include #include int main() using namespace std; string word; char ch; int vowel = 0; int consonant = 0; int other = 0; cout word; while ( word != q) ch = tolower(word0
23、); if (isalpha(ch) if (ch = a | ch = e | ch = i | ch = o | ch = u) vowel+; else consonant+; else other+; cin word; cout vowel words beginning with vowelsn; cout consonant words beginning with consonantsn; cout other othersn; return 0; / pe6-8.cpp - counting characters#include #include / file I/O sup
24、pport#include / support for exit()const int SIZE = 60;int main() using namespace std; char filenameSIZE; char ch; ifstream inFile; / object for handling file input cout Enter name of data file: ; cin.getline(filename, SIZE); inFile.open(filename); / associate inFile with a file if (!inFile.is_open()
25、 / failed to open file cout Could not open the file filename endl; cout ch; / get first value while (inFile.good() / while input good and not at EOF count+; / one more item read inFile ch; / get next value cout count characters in filename endl; inFile.close(); / finished with the file return 0;Chap
26、ter 7/pe7-1.cpp - harmonic mean#include double h_mean(double x, double y);int main(void) using namespace std; double x,y; cout x y & x * y != 0) cout harmonic mean of x and y = h_mean(x,y) x & x != 0) cin y; if (y = 0) break; .*/ cout Byen; return 0;double h_mean(double x, double y) return 2.0 * x *
27、 y / (x + y);/ pe7-3.cpp#include struct box char maker40; float height; float width; float length; float volume;void showbox(box b);void setbox(box * pb);int main(void) box carton = Bingo Boxer, 2, 3, 5; / no volume provided setbox(&carton); showbox(carton); return 0;void showbox(box b) using namesp
28、ace std; cout Box maker: b.maker nheight: b.height nlwidth: b.width nlength: b.length nvolume: b.volume volume = pb-height * pb-width * pb-length;/ pe7-4.cpp - probability of winning#include long double probability(unsigned numbers, unsigned picks);int main() using namespace std; double total, choic
29、es; double mtotal; double probability1, probability2; cout total choices) & choices = total) cout mtotal) break; cout The chances of getting all choices picks is one in (probability1 = probability(total, choices) ) .n; cout The chances of getting the megaspot is one in (probability2 = probability(mtotal, 1) ) .n; cout You have one chance in ; cout probability1 *