C-primer-plus(第五版)课后编程练习答案
cprimerplus课后编程练习答案

第一章概览编程练习1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。
该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸= cm)的程序。
他们希望建立的该程序可提示用户输入英寸值。
您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。
1.将英寸值转化为厘米值2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束第二章 C语言概述编程练习1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。
输出应如下所示(当然里面要换成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<>int main(void){printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");return(0);}2.编写一个程序输出您的姓名及地址。
#include<>int main(void){printf("Name:He Jin\n");printf("Address:CAUC\n");return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。
不用考虑平年( fractional year)和闰年(leapyear)的问题。
#include<>int main(void){int age=22;printf("Age:%d\n",age);printf("Day:%d\n",age*356);return(0);}4.编写一个能够产生下面输出的程序:For he's a jolly good fellow!For he's a jolly good fellow!For he's a jolly good fellow!Which nobody can deny!程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。
C Primer Plus(第5版)习题答案

Chapter 5
PE 5-1
/* Programming Exercise 5-1 */ #include <stdio.h> int main(void) { const int minperhour = 60; int minutes, hours, mins; printf("Enter the number of minutes to convert: "); scanf("%d", &minutes); while (minutes > 0 ) { hours = minutes / minperhour; mins = minutes % minperhour; printf("%d minutes = %d hours, %d minutes\n", minutes, hours, mins); printf("Enter next minutes value (0 to quit): "); scanf("%d", &minutes); } printf("Bye\n"); return 0; }
August 21, 1999
Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prata
return 0; } void jolly(void) { printf("For he's a jolly good fellow!\n"); } void deny(void) { printf("Which nobody can deny!\n"); }
C++Primer_Plus_第五版习题参考答案

Solutions for Programming Exercises in C++ Primer Plus, 5th Edition Chapter 2// pe2-2.cpp#include <iostream>int main(void){using namespace std;cout << "Enter a distance in furlongs: ";double furlongs;cin >> furlongs;double feet;feet = 220 * furlongs;cout << furlongs << " furlongs = "<< feet << " feet\n";return 0;}// pe2-3.cpp#include <iostream>using namespace std;void mice();void run();int main(){mice();mice();run();run();return 0;}void mice(){cout << "Three blind mice\n";}void run(){cout << "See how they run\n";}// pe2-4.cpp#include <iostream>double C_to_F(double);int main(){using namespace std;cout << "Enter a temperature in Celsius: ";double C;cin >> C;double F;F = C_to_F(C);cout << C << " degrees Celsius = "<< F << " degrees Fahrenheit\n";return 0;}double C_to_F(double temp){return 1.8 * temp + 32.0;}Chapter 3// pe3-1.cpp#include <iostream>const int Inch_Per_Foot = 12;int main(void){using namespace std;// Note: some environments don't support the backspace charactercout << "Please enter your height in inches: ___/b/b/b ";int ht_inch;cin >> ht_inch;int ht_feet = ht_inch / Inch_Per_Foot;int rm_inch = ht_inch % Inch_Per_Foot;cout << "Your height is " << ht_feet << " feet, ";cout << rm_inch << " inch(es).\n";return 0;}// pe3-3.cpp#include <iostream>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 << "First, enter the degrees: ";cin >> degrees;cout << "Next, enter the minutes of arc: ";cin >> minutes;cout << "Finally, enter the seconds of arc: ";cin >> seconds;latitude = degrees + (minutes + seconds / SECS_PER_MIN)/MINS_PER_DEG;cout << degrees << " degrees, " << minutes << " minutes, "<< seconds << " seconds = " << latitude << " degrees\n";return 0;}// pe3-5.cpp#include <iostream>int main(void){using namespace std;cout << "How many miles have you driven your car? ";float miles;cin >> miles;cout << "How many gallons of gasoline did the car use? ";float gallons;cin >> gallons;cout << "Your car got " << miles / gallons;cout << " miles per gallon.\n";return 0;}// pe3-6.cpp#include <iostream>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 << "Enter fuel consumption in liters per 100 km: ";cin >> euro_rating;// divide by LITER_PER_GALLON to get gallons per 100-km// divide by KM100_TO_MILES to get gallons per mile// invert result to get miles per gallonus_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 <iostream>#include <string>int main(){using namespace std;string name;string dessert;cout << "Enter your name:\n";getline(cin, name); // reads through newlinecout << "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 <iostream>#include <cstring>const int SIZE = 20;int main(){using namespace std;char firstName[SIZE];char lastName[SIZE];char fullName[2*SIZE + 1];cout << "Enter your first name: ";cin >> firstName;cout << "Enter your last name: ";cin >> lastName;strncpy(fullName,lastName,SIZE);strcat(fullName, ", ");strncat(fullName, firstName, SIZE);fullName[SIZE - 1] = '\0';cout << "Here's the information in a single string: "<< fullName << endl;return 0;}// pe4-5.cpp// a candybar structurestruct CandyBar {char brand[40];double weight;int calories;};#include <iostream>int main(){using namespace std; //introduces namespace stdCandyBar snack = { "Mocha Munch", 2.3, 350 };cout << "Brand name: " << snack.brand << endl;cout << "Weight: " << snack.weight << endl;cout << "Calories: " << snack.calories << endl;return 0;}// p#include <iostream>const int Slen = 70;struct pizza {char name[Slen];float diameter;float weight;};int main(void){using namespace std;pizza pie;cout << "What is the name of the pizza company? ";cin.getline(, Slen);cout << "What is the diameter of the pizza in inches? ";cin >> pie.diameter;cout << "How much does the pizza weigh in ounces? ";cin >> pie.weight;cout << "Company: " << << "\n";cout << "Diameter: " << pie.diameter << " inches\n";cout << "Weight: " << pie.weight << " ounces\n";return 0;}Chapter 5// pe5-2.cpp#include <iostream>int main(void){using namespace std;double sum = 0.0;double in;cout << "Enter a number (0 to terminate) : ";cin >> in;while (in != 0) {sum += in;cout << "Running total = " << sum << "\n";cout << "Enter next number (0 to terminate) : ";cin >> in;}cout << "Bye!\n";return 0;}// pe5-4.cpp// book sales#include <iostream>const int MONTHS = 12;const char * months[MONTHS] = {"January", "February", "March", "April","May", "June", "July", "August", "September","October", "November", "December"};int main(){using namespace std; //introduces namespace stdint sales[MONTHS];int month;cout << "Enter the monthly sales for \"C++ for Fools\":\n";for (month = 0; month < MONTHS; month++){cout << "Sales for " << months[month] << ": ";cin >> sales[month];}double total = 0.0;for (month = 0; month < MONTHS; month++)total += sales[month];cout << "Total sales: " << total << endl;return 0;}// pe5-6.cpp#include <iostream>struct car { char name[20]; int year;};int main(void){using namespace std;int n;cout << "How many cars do you wish to catalog?: ";cin >> 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(pc[i].name,20);cout << "Please enter the year made: ";cin >> pc[i].year;while(cin.get() != '\n') // get rid of rest of line;}cout << "Here is your collection:\n";for (i = 0; i < n; i++)cout << pc[i].year << " " << pc[i].name << "\n";delete [] pc;return 0;}// pe5-7.cpp -- count words using C-style string#include <iostream>#include <cstring> // prototype for strcmp()const int STR_LIM = 50;int main(){using namespace std;char word[STR_LIM];int count = 0;cout << "Enter words (to stop, type the word done):\n";while (cin >> word && strcmp("done", word))++count;cout << "You entered a total of " << count << " words.\n";return 0;}// pe5-9.cpp//nested loops#include <iostream>int main(){using namespace std; //introduces namespace stdint rows;int row;int col;int periods;cout << "Enter number of rows: ";cin >> rows;for (row = 1; row <= rows; row++){periods = rows - row;for (col = 1; col <= periods; col++)cout << '.';// col already has correct value for next loopfor ( ; col <= rows; col++)cout << '*';cout << endl;}return 0;}Chapter 6// pe6-1.cpp#include <iostream>#include <cctype>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(ch);}return 0;}// pe6-3.cpp#include <iostream>int main(void){using namespace std;cout << "Please enter one of the following choices:\n";cout << "c) carnivore p) pianist\n"<< "t) tree g) game\n";char ch;cin >> ch;while (ch != 'c' && ch != 'p' && ch != 't' && ch != 'g'){cout << "Please enter a c, p, t, or g: ";cin >> ch;}switch (ch){case 'c' : cout << "A cat is a carnivore.\n";break;case 'p' : cout << "Radu Lupu is a pianist.\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 shouldn't get here!\n";}return 0;}// pe6-5.cpp// Neutronia taxation#include <iostream>const double LEV1 = 5000;const double LEV2 = 15000;const double LEV3 = 35000;const double RATE1 = 0.10;const double RATE2 = 0.15;const double RATE3 = 0.20;int main( ){using namespace std;double income;double tax;cout << "Enter your annual income in tvarps: ";cin >> 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);elsetax = RATE1 * (LEV2 - LEV1) + RATE2 * (LEV3 - LEV2) + RATE3 * (income - LEV3);cout << "You owe Neutronia " << tax << " tvarps in taxes.\n";return 0;}// pe6-7.cpp#include <iostream>#include <string>int main(){using namespace std;string word;char ch;int vowel = 0;int consonant = 0;int other = 0;cout << "Enter words (q to quit):\n";cin >> word;while ( word != "q"){ch = tolower(word[0]);if (isalpha(ch)){if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o'|| ch == 'u')vowel++;elseconsonant++;}elseother++;cin >> word;}cout << vowel <<" words beginning with vowels\n";cout << consonant << " words beginning with consonants\n";cout << other << " others\n";return 0;}// pe6-8.cpp -- counting characters#include <iostream>#include <fstream> // file I/O suppport#include <cstdlib> // support for exit()const int SIZE = 60;int main(){using namespace std;char filename[SIZE];char ch;ifstream inFile; // object for handling file inputcout << "Enter name of data file: ";cin.getline(filename, SIZE);inFile.open(filename); // associate inFile with a fileif (!inFile.is_open()) // failed to open file{cout << "Could not open the file " << filename << endl;cout << "Program terminating.\n";exit(EXIT_FAILURE);}int count = 0; // number of items readinFile >> ch; // get first valuewhile (inFile.good()) // while input good and not at EOF {count++; // one more item readinFile >> ch; // get next value}cout << count << " characters in " << filename << endl;inFile.close(); // finished with the filereturn 0;}Chapter 7//pe7-1.cpp -- harmonic mean#include <iostream>double h_mean(double x, double y);int main(void){using namespace std;double x,y;cout << "Enter two numbers (a 0 terminates): ";while (cin >> x >> y && x * y != 0)cout << "harmonic mean of " << x << " and "<< y << " = " << h_mean(x,y) << "\n";/* or do the reading and testing in two parts:while (cin >> x && x != 0){cin >> y;if (y == 0)break;...*/cout << "Bye\n";return 0;}double h_mean(double x, double y){return 2.0 * x * y / (x + y);}// pe7-3.cpp#include <iostream>struct box {char maker[40];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 namespace std;cout << "Box maker: " << b.maker<< "\nheight: " << b.height<< "\nlwidth: " << b.width<< "\nlength: " << b.length<< "\nvolume: " << b.volume << "\n";}void setbox(box * pb){pb->volume = pb->height * pb->width * pb->length;}// pe7-4.cpp -- probability of winning#include <iostream>long double probability(unsigned numbers, unsigned picks);int main(){using namespace std;double total, choices;double mtotal;double probability1, probability2;cout << "Enter total number of game card choices and\n""number of picks allowed for the field:\n";while ((cin >> total >> choices) && choices <= total){cout << "Enter total number of game card choices ""for the mega number:\n";if (!(cin >> 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 * probability2; // compute the probabilitycout << " of winning.\n";cout << "Next set of numbers (q to quit): ";}cout << "bye\n";return 0;}// the following function calculates the probability of picking picks// numbers correctly from numbers choiceslong double probability(unsigned numbers, unsigned picks){long double result = 1.0; // here come some local variableslong double n;unsigned p;for (n = numbers, p = picks; p > 0; n--, p--)result = result * n / p ;return result;// pe7-6.cpp#include <iostream>int Fill_array(double ar[], int size);void Show_array(const double ar[], int size);void Reverse_array(double ar[], int size);const int LIMIT = 10;int main( ){using namespace std;double values[LIMIT];int entries = Fill_array(values, LIMIT);cout << "Array values:\n";Show_array(values, entries);cout << "Array reversed:\n";Reverse_array(values, entries);Show_array(values, entries);cout << "All but end values reversed:\n";Reverse_array(values + 1, entries - 2);Show_array(values, entries);return 0;}int Fill_array(double ar[], int size){using namespace std;int n;cout << "Enter up to " << size << " values (q to quit):\n";for (n = 0; n < size; n++){cin >> ar[n];if (!cin)break;}return n;}void Show_array(const double ar[], int size){using namespace std;int n;for (n = 0; n < size; n++){cout << ar[n];if (n % 8 == 7)cout << endl;elsecout << ' ';}if (n % 8 != 0)cout << endl;}void Reverse_array(double ar[], int size){int i, j;double temp;for (i = 0, j = size - 1; i < j; i++, j--){temp = ar[i];ar[i] = ar[j];ar[j] = temp;}}//pe7-9.cpp#include <iostream>double calculate(double x, double y, double (*pf)(double, double)); double add(double x, double y);double sub(double x, double y);double mean(double x, double y);int main(void){using namespace std;double (*pf[3])(double,double) = {add, sub, mean};char * op[3] = {"sum", "difference", "mean"};double a, b;cout << "Enter pairs of numbers (q to quit): ";int i;while (cin >> a >> b){// using function namescout << calculate(a, b, add) << " = sum\n";cout << calculate(a, b, mean) << " = mean\n";// using pointersfor (i = 0; i < 3; i++)cout << calculate(a, b, pf[i]) << " = "<< op[i] << "\n";}cout << "Done!\n";return 0;}double calculate(double x, double y, double (*pf)(double, double)) {return (*pf)(x, y);}double add(double x, double y){return x + y;}double sub(double x, double y){return x - y;}double mean(double x, double y){return (x + y) / 2.0;}Chapter 8// pe8-1.cpp#include <iostream>void silly(const char * s, int n = 0);int main(void){using namespace std;char * p1 = "Why me?\n";silly(p1);for (int i = 0; i < 3; i++){cout << i << " = i\n";silly(p1, i);}cout << "Done\n";return 0;}void silly(const char * s, int n){using namespace std;static int uses = 0;int lim = ++uses;if (n == 0)lim = 1;for (int i = 0; i < lim; i++)cout << s;}// pe8-4.cpp#include <iostream>#include <cstring> // for strlen(), strcpy()using namespace std;struct stringy {char * str; // points to a stringint ct; // length of string (not counting '\0')};void show(const char *str, int cnt = 1);void show(const stringy & bny, int cnt = 1);void set(stringy & bny, const char * str);int main(void){stringy beany;char testing[] = "Reality isn't what it used to be.";set(beany, testing); // first argument is a reference, // allocates space to hold copy of testing,// sets str member of beany to point to the// new block, copies testing to new block,// and sets ct member of beanyshow(beany); // prints member string once show(beany, 2); // prints member string twicetesting[0] = 'D';testing[1] = 'u';show(testing); // prints testing string onceshow(testing, 3); // prints testing string thriceshow("Done!");return 0;}void show(const char *str, int cnt){while(cnt-- > 0){cout << str << endl;}}void show(const stringy & bny, int cnt){while(cnt-- > 0){cout << bny.str << endl;}}void set(stringy & bny, const char * str){bny.ct = strlen(str);bny.str = new char[bny.ct+1];strcpy(bny.str, str);}// pe8-5.cpp#include <iostream>template <class T>T max5(T ar[]){int n;T max = ar[0];for (n = 1; n < 5; n++)if (ar[n] > max)max = ar[n];return max;}const int LIMIT = 5;int main( ){using namespace std;double ard[LIMIT] = { -3.4, 8.1, -76.4, 34.4, 2.4};int ari[LIMIT] = {2, 3, 8, 1, 9};double md;int mi;md = max5(ard);mi = max5(ari);cout << "md = " << md << endl;cout << "mi = " << mi << endl;return 0;}Chapter 9PE 9-1// pe9-golf.h - for pe9-1.cppconst int Len = 40;struct golf{char fullname[Len];int handicap;};// non-interactive version// function sets golf structure to provided name, handicap // using values passed as arguments to the functionvoid setgolf(golf & g, const char * name, int hc);// interactive version// function solicits name and handicap from user// and sets the members of g to the values entered// returns 1 if name is entered, 0 if name is empty stringint setgolf(golf & g);// function resets handicap to new valuevoid handicap(golf & g, int hc);// function displays contents of golf structurevoid showgolf(const golf & g);// pe9-golf.cpp - for pe9-1.cpp#include <iostream>#include "pe9-golf.h"#include <cstring>// function solicits name and handicap from user// returns 1 if name is entered, 0 if name is empty stringint setgolf(golf & g){std::cout << "Please enter golfer's full name: ";std::cin.getline(g.fullname, Len);if (g.fullname[0] == '\0')return 0; // premature termination std::cout << "Please enter handicap for " << g.fullname << ": ";while (!(std::cin >> g.handicap)){std::cin.clear();std::cout << "Please enter an integer: ";}while (std::cin.get() != '\n')continue;return 1;}// function sets golf structure to provided name, handicapvoid setgolf(golf & g, const char * name, int hc){std::strcpy(g.fullname, name);g.handicap = hc;}// function resets handicap to new valuevoid handicap(golf & g, int hc){g.handicap = hc;}// function displays contents of golf structurevoid showgolf(const golf & g){std::cout << "Golfer: " << g.fullname << "\n";std::cout << "Handicap: " << g.handicap << "\n\n";}// pe9-1.cpp#include <iostream>#include "pe9-golf.h"// link with pe9-golf.cppconst int Mems = 5;int main(void){using namespace std;golf team[Mems];cout << "Enter up to " << Mems << " golf team members:\n";int i;for (i = 0; i < Mems; i++)if (setgolf(team[i]) == 0)break;for (int j = 0; j < i; j++)showgolf(team[j]);setgolf(team[0], "Fred Norman", 5);showgolf(team[0]);handicap(team[0], 3);showgolf(team[0]);return 0;}PE 9-3//pe9-3.cpp -- using placement new#include <iostream>#include <new>#include <cstring>struct chaff{char dross[20];int slag;};// char buffer[500]; // option 1int main(){using std::cout;using std::endl;chaff *p1;int i;char * buffer = new char [500]; // option 2p1 = new (buffer) chaff[2]; // place structures in buffer std::strcpy(p1[0].dross, "Horse Feathers");p1[0].slag = 13;std::strcpy(p1[1].dross, "Piffle");p1[1].slag = -39;for (i = 0; i < 2; i++)cout << p1[i].dross << ": " << p1[i].slag << endl;delete [] buffer; // option 2return 0;}Chapter 10PE 10-1// pe10-1.cpp#include <iostream>#include <cstring>// class declarationclass BankAccount{private:char name[40];char acctnum[25];double balance;public:BankAccount(char * client = "no one", char * num = "0",double bal = 0.0); void show(void) const;void deposit(double cash); void withdraw(double cash); };// method definitionsBankAccount::BankAccount(char * client, char * num, double bal) {std::strncpy(name, client, 39);name[39] = '\0';std::strncpy(acctnum, num, 24);acctnum[24] = '\0';balance = bal;}void BankAccount::show(void) const{using std::cout;using std:: endl;cout << "Client: " << name << endl;cout << "Account Number: " << acctnum << endl;cout << "Balance: " << balance << endl;}void BankAccount::deposit(double cash){if (cash >= 0)balance += cash;elsestd::cout << "Illegal transaction attempted";}void BankAccount::withdraw(double cash){if (cash < 0)std::cout << "Illegal transaction attempted";else if (cash <= balance)balance -=cash;elsestd::cout << "Request denied due to insufficient funds.\n"; }// sample useint main(){BankAccount bird;BankAccount frog("Kermit", "croak322", 123.00);bird.show();frog.show();bird = BankAccount("Chipper", "peep8282", 214.00);bird.show();frog.deposit(20);frog.show();frog.withdraw(4000);frog.show();frog.withdraw(50);frog.show();}PE10-4// pe10-4.h#ifndef SALES__#define SALES__namespace SALES{const int QUARTERS = 4;class Sales{private:double sales[QUARTERS];double average;double max;double min;public:// default constructorSales();// copies the lesser of 4 or n items from the array ar// to the sales member and computes and stores the// average, maximum, and minimum values of the entered items;// remaining elements of sales, if any, set to 0Sales(const double ar[], int n);// gathers sales for 4 quarters interactively, stores them// in the sales member of object and computes and stores the // average, maximum, and minumum valuesvoid setSales();// display all information in objectvoid showSales();};}#endif// pe10-4a.cpp#include <iostream>#include "pe10-4.h"int main(){using SALES::Sales;double vals[3] = {2000, 3000, 5000};Sales forFiji(vals, 3);forFiji.showSales();Sales red;red.showSales();red.setSales();red.showSales();return 0;}// pe10-4b.cpp#include <iostream>#include "pe10-4.h"namespace SALES{using std::cin;using std::cout;using std::endl;。
标准c程序设计第5版答案

标准c程序设计第5版答案【篇一:c-primer-plus(第五版)编程练习全部答案.】练习1.您刚刚被 macromuscle 有限公司(software for hard bodies)聘用。
该公司要进入欧洲市场,需要一个将英寸转换为厘米(1 英寸=2.54 cm)的程序。
他们希望建立的该程序可提示用户输入英寸值。
您的工作是定义程序目标并设计该程序(编程过程的第 1 步和第 2 步)。
1.将英寸值转化为厘米值2.显示“输入英寸值”-得到该值-转换为厘米值-存储-告知用户已结束第二章 c 语言概述编程练习1.编写一个程序,调用 printf()函数在一行上输出您的名和姓,再调用一次 printf()函数在两个单独的行上输出您的名和姓,然后调用一对 printf()函数在一行上输出您的名和姓。
输出应如下所示(当然里面要换成您的姓名):anton brucknerantonbruckneranton bruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#includestdio.hint main(void){printf(he jin\n);printf(he\n);printf(jin\n);printf(he jin\n);return(0);}2.编写一个程序输出您的姓名及地址。
#includestdio.hint main(void){printf(name:he jin\n);printf(address:cauc\n);return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。
不用考虑平年( fractional year) 和闰年(leapyear)的问题。
#includestdio.hint main(void){int age=22;printf(age:%d\n,age);printf(day:%d\n,age*356);return(0);}4.编写一个能够产生下面输出的程序:for hes a jolly good fellow!for hes a jolly good fellow!for hes a jolly good fellow!which nobody can deny!程序中除了 main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。
【最新+免费】C+PRIMER+PLUS中文版(第五版)+的课后编程练习答案

【最新编排】---------------------------------------------------------------------------------------------------------------------- ?----------------------- Page £±-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen PrataChapter £²PE £²-£±/* Programming Exercise £²-£± */#include <stdio.h>int main(void){printf("Anton Bruckner\n");printf("Anton\nBruckner\n");printf("Anton ");printf("Bruckner\n");return 0;}PE £²-3/* Programming Exercise £²-3 */#include <stdio.h>int main(void){int ageyears; /* age in years */int agedays; /* age in days *//* large ages may require the long type */ageyears = 44;agedays = 365 * ageyears;printf("An age of %d years is %d days.\n", ageyears, agedays);return 0;}PE £²-4/* Programming Exercise £²-4 */#include <stdio.h>void jolly(void);void deny(void);int main(void){jolly();jolly();jolly();deny();sp Page £± of 88 August £²£±, £±999----------------------- Page £²-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Pratareturn 0;}void jolly(void){printf("For he's a jolly good fellow!\n");void deny(void){printf("Which nobody can deny!\n");}PE £²-5/* Programming Exercise £²-5 */#include <stdio.h>int main(void){int toes;toes = £±0;printf("toes = %d\n", toes);printf("Twice toes = %d\n", £² * toes);printf("toes squared = %d\n", toes * toes);return 0;}/* or create two more variables, set them to £² * toes and toes * toes */PE £²-7/* Programming Exercise £²-7 */#include <stdio.h>void one_three(void);void two(void);int main(void){printf("starting now:\n");one_three();printf("done!\n");return 0;}void one_three(void){printf("one\n");sp Page £² of 88 August £²£±, £±999----------------------- Page 3-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Pratatwo();printf("three\n");}void two(void){printf("two\n");}Chapter 3PE 3-£²/* Programming Exercise 3-£² */#include <stdio.h>int main(void){int ascii;printf("Enter an ASCII code: ");scanf("%d", &ascii);printf("%d is the ASCII code for %c.\n", ascii, ascii);return 0;}PE 3-4/* Programming Exercise 3-4 */#include <stdio.h>int main(void){float num;printf("Enter a floating-point value: ");scanf("%f", &num);printf("fixed-point notation: %f\n", num);printf("exponential notation: %e\n", num);return 0;}PE 3-6/* Programming Exercise 3-6 */#include <stdio.h>sp Page 3 of 88 August £²£±, £±999----------------------- Page 4-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prataint main(void){float mass_mol = 3.0e-£²3; /* mass of water molecule in grams */float mass_qt = 950; /* mass of quart of water in grams */float quarts;float molecules;printf("Enter the number of quarts of water: ");scanf("%f", &quarts);molecules = quarts * mass_qt / mass_mol;printf("%f quarts of water contain %e molecules.\n", quarts, molecules);return 0;}Chapter 4PE 4-£±/* Programming Exercise 4-£± */#include <stdio.h>int main(void){char fname¡¾40¡¿;char lname¡¾40¡¿;printf("Enter your first name: ");scanf("%s", fname);printf("Enter your last name: ");scanf("%s", lname);printf("%s, %s\n", lname, fname);return 0;}PE 4-4/* Programming Exercise 4-4 */#include <stdio.h>int main(void){float height;char name¡¾40¡¿;printf("Enter your height in inches: "); scanf("%f", &height);printf("Enter your name: ");sp Page 4 of 88 August £²£±, £±999----------------------- Page 5-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Pratascanf("%s", name);printf("%s, you are %.3f feet tall\n", name, height / £±£².0);return 0;}PE 4-6/* Programming Exercise 4-6 */#include <stdio.h>#include <float.h>int main(void){float ot_f = £±.0 / 3.0;double ot_d = £±.0 / 3.0;printf(" float values: ");printf("%.4f %.£±£²f %.£±6f\n", ot_f, ot_f, ot_f); printf("double values: ");printf("%.4f %.£±£²f %.£±6f\n", ot_d, ot_d, ot_d); printf("FLT_DIG: %d\n", FLT_DIG);printf("DBL_DIG: %d\n", DBL_DIG);return 0;}Chapter 5PE 5-£±/* Programming Exercise 5-£± */#include <stdio.h>int main(void){const int minperhour = 60;int minutes, hours, mins;printf("Enter the number of minutes to convert: ");scanf("%d", &minutes);while (minutes > 0 ){hours = minutes / minperhour;mins = minutes % minperhour;printf("%d minutes = %d hours, %d minutes\n", minutes, hours, mins);printf("Enter next minutes value (0 to quit): ");scanf("%d", &minutes);}sp Page 5 of 88 August £²£±, £±999----------------------- Page 6-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prataprintf("Bye\n");return 0;}PE 5-3/* Programming Exercise 5-3 */#include <stdio.h>int main(void){const int daysperweek = 7;int days, weeks, day_rem;printf("Enter the number of days: ");scanf("%d", &days);weeks = days / daysperweek;day_rem = days % daysperweek;printf("%d days are %d weeks and %d days.\n", days, weeks, day_rem);return 0;}PE 5-5/* Programming Exercise 5-5 */#include <stdio.h>int main(void) /* finds sum of first n integers */ {int count, sum;int n;printf("Enter the upper limit: ");scanf("%d", &n);count = 0;sum = 0;while (count++ < n)sum = sum + count;printf("sum = %d\n", sum);return 0;}PE 5-7/* Programming Exercise 5-7 */#include <stdio.h>void showCube(double x);int main(void) /* finds cube of entered number */{sp Page 6 of 88 August £²£±, £±999----------------------- Page 7-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Pratadouble val;printf("Enter a floating-point value: ");scanf("%lf", &val);showCube(val);return 0;}void showCube(double x){printf("The cube of %e is %e.\n", x, x*x*x );}Chapter 6PE 6-£±/* pe6-£±.c *//* this implementation assumes the character codes *//* are sequential, as they are in ASCII. */ #include <stdio.h>#define SIZE £²6int main( void ){char lcase¡¾SIZE¡¿;int i;for (i = 0; i < SIZE; i++)lcase¡¾i¡¿ = 'a' + i;for (i = 0; i < SIZE; i++)printf("%c", lcase¡¾i¡¿);printf("\n");return 0;}PE 6-3/* pe6-3.c *//* this implementation assumes the character codes *//* are sequential, as they are in ASCII. */#include <stdio.h>int main( void ){char let = 'F';char start;char end;for (end = let; end >= 'A'; end--)sp Page 7 of 88 August £²£±, £±999----------------------- Page 8-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prata{for (start = let; start >= end; start--) printf("%c", start);printf("\n");}return 0;}PE 6-5/* pe6-5.c */#include <stdio.h>int main( void ){int lower, upper, index;int square, cube;printf("Enter starting integer: ");scanf("%d", &lower);printf("Enter ending integer: ");scanf("%d", &upper);printf("%5s %£±0s %£±5s\n", "num", "square", "cube"); for (index = lower; index <= upper; index++){square = index * index;cube = index * square;printf("%5d %£±0d %£±5d\n", index, square, cube); }return 0;}PE 6-7/* pe6-7.c */#include <stdio.h>int main( void ){double n, m;double res;printf("Enter a pair of numbers: ");while (scanf("%lf %lf", &n, &m) == £²){res = (n - m) / (n * m);printf("(%.3g - %.3g)/(%.3g*%.3g) = %.5g\n", n, m, n, m, res);sp Page 8 of 88 August £²£±, £±999----------------------- Page 9-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prataprintf("Enter next pair (non-numeric to quit): ");}return 0;}PE 6-£±0/* pe6-£±0.c */#include <stdio.h>#define SIZE 8int main( void ){int vals¡¾SIZE¡¿;int i;printf("Please enter %d integers.\n", SIZE);for (i = 0; i < SIZE; i++)scanf("%d", &vals¡¾i¡¿);printf("Here, in reverse order, are the values you entered:\n"); for (i = SIZE - £±; i > 0; i--)printf("%d ", vals¡¾i¡¿);printf("\n");return 0;}PE 6-£±£²/* pe6-£±£².c *//* This version starts with the 0 power */#include <stdio.h>#define SIZE 8int main( void ){int twopows¡¾SIZE¡¿;int i;int value = £±; /* £² to the 0 */for (i = 0; i < SIZE; i++){twopows¡¾i¡¿ = value;value *= £²;}i = 0;do{printf("%d ", twopows¡¾i¡¿);i++;sp Page 9 of 88 August £²£±, £±999----------------------- Page £±0-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prata} while (i < SIZE);printf("\n");return 0;}PE 6-£±3/* pe-£±3.c *//* Programming Exercise 6-£±3 */#include <stdio.h>#define SIZE 8int main(void){double arr¡¾SIZE¡¿;double arr_cumul¡¾SIZE¡¿;int i;printf("Enter %d numbers:\n", SIZE);for (i = 0; i < SIZE; i++){printf("value #%d: ", i + £±);scanf("%lf", &arr¡¾i¡¿);/* or scanf("%lf", arr + i); */}arr_cumul¡¾0¡¿ = arr¡¾0¡¿; /* set first element */ for (i = £±; i < SIZE; i++)arr_cumul¡¾i¡¿ = arr_cumul¡¾i-£±¡¿ + arr¡¾i¡¿;for (i = 0; i < SIZE; i++)printf("%8g ", arr¡¾i¡¿);printf("\n");for (i = 0; i < SIZE; i++)printf("%8g ", arr_cumul¡¾i¡¿);printf("\n");return 0;}PE 6-£±5/* pe6-£±5.c */#include <stdio.h>#define RATE_SIMP 0.£±0#define RATE_COMP 0.05#define INIT_AMT £±00.0int main( void )sp Page £±0 of 88 August £²£±, £±999----------------------- Page £±£±-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prata{double daphne = INIT_AMT;double deidre = INIT_AMT;int years = 0;while (deidre <= daphne){daphne += RATE_SIMP * INIT_AMT;deidre += RATE_COMP * deidre;++years;}printf("Investment values after %d years:\n", years); printf("Daphne: $%.£²f\n", daphne);printf("Deidre: $%.£²f\n", deidre);return 0;}Chapter 7PE 7-£±/* Programming Exercise 7-£± */#include <stdio.h>int main(void){char ch;int sp_ct = 0;int nl_ct = 0;int other = 0;while ((ch = getchar()) != '#'){if (ch == ' ')sp_ct++;else if (ch == '\n')nl_ct++;elseother++;}printf("spaces: %d, newlines: %d, others: %d\n", sp_ct, nl_ct, other);return 0;}PE 7-3/* Programming Exercise 7-3 */#include <stdio.h>int main(void)sp Page £±£± of 88 August £²£±, £±999----------------------- Page £±£²-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prata{int n;double sumeven = 0.0;int ct_even = 0;double sumodd = 0.0;int ct_odd = 0;while (scanf("%d", &n) == £± && n != 0){if (n % £² == £±){sumodd += n;++ct_odd;}else{sumeven += n;++ct_even;}}printf("Number of evens: %d", ct_even);if (ct_even > 0)printf(" average: %g", sumeven / ct_even); putchar('\n');printf("Number of odds: %d", ct_odd);if (ct_odd > 0)printf(" average: %g", sumodd / ct_odd);putchar ('\n');printf("\ndone\n");return 0;}PE 7-5/* Programming Exercise 7-5 */#include <stdio.h>int main(void){char ch;int ct£± = 0;int ct£² = 0;while ((ch = getchar()) != '#'){switch(ch){case '.' : putchar('!'); ++ct£±;break;case '!' : putchar('!');sp Page £±£² of 88 August £²£±, £±999----------------------- Page £±3-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prataputchar('!');++ct£²;break;default : putchar(ch);}}printf("%d replacements of . with !\n", ct£±);printf("%d replacements of ! with !!\n", ct£²);return 0;}PE 7-7/* Programming Exercise 7-7 */#include <stdio.h>#define BASEPAY £±0 /* $£±0 per hour */ #define BASEHRS 40 /* hours at basepay */#define OVERTIME £±.5 /* £±.5 time */#define AMT£± 300 /* £±st rate tier */#define AMT£² £±50 /* £²st rate tier */ #define RATE£± 0.£±5 /* rate for £±st tier */ #define RATE£² 0.£²0 /* rate for £²nd tier */ #define RATE3 0.£²5 /* rate for 3rd tier */ int main(void){double hours;double gross;double net;double taxes;printf("Enter the number of hours worked this week: ");scanf("%lf", &hours);if (hours <= BASEHRS)gross = hours * BASEPAY;elsegross = BASEHRS * BASEPAY + (hours - BASEHRS) * BASEPAY * OVERTIME;if (gross <= AMT£±)taxes = gross * RATE£±;else if (gross <= AMT£± + AMT£²)taxes = AMT£± * RATE£± + (gross - AMT£±) * RATE£²;elsetaxes = AMT£± * RATE£± + AMT£² * RATE£² + (gross - AMT£± - AMT£²) * RATE3;net = gross - taxes;printf("gross: $%.£²f; taxes: $%.£²f; net: $%.£²f\n", gross, taxes, net);return 0;}PE 7-9sp Page £±3 of 88 August £²£±, £±999----------------------- Page £±4-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prata/* Programmming Exercise 7-9 */#include <stdio.h>#define NO 0#define YES £±int main(void){long num; /* value to be checked */long div; /* potential divisors */long lim; /* limit to values */int prime;printf("Please enter limit to values to be checked; ");printf("Enter q to quit.\n");while (scanf("%ld", &lim) == £± && lim > 0){for (num = £²; num <= lim; num++){for (div = £², prime = YES; (div * div) <= num; div++)if (num % div == 0)prime = NO; /* number is not prime */ if (prime == YES)printf("%ld is prime.\n", num); }printf("Please enter another limit; "); printf("Enter q to quit.\n");}return 0;}PE 7-£±£±/* pe7-£±£±.c *//* Programming Exercise 7-£±£± */#include <stdio.h>#include <ctype.h>int main(void){const double price_artichokes = £±.£²5;const double price_beets = 0.65;const double price_carrots = 0.89;const double DISCOUNT_RATE = 0.05;char ch;double lb_artichokes;double lb_beets;double lb_carrots;double lb_total;double cost_artichokes;double cost_beets;double cost_carrots;double cost_total;double final_total;double discount;double shipping;sp Page £±4 of 88 August £²£±, £±999----------------------- Page £±5-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prataprintf("Enter a to buy artichokes, b for beets, ");printf("c for carrots, q to quit: ");while ((ch = getchar()) != 'q' && ch != 'Q'){if (ch == '\n')continue;while (getchar() != '\n')continue;ch = tolower(ch);switch (ch){case 'a' : printf("Enter pounds of artichokes: "); scanf("%lf", &lb_artichokes);break;case 'b' : printf("Enter pounds of beets: ");scanf("%lf", &lb_beets);break;case 'c' : printf("Enter pounds of carrots: ");scanf("%lf", &lb_carrots);break;default : printf("%c is not a valid choice.\n");}printf("Enter a to buy artichokes, b for beets, ");printf("c for carrots, q to quit: ");}cost_artichokes = price_artichokes * lb_artichokes;cost_beets = price_beets * lb_beets;cost_carrots = price_carrots * lb_carrots;cost_total = cost_artichokes + cost_beets + cost_carrots;lb_total = lb_artichokes + lb_beets + lb_carrots;if (lb_total <= 0)shipping = 0.0;else if (lb_total < 5.0)shipping = 3.50;else if (lb_total < £²0)shipping = £±0.0;elseshipping = 8.0 + 0.£± * lb_total;if (cost_total > £±00.0)discount = DISCOUNT_RATE * cost_total;elsediscount = 0.0;final_total = cost_total + shipping - discount;printf("Your order:\n");printf("%.£²f lbs of artichokes at $%.£²f per pound:$ %.£²f\n", lb_artichokes, price_artichokes, cost_artichokes);printf("%.£²f lbs of beets at $%.£²f per pound: $%.£²f\n",lb_beets, price_beets, cost_beets);printf("%.£²f lbs of carrots at $%.£²f per pound: $%.£²f\n",lb_carrots, price_carrots, cost_carrots);printf("Total cost of vegetables: $%.£²f\n", cost_total);if (cost_total > £±00)printf("Volume discount: $%.£²f\n", discount);printf("Shipping: $%.£²f\n", shipping);sp Page £±5 of 88 August £²£±, £±999----------------------- Page £±6-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prataprintf("Total charges: $%.£²f\n", final_total);return 0;}Chapter 8PE 8-£±/* Programming Exercise 8-£± */#include <stdio.h>int main(void){int ch;int ct = 0;while ((ch = getchar()) != EOF)ct++;printf("%d characters read\n", ct);return 0;}PE 8-3/* Programming Exercise 8-3 *//* Using ctype.h eliminates need to assume ASCII coding */ #include <stdio.h>#include <ctype.h>int main(void){int ch;int uct = 0;int lct = 0;while ((ch = getchar()) != EOF)if (isupper(ch))uct++;else if (islower(ch))lct++;printf("%d uppercase characters read\n", uct); printf("%d lowercase characters read\n", lct);return 0;}/*or you could useif (ch >= 'A' && ch <= 'Z')sp Page £±6 of 88 August £²£±, £±999----------------------- Page £±7-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Pratauct++;else if (ch >= 'a' && ch <= 'z')lct++;*/PE 8-5/* Programming Exercise 8-5 *//* binaryguess.c -- an improved number-guesser */#include <stdio.h>#include <ctype.h>int main(void){int high = £±00;int low = £±;int guess = (high + low) / £²;char response;printf("Pick an integer from £± to £±00. I will try to guess ");printf("it.\nRespond with a y if my guess is right, with");printf("\na h if it is high, and with an l if it is low.\n");printf("Uh...is your number %d?\n", guess);while ((response = getchar()) != 'y') /* get response */{if (response == '\n')continue;if (response != 'h' && response != 'l'){printf("I don't understand that response. Please enter h for\n");printf("high, l for low, or y for correct .\n");continue;}if (response == 'h')high = guess - £±;else if (response == 'l')low = guess + £±;guess = (high + low) / £²;printf("Well, then, is it %d?\n", guess);}printf("I knew I could do it!\n");return 0;}PE 8-7/* Programming Exercise 8-7 */#include <stdio.h>#include <ctype.h>#define BASEPAY£± 8.75 /* $8.75 per hour */#define BASEPAY£² 9.33 /* $9.33 per hour */#define BASEPAY3 £±0.00 /* $£±0.00 per hour */sp Page £±7 of 88 August £²£±, £±999----------------------- Page £±8-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prata#define BASEPAY4 £±£±.£²0 /* $£±£±.£²0 per hour */ #define BASEHRS 40 /* hours at basepay */#define OVERTIME £±.5 /* £±.5 time */#define AMT£± 300 /* £±st rate tier */#define AMT£² £±50 /* £²st rate tier */ #define RATE£± 0.£±5 /* rate for £±st tier */ #define RATE£² 0.£²0 /* rate for £²nd tier */ #define RATE3 0.£²5 /* rate for 3rd tier */int getfirst(void);void menu(void);int main(void){double hours;double gross;double net;double taxes;double pay;char response;menu();while ((response = getfirst()) != 'q'){if (response == '\n') /* skip over newlines */continue;response = tolower(response); /* accept A as a, etc. */switch (response){case 'a' : pay = BASEPAY£±; break;case 'b' : pay = BASEPAY£²; break;case 'c' : pay = BASEPAY3; break;case 'd' : pay = BASEPAY4; break;default : printf("Please enter a, b, c, d, or q.\n");menu();continue; /* go to beginning of loop */}printf("Enter the number of hours worked this week: ");scanf("%lf", &hours);if (hours <= BASEHRS)gross = hours * pay;elsegross = BASEHRS * pay + (hours - BASEHRS) * pay * OVERTIME;if (gross <= AMT£±)taxes = gross * RATE£±;else if (gross <= AMT£± + AMT£²)taxes = AMT£± * RATE£± + (gross - AMT£±) * RATE£²;elsetaxes = AMT£± * RATE£± + AMT£² * RATE£² + (gross - AMT£± - AMT£²) *RATE3;net = gross - taxes;printf("gross: $%.£²f; taxes: $%.£²f; net: $%.£²f\n", gross, taxes,net);menu();}printf("Done.\n");sp Page £±8 of 88 August £²£±, £±999----------------------- Page £±9-----------------------Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Pratareturn 0;}void menu(void){printf("********************************************************""*********\n");printf("Enter the number corresponding to the desired pay rate"" or action:\n");printf("a) $%4.£²f/hr b) $%4.£²f/hr\n", BASEPAY£±,BASEPAY£²);printf("c) $%5.£²f/hr d) $%5.£²f/hr\n", BASEPAY3,BASEPAY4);printf("q) quit\n");printf("********************************************************""*********\n");}int getfirst(void){int ch;ch = getchar();while (isspace(ch))ch = getchar();while (getchar() != '\n')continue;return ch;}Chapter 9PE 9-£±/* Programming Exercise 9-£± */#include <stdio.h>double min(double a, double b);int main(void){double x, y;printf("Enter two numbers (q to quit): ");while (scanf("%lf %lf", &x, &y) == £²){printf("The smaller number is %f.\n", min(x,y));。
C++Primer_Plus第五版习题答案

Solutions for Programming Exercises in C++ Primer Plus, 5th Edition Chapter 2// pe2-2.cpp#include <iostream>int main(void){using namespace std;cout << "Enter a distance in furlongs: ";double furlongs;cin >> furlongs;double feet;feet = 220 * furlongs;cout << furlongs << " furlongs = "<< feet << " feet\n";return 0;}// pe2-3.cpp#include <iostream>using namespace std;void mice();void run();int main(){mice();mice();run();run();return 0;}void mice(){cout << "Three blind mice\n";}void run(){cout << "See how they run\n";}// pe2-4.cpp#include <iostream>double C_to_F(double);int main(){using namespace std;cout << "Enter a temperature in Celsius: ";double C;cin >> C;double F;F = C_to_F(C);cout << C << " degrees Celsius = "<< F << " degrees Fahrenheit\n";return 0;}double C_to_F(double temp){return 1.8 * temp + 32.0;}Chapter 3// pe3-1.cpp#include <iostream>const int Inch_Per_Foot = 12;int main(void){using namespace std;// Note: some environments don't support the backspace charactercout << "Please enter your height in inches: ___/b/b/b ";int ht_inch;cin >> ht_inch;int ht_feet = ht_inch / Inch_Per_Foot;int rm_inch = ht_inch % Inch_Per_Foot;cout << "Your height is " << ht_feet << " feet, ";cout << rm_inch << " inch(es).\n";return 0;}// pe3-3.cpp#include <iostream>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 << "First, enter the degrees: ";cin >> degrees;cout << "Next, enter the minutes of arc: ";cin >> minutes;cout << "Finally, enter the seconds of arc: ";cin >> seconds;latitude = degrees + (minutes + seconds / SECS_PER_MIN)/MINS_PER_DEG;cout << degrees << " degrees, " << minutes << " minutes, "<< seconds << " seconds = " << latitude << " degrees\n";return 0;}// pe3-5.cpp#include <iostream>int main(void){using namespace std;cout << "How many miles have you driven your car? ";float miles;cin >> miles;cout << "How many gallons of gasoline did the car use? ";float gallons;cin >> gallons;cout << "Your car got " << miles / gallons;cout << " miles per gallon.\n";return 0;}// pe3-6.cpp#include <iostream>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 << "Enter fuel consumption in liters per 100 km: ";cin >> euro_rating;// divide by LITER_PER_GALLON to get gallons per 100-km// divide by KM100_TO_MILES to get gallons per mile// invert result to get miles per gallonus_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 <iostream>#include <string>int main(){using namespace std;string name;string dessert;cout << "Enter your name:\n";getline(cin, name); // reads through newlinecout << "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 <iostream>#include <cstring>const int SIZE = 20;int main(){using namespace std;char firstName[SIZE];char lastName[SIZE];char fullName[2*SIZE + 1];cout << "Enter your first name: ";cin >> firstName;cout << "Enter your last name: ";cin >> lastName;strncpy(fullName,lastName,SIZE);strcat(fullName, ", ");strncat(fullName, firstName, SIZE);fullName[SIZE - 1] = '\0';cout << "Here's the information in a single string: "<< fullName << endl;return 0;}// pe4-5.cpp// a candybar structurestruct CandyBar {char brand[40];double weight;int calories;};#include <iostream>int main(){using namespace std; //introduces namespace stdCandyBar snack = { "Mocha Munch", 2.3, 350 };cout << "Brand name: " << snack.brand << endl;cout << "Weight: " << snack.weight << endl;cout << "Calories: " << snack.calories << endl;return 0;}// p#include <iostream>const int Slen = 70;struct pizza {char name[Slen];float diameter;float weight;};int main(void){using namespace std;pizza pie;cout << "What is the name of the pizza company? ";cin.getline(, Slen);cout << "What is the diameter of the pizza in inches? ";cin >> pie.diameter;cout << "How much does the pizza weigh in ounces? ";cin >> pie.weight;cout << "Company: " << << "\n";cout << "Diameter: " << pie.diameter << " inches\n";cout << "Weight: " << pie.weight << " ounces\n";return 0;}Chapter 5// pe5-2.cpp#include <iostream>int main(void){using namespace std;double sum = 0.0;double in;cout << "Enter a number (0 to terminate) : ";cin >> in;while (in != 0) {sum += in;cout << "Running total = " << sum << "\n";cout << "Enter next number (0 to terminate) : ";cin >> in;}cout << "Bye!\n";return 0;}// pe5-4.cpp// book sales#include <iostream>const int MONTHS = 12;const char * months[MONTHS] = {"January", "February", "March", "April","May", "June", "July", "August", "September","October", "November", "December"};int main(){using namespace std; //introduces namespace stdint sales[MONTHS];int month;cout << "Enter the monthly sales for \"C++ for Fools\":\n";for (month = 0; month < MONTHS; month++){cout << "Sales for " << months[month] << ": ";cin >> sales[month];}double total = 0.0;for (month = 0; month < MONTHS; month++)total += sales[month];cout << "Total sales: " << total << endl;return 0;}// pe5-6.cpp#include <iostream>struct car { char name[20]; int year;};int main(void){using namespace std;int n;cout << "How many cars do you wish to catalog?: ";cin >> 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(pc[i].name,20);cout << "Please enter the year made: ";cin >> pc[i].year;while(cin.get() != '\n') // get rid of rest of line;}cout << "Here is your collection:\n";for (i = 0; i < n; i++)cout << pc[i].year << " " << pc[i].name << "\n";delete [] pc;return 0;}// pe5-7.cpp -- count words using C-style string#include <iostream>#include <cstring> // prototype for strcmp()const int STR_LIM = 50;int main(){using namespace std;char word[STR_LIM];int count = 0;cout << "Enter words (to stop, type the word done):\n";while (cin >> word && strcmp("done", word))++count;cout << "You entered a total of " << count << " words.\n";return 0;}// pe5-9.cpp//nested loops#include <iostream>int main(){using namespace std; //introduces namespace stdint rows;int row;int col;int periods;cout << "Enter number of rows: ";cin >> rows;for (row = 1; row <= rows; row++){periods = rows - row;for (col = 1; col <= periods; col++)cout << '.';// col already has correct value for next loopfor ( ; col <= rows; col++)cout << '*';cout << endl;}return 0;}Chapter 6// pe6-1.cpp#include <iostream>#include <cctype>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(ch);}return 0;}// pe6-3.cpp#include <iostream>int main(void){using namespace std;cout << "Please enter one of the following choices:\n";cout << "c) carnivore p) pianist\n"<< "t) tree g) game\n";char ch;cin >> ch;while (ch != 'c' && ch != 'p' && ch != 't' && ch != 'g'){cout << "Please enter a c, p, t, or g: ";cin >> ch;}switch (ch){case 'c' : cout << "A cat is a carnivore.\n";break;case 'p' : cout << "Radu Lupu is a pianist.\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 shouldn't get here!\n";}return 0;}// pe6-5.cpp// Neutronia taxation#include <iostream>const double LEV1 = 5000;const double LEV2 = 15000;const double LEV3 = 35000;const double RATE1 = 0.10;const double RATE2 = 0.15;const double RATE3 = 0.20;int main( ){using namespace std;double income;double tax;cout << "Enter your annual income in tvarps: ";cin >> 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);elsetax = RATE1 * (LEV2 - LEV1) + RATE2 * (LEV3 - LEV2) + RATE3 * (income - LEV3);cout << "You owe Neutronia " << tax << " tvarps in taxes.\n";return 0;}// pe6-7.cpp#include <iostream>#include <string>int main(){using namespace std;string word;char ch;int vowel = 0;int consonant = 0;int other = 0;cout << "Enter words (q to quit):\n";cin >> word;while ( word != "q"){ch = tolower(word[0]);if (isalpha(ch)){if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o'|| ch == 'u')vowel++;elseconsonant++;}elseother++;cin >> word;}cout << vowel <<" words beginning with vowels\n";cout << consonant << " words beginning with consonants\n";cout << other << " others\n";return 0;}// pe6-8.cpp -- counting characters#include <iostream>#include <fstream> // file I/O suppport#include <cstdlib> // support for exit()const int SIZE = 60;int main(){using namespace std;char filename[SIZE];char ch;ifstream inFile; // object for handling file inputcout << "Enter name of data file: ";cin.getline(filename, SIZE);inFile.open(filename); // associate inFile with a fileif (!inFile.is_open()) // failed to open file{cout << "Could not open the file " << filename << endl;cout << "Program terminating.\n";exit(EXIT_FAILURE);}int count = 0; // number of items readinFile >> ch; // get first valuewhile (inFile.good()) // while input good and not at EOF {count++; // one more item readinFile >> ch; // get next value}cout << count << " characters in " << filename << endl;inFile.close(); // finished with the filereturn 0;}Chapter 7//pe7-1.cpp -- harmonic mean#include <iostream>double h_mean(double x, double y);int main(void){using namespace std;double x,y;cout << "Enter two numbers (a 0 terminates): ";while (cin >> x >> y && x * y != 0)cout << "harmonic mean of " << x << " and "<< y << " = " << h_mean(x,y) << "\n";/* or do the reading and testing in two parts:while (cin >> x && x != 0){cin >> y;if (y == 0)break;...*/cout << "Bye\n";return 0;}double h_mean(double x, double y){return 2.0 * x * y / (x + y);}// pe7-3.cpp#include <iostream>struct box {char maker[40];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 namespace std;cout << "Box maker: " << b.maker<< "\nheight: " << b.height<< "\nlwidth: " << b.width<< "\nlength: " << b.length<< "\nvolume: " << b.volume << "\n";}void setbox(box * pb){pb->volume = pb->height * pb->width * pb->length;}// pe7-4.cpp -- probability of winning#include <iostream>long double probability(unsigned numbers, unsigned picks);int main(){using namespace std;double total, choices;double mtotal;double probability1, probability2;cout << "Enter total number of game card choices and\n""number of picks allowed for the field:\n";while ((cin >> total >> choices) && choices <= total){cout << "Enter total number of game card choices ""for the mega number:\n";if (!(cin >> 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 * probability2; // compute the probabilitycout << " of winning.\n";cout << "Next set of numbers (q to quit): ";}cout << "bye\n";return 0;}// the following function calculates the probability of picking picks// numbers correctly from numbers choiceslong double probability(unsigned numbers, unsigned picks){long double result = 1.0; // here come some local variableslong double n;unsigned p;for (n = numbers, p = picks; p > 0; n--, p--)result = result * n / p ;return result;// pe7-6.cpp#include <iostream>int Fill_array(double ar[], int size);void Show_array(const double ar[], int size);void Reverse_array(double ar[], int size);const int LIMIT = 10;int main( ){using namespace std;double values[LIMIT];int entries = Fill_array(values, LIMIT);cout << "Array values:\n";Show_array(values, entries);cout << "Array reversed:\n";Reverse_array(values, entries);Show_array(values, entries);cout << "All but end values reversed:\n";Reverse_array(values + 1, entries - 2);Show_array(values, entries);return 0;}int Fill_array(double ar[], int size){using namespace std;int n;cout << "Enter up to " << size << " values (q to quit):\n";for (n = 0; n < size; n++){cin >> ar[n];if (!cin)break;}return n;}void Show_array(const double ar[], int size){using namespace std;int n;for (n = 0; n < size; n++){cout << ar[n];if (n % 8 == 7)cout << endl;elsecout << ' ';}if (n % 8 != 0)cout << endl;}void Reverse_array(double ar[], int size){int i, j;double temp;for (i = 0, j = size - 1; i < j; i++, j--){temp = ar[i];ar[i] = ar[j];ar[j] = temp;}}//pe7-9.cpp#include <iostream>double calculate(double x, double y, double (*pf)(double, double)); double add(double x, double y);double sub(double x, double y);double mean(double x, double y);int main(void){using namespace std;double (*pf[3])(double,double) = {add, sub, mean};char * op[3] = {"sum", "difference", "mean"};double a, b;cout << "Enter pairs of numbers (q to quit): ";int i;while (cin >> a >> b){// using function namescout << calculate(a, b, add) << " = sum\n";cout << calculate(a, b, mean) << " = mean\n";// using pointersfor (i = 0; i < 3; i++)cout << calculate(a, b, pf[i]) << " = "<< op[i] << "\n";}cout << "Done!\n";return 0;}double calculate(double x, double y, double (*pf)(double, double)) {return (*pf)(x, y);}double add(double x, double y){return x + y;}double sub(double x, double y){return x - y;}double mean(double x, double y){return (x + y) / 2.0;}Chapter 8// pe8-1.cpp#include <iostream>void silly(const char * s, int n = 0);int main(void){using namespace std;char * p1 = "Why me?\n";silly(p1);for (int i = 0; i < 3; i++){cout << i << " = i\n";silly(p1, i);}cout << "Done\n";return 0;}void silly(const char * s, int n){using namespace std;static int uses = 0;int lim = ++uses;if (n == 0)lim = 1;for (int i = 0; i < lim; i++)cout << s;}// pe8-4.cpp#include <iostream>#include <cstring> // for strlen(), strcpy()using namespace std;struct stringy {char * str; // points to a stringint ct; // length of string (not counting '\0')};void show(const char *str, int cnt = 1);void show(const stringy & bny, int cnt = 1);void set(stringy & bny, const char * str);int main(void){stringy beany;char testing[] = "Reality isn't what it used to be.";set(beany, testing); // first argument is a reference, // allocates space to hold copy of testing,// sets str member of beany to point to the// new block, copies testing to new block,// and sets ct member of beanyshow(beany); // prints member string once show(beany, 2); // prints member string twicetesting[0] = 'D';testing[1] = 'u';show(testing); // prints testing string onceshow(testing, 3); // prints testing string thriceshow("Done!");return 0;}void show(const char *str, int cnt){while(cnt-- > 0){cout << str << endl;}}void show(const stringy & bny, int cnt){while(cnt-- > 0){cout << bny.str << endl;}}void set(stringy & bny, const char * str){bny.ct = strlen(str);bny.str = new char[bny.ct+1];strcpy(bny.str, str);}// pe8-5.cpp#include <iostream>template <class T>T max5(T ar[]){int n;T max = ar[0];for (n = 1; n < 5; n++)if (ar[n] > max)max = ar[n];return max;}const int LIMIT = 5;int main( ){using namespace std;double ard[LIMIT] = { -3.4, 8.1, -76.4, 34.4, 2.4};int ari[LIMIT] = {2, 3, 8, 1, 9};double md;int mi;md = max5(ard);mi = max5(ari);cout << "md = " << md << endl;cout << "mi = " << mi << endl;return 0;}Chapter 9PE 9-1// pe9-golf.h - for pe9-1.cppconst int Len = 40;struct golf{char fullname[Len];int handicap;};// non-interactive version// function sets golf structure to provided name, handicap // using values passed as arguments to the functionvoid setgolf(golf & g, const char * name, int hc);// interactive version// function solicits name and handicap from user// and sets the members of g to the values entered// returns 1 if name is entered, 0 if name is empty stringint setgolf(golf & g);// function resets handicap to new valuevoid handicap(golf & g, int hc);// function displays contents of golf structurevoid showgolf(const golf & g);// pe9-golf.cpp - for pe9-1.cpp#include <iostream>#include "pe9-golf.h"#include <cstring>// function solicits name and handicap from user// returns 1 if name is entered, 0 if name is empty stringint setgolf(golf & g){std::cout << "Please enter golfer's full name: ";std::cin.getline(g.fullname, Len);if (g.fullname[0] == '\0')return 0; // premature termination std::cout << "Please enter handicap for " << g.fullname << ": ";while (!(std::cin >> g.handicap)){std::cin.clear();std::cout << "Please enter an integer: ";}while (std::cin.get() != '\n')continue;return 1;}// function sets golf structure to provided name, handicapvoid setgolf(golf & g, const char * name, int hc){std::strcpy(g.fullname, name);g.handicap = hc;}// function resets handicap to new valuevoid handicap(golf & g, int hc){g.handicap = hc;}// function displays contents of golf structurevoid showgolf(const golf & g){std::cout << "Golfer: " << g.fullname << "\n";std::cout << "Handicap: " << g.handicap << "\n\n";}// pe9-1.cpp#include <iostream>#include "pe9-golf.h"// link with pe9-golf.cppconst int Mems = 5;int main(void){using namespace std;golf team[Mems];cout << "Enter up to " << Mems << " golf team members:\n";int i;for (i = 0; i < Mems; i++)if (setgolf(team[i]) == 0)break;for (int j = 0; j < i; j++)showgolf(team[j]);setgolf(team[0], "Fred Norman", 5);showgolf(team[0]);handicap(team[0], 3);showgolf(team[0]);return 0;}PE 9-3//pe9-3.cpp -- using placement new#include <iostream>#include <new>#include <cstring>struct chaff{char dross[20];int slag;};// char buffer[500]; // option 1int main(){using std::cout;using std::endl;chaff *p1;int i;char * buffer = new char [500]; // option 2p1 = new (buffer) chaff[2]; // place structures in buffer std::strcpy(p1[0].dross, "Horse Feathers");p1[0].slag = 13;std::strcpy(p1[1].dross, "Piffle");p1[1].slag = -39;for (i = 0; i < 2; i++)cout << p1[i].dross << ": " << p1[i].slag << endl;delete [] buffer; // option 2return 0;}Chapter 10PE 10-1// pe10-1.cpp#include <iostream>#include <cstring>// class declarationclass BankAccount{private:char name[40];char acctnum[25];double balance;public:BankAccount(char * client = "no one", char * num = "0",double bal = 0.0); void show(void) const;void deposit(double cash); void withdraw(double cash); };// method definitionsBankAccount::BankAccount(char * client, char * num, double bal) {std::strncpy(name, client, 39);name[39] = '\0';std::strncpy(acctnum, num, 24);acctnum[24] = '\0';balance = bal;}void BankAccount::show(void) const{using std::cout;using std:: endl;cout << "Client: " << name << endl;cout << "Account Number: " << acctnum << endl;cout << "Balance: " << balance << endl;}void BankAccount::deposit(double cash){if (cash >= 0)balance += cash;elsestd::cout << "Illegal transaction attempted";}void BankAccount::withdraw(double cash){if (cash < 0)std::cout << "Illegal transaction attempted";else if (cash <= balance)balance -=cash;elsestd::cout << "Request denied due to insufficient funds.\n"; }// sample useint main(){BankAccount bird;BankAccount frog("Kermit", "croak322", 123.00);bird.show();frog.show();bird = BankAccount("Chipper", "peep8282", 214.00);bird.show();frog.deposit(20);frog.show();frog.withdraw(4000);frog.show();frog.withdraw(50);frog.show();}PE10-4// pe10-4.h#ifndef SALES__#define SALES__namespace SALES{const int QUARTERS = 4;class Sales{private:double sales[QUARTERS];double average;double max;double min;public:// default constructorSales();// copies the lesser of 4 or n items from the array ar// to the sales member and computes and stores the// average, maximum, and minimum values of the entered items;// remaining elements of sales, if any, set to 0Sales(const double ar[], int n);// gathers sales for 4 quarters interactively, stores them// in the sales member of object and computes and stores the // average, maximum, and minumum valuesvoid setSales();// display all information in objectvoid showSales();};}#endif// pe10-4a.cpp#include <iostream>#include "pe10-4.h"int main(){using SALES::Sales;double vals[3] = {2000, 3000, 5000};Sales forFiji(vals, 3);forFiji.showSales();Sales red;red.showSales();red.setSales();red.showSales();return 0;}// pe10-4b.cpp#include <iostream>#include "pe10-4.h"namespace SALES{using std::cin;using std::cout;using std::endl;。
Cprimerplus(第五版)课后编程练习问题详解

第一章概览编程练习1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。
该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸=2.54 cm)的程序。
他们希望建立的该程序可提示用户输入英寸值。
您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。
1.将英寸值转化为厘米值2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束第二章 C语言概述编程练习1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。
输出应如下所示(当然里面要换成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<stdio.h>int main(void){printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");return(0);}2.编写一个程序输出您的姓名及地址。
#include<stdio.h>int main(void){printf("Name:He Jin\n");printf("Address:CAUC\n");return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。
不用考虑平年( fractional year)和闰年(leapyear)的问题。
#include<stdio.h>int main(void){int age=22;printf("Age:%d\n",age);printf("Day:%d\n",age*356);return(0);}4.编写一个能够产生下面输出的程序:For he's a jolly good fellow!For he's a jolly good fellow!For he's a jolly good fellow!Which nobody can deny!程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。
C++_Primer_Plus(第五版)习题解答

Chapter 2// pe2-2.cpp#include <iostream>int main(void){using namespace std;cout << "Enter a distance in furlongs: ";double furlongs;cin >> furlongs;double feet;feet = 220 * furlongs;cout << furlongs << " furlongs = "<< feet << " feet\n";return 0;}// pe2-3.cpp#include <iostream>using namespace std;void mice();void run();int main(){mice();mice();run();run();return 0;}void mice(){cout << "Three blind mice\n";}void run(){cout << "See how they run\n";}// pe2-4.cpp#include <iostream>double C_to_F(double);int main(){using namespace std;cout << "Enter a temperature in Celsius: "; double C;cin >> C;double F;F = C_to_F(C);cout << C << " degrees Celsius = "<< F << " degrees Fahrenheit\n";return 0;}double C_to_F(double temp){return 1.8 * temp + 32.0;}Chapter 3// pe3-1.cpp#include <iostream>const int Inch_Per_Foot = 12;int main(void){using namespace std;// Note: some environments don't support the backspace charactercout << "Please enter your height in inches: ___/b/b/b ";int ht_inch;cin >> ht_inch;int ht_feet = ht_inch / Inch_Per_Foot;int rm_inch = ht_inch % Inch_Per_Foot;cout << "Your height is " << ht_feet << " feet, ";cout << rm_inch << " inch(es).\n";return 0;}// pe3-3.cpp#include <iostream>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 << "First, enter the degrees: ";cin >> degrees;cout << "Next, enter the minutes of arc: ";cin >> minutes;cout << "Finally, enter the seconds of arc: ";cin >> seconds;latitude = degrees + (minutes + seconds / SECS_PER_MIN)/MINS_PER_DEG; cout << degrees << " degrees, " << minutes << " minutes, "<< seconds << " seconds = " << latitude << " degrees\n";return 0;}// pe3-5.cpp#include <iostream>int main(void){using namespace std;cout << "How many miles have you driven your car? ";float miles;cin >> miles;cout << "How many gallons of gasoline did the car use? ";float gallons;cin >> gallons;cout << "Your car got " << miles / gallons;cout << " miles per gallon.\n";return 0;}// pe3-6.cpp#include <iostream>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 << "Enter fuel consumption in liters per 100 km: ";cin >> euro_rating;// divide by LITER_PER_GALLON to get gallons per 100-km// divide by KM100_TO_MILES to get gallons per mile// invert result to get miles per gallonus_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 <iostream>#include <string>int main(){using namespace std;string name;string dessert;cout << "Enter your name:\n";getline(cin, name); // reads through newlinecout << "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 <iostream>#include <cstring>const int SIZE = 20;int main(){using namespace std;char firstName[SIZE];char lastName[SIZE];char fullName[2*SIZE + 1];cout << "Enter your first name: ";cin >> firstName;cout << "Enter your last name: ";cin >> lastName;strncpy(fullName,lastName,SIZE);strcat(fullName, ", ");strncat(fullName, firstName, SIZE);fullName[SIZE - 1] = '\0';cout << "Here's the information in a single string: " << fullName << endl;return 0;}// pe4-5.cpp// a candybar structurestruct CandyBar {char brand[40];double weight;int calories;};#include <iostream>int main(){using namespace std; //introduces namespace stdCandyBar snack = { "Mocha Munch", 2.3, 350 };cout << "Brand name: " << snack.brand << endl;cout << "Weight: " << snack.weight << endl;cout << "Calories: " << snack.calories << endl;return 0;}// p#include <iostream>const int Slen = 70;struct pizza {char name[Slen];float diameter;float weight;};int main(void)using namespace std;pizza pie;cout << "What is the name of the pizza company? ";cin.getline(, Slen);cout << "What is the diameter of the pizza in inches? ";cin >> pie.diameter;cout << "How much does the pizza weigh in ounces? ";cin >> pie.weight;cout << "Company: " << << "\n";cout << "Diameter: " << pie.diameter << " inches\n";cout << "Weight: " << pie.weight << " ounces\n";return 0;}Chapter 5// pe5-2.cpp#include <iostream>int main(void){using namespace std;double sum = 0.0;double in;cout << "Enter a number (0 to terminate) : ";cin >> in;while (in != 0) {sum += in;cout << "Running total = " << sum << "\n";cout << "Enter next number (0 to terminate) : ";cin >> in;}cout << "Bye!\n";return 0;}// pe5-4.cpp// book sales#include <iostream>const int MONTHS = 12;const char * months[MONTHS] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};int main(){using namespace std; //introduces namespace stdint sales[MONTHS];int month;cout << "Enter the monthly sales for \"C++ for Fools\":\n";for (month = 0; month < MONTHS; month++){cout << "Sales for " << months[month] << ": ";cin >> sales[month];}double total = 0.0;for (month = 0; month < MONTHS; month++)total += sales[month];cout << "Total sales: " << total << endl;return 0;}// pe5-6.cpp#include <iostream>struct car { char name[20]; int year;};int main(void){using namespace std;int n;cout << "How many cars do you wish to catalog?: ";cin >> 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(pc[i].name,20);cout << "Please enter the year made: ";cin >> pc[i].year;while(cin.get() != '\n') // get rid of rest of line ;}cout << "Here is your collection:\n";for (i = 0; i < n; i++)cout << pc[i].year << " " << pc[i].name << "\n";delete [] pc;return 0;}// pe5-7.cpp -- count words using C-style string#include <iostream>#include <cstring> // prototype for strcmp()const int STR_LIM = 50;int main(){using namespace std;char word[STR_LIM];int count = 0;cout << "Enter words (to stop, type the word done):\n";while (cin >> word && strcmp("done", word))++count;cout << "You entered a total of " << count << " words.\n"; return 0;}// pe5-9.cpp//nested loops#include <iostream>int main(){using namespace std; //introduces namespace stdint rows;int row;int col;int periods;cout << "Enter number of rows: ";cin >> rows;for (row = 1; row <= rows; row++){periods = rows - row;for (col = 1; col <= periods; col++)cout << '.';// col already has correct value for next loopfor ( ; col <= rows; col++)cout << '*';cout << endl;}return 0;}Chapter 6// pe6-1.cpp#include <iostream>#include <cctype>int main( ){using namespace std; //introduces namespace stdchar 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(ch);}return 0;}// pe6-3.cpp#include <iostream>int main(void){using namespace std;cout << "Please enter one of the following choices:\n";cout << "c) carnivore p) pianist\n"<< "t) tree g) game\n";char ch;cin >> ch;while (ch != 'c' && ch != 'p' && ch != 't' && ch != 'g'){cout << "Please enter a c, p, t, or g: ";cin >> ch;}switch (ch){case 'c' : cout << "A cat is a carnivore.\n";break;case 'p' : cout << "Radu Lupu is a pianist.\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 shouldn't get here!\n"; }return 0;}// pe6-5.cpp// Neutronia taxation#include <iostream>const double LEV1 = 5000;const double LEV2 = 15000;const double LEV3 = 35000;const double RATE1 = 0.10;const double RATE2 = 0.15;const double RATE3 = 0.20;int main( ){using namespace std;double income;double tax;cout << "Enter your annual income in tvarps: ";cin >> 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);elsetax = RATE1 * (LEV2 - LEV1) + RATE2 * (LEV3 - LEV2)+ RATE3 * (income - LEV3);cout << "You owe Neutronia " << tax << " tvarps in taxes.\n"; return 0;}// pe6-7.cpp#include <iostream>#include <string>int main(){using namespace std;string word;char ch;int vowel = 0;int consonant = 0;int other = 0;cout << "Enter words (q to quit):\n";cin >> word;while ( word != "q"){ch = tolower(word[0]);if (isalpha(ch)){if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')vowel++;elseconsonant++;}elseother++;cin >> word;}cout << vowel <<" words beginning with vowels\n";cout << consonant << " words beginning with consonants\n";cout << other << " others\n";return 0;}// pe6-8.cpp -- counting characters#include <iostream>#include <fstream> // file I/O suppport#include <cstdlib> // support for exit()const int SIZE = 60;int main(){using namespace std;char filename[SIZE];char ch;ifstream inFile; // object for handling file inputcout << "Enter name of data file: ";cin.getline(filename, SIZE);inFile.open(filename); // associate inFile with a fileif (!inFile.is_open()) // failed to open file{cout << "Could not open the file " << filename << endl;cout << "Program terminating.\n";exit(EXIT_FAILURE);}int count = 0; // number of items readinFile >> ch; // get first valuewhile (inFile.good()) // while input good and not at EOF {count++; // one more item readinFile >> ch; // get next value}cout << count << " characters in " << filename << endl;inFile.close(); // finished with the filereturn 0;}Chapter 7//pe7-1.cpp -- harmonic mean#include <iostream>double h_mean(double x, double y);int main(void){using namespace std;double x,y;cout << "Enter two numbers (a 0 terminates): ";while (cin >> x >> y && x * y != 0)cout << "harmonic mean of " << x << " and "<< y << " = " << h_mean(x,y) << "\n";/* or do the reading and testing in two parts:while (cin >> x && x != 0){cin >> y;if (y == 0)break;...*/cout << "Bye\n";return 0;}double h_mean(double x, double y){return 2.0 * x * y / (x + y);}// pe7-3.cpp#include <iostream>struct box {char maker[40];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 providedsetbox(&carton);showbox(carton);return 0;}void showbox(box b){using namespace std;cout << "Box maker: " << b.maker<< "\nheight: " << b.height<< "\nlwidth: " << b.width<< "\nlength: " << b.length<< "\nvolume: " << b.volume << "\n";}void setbox(box * pb){pb->volume = pb->height * pb->width * pb->length;}// pe7-4.cpp -- probability of winning#include <iostream>long double probability(unsigned numbers, unsigned picks);int main(){using namespace std;double total, choices;double mtotal;double probability1, probability2;cout << "Enter total number of game card choices and\n""number of picks allowed for the field:\n";while ((cin >> total >> choices) && choices <= total){cout << "Enter total number of game card choices ""for the mega number:\n";if (!(cin >> 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 * probability2; // compute the probability cout << " of winning.\n";cout << "Next set of numbers (q to quit): ";}cout << "bye\n";return 0;}// the following function calculates the probability of picking picks// numbers correctly from numbers choiceslong double probability(unsigned numbers, unsigned picks){long double result = 1.0; // here come some local variablesunsigned p;for (n = numbers, p = picks; p > 0; n--, p--)result = result * n / p ;return result;}// pe7-6.cpp#include <iostream>int Fill_array(double ar[], int size);void Show_array(const double ar[], int size);void Reverse_array(double ar[], int size);const int LIMIT = 10;int main( ){using namespace std;double values[LIMIT];int entries = Fill_array(values, LIMIT);cout << "Array values:\n";Show_array(values, entries);cout << "Array reversed:\n";Reverse_array(values, entries);Show_array(values, entries);cout << "All but end values reversed:\n";Reverse_array(values + 1, entries - 2);Show_array(values, entries);return 0;}int Fill_array(double ar[], int size){using namespace std;int n;cout << "Enter up to " << size << " values (q to quit):\n"; for (n = 0; n < size; n++){cin >> ar[n];if (!cin)break;}return n;}void Show_array(const double ar[], int size){using namespace std;int n;for (n = 0; n < size; n++){cout << ar[n];if (n % 8 == 7)cout << endl;elsecout << ' ';}if (n % 8 != 0)cout << endl;}void Reverse_array(double ar[], int size){int i, j;for (i = 0, j = size - 1; i < j; i++, j--){temp = ar[i];ar[i] = ar[j];ar[j] = temp;}}//pe7-9.cpp#include <iostream>double calculate(double x, double y, double (*pf)(double, double)); double add(double x, double y);double sub(double x, double y);double mean(double x, double y);int main(void){using namespace std;double (*pf[3])(double,double) = {add, sub, mean};char * op[3] = {"sum", "difference", "mean"};double a, b;cout << "Enter pairs of numbers (q to quit): ";int i;while (cin >> a >> b){// using function namescout << calculate(a, b, add) << " = sum\n";cout << calculate(a, b, mean) << " = mean\n";// using pointersfor (i = 0; i < 3; i++)cout << calculate(a, b, pf[i]) << " = "<< op[i] << "\n";}cout << "Done!\n";return 0;}double calculate(double x, double y, double (*pf)(double, double)) {return (*pf)(x, y);}double add(double x, double y){return x + y;}double sub(double x, double y){return x - y;}double mean(double x, double y){return (x + y) / 2.0;}Chapter 8// pe8-1.cpp#include <iostream>void silly(const char * s, int n = 0);int main(void){using namespace std;char * p1 = "Why me?\n";silly(p1);for (int i = 0; i < 3; i++){cout << i << " = i\n";silly(p1, i);}cout << "Done\n";return 0;}void silly(const char * s, int n){using namespace std;static int uses = 0;int lim = ++uses;if (n == 0)lim = 1;for (int i = 0; i < lim; i++)cout << s;}// pe8-4.cpp#include <iostream>#include <cstring> // for strlen(), strcpy()using namespace std;struct stringy {char * str; // points to a stringint ct; // length of string (not counting '\0')};void show(const char *str, int cnt = 1);void show(const stringy & bny, int cnt = 1);void set(stringy & bny, const char * str);int main(void){stringy beany;char testing[] = "Reality isn't what it used to be.";set(beany, testing); // first argument is a reference, // allocates space to hold copy of testing,// sets str member of beany to point to the// new block, copies testing to new block,// and sets ct member of beanyshow(beany); // prints member string onceshow(beany, 2); // prints member string twicetesting[0] = 'D';testing[1] = 'u';show(testing); // prints testing string onceshow(testing, 3); // prints testing string thrice show("Done!");return 0;}void show(const char *str, int cnt){while(cnt-- > 0){cout << str << endl;}}void show(const stringy & bny, int cnt){while(cnt-- > 0){cout << bny.str << endl;}}void set(stringy & bny, const char * str){bny.ct = strlen(str);bny.str = new char[bny.ct+1];strcpy(bny.str, str);}// pe8-5.cpp#include <iostream>template <class T>T max5(T ar[]){int n;T max = ar[0];for (n = 1; n < 5; n++)if (ar[n] > max)max = ar[n];return max;}const int LIMIT = 5;int main( ){using namespace std;double ard[LIMIT] = { -3.4, 8.1, -76.4, 34.4, 2.4}; int ari[LIMIT] = {2, 3, 8, 1, 9};double md;int mi;md = max5(ard);mi = max5(ari);cout << "md = " << md << endl;cout << "mi = " << mi << endl;return 0;}Chapter 9PE 9-1// pe9-golf.h - for pe9-1.cppconst int Len = 40;struct golf{char fullname[Len];int handicap;};// non-interactive version// function sets golf structure to provided name, handicap// using values passed as arguments to the functionvoid setgolf(golf & g, const char * name, int hc);// interactive version// function solicits name and handicap from user// and sets the members of g to the values entered// returns 1 if name is entered, 0 if name is empty stringint setgolf(golf & g);// function resets handicap to new valuevoid handicap(golf & g, int hc);// function displays contents of golf structurevoid showgolf(const golf & g);// pe9-golf.cpp - for pe9-1.cpp#include <iostream>#include "pe9-golf.h"#include <cstring>// function solicits name and handicap from user// returns 1 if name is entered, 0 if name is empty stringint setgolf(golf & g){std::cout << "Please enter golfer's full name: ";std::cin.getline(g.fullname, Len);if (g.fullname[0] == '\0')return 0; // premature terminationstd::cout << "Please enter handicap for " << g.fullname << ": "; while (!(std::cin >> g.handicap)){std::cin.clear();std::cout << "Please enter an integer: ";}while (std::cin.get() != '\n')continue;return 1;}// function sets golf structure to provided name, handicapvoid setgolf(golf & g, const char * name, int hc){std::strcpy(g.fullname, name);g.handicap = hc;}// function resets handicap to new valuevoid handicap(golf & g, int hc){g.handicap = hc;}// function displays contents of golf structurevoid showgolf(const golf & g){std::cout << "Golfer: " << g.fullname << "\n";std::cout << "Handicap: " << g.handicap << "\n\n";}// pe9-1.cpp#include <iostream>#include "pe9-golf.h"// link with pe9-golf.cppconst int Mems = 5;int main(void){using namespace std;golf team[Mems];cout << "Enter up to " << Mems << " golf team members:\n";int i;for (i = 0; i < Mems; i++)if (setgolf(team[i]) == 0)break;for (int j = 0; j < i; j++)showgolf(team[j]);setgolf(team[0], "Fred Norman", 5);showgolf(team[0]);handicap(team[0], 3);showgolf(team[0]);return 0;}PE 9-3//pe9-3.cpp -- using placement new#include <iostream>#include <new>#include <cstring>struct chaff{char dross[20];int slag;};// char buffer[500]; // option 1int main(){using std::cout;using std::endl;chaff *p1;int i;char * buffer = new char [500]; // option 2p1 = new (buffer) chaff[2]; // place structures in buffer std::strcpy(p1[0].dross, "Horse Feathers");p1[0].slag = 13;std::strcpy(p1[1].dross, "Piffle");p1[1].slag = -39;for (i = 0; i < 2; i++)cout << p1[i].dross << ": " << p1[i].slag << endl;delete [] buffer; // option 2return 0;}Chapter 10PE 10-1// pe10-1.cpp#include <iostream>#include <cstring>// class declarationclass BankAccount{private:char name[40];char acctnum[25];double balance;public:BankAccount(char * client = "no one", char * num = "0",double bal = 0.0); void show(void) const; void deposit(double cash); void withdraw(double cash); };// method definitionsBankAccount::BankAccount(char * client, char * num, double bal) {std::strncpy(name, client, 39);name[39] = '\0';std::strncpy(acctnum, num, 24);acctnum[24] = '\0';balance = bal;}void BankAccount::show(void) const{using std::cout;using std:: endl;cout << "Client: " << name << endl;cout << "Account Number: " << acctnum << endl;cout << "Balance: " << balance << endl;}void BankAccount::deposit(double cash){if (cash >= 0)balance += cash;elsestd::cout << "Illegal transaction attempted";}void BankAccount::withdraw(double cash){if (cash < 0)std::cout << "Illegal transaction attempted";else if (cash <= balance)balance -=cash;elsestd::cout << "Request denied due to insufficient funds.\n"; }// sample useint main(){BankAccount bird;BankAccount frog("Kermit", "croak322", 123.00);bird.show();frog.show();bird = BankAccount("Chipper", "peep8282", 214.00);bird.show();frog.deposit(20);frog.show();frog.withdraw(4000);frog.show();frog.withdraw(50);frog.show();}PE10-4// pe10-4.h#ifndef SALES__#define SALES__namespace SALES{const int QUARTERS = 4;class Sales{private:double sales[QUARTERS];double average;double max;double min;public:// default constructorSales();// copies the lesser of 4 or n items from the array ar// to the sales member and computes and stores the// average, maximum, and minimum values of the entered items;// remaining elements of sales, if any, set to 0Sales(const double ar[], int n);// gathers sales for 4 quarters interactively, stores them// in the sales member of object and computes and stores the// average, maximum, and minumum valuesvoid setSales();// display all information in objectvoid showSales();};}#endif。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章概览编程练习1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。
该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸= cm)的程序。
他们希望建立的该程序可提示用户输入英寸值。
您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。
1.将英寸值转化为厘米值2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束.第二章 C语言概述编程练习1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。
输出应如下所示(当然里面要换成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一个输出语句'第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<>int main(void){、printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");return(0);},2.编写一个程序输出您的姓名及地址。
#include<>int main(void){printf("Name:He Jin\n");…printf("Address:CAUC\n");return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。
不用考虑平年( fractional year)和闰年(leapyear)的问题。
#include<>(int main(void){int age=22;printf("Age:%d\n",age);printf("Day:%d\n",age*356);return(0);}%4.编写一个能够产生下面输出的程序:For he's a jolly good fellow!For he's a jolly good fellow!For he's a jolly good fellow!Which nobody can deny!程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。
#include<>|void printf1(void);void printf2(void);int main(void){printf1();printf1();;printf1();printf2();return(0);}void printf1(void){printf("For he's a jolly good fellow!\n");《}void printf2(void){printf("Which nobody can deny!\n");}5.编写一个程序,创建一个名为toes的整数变量。
让程序把toes设置为10。
再让程序计算两个toes的和以及toes的平方。
程序应该输出所有的3个值,并分别标识它们。
]#include<>int main(void){int toes=10;int toes_add;int toes_square;【toes_add=toes+toes;toes_square=toes*toes;printf("toes=%d\ntoes_add=%d\ntoes_square=%d\n",toes,toes_add,toes_square);return(0);}6.编写一个能够产生下列输出的程序:Smile ! Smile ! Smile(Smile ! Smile !Smile !在程序中定义一个能显示字符串smile卜一次的函数,并在需要时使用该函数。
#include<>void display(void);…int main(void){display();display();display();printf("\n");display();display();·printf("\n");display();printf("\n");return(0);}void display(void){—printf("Smile!");}7.编写一个程序,程序中要调用名为one_three()的函数。
该函数要在一行中显示单词"one",再调用two()函数,然后再在另一行中显示单词"three"。
函数two()应该能在一行中显示单词"two"。
main()函数应该在调用one_three()函数之前显示短语"starting now:",函数调用之后要显示"done!"o这样,最后的输出结果应如下所示:starting nowonetwothree:done !#include<>void one_three(void);void two(void);int main(void)|{printf("starting now:\n");one_three();printf("done!\n");return(0);}void one_three(void)!{printf("One\n");two();printf("Three\n");}void two(void){(printf("Two\n");}第三章数据和C编程练习1.通过试验的方法(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。
#include<>)int main(void){unsigned int a=95;float b=;float c=b*10;float d=;printf("%u+1=%u\n",a,a+1);[printf("%e*10=%e\n",b,c);printf("%f/10=%f\n",d,d/10);return(0);}2.编写一个程序,要求输入一个ASCII码值(如66),然后输出相应的字符。
#include<>·int main(void){char a;scanf("%d",&a);printf("%c\n",a);return(0);}#3.编写一个程序,发出警报声,并打印下列文字:Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that!"#include<>int main(void){】printf("\aStartled by the sudden sound,Sally shouted,\"By the Great pumpkin,what was that!\"\n");return(0);}4.编写一个程序,读入一个浮点数,并分别以小数形式和指数形式打印。
输出应如同下面格式(实际显示的指数位数也许因系统而不同):The input is or +001.#include<>@int main(void){float a;scanf("%f",&a);printf("The input is %f or %e\n",a,a);return(0);}/5.一年约有×l07S。
编写一个程序,要求输入您的年龄,然后显示该年龄合多少秒。
#include<>int main(void){float a;《printf("Please input your age:");scanf("%f",&a);printf("Your age is %e seconds\n",a*;return(0);}个水分子的质量约为×10^-23g,l夸脱水大约有950g。
编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少个水分子。
'#include<>int main(void){float a;printf("Please input how much quarts the water is:");scanf("%f",&a);printf("%f quarts water has %e molecules.\n",a,a*950/3E-23);]return(0);}7. 1英寸等于。
编写一个程序,要求输入您的身高(以英寸为单位),然后显示该身高值等于多少厘米。
如果您愿意,也可以要求以厘米为单位输入身高,然后以英寸为单位进行显示。
#include<>|int main(void){float a;printf("Please input your height by inches:");scanf("%f",&a);printf("Your height is %fcm.\n",a*;return(0);}}第4章字符串和格式化输入/输出编程练习1.编写一个程序,要求输入名字和姓氏,然后以“名字,姓氏”的格式打印。
#include<>@int main(void){char surname[20],firstname[20];printf("Please input your firstname and surname:");scanf("%s",firstname);scanf("%s",surname);printf("You are %s,%s.\n",firstname,surname);return(0);~}2.编写一个程序,要求输入名字,并执行以下操作:a.把名字引在双引号中打印出来。