C++ 第一阶段编程练习

2023-11-20

目录

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》】

1.2   编程讲解 

        下面将对每一题进行讲解,供大家学习参考。

1.2.1   #题目一

#第一题

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

********************************************************************************************************

        这道题目很简单,我们只需要输出语句就行了,就是考察 cout 语句 的用法。

参考代码:

#include<iostream>

int main()
{
	using namespace std;
	
	cout << "简十三,河南" << endl;
	return 0;
}

 程序运行结果:

简十三,河南

--------------------------------

        这就是这道题的一种解法,当然也可以把其拆成两个语句,例如:

#include<iostream>

int main()
{
	using namespace std;
	
	cout << "简十三,";
    cout << "河南" << endl;
	return 0;
}

最终的运行结果都是完全一样的。

1.2.2   #题目二

#第二题

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

********************************************************************************************************

        这道题其实就是考察变量以及修改变量的知识,这些在前两篇文章中都有讲解到,不明白的读者可以去回顾一下。

参考代码:

#include<iostream>

int 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

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

        之前没有接触过任何语言的读者可能第一眼看见这道题觉得很难。其实只要把题目读懂了,这道题就很清晰了。这道题考察的就是——函数调用。“其中一个函数要调用两次”,这句话也误导了很多人,让人觉得这不仅仅是简单的函数调用,其实它就是简单的调用,只不过要求我们调用两次而已。这一点放在下述代码中进行理解。

        还有需要注意的一点本题特别要求了需要使用 3 个用户定义的函数(包括 main()),说白了,就是上面的两句话(本是四句,但是两两重复所以相当于只用两句)分别对应一个函数即可。好,下面我们结合具体的例子进行理解。

参考代码:

#include<iostream>

using 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.

先来分析题目的要求:

        该年龄包含多少个月其实就是——多少年(年龄)包含多少个月。怎么样是不是问的很简单?这道题的考察点还是变量以及修改变量的知识点。

参考代码:

#include<iostream>

int 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

        可能有的读者不知道什么是华氏度,无所谓题目已经给出了二者之间的转化式子,我们照搬即可。

        本题要求使用函数调用,因为求出的是一个数值,所以我们可以选择创建一个有返回值的函数。剩下的就是简单的变量以及修改变量了。(是不是发现考察了很多次了?)

参考代码:

#include<iostream>
double 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 天文单位

        这道题不要被它 “庞大” 的字数所震慑,简单点嘛。只看最后的转换公式即可(当然要是想增长知识的话就请不要忽略)。

        读了题目后细心的读者已经看出来了,这不还是考察的变量以及修改变量的知识点嘛。那有了上面几题的经验,这道题岂不是手到擒来?

        仍然要重复一点,因为返回的是一个数值,所以我们可以选择创建带有返回值的函数。

参考代码:

#include<iostream>
double 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 函数。”,其实这句话的意思就是,在 mian() 函数中将两个数值传递给用户创建的函数中进行处理。那这道题我的思路就是 mian() 函数仅仅负责传递数据,至于输出就交给我们创建的函数中进行。所以我们可以创建无返回值的函数。下面结合例子来进行讲解。

参考代码:

#include<iostream>
void 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
--------------------------------

        可以看出我把语句的输出放在了我们创建的新的函数中执行。

总结

        这些列题都是比较好的,可以让我们对前面知识的讲解有一个更深刻的理解。至于例题的参考代码是我自己编写,肯定有很多不足希望大家多多指出。另外,题解仅作参考并不唯一,大家要是有更好的方法欢迎评论区留言,当然如果本篇题解有误或者有讲的不清楚的地方也请评论区留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 第一阶段编程练习 的相关文章

