C++ Primer Plus 第六版 编程练习题及详细答案

答案分两种,第一种为蓝桥官方答案,第二种为我个人学习编写。

第二章

2.1

编写一个C++程序,它显示您的姓名和地址。

cpp 复制代码
#include<iostream> //蓝桥官方
int main()
{
    char myname[] = "myname";
    char myaddr[] = "中国";
    std::cout<<myname<<" "<<myaddr<<std::endl;
    return 0;

}
cpp 复制代码
#include <iostream> //个人
int main()
{
    std::cout<<"姓名"<<std::endl;
    std::cout<<"好长好长的地址呀"<<std::endl;
    return 0;
}

2.2

编写一个C++程序,它要求用户输入一个以long为单位的距离,然后将它转换为码(一long等于220码)。

cpp 复制代码
#include<iostream> //蓝桥官方
int main()
{
    long long int  length_long,length_yard;
    std::cin >> length_long;
    length_yard = length_long * 220;
    std::cout<<length_yard<<std::endl;
    return 0;

}
cpp 复制代码
#include <iostream> //个人
int main()
{
	int l, m;
	std::cin >> l;
	m = 220 * l;
	std::cout << m << std::endl;
	return 0;
}

2.3

编写一个C++程序,它使用3个用户定义的函数(包括main()),并生成下面的输出:

Three blind mice

Three blind mice

See how they run

See how they run

cpp 复制代码
#include<iostream> //蓝桥官方
void print1();
void print2();

int main()
{
    print1();
    print1();
    print2();
    print2();
    return 0;

}
void print1()
{
    std::cout<<"Three blind mice"<<std::endl;
}

void print2()
{
    std::cout<<"See how they run"<<std::endl;
}
cpp 复制代码
#include <iostream> //个人

void mice(void);
void run(void);

int main()
{
    mice();
    mice();
    run();
    run();
    return 0;
}


void mice(void)
{
    std::cout<<"Three blind mice"<<std::endl;
}

void run(void)
{
    std::cout<<"See how they run"<<std::endl;
}
cpp 复制代码
#include <iostream> //个人

void mice(void);
void run(void);

int main()
{
    mice();
    mice();
    run();
    run();
    return 0;
}


void mice(void)
{
    std::cout<<"Three blind mice"<<std::endl;
}

void run(void)
{
    std::cout<<"See how they run"<<std::endl;
}

其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次,并生成其余的输出。

2.4

编写一个程序,让用户输入其年龄,然后显示该年龄包含多少个月,如下所示:

Enter your age: 29

Your age in months is 348.

cpp 复制代码
#include<iostream> //蓝桥官方
int main()
{
    int  year,month;
    std::cout<<"Enter your age: ";
    std::cin >> year;

    month = year * 12;

    std::cout<<month<<std::endl;;
    return 0;

}
cpp 复制代码
#include <iostream> //个人
int main()
{
    std::cout<<"请输入你的年龄:";
    int age;
    std::cin>>age;
    std::cout<<"您度过了"<<age*12<<"个月"<<std::endl;
    return 0;
}

2.5

编写一个程序,其中的main()调用一个用户定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:

Please enter a Celsius value: 20

20 degrees Celsius is 68 degrees Fahrenheit.

下面是转换公式: 华氏温度 = 1.8×摄氏温度 + 32.0

cpp 复制代码
#include<iostream> //蓝桥官方

double C2F(double C)
{
    return C * 1.8 + 32.0;
}

int main()
{
    double  C,F;
    std::cout<<"Please enter a Celsius value: ";
    std::cin >> C;

    F = C2F(C);

    std::cout<<C<<" degrees Celsius is "<<F<<" degrees Fahrenheit."<<std::endl;;
    return 0;

}
cpp 复制代码
#include <iostream> //个人
int main()
{
    double celsius,fahrenheit;
    std::cout<<"请输入摄氏度值:";
    std::cin>>celsius;
    fahrenheit=1.8*celsius+32.0;
    std::cout<<celsius<<"摄氏度="<<fahrenheit<<"华氏度"<<std::endl;
    return 0;
}

