C++ Primer Plus(第六版)编程练习 第2章 开始学习C++

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

很简单的题目,只需要声明并打印输出“姓名”和“地址”这两个char变量就可以了。甚至你都可以不通过变量声明,直接在cout语句里写出“姓名”和“地址”信息即可。

代码如下:

// 2.1.cpp: 定义控制台应用程序的入口点。
// 显示姓名和地址

#include "stdafx.h"
#include <iostream>

int main()
{
    using namespace std;
    cout << "Name: Leonardo Liu " << endl;
    cout << "Address: UESTC, Chengdu, China " << endl;
    system("pause");
    return 0;
}

在这里,我没有使用本书中提倡的cin.get();语句来停留终端对话窗口,而是使用了system("pause");语句来实现这个功能,其实效果类似,但个人总觉得cin.get();语句写进去让人读起来觉得程序有点奇怪,毕竟cin.get();语句本身的目的是写入,不是停留。

代码运行结果如下:



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

本题是一个输入数据,然后进行单位转换的题目;我们可以使用cin来输入一个数,暂且认为就是int类型的整数,然后根据题目中的给出的计算方式进行计算后赋给另一个变量,在打印输出就可以了。

代码如下:

// 2.2.cpp: 定义控制台应用程序的入口点。
// 单位转换

#include "stdafx.h"
#include <iostream>

int main()
{
    using namespace std;
    cout << "Enter the distance of long: ";
    int dis1;
    cin >> dis1;
    int dis2;
    dis2 = 220 * dis1;
    cout << dis1 << " long = " << dis2 << " yard" << endl;
    system("pause");
    return 0;
}

代码运行结果如下:



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

Three blind mice

Three blind mice

See how they run

See how they run

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

本题需要定义两个函数,然后通过函数调用来打印输出一些文字,所以这两个函数分别打印1-2行和3-4行的输出即可;这里我们就可以在main函数外面来使用 using namespace std;语句,因为需要调用的两个函数都需要用到std里的cout输出语句。另外,调用的两个函数都不需要有返回值,所以我们定义两个void类型的函数就可以了。

代码如下:

// 2.3.cpp: 定义控制台应用程序的入口点。
// 函数调用

#include "stdafx.h"
#include <iostream>
void fun1();
void fun2();
using namespace std;
int main()
{
    fun1();
    fun1();
    fun2();
    fun2();
    system("pause");
    return 0;
}

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

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

代码运行结果如下:



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

Enter your age: 29

本题的主要目的是将输入的数值代入公式进行计算,并将计算后的结果输出。我们只需要声明两个int类型的变量,一个用来接受用户输入,一个用来接受计算结果就可以了。

代码如下:

// 2.4.cpp: 定义控制台应用程序的入口点。
// 函数调用

#include "stdafx.h"
#include <iostream>
int convert(int);

int main()
{
    using namespace std;
    cout << "Enter your age: ";
    int age;
    cin >> age;
    int month;
    month = convert(age);
    cout << "It means " << month << " months" << endl;
    system("pause");
    return 0;
}

int convert(int age)
{
    using namespace std;
    return 12 * age;
}

在这里我使用了函数调用,并进行了参数的返回,其实完成题中的要求不需要使用这种复杂的操作,直接在main函数里面进行计算就可以了。(纯粹只为练练手^~^)在这里要注意返回值类型及个数和接受参数的类型及个数。

代码运行结果如下:



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

Please enter a Celsius value: 20

20 degrees Celsius is 68 degrees Fahrenheit.

下面是转换公式:

华氏温度 = 1.8 * 摄氏温度 + 32.0

本题依旧是进行单位转换的主题,但要求使用函数调用的方法来操作,正好上一题已经使用过了,按一样的方法来写就可以了。

代码如下:

// 2.5.cpp: 定义控制台应用程序的入口点。
// 函数调用


#include "stdafx.h"
#include <iostream>
double convert(double);


int main()
{
    using namespace std;
    cout << "Please enter a Celsius value: ";
    double degree;
    cin >> degree;
    double convertdegree;
    convertdegree = convert(degree);
    cout << degree << " degrees Celsius is " << convertdegree << " degrees Fahrenheit." << endl;
    system("pause");
    return 0;
}


double convert(double degree)
{
    using namespace std;
    double convertdegree;
    convertdegree = 1.8 * degree + 32;
    return convertdegree;
}

本题的代码有两个地方需要注意,首先是变量声明的时候,虽然题中要求的输入是20,输出是68,但是由于计算公式里包含1.8和32.0这样的浮点数,因此我们不可以将变量声明为int类型,因为很有可能虽然输入是int类型的整数,但是经过计算公式之后输出的结果是浮点数,如果使用int类型来声明,就有可能得不到正确的结果了。其次我们可以看到,被调用函数的返回值可以直接赋给一个声明过的变量,只要类型符合就可以。

代码运行结果如下:



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

Enter the number of light yeras: 4.2

4.2 light years = 265608 astronomical units.

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

1光年 = 63240天文单位

本题又是一个调用函数来完成单位转换的题目,思路与上两题类似。

代码如下:

// 2.6.cpp: 定义控制台应用程序的入口点。
// 函数调用

#include "stdafx.h"
#include <iostream>
double convert(double);

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

double convert(double dist1)
{
    using namespace std;
    double dist2;
    dist2 = 63240 * dist1;
    return dist2;
}

代码运行结果如下:



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

Enter the number of hours: 9

Enter the number of minutes: 28

Time: 9:28

本题是要求我们输入小时和分钟来显示时钟,声明两个int类型的整数,输入数值之后按照时钟格式输出即可。

代码如下:

// 2.7.cpp: 定义控制台应用程序的入口点。
// 空函数调用

#include "stdafx.h"
#include <iostream>
void display(int, int);

int main()
{
    using namespace std;
    cout << "Enter the number of hours: ";
    int hour;
    cin >> hour;
    cout << "Enter the number of minutes: ";
    int minute;
    cin >> minute;
    display(hour,minute);
    system("pause");
    return 0;
}

void display(int hour, int minute)
{
    using namespace std;
    cout << "Time: " << hour << ":" << minute << endl;
}

在这里我调用了一个空函数,没有任何返回值,只是用来显示输出。当然也可以把显示输出的功能放进main()函数里面来进行。

代码运行结果如下:


猜你喜欢

转载自blog.csdn.net/leowinbow/article/details/79717157
今日推荐