随机推荐

  • java通过文件路径读取该路径下的所有文件并将其放入list中

    java通过文件路径读取该路径下的所有文件并将其放入list中 java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中 假设指定路径为path 目标集合为fileList 遍历指定路径下的所有文件 如果是目录文件则递归
  • 旋转链表(leetcode)

    61 旋转链表 给你一个链表的头节点 head 旋转链表 将链表每个节点向右移动 k 个位置 示例 1 输入 head 1 2 3 4 5 k 2 输出 4 5 1 2 3 示例 2 输入 head 0 1 2 k 4 输出 2 0 1 提
  • centos安装配置hadoop超详细过程(含故障排除)

    1 集群部署介绍 1 1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台 以Hadoop分布式文件系统 HDFS Hadoop Distributed Filesystem 和MapReduce Goog
  • 计算机科学丛书(2014-2018.Q1)

    ISBN 名称 作者 出版时间 978 7 111 53451 8 数学设计和计算机体系结构 原书第2版 美 戴维 莫尼 哈里斯 莎拉 L 哈里斯著 978 7 111 44075 8 嵌入式计算系统设计原理 美 Marilyn Wolf著
  • C#中string.Format输出内容中含有花括号的解决方法

    转载一篇 版权声明 本文为CSDN博主 九德真君 的原创文章 遵循CC 4 0 BY SA版权协议 转载请附上原文出处链接及本声明 原文链接 https blog csdn net lzdidiv article details 69469
  • python matrix用法_numpy中matrix使用方法

    matrix T transpose 返回矩阵的转置矩阵 matrix H hermitian conjugate transpose 返回复数矩阵的共轭元素矩阵 matrix I inverse 返回矩阵的逆矩阵 matrix A bas
  • 基于C语言实现的文件压缩算法-哈夫曼编码

    哈夫曼编码 是一种数据压缩算法 通常用于无损数据压缩 该算法是由 David A Huffman在麻省理工学院就读理学博士 Doctor of Science 的时候发明的 这位大佬在1952年发表了相关的一篇论文A Method for
  • 页面上input输入框宽度实现自动调整

    input输入框宽度实现自动调整 本文介绍两种方式 一是通过获取input内容的宽度实现输入框宽度的自动调整 二是通过内容字符串的长度乘以文本字体大小的积 来实现输入框宽度的自动调整 1 input输入框宽度的获取方式一 由于input输入
  • 利用maven项目创建一个web项目工程(图文详解)

    最近正开始学习java 老师布置的第一个作业便是用maven项目创建一个web项目工程 不会 跑去百度了半天 跳出来的全是我们csdn的教程 但到创建资源包的时候就没法跟着做了 因为显示已存在 没法跟着创建了 那些文章基本一样的讲法 都是默
  • 超详细的用IDEA整合SSM框架和profile 配置环境

    SSM作为现在最流行的开发框架 很大的提升了开发效率 一些同学在SSM基础上的整合一些更实用的开发基础框架 被用来作为快速开发的基础框架 本次实践主要是以下3个目标 从最基础的SSM框架做起 摸索和处理SSM框架整合中可能会遇到的问题 使用
  • 手机知识:手机的快充技术是什么,看完本文你就懂了

    目录 1 什么是手机快充 2 目前主流的手机快充协议 2 1 PD协议 2 2 PE协议 联发科 2 3 QC协议 高通 2 4 VOOC闪充 OPPO厂商 2 5 SCP FCP闪充 华为厂商 2 6 FlashCharge闪充 Vivo
  • 【前后端数据交互:Axios】

    前后端数据交互 Axios Axios 介绍 在前端页面展示的数据大多数都是通过访问一个API获取的 做这件事的方法有好几种 例如jquery ajax vue resource axios 而vue resource是vue插件 但3版本
  • 基于RGB颜色空间使用OpenCV-Python实现照片换底

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 前一阵子家人报考教师资格证考试 因报名需要将蓝底的数字相片换成白底的 老猿虽然在学习图像处理相关开发技术 但并没有熟练使用的图像编辑
  • BigDecimal精度问题

    BigDecimal精度问题 在近来项目展示价格的时候 遇到了一个问题 一个价格为99999 999的商品在购物车中的展示却是100000 00 原因归结于在原项目代码中 是采用BigDecimal的格式 然而前端需要展示的时候 采用的却是
  • .NET6.0的日志组件Log4net

    前言 不允许让没有任何日志监控的项目上线 所以说真正开发起来必须要有监控 相当于多一双眼睛帮着我们看项目在运行时会不会有什么问题 我们要不断的在每个环节写日志 这样发生异常我们可以快速知道哪里有问题了 就可以快速解决 目录 一 Log4ne
  • addEventListener()方法第三个参数(useCapture)与浏览器事件触发阶段

    最近面试中有被问到EventTarget addEventListener 方法的第三个参数useCapture 此方法就不着重讲解了 同时该方法的第三个参数可以传一个对象 可以参考mdn文档 讲解的很详细EventTarget addEv
  • 数据挖掘知识浅析

    一 什么是数据挖掘 数据挖掘是指从大量数据中提取或 挖掘 知识 数据挖掘是一种 黄金挖掘 从沙子堆中挖掘出黄金 找出最有价值的黄金 这种有机的价值物提取的过程称为 黄金挖掘 通过某种手段或者经验丰富人士 从海量的数据中找出有用的 数据 掌握
  • Markdown入门2-标题、引用、列表、代码、分隔线

    区块元素 网上推荐了很多撰写Markdown文件的软件 根据个人爱好可以自己去选一款 小编觉得选哪个都差不多 能出来效果就行呗 以下相关代码测试小编是在有道云笔记上进行的 我会把代码贴出来方便大家演练 1 标题 Markdown 支持两种标
  • fastadmin隐藏table操作栏拖动排序按钮

    记录 fastadmin隐藏table操作栏拖动排序按钮 在 js 文件中的 Table api init 中添加一下代码 dragsort url
  • C++ 第一阶段编程练习

    目录 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 题目六