目录
1.1 编程练习
1.1.1 编程题目
#第一题
#第二题
#第三题
#第四题
#第五题
#第六题
#第七题
1.2 编程讲解
1.2.1 #题目一
1.2.2 #题目二
1.2.3 #题目三
1.2.4 #题目四
1.2.5 #题目五
1.2.6 #题目六
1.2.7 #题目七
总结
【通过前两篇文章对C++的基础有了一定的了解,但是编程语言的学习绝不能仅仅通过看,必须勤练习才可以】
1.1 编程练习
先给出本篇所有的编程题目,大家可以先自己想一想写一写,如果实在无法写出便参考本篇的讲解即可。
1.1.1 编程题目
#第一题
编写一个 C++ 程序,它显示您的姓名和地址。
********************************************************************************************************
#第二题
编写一个 C++ 程序,它要求用户输入一个以 long 为单位的距离,然后将它转换为码(一 long 等于 220 码)。
********************************************************************************************************
#第三题
编写一个C++ 程序,它使用 3 个用户定义的函数(包括 main()),并生成下面的输出:
Three blind mice
Three blind mice
See how they run
See how they run
其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次。并生成其余的输出。
********************************************************************************************************
#第四题
编写一个程序,让用户输入其年龄,然后显示该年龄包含多少个月,如下所示:
Enter your age: 29
Your age in months is 348.
********************************************************************************************************
#第五题
编写一个程序,其中的 main() 调用一个用户定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:
Please enter a Celsius value: 20
20 degrees Celsius is 68 degrees Fahrenheit.
下面是转换公式:
华氏度 = 1.8 x 摄氏温度 + 32.0
********************************************************************************************************
#第六题
编写一个程序,其 mian() 调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值,并显示结果:
Enter the number of light years: 4.2
4.2 light years = 265608 astronomical units.
天文单位是从地球到太阳的平均距离(约 150000000 公里或 93000000 英里),光年是一光年走的距离(约 10 万亿公里或者 6 万亿英里)(除太阳外,最近的恒星大约离地球 4.2 光年)。请使用 double 类型,转换公式:
1 光年 = 63240 天文单位
********************************************************************************************************
#第七题
编写一个程序,要求用户输入小时数和分钟数。在 main() 函数中,将这两个值传递给一个 void 函数。后面以下面这样的格式显示这两个值:
Enter the number of hours: 9
Enter the number of minutes: 28
Time: 9:28
【PS:题目来源于《C++ Primer Plus》】
#第一题
编写一个 C++ 程序,它显示您的姓名和地址。
********************************************************************************************************
#第二题
编写一个 C++ 程序,它要求用户输入一个以 long 为单位的距离,然后将它转换为码(一 long 等于 220 码)。
********************************************************************************************************
#第三题
编写一个C++ 程序,它使用 3 个用户定义的函数(包括 main()),并生成下面的输出:
Three blind mice Three blind mice See how they run See how they run
其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次。并生成其余的输出。
********************************************************************************************************
#第四题
编写一个程序,让用户输入其年龄,然后显示该年龄包含多少个月,如下所示:
Enter your age: 29 Your age in months is 348.
********************************************************************************************************
#第五题
编写一个程序,其中的 main() 调用一个用户定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:
Please enter a Celsius value: 20 20 degrees Celsius is 68 degrees Fahrenheit.
下面是转换公式:
华氏度 = 1.8 x 摄氏温度 + 32.0
********************************************************************************************************
#第六题
编写一个程序,其 mian() 调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值,并显示结果:
Enter the number of light years: 4.2 4.2 light years = 265608 astronomical units.
天文单位是从地球到太阳的平均距离(约 150000000 公里或 93000000 英里),光年是一光年走的距离(约 10 万亿公里或者 6 万亿英里)(除太阳外,最近的恒星大约离地球 4.2 光年)。请使用 double 类型,转换公式:
1 光年 = 63240 天文单位
********************************************************************************************************
#第七题
编写一个程序,要求用户输入小时数和分钟数。在 main() 函数中,将这两个值传递给一个 void 函数。后面以下面这样的格式显示这两个值:
Enter the number of hours: 9 Enter the number of minutes: 28 Time: 9:28
【PS:题目来源于《C++ Primer Plus》】
1.2 编程讲解
下面将对每一题进行讲解,供大家学习参考。
1.2.1 #题目一
#第一题
编写一个 C++ 程序,它显示您的姓名和地址。
********************************************************************************************************
#第一题
编写一个 C++ 程序,它显示您的姓名和地址。
********************************************************************************************************
这道题目很简单,我们只需要输出语句就行了,就是考察 cout 语句 的用法。
参考代码:
#includeint main() { using namespace std; cout << "简十三,河南" << endl; return 0; }
程序运行结果:
简十三,河南 --------------------------------
这就是这道题的一种解法,当然也可以把其拆成两个语句,例如:
#includeint main() { using namespace std; cout << "简十三,"; cout << "河南" << endl; return 0; }
最终的运行结果都是完全一样的。
1.2.2 #题目二
#第二题
编写一个 C++ 程序,它要求用户输入一个以 long 为单位的距离,然后将它转换为码(一 long 等于 220 码)。
********************************************************************************************************
#第二题
编写一个 C++ 程序,它要求用户输入一个以 long 为单位的距离,然后将它转换为码(一 long 等于 220 码)。
********************************************************************************************************
这道题其实就是考察变量以及修改变量的知识,这些在前两篇文章中都有讲解到,不明白的读者可以去回顾一下。
参考代码:
#includeint main() { using namespace std; int Long; //声明定义变量 cout << "输入一个数字:"; cin >> Long; //输入数据 cout << "转换为 " << Long * 220 << " 码" << endl; return 0; }
程序运行结果:
输入一个数字:1 转换为 220 码 --------------------------------
1.2.3 #题目三
#第三题
编写一个C++ 程序,它使用 3 个用户定义的函数(包括 main()),并生成下面的输出:
Three blind mice
Three blind mice
See how they run
See how they run
其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次。并生成其余的输出。
#第三题
编写一个C++ 程序,它使用 3 个用户定义的函数(包括 main()),并生成下面的输出:
Three blind mice Three blind mice See how they run See how they run
其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次。并生成其余的输出。
之前没有接触过任何语言的读者可能第一眼看见这道题觉得很难。其实只要把题目读懂了,这道题就很清晰了。这道题考察的就是——函数调用。“其中一个函数要调用两次”,这句话也误导了很多人,让人觉得这不仅仅是简单的函数调用,其实它就是简单的调用,只不过要求我们调用两次而已。这一点放在下述代码中进行理解。
还有需要注意的一点本题特别要求了需要使用 3 个用户定义的函数(包括 main()),说白了,就是上面的两句话(本是四句,但是两两重复所以相当于只用两句)分别对应一个函数即可。好,下面我们结合具体的例子进行理解。
参考代码:
#includeusing namespace std; void Part_one(); //声明函数原型 void Part_two(); //声明函数原型 int main() { Part_one(); //调用函数 (一次) Part_one(); //调用函数 (两次) Part_two(); //调用函数 (一次) Part_two(); //调用函数 (两次) } void Part_one() //创建函数 1 { cout << "Three blind mice" << endl; } void Part_two() //创建函数 2 { cout << "See how they run" << endl; }
程序运行结果:
Three blind mice Three blind mice See how they run See how they run --------------------------------
void Part_one() //创建函数 1 { cout << "Three blind mice" << endl; } void Part_two() //创建函数 2 { cout << "See how they run" << endl; }本题的关键就在这,只要创建这两个函数即可,因为返回的是语句,所以我们选择无返回值的函数进行创建。
至于调用两次就更好理解了,它要求调用两次那我们就调用两次呗:
Part_one(); //调用函数 (一次) Part_one(); //调用函数 (两次) Part_two(); //调用函数 (一次) Part_two(); //调用函数 (两次)就这样即可,怎么样是不是很简单?
1.2.4 #题目四
#第四题
编写一个程序,让用户输入其年龄,然后显示该年龄包含多少个月,如下所示:
Enter your age: 29
Your age in months is 348.
#第四题
编写一个程序,让用户输入其年龄,然后显示该年龄包含多少个月,如下所示:
Enter your age: 29 Your age in months is 348.
先来分析题目的要求:
该年龄包含多少个月其实就是——多少年(年龄)包含多少个月。怎么样是不是问的很简单?这道题的考察点还是变量以及修改变量的知识点。
参考代码:
#includeint main() { using namespace std; int year; //声明定义变量 cout << "Enter your age: "; cin >> year; //输入数据 cout << "Your age in months is " << year * 12 << "." << endl; return 0; }
程序运行结果:
Enter your age: 29 Your age in months is 348. --------------------------------
1.2.5 #题目五
#第五题
编写一个程序,其中的 main() 调用一个用户定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:
Please enter a Celsius value: 20
20 degrees Celsius is 68 degrees Fahrenheit.
下面是转换公式:
华氏度 = 1.8 x 摄氏温度 + 32.0
#第五题
编写一个程序,其中的 main() 调用一个用户定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:
Please enter a Celsius value: 20 20 degrees Celsius is 68 degrees Fahrenheit.
下面是转换公式:
华氏度 = 1.8 x 摄氏温度 + 32.0
可能有的读者不知道什么是华氏度,无所谓题目已经给出了二者之间的转化式子,我们照搬即可。
本题要求使用函数调用,因为求出的是一个数值,所以我们可以选择创建一个有返回值的函数。剩下的就是简单的变量以及修改变量了。(是不是发现考察了很多次了?)
参考代码:
#includedouble degree_Fahrenheit(double); //声明函数原型 using namespace std; // using 编译指令 int main() { double celsius; //声明定义变量 cout << "Please enter a Celsius value: "; cin >> celsius; //输入数据 cout << celsius; cout << " degrees Celsius is " << degree_Fahrenheit(celsius) << " degrees Fahrenheit." << endl; return 0; } double degree_Fahrenheit(double celsius) //创建函数 { return celsius * 1.8 + 32; //返回值 }
程序运行结果:
Please enter a Celsius value: 20 20 degrees Celsius is 68 degrees Fahrenheit. --------------------------------
有一点值得注意的地方:
double degree_Fahrenheit(double celsius) //创建函数 { return celsius * 1.8 + 32; //返回值 }还可以有另外一种表示方式:
double degree_Fahrenheit(double celsius) //创建函数 { double A = celsius * 1.8 + 32; return A; //返回值 }但是大多数人选择前者因为少打几个字母(对于程序员来说这是非常讨厌的事情)。
注意:为了方便这里我定义了一个新的变量 A,但是正常情况下请尽量不要这样,定义的变量名称尽量带有实义,这样比较严谨。
1.2.6 #题目六
#第六题
编写一个程序,其 mian() 调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值,并显示结果:
Enter the number of light years: 4.2
4.2 light years = 265608 astronomical units.
天文单位是从地球到太阳的平均距离(约 150000000 公里或 93000000 英里),光年是一光年走的距离(约 10 万亿公里或者 6 万亿英里)(除太阳外,最近的恒星大约离地球 4.2 光年)。请使用 double 类型,转换公式:
1 光年 = 63240 天文单位
#第六题
编写一个程序,其 mian() 调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值,并显示结果:
Enter the number of light years: 4.2 4.2 light years = 265608 astronomical units.
天文单位是从地球到太阳的平均距离(约 150000000 公里或 93000000 英里),光年是一光年走的距离(约 10 万亿公里或者 6 万亿英里)(除太阳外,最近的恒星大约离地球 4.2 光年)。请使用 double 类型,转换公式:
1 光年 = 63240 天文单位
这道题不要被它 “庞大” 的字数所震慑,简单点嘛。只看最后的转换公式即可(当然要是想增长知识的话就请不要忽略)。
读了题目后细心的读者已经看出来了,这不还是考察的变量以及修改变量的知识点嘛。那有了上面几题的经验,这道题岂不是手到擒来?
仍然要重复一点,因为返回的是一个数值,所以我们可以选择创建带有返回值的函数。
参考代码:
#includedouble Light_years(double); //声明函数原型 using namespace std; // using 编译指令 int main() { double astronomical; //定义变量 cout << "Please the number of light years: "; cin >> astronomical; //输入数据 cout << astronomical; cout << " light years = " << Light_years(astronomical) << " astronomical units." << endl; return 0; } double Light_years(double astronomical) //创建函数 { return astronomical * 63240; //返回值 }
程序运行结果:
Please the number of light years: 4.2 4.2 light years = 265608 astronomical units. --------------------------------
这道题跟第五题十分类似因此这里就不过多的讲解了,不懂的可以多看看第五题的讲解。
1.2.7 #题目七
#第七题
编写一个程序,要求用户输入小时数和分钟数。在 main() 函数中,将这两个值传递给一个 void 函数。后面以下面这样的格式显示这两个值:
Enter the number of hours: 9
Enter the number of minutes: 28
Time: 9:28
#第七题
编写一个程序,要求用户输入小时数和分钟数。在 main() 函数中,将这两个值传递给一个 void 函数。后面以下面这样的格式显示这两个值:
Enter the number of hours: 9 Enter the number of minutes: 28 Time: 9:28
这道题有一句话可能让人有点犯难——“在 main() 函数中,将这两个值传递给一个 void 函数。”,其实这句话的意思就是,在 mian() 函数中将两个数值传递给用户创建的函数中进行处理。那这道题我的思路就是 mian() 函数仅仅负责传递数据,至于输出就交给我们创建的函数中进行。所以我们可以创建无返回值的函数。下面结合例子来进行讲解。
参考代码:
#includevoid out_put(int, int); //声明函数原型 using namespace std; // using 编译指令 int main() { int hour, minute; //声明定义两个变量 cin >> hour; //输入小时数 cin >> minute; //输入分钟数 cout << endl; //重启一行 out_put(hour, minute); //调用函数 return 0; } void out_put(int hour, int minute) //创建函数 { cout << "Enter the number of hours: " << hour << endl; cout << "Enter the number of minutes: " << minute << endl; cout << "Time: " << hour << ":" << minute; }
程序运行结果:
9 28 Enter the number of hours: 9 Enter the number of minutes: 28 Time: 9:28 --------------------------------
可以看出我把语句的输出放在了我们创建的新的函数中执行。
总结
这些列题都是比较好的,可以让我们对前面知识的讲解有一个更深刻的理解。至于例题的参考代码是我自己编写,肯定有很多不足希望大家多多指出。另外,题解仅作参考并不唯一,大家要是有更好的方法欢迎评论区留言,当然如果本篇题解有误或者有讲的不清楚的地方也请评论区留言。



