C++ Primer Plus章节编程练习第三章
1
题目
编写一个小程序,要求用户使用一个整数指出自己的身高(单位为英寸),然后将身高转换为英尺和英寸。该程序使用下划线字符来指示输入位置。另外,使用个const符号常量来表示转换因子。
题解
| #include<iostream> |
| int main(){ |
| using namespace std; |
| const int k_conversion_flag=12; |
| int input; |
| cout<<"Please enter your height in inches:______\b\b\b\b\b\b"; |
| cin>>input; |
| cout<<"Your height: "<<input/k_conversion_flag |
| <<" feet, "<<input%k_conversion_flag<<" inches.\n"; |
| return 0; |
| } |
2
题目
编写一个小程序,要求以几英尺几英寸的方式输入其身高,并以磅为单位输入其体重。(使用3个变量来存储这些信息。)该程序报告其BMI ( Body Mass Index,体重指数)。为了计算BMI,该程序以英寸的方式指出用户的身高(1英尺为12英寸),并将以英寸为单位的身高转换为以米为单位的身高(1英寸=0.0254米)。然后,将以磅为单位的体重转换为以千克为单位的体重(1千克=2.2磅)。最后,计算相应的BMI---体重-(千克)除以身高(米)的平方。用符号常量表示各种转换因子。
题解
| #include<iostream> |
| int main(){ |
| using namespace std; |
| |
| const int kfeet2inches=12; |
| const double kinches2meter=0.0254; |
| const double kkg2pounds=2.2; |
| int feet_num,inches_num,pounds_num; |
| |
| double height,weight; |
| cout<<"Please enter your height (exp:10 feet, 2 inches): "; |
| scanf("%d feet, %d inches",&feet_num,&inches_num); |
| cout<<"Please enter your weight (exp:110 pounds): "; |
| scanf("%d pounds",£s_num); |
| |
| height=(feet_num*kfeet2inches+inches_num)*kinches2meter; |
| weight=pounds_num/kkg2pounds; |
| cout<<"You BMI = "<<height/(weight*weight)<<endl; |
| return 0; |
| } |
| |
| |
| |
| |
| |
3
题目
编写一个程序,要求用户以度、分、秒的方式输入一个纬度,然后以度为单位显示该纬度。1度为60分,1分等于60秒,请以符号常量的方式表示这些值。对于每个输入值,应使用一个独立的变量存储它。
下面是该程序运行时的情况:
| Enter a latitude in degrees, minutes, and seconds: |
| First, enter the degree: 37 |
| Next, enter the minutes of arc: 51 |
| Finally enter the seconds of arc: 19 |
| 37 degrees, 51 minutes, 19 seconds = 37.8553 degrees |
题解
| #include<iostream> |
| int main(){ |
| using namespace std; |
| const int kflag=60; |
| int degree,minutes,seconds; |
| double output; |
| cout<<"Enter a latitude in degree, minutes, and seconds:\n"; |
| cout<<"First, enter the degree: ";cin>>degree; |
| cout<<"Next, enter the minutes of arc: ";cin>>minutes; |
| cout<<"Finally, enter the seconds of arc: ";cin>>seconds; |
| output=1.0*degree+1.0*minutes/kflag+1.0*seconds/(kflag*kflag); |
| cout<<degree<<" degrees, "<<minutes<<" minutes, "<<seconds<<" seconds = "<<output<<" degrees\n"; |
| return 0; |
| } |
| |
| |
| |
| |
| |
| |
| |
4
题目
编写一个程序,要求用户以整数方式输入秒数(使用long或long long 变量存储),然后以天、小时、分钟和秒的方式显示这段时间。使用符号常量来表示每天有多少小时、每小时有多少分钟以及每分钟有多少秒。该程序的输出应与下面类似:
| Enter the number of seconds: 31600000 |
| 31600000 seconds = 365 days,17 hours, 46 minutes, 40 seconds |
题解
| #include<iostream> |
| int main(){ |
| using namespace std; |
| const int khour=24; |
| const int kminutes=60; |
| const int kseconds=60; |
| int day,hour,minute,second; |
| long long input,temp; |
| cout<<"Enter the number of seconds: "; |
| cin>>input; |
| temp=input; |
| second=input%kseconds; input/=kseconds; |
| minute=input%kminutes; input/=kminutes; |
| hour=input%khour; |
| day=input/=khour; |
| cout<<temp<<" seconds = "<<day<<" days, "<<hour<<" hours, " |
| <<minute<<" minutes, "<<second<<" seconds\n"; |
| return 0; |
| } |
| |
| |
| |
| |
5
题目
编写一个程序,要求用户输入全球当前的人口和美国当前的人口( 或其他国家的人口)。将这些信息存储在long long变量中,并让程序显示美国(或其他国家)的人口占全球人口的百分比。该程序的输出应与下面类似:
| Enter the world's population: 6898758899 |
| Enter the population of the US: 310783781 |
| The population of the US is 4.50492% of the world population. |
题解
| #include<iostream> |
| int main(){ |
| using namespace std; |
| typedef long long ll; |
| ll word_population,us_population; |
| cout<<"Enter the world's population: "; |
| cin>>word_population; |
| cout<<"Enter the population of the US: "; |
| cin>>us_population; |
| cout<<"The population of the US is "<<100*(1.0*us_population/word_population) |
| <<"\% of the world population.\n"; |
| return 0; |
| } |
| |
| |
| |
| |
| |
6
题目
编写一个程序,要求用户输入驱车里程(英里)和使用汽油量(加仑),然后指出汽车耗油量为--加仑的里程。如果愿意,也可以让程序要求用户以公里为单位输入距离,并以拜为单位输入汽油量,然后指出欧洲风格的结果---即每100公里的耗油量(升)。
题解
| #include<iostream> |
| int main(){ |
| using namespace std; |
| int miles,gallons; |
| cout<<"Please enter vehicle mileage in miles: "; |
| cin>>miles; |
| cout<<"Please enter the vehicle fuel consumption: "; |
| cin>>gallons; |
| cout<<"Fuel consumption per mile of your car is "<<gallons*1.0/miles<<endl; |
| return 0; |
| } |
7
题目
编写一个程序,要求用户按欧洲风格输入汽车的耗油量(每100公里消耗的汽油量(升)),然后将其转换为美国风格的耗油量---每加仑多少英里。注意,除了使用不同的单位计量外,美国方法(距离/燃料)与欧洲方法(燃料/距离)相反。100公里等于62.14英里,1加仑等于3.875升。因此,19mpg大约合12.4/100km,l27mpg 大约合8.71/100km。
题解
| #include<iostream> |
| int main(){ |
| using namespace std; |
| |
| const double gallon2l=3.875; |
| const double hundrandkm2miles=62.14; |
| double lprekm,mpg; |
| cout<<"Please enter fuel consumption of your car in L/100km: "; |
| cin>>lprekm; |
| |
| mpg=hundrandkm2miles/(lprekm/gallon2l); |
| cout<<"Fuel consumption of your car in US-style is: "<<mpg<<"mpg\n"; |
| return 0; |
| } |
Comments | NOTHING