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;
}
相关推荐
Highcharts.js6 小时前
教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染
开发语言·前端·数据结构·react.js·前端框架·highcharts·页面应用
头发还在的女程序员8 小时前
医院陪诊管理系统怎么选择?——2026 年选型避坑与架构参考
java·开发语言·陪诊系统·陪诊app·医院陪诊陪护
王维同学8 小时前
Winsock 协议与名称空间 Provider 目录
网络·c++·windows·安全
min(a,b)8 小时前
学习第 4 天:面向对象与异常处理
python·学习·学习方法
一只小菜鸡..8 小时前
南京大学 操作系统 (JYY) 学习笔记:进程地址空间与内存“外挂”魔法
笔记·学习
tju新生代魔迷9 小时前
Verilog语言学习(一)
学习
一只小菜鸡..9 小时前
南京大学 操作系统 (JYY) 学习笔记:访问操作系统的对象与“一切皆文件”
笔记·学习
拳里剑气9 小时前
C++算法:BFS解决FloodFill算法
c++·算法·bfs·宽度优先
爱写代码的小朋友10 小时前
从零开始学 Win32 API:C++ 窗口编程实战(VS Code + MinGW-w64 命令行详解)
开发语言·c++
果汁华10 小时前
Function Calling 与 Python 实战完整指南
开发语言·网络·python