2.6

编写一个程序,其main()调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。 该程序按下面的格式要求用户输入光年值,并显示结果:

Enter the number of light years: 4.2

4.2 light years = 265608 astronomical units.

天文单位是从地球到太阳的平均距离(约150000000公里或93000000英里),光年是光一年走的距离 (约10万亿公里或6万亿英里)(除太阳外,最近的恒星大约离地球4.2光年)。请使用double类型(参见程 序清单2.4),转换公式为: 1光年=63240天文单位

cpp 复制代码
#include<iostream> //蓝桥官方
long long int light_years2astronomical_units(double  light_years)
{
    return light_years * 63240;
}
int main()
{
    double  light_years;
    std::cout<<"Enter the number of light years: ";
    std::cin >> light_years;

    long long int astronomical_units = light_years2astronomical_units(light_years);

    std::cout<<light_years<<" light years = "<<astronomical_units<<" astronomical units."<<std::endl;
    return 0;

}
cpp 复制代码
#include <iostream> //个人

long long light_years_to_astronomical_unit(double);

int main()
{
    std::cout<<"请输入光年值:";
    double light_years,astronomical_unit;
    std::cin>>light_years;
    astronomical_unit=light_years_to_astronomical_unit(light_years);
    std::cout<<light_years<<"光年="<<astronomical_unit<<"天文单位"<<std::endl;
    return 0;
}

long long light_years_to_astronomical_unit(double light_years)
{
    return light_years*63240;
}

2.7

编写一个程序,要求用户输入小时数和分钟数。在main()函数中,将这两个值传递给一个void函数, 后者以下面这样的格式显示这两个值:

Enter the number of hours: 9

Enter the number of minutes: 28

Time: 9:28

cpp 复制代码
#include<iostream> //蓝桥官方
void format_time(int hours,int minutes)
{
    std::cout<<"Time: "<<hours<<":"<<minutes<<std::endl;
}
int main()
{
    int hours,minutes;
    std::cout<<"Enter the number of hours: ";
    std::cin >> hours;
    std::cout<<"Enter the number of minutes: ";
    std::cin >> minutes;

    format_time(hours,minutes);
    return 0;

}
cpp 复制代码
#include <iostream> //个人

void print_time(int,int);

int main()
{
    int hour,minute;
    std::cout<<"请入小时数:";
    std::cin>>hour;
    std::cout<<"请输入分钟数:";
    std::cin>>minute;
    print_time(hour,minute);
    return 0;
}

void print_time(int hour,int minute)
{
    if(minute<10)
        std::cout<<"您输入的时间为:"<<hour<<":"<<"0"<<minute<<std::endl;
    else
        std::cout<<"您输入的时间为:"<<hour<<":"<<minute<<std::endl;
}
相关推荐
Qt程序员1 小时前
从上电到系统就绪:ARM+U-Boot 嵌入式 Linux 启动流程
linux·运维·c++·内核·设备树·嵌入式·ram
froginwe112 小时前
Python 循环嵌套
开发语言
Simon523142 小时前
Spring Bean----5.27学习小记
java·学习·spring
RD_daoyi2 小时前
Google 网站收录全流程解析:抓取、索引与排名机制详解
前端·javascript·人工智能·学习·搜索引擎·html
踏着七彩祥云的小丑2 小时前
AI学习——LangChain + Agent
人工智能·学习·ai
@大迁世界2 小时前
AI还替不了的JS能力
开发语言·前端·javascript·人工智能·ecmascript
ZJH__GO2 小时前
java项目-流水线线程池
java·开发语言
weixin_428005302 小时前
.vdproj项目加载提示不兼容问题处理
c#·visual studio·.vdproj·.vdproj不兼容
放逐者-保持本心,方可放逐2 小时前
Go + WebAssembly 构建树木数据统计分析系统
开发语言·golang·wasm·javascipt