《C++ Primer Plus》第二章习题与参考答案

1,内容选自《C++ Primer Plus》(第6版)中文版,2017年1月河北第21次印刷版本
2,文章系笔者学习笔记,若有错误,欢迎指正
3,如有雷同,纯属巧合

2.6 复习题

1,C++程序的模块叫什么?

它们叫做函数

2,下面的预处理器编译指令是做什么用的?

#include <iostream>

包含头文件,这将导致在最终的编译之前,使用iostream文件的内容替换该编译指令。

3,下面的语句是做什么用的?

using namespace std;

使用名称空间,使得程序可以使用std名称空间中的定义。

4,什么语句可以用来打印短语“Hello, world”,然后开始新的一行?

cout << "Hello, world" << endl;  
或
cout << "Hello, world\n";

5,什么语句可以用来创建名为cheeses的整型变量?

int cheeses;

6,什么语句可以用来将值32赋给变量cheeses?

cheeses = 32

7,什么语句可以用来将从键盘输入的值读入变狼cheeses中?

 cin >> cheeses;

8,什么语句可以用来打印“We have X varieties of cheese.”,其中X为变量cheeses的当前值。

cout << "We have " << cheeses  << "varieties of cheese.";

9,下面的函数原型指出了关于函数的哪些信息?

int froop(double t);
void rattle(int n);
int prune(void);

调用函数froop()时,应提供一个参数,该参数的类型为double,而该函数将返回一个int值,例如,可以像下面这样使用它:
int gval=froop(3.14159);
函数rattle()接受一个int参数且没有返回值。例如,可以这样使用它:
rattle(37);
函数prune()不接受任何参数且返回一个int值。例如,可以这样使用它:
int residue=prune();

10,定义函数时,在什么情况下不必使用关键字return?

当函数的返回类型为void时,不用在函数中使用return。然而,如果不提供返回值,则可以使用它:returns;

11,假设您编写的main()函数包含如下代码:
cout << “Please enter you PIN:”;
而编译器指出cout是一个未知标识符,导致这种问题的原因可能是什么?指出3种修复这种问题的方法。

1),using name std;
2),using std::cout;
3),std::cout << "Please enter you PIN:";

2.7 编程练习

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

#include <iostream>
using namespace std;

int main()
{
    cout << "My name is Water White." << endl;
    cout << "My address is 3828 Piermont Drive Northeast, Albuquerque, NM." << endl;
    return 0;
}

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

#include <iostream>
using namespace std;

int main()
{
    int long_num = 0;
    cout << "Please enter distance(long):";
    cin >> long_num;
    cout << long_num << " long = " << long_num * 220 << " yards" << endl;
    return 0;
}

3,编写一个C++程序,它使用3个用户定义的函数(包括main()),并生成下面的输出:
Three blind mice
Three blind mice
See how they run
See how they run
其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次,并生成其余的输出。

#include <iostream>
using namespace std;

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

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

int main()
{
    first_f();
    first_f();
    second_f();
    second_f();
    system("PAUSE");
    return 0;
}

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

#include <iostream>
using namespace std;

int main()
{
    int age = 0;
    cout << "Enter your age:";
    cin >> age;
    cout << "this age includes " << age * 12 << " months." << endl;
    return 0;
}

5,编写一个程序,其中的main()调用一个用户定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:
Please enter a Celsius value:20
20 degrees Celsius is 68 degrees Fahrenheit.
下面是转换公式:
华氏温度=1.8*摄氏温度+32.0

#include <iostream>
using namespace std;

int convert(int celsius)
{
    int degrees = 1.8 * celsius + 32.0;
    return degrees;
}

int main()
{
    int celsius = 0;
    cout << "Please enter a Celsius value:";
    cin >> celsius;
    cout << celsius << " degrees Celsius is " << convert(celsius) << " degrees Fahrenheit." << endl;
    return 0;
}

6,编写一个程序,其main()调用一个用户的函数(以光年为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值,并显示结果:
Enter the number of light years: 4.2
4.2 light years =265608 astronomical units.
天文单位是从地球到太阳的平均距离(约150000000公里或93000000英里),光年是光一年走的距离(约10万亿公里或6万亿英里)(除太阳外,最近的恒星大约离地球4.2光年)。请使用double类型,转换公式为:1光年=63240天文单位。

#include <iostream>
using namespace std;

double convert(double light)
{
    double ast_units = light * 63240;
    return ast_units;
}

int main()
{
    double light = 0;
    cout << "Enter the number of light years:";
    cin >> light;
    cout << light << " light years = " << convert(light) << " astronomical units." << endl;
    return 0;
}

7.编写一个程序,要求用户输入小时数和分钟数,在main()函数中,将这两个值传递给一个void函数,后者以下面这样的格式显示这两个值:
Enter the number of hours: 9
Enter the number of minutes: 28
Time: 9:28

#include <iostream>
using namespace std;

void convert(int hours, int minutes)
{
    cout << "Time: " << hours << ":" << minutes << endl;
}

int main()
{
    int hours = 0;
    cout << "Enter the number of hours:";
    cin >> hours;
    int minutes = 0;
    cout << "Enter the number of minutes:";
    cin >> minutes;
    convert(hours, minutes);
    system("PAUSE");
    return 0;
}
发布了8 篇原创文章 · 获赞 1 · 访问量 689

猜你喜欢

转载自blog.csdn.net/Heisenberg_Li/article/details/102495764