收藏 分销(赏)

c++primerplus(第六版)课后编程练习答案.doc

上传人:精**** 文档编号:2492927 上传时间:2024-05-30 格式:DOC 页数:19 大小:85KB
下载 相关 举报
c++primerplus(第六版)课后编程练习答案.doc_第1页
第1页 / 共19页
c++primerplus(第六版)课后编程练习答案.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述
第二章:开始学习C++ //ex2.1--display your name and address #include<iostream> int main(void) { using namespace std; cout<<"My name is liao chunguang and I live in hunan chenzhou.\n”; } //ex2.2--convert the furlong units to yard uints-把浪单位换位码单位 #include<iostream> double fur2yd(double); int main() { using namespace std; cout<<"enter the distance measured by furlong units:"; double fur; cin>>fur; cout<<"convert the furlong to yard"<<endl; double yd; yd=fur2yd(fur); cout<<fur<<" furlong is "<<yd<<" yard"<<endl; return 0; } double fur2yd(double t) { return 220*t; } //ex2.3-每个函数都被调用两次 #include<iostream> void mice(); void see(); using namespace std; int main() { mice(); mice(); see(); see(); return 0; } void mice() { cout<<"three blind mice"<<endl; } void see() { cout<<"see how they run"<<endl; } //ex2.4 #include<iostream> int main() { using namespace std; cout<<"Enter your age:"; int age; cin>>age; int month; month=age*12; cout<<age<<" years is "<<month<<" months"<<endl; return 0; } //ex2.5---convert the Celsius valve to Fahrenheit value #include<iostream> double C2F(double); int main() { using namespace std; cout<<"please enter a Celsius value:"; double C; cin>>C; double F; F=C2F(C); cout<<C<<" degrees Celsius is "<<F<<" degrees Fahrenheit."<<endl; return 0; } double C2F(double t) { return 1.8*t+32; } //ex2.6---convert the light years valve to astronomical units--把光年转换为天文单位 #include<iostream> double convert(double);//函数原型 int main() { using namespace std; cout<<"Enter the number of light years:"; double light_years; cin>>light_years; double astro_units; astro_units=convert(light_years); cout<<light_years<<" light_years = "<<astro_units<<" astronomical units."<<endl; return 0; } double convert(double t) { return 63240*t;//1 光年=63240 天文单位 } //ex2.7--显示用户输入的小时数和分钟数 #include<iostream> void show(); main() { using namespace std; show(); return 0; } void show() { using namespace std; int h,m; cout<<"enter the number of hours:"; cin>>h; cout<<"enter the number of minutes:"; cin>>m; cout<<"Time:"<<h<<":"<<m<<endl; } 第三章:处理数据 //ex3.1—将身高用英尺(feet)和英寸(inch)表示 #include<iostream> const int inch_per_feet=12;// const常量--1feet=12inches--1英尺=12英寸 int main() { using namespace std; cout<<"please enter your height in inches:___\b\b\b";// \b表示为退格字符 int ht_inch; cin>>ht_inch; int ht_feet=ht_inch/inch_per_feet;//取商 int rm_inch=ht_inch%inch_per_feet;//取余 cout<<"your height is "<<ht_feet<<" feet,and " <<rm_inch<<" inches\n"; return 0; } //ex3.2--计算相应的body mass index(体重指数) #include<iostream> const int inch_per_feet=12; const double meter_per_inch=0.0254; const double pound_per_kilogram=2.2; int main() { using namespace std; cout<<"Please enter your height:"<<endl; cout<<"First,enter your height of feet part(输入你身高的英尺部分):_\b"; int ht_feet; cin>>ht_feet; cout<<"Second,enter your height of inch part(输入你身高的英寸部分):_\b"; int ht_inch; cin>>ht_inch; cout<<"Now,please enter your weight in pound:___\b\b\b"; double wt_pound; cin>>wt_pound; int inch; inch=ht_feet*inch_per_feet+ht_inch; double ht_meter; ht_meter=inch*meter_per_inch; double wt_kilogram; wt_kilogram=wt_pound/pound_per_kilogram; cout<<endl; cout<<"Your pensonal body information as follows:"<<endl; cout<<"身高:"<<inch<<"(英尺inch)\n"<<"身高:"<<ht_meter<<"(米meter)\n" <<"体重:"<<wt_kilogram<<"(千克kilogram)\n"; double BMI; BMI=wt_kilogram/(ht_meter*ht_meter); cout<<"your Body Mass Index(体重指数) is "<<BMI<<endl; return 0; } //ex3.3 以度,分,秒输入,以度输出 #include<iostream> const int minutes_per_degree=60; const int seconds_per_minute=60; int main() { using namespace std; cout<<"Enter a latitude in degrees,minutes,and seconds:\n"; cout<<"First,enter the degrees:"; int degree; cin>>degree; cout<<"Next,enter the minutes of arc:"; int minute; cin>>minute; cout<<"Fianlly,enter the seconds of arc:"; int second; cin>>second; double show_in_degree; show_in_degree=(double)degree+(double)minute/minutes_per_degree+(double)second/minutes_per_degree/seconds_per_minute; cout<<degree<<" degrees,"<<minute<<" minutes,"<<second<<"seconds ="<<show_in_degree<<" degrees\n"; return 0; } //ex3.4 #include<iostream> const int hours_per_day=24; const int minutes_per_hour=60; const int seconds_per_minute=60; int main() { using namespace std; cout<<"Enter the number of seconds:"; long seconds; cin>>seconds; int Day,Hour,Minute,Second; Day=seconds/seconds_per_minute/minutes_per_hour/hours_per_day; Hour=seconds/seconds_per_minute/minutes_per_hour%hours_per_day; Minute=seconds/seconds_per_minute%minutes_per_hour; Second=seconds%seconds_per_minute; cout<<seconds<<"seconds = "<<Day<<" days,"<<Hour<<" hours,"<<Minute<<" minutes,"<<Second<<" seconds\n"; return 0; } //ex3.5 #include<iostream> int main() { using namespace std; cout<<"Enter the world population:"; long long world_population; cin>>world_population; cout<<"Enter the population of the US:"; long long US_population; cin>>US_population; double percentage; percentage=(double)US_population/world_population*100; cout<<"The population of the US is "<<percentage<<"% of the world population.\n"; return 0; } //ex3.6  汽车耗油量-美国(mpg)or欧洲风格(L/100Km) #include<iostream> int main() {  using namespace std;  cout<<"Enter the miles of distance you have driven:";  double m_distance;  cin>>m_distance;  cout<<"Enter the gallons of gasoline you have used:";  double m_gasoline;  cin>>m_gasoline;  cout<<"Your car can run "<<m_distance/m_gasoline<<" miles per gallon\n";  cout<<"Computing by European style:\n";  cout<<"Enter the distance in kilometers:";  double k_distance;  cin>>k_distance;  cout<<"Enter the petrol in liters:";  double k_gasoline;  cin>>k_gasoline;  cout<<"In European style:"<<"your can used "<<100*k_gasoline/k_distance<<" liters of petrol per 100 kilometers\n";  return 0; } //ex3.7 automobile gasoline consumption-耗油量--欧洲风格(L/100Km)转换成美国风格(mpg) #include<iostream> int main() { using namespace std; cout<<"Enter the automobile gasoline consumption figure in\n" <<"European style(liters per 100 kilometers):"; double Euro_style; cin>>Euro_style; cout<<"Converts to U.S. style(miles per gallon):"<<endl; cout<<Euro_style<<" L/100Km = "<<62.14*3.875/Euro_style<<" mpg\n"; return 0; } // Note that 100 kilometers is 62.14 miles, and 1 gallon is 3.875 liters. //Thus, 19 mpg is about 12.4 L/100Km, and 27 mpg is about 8.7 L/100Km. Enter the automobile gasoline consumption figure in European style(liters per 100 kilometers):12.4 Converts to U.S. style(miles per gallon): 12.4 L/100Km = 19.4187 mpg Press any key to continue // ex3.7 automobile gasoline consumption-耗油量--美国风格(mpg)转换成欧洲风格(L/100Km) #include<iostream> int main() { using namespace std; cout<<"Enter the automobile gasoline consumption figure in\n" <<"U.S. style(miles per gallon):"; double US_style; cin>>US_style; cout<<"Converts to European style(miles per gallon):"<<endl; cout<<US_style<<" mpg = "<< 62.14*3.875/US_style<<"L/100Km\n"; return 0; } // Enter the automobile gasoline consumption figure in U.S. style(miles per gallon):19 Converts to European style(miles per gallon): 19 mpg = 12.6733L/100Km Press any key to continue 第四章 复合类型 //ex4.1 display the information of student #include<iostream> const int Asize=20; using namespace std; struct student//定义结构描述 { char firstname[Asize]; char lastname[Asize]; char grade; int age; }; void display(student);//函数原型放在结构描述后 int main() { cout<<"what is your first name?"<<endl; student lcg;//创建结构变量(结构数据对象) cin.getline(lcg.firstname,Asize); cout<<"what is your last name?"<<endl; cin.getline(lcg.lastname,Asize); cout<<"what letter grade do you deserve?"<<endl; cin>>lcg.grade; cout<<"what is your age?"<<endl; cin>>lcg.age; display(lcg); return 0; } void display(student name) { cout<<"Name: "<<name.firstname<<","<<name.lastname<<endl; cout<<"Grade:"<<char(name.grade+1)<<endl; cout<<"Age:"<<name.age<<endl; } //ex4.2 use the string-class instead of char-array #include<iostream> #include<string> int main() { using namespace std; string name,dessert; cout<<"Enter your name: \n"; getline(cin,name); cout<<"Enter your favorite dessert: \n"; getline(cin,dessert); cout<<"I have some delicious "<<dessert; cout<<" for you, "<<name<<".\n"; return 0; } //有时候会遇到需要按下两次回车键才能正确的显示结果,这是vc++6.0的一个BUG,更改如下:else if (_Tr::eq((_E)_C, _D)) {_Chg = true; _I.rdbuf()->sbumpc();//修改后的 break; } ex4.3 输入其名和姓,并组合显示 #include<iostream> #include<cstring> const int Asize=20; int main() { using namespace std; char fname[Asize]; char lname[Asize]; char fullname[2*Asize+1]; cout<<"Enter your first name:";//输入名字,存储在fname[]数组中 cin.getline(fname,Asize); cout<<"Enter your last name:";//输入姓,存储在lname[]数组中 cin.getline(lname,Asize); strncpy(fullname,lname,Asize);//把姓lname复制到fullname空数组中 strcat(fullname,", ");//把“, ”附加到上述fullname尾部 strncat(fullname,fname,Asize);//把fname名字附加到上述fullname尾部 fullname[2*Asize]='\0';//为防止字符型数组溢出,在数组结尾添加结束符 cout<<"Here's the information in a single string:"<<fullname<<endl;//显示组合结果 return 0; } //ex4.4 使用string对象 存储、显示组合结果 #include<iostream> #include<string> int main() { using namespace std; string fname,lname,attach,fullname; cout<<"Enter your first name:"; getline(cin,fname);//note:将一行输入读取到string类对象中使用的是getline(cin,str) //它没有使用句点表示法,所以不是类方法 cout<<"Enter your last name:"; getline(cin,lname); attach=", "; fullname=lname+attach+fname; cout<<"Here's the information in a single string:"<<fullname<<endl; return 0; } //ex4.5 declare a struct and initialize it 声明结果并创建一个变量 #include<iostream> const int Asize=20; struct CandyBar { char brand[Asize]; double weight; int calory; }; int main() { using namespace std; CandyBar snack={"Mocha Munch",2.3,350}; cout<<"Here's the information of snack:\n"; cout<<"brand:"<<snack.brand<<endl; cout<<"weight:"<<snack.weight<<endl; cout<<"calory:"<<snack.calory<<endl; return 0; } //ex4.6 结构数组的声明及初始化 #include<iostream> const int Asize=20; struct CandyBar { char brand[Asize]; double weight; int calory; }; int main() { using namespace std; CandyBar snack[3]={ {"Mocha Munch",2.3,350}, {"XuFuJi",1.1,300}, {"Alps",0.4,100} }; for(int i=0;i<3;i++)//利用for循环来显示snack变量的内容 { cout<<snack[i].brand<<endl <<snack[i].weight<<endl <<snack[i].calory<<endl<<endl; } return 0; } //ex4.7 pizza披萨饼 #include<iostream> #include<string> const int Size=20; struct pizza//声明结构 { char company[Size]; double diameter; double weight; }; int main() { using namespace std; pizza pie;//创建一个名为pie的结构变量 cout<<"What's the name of pizza company:"; cin.getline(pany,Size); cout<<"What's the diameter of pizza:"; cin>>pie.diameter; cout<<"What's the weight of pizza:"; cin>>pie.weight; cout<<"company:"<<pany<<endl; cout<<"diameter:"<<pie.diameter<<"inches"<<endl; cout<<"weight:"<<pie.weight<<"ounches"<<endl; return 0; } //ex4.8 pizza pie 披萨饼 使用new创建动态结构 #include<iostream> #include<string> const int Size=20; struct pizza//声明结构 { char company[Size]; double diameter; double weight; }; int main() { using namespace std; pizza *pie=new pizza;//使用new创建动态结构 cout<<"What's the diameter of pizza:"; cin>>pie->diameter; cin.get();//读取下一个字符 cout<<"What's the name of pizza company:"; cin.get(pie->company,Size); cout<<"What's the weight of pizza:"; cin>>pie->weight; cout<<"diameter:"<<pie->diameter<<" inches"<<endl; cout<<"company:"<<pie->company<<endl; cout<<"weight:"<<pie->weight<<" ounches"<<endl; delete pie;//delete释放内存 return 0; } //ex.4.9 使用new动态分配数组—方法1 #include<iostream> #include<string> using namespace std; struct CandyBar { string brand; double weight; int calory; }; int main() { CandyBar *snack= new CandyBar[3]; snack[0].brand="A";//单个初始化由new动态分配的内存 snack[0].weight=1.1; snack[0].calory=200; snack[1].brand="B"; snack[1].weight=2.2; snack[1].calory=400; snack[2].brand="C"; snack[2].weight=4.4; snack[2].calory=500; for(int i=0;i<3;i++) { cout << " brand: " << snack[i].brand << endl; cout << " weight: " << snack[i].weight << endl; cout << " calorie: " << snack[i].calory << endl<<endl; } delete [] snack; return 0; } //ex.4.10 数组—方法1 #include <iostream> int main() { using namespace std; const int Size = 3; int success[Size]; cout<<"Enter your success of the three times 40 meters running:\n"; cin >> success[0]>>success[1]>>success[2]; cout<<"success1:"<<success[0]<<endl; cout<<"success2:"<<success[1]<<endl; cout<<"success3:"<<success[2]<<endl; double average=(success[0]+success[1]+success[2])/3; cout<<"average:"<<average<<endl; return 0; } //ex.4.10 array—方法2 #include <iostream> #include <array> int main() { using namespace std; array<double,4>ad={0}; cout<<"Enter your success of the three times 40 meters running:\n"; cin >> ad[0]>>ad[1]>>ad[2]; cout<<"success1:"<<ad[0]<<endl; cout<<"success2:"<<ad[1]<<endl; cout<<"success3:"<<ad[2]<<endl; ad[3]=(ad[0]+ad[1]+ad[2])/3; cout<<"average:"<<ad[3]<<endl; return 0; } 第五章 循环和关系表达式 //ex.5.1 #include <iostream> int main() { using namespace std; cout<<"Please enter two integers: "; int num1,num2; cin>>num1>>num2; int sum=0; for(int temp=num1;temp<=num2;++temp)//or temp++ sum+=temp; cout<<"The sum from "<<num1<<" to "<<num2<<" is "<<sum<<endl; return 0; } //ex.5.2 #include <iostream> #include<array> int main() { using namespace std; array<long double,101>ad={0}; ad[1]=ad[0]=1L; for(int i=2;i<101;i++) ad[i]=i*ad[i-1]; for(int i=0;i<101;i++) cout<<i<<"! = "<<ad[i]<<endl; return 0; } //ex.5.3 #include <iostream> int main() { using namespace std; cout<<"Please enter an integer: "; int sum=0,num; while((cin>>num)&&num!=0) { sum+=num; cout<<"So far, the sum is "<<sum<<endl; cout<<"Please enter an integer: "; } return 0; } //ex.5.4 #include <iostream> int main() { using namespace std; double sum1,sum2; sum1=sum2=0.0; int year=0; while(sum2<=sum1) { ++year; sum1+=10; sum2=(100+sum2)*0.05+sum2; } cout<<"经过"<<year<<"年后,Cleo的投资价值才能超过Daphne的投资价值。"<<endl; cout<<"此时,Cleo的投资价值为"<<sum1<<",而Daphne的投资价值为"<<sum2<<endl; return 0; } //ex.5.5 #include <iostream> const int MONTHS = 12; const char* months[MONTHS
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服