写在前面
- 本文约15页,如觉得文章过长请通过左侧边栏或知识点概览目录浏览食用
- 面向初学者撰写专栏,个人原创的学习C/C++笔记(干货)
- 编程练习所作源代码输出内容为中文,便于理解
- 如有错误之处请各位读者指正
- 请读者评论回复、参与投票,反馈给作者,我会获得持续更新笔记干货的动力。
致粉丝:可以在阅读完我的文章后,自己尝试写一点原创心得(哪怕一行字也好)。
希望众(尽管617个????)粉丝多多支持、浏览、自我创作@_@
本文源代码及生成程序下载链接本文源代码(解决方案)下载链接https://download.csdn.net/download/Chinese_mad_Boy/87350778
知识点概览
C++ Primer Plus编程练习2.7笔记
一.姓名地址打印
编写一个C++程序,它显示您的姓名和地址。
//2.7_1.cpp
//控制台打印姓名地址
#include<iostream> //输入输出
int main()
{
using namespace std; //省去“std::”
cout << "姓名:" << "YHLZ" << endl; //"YHLZ"处便于更改姓名
cout << "地址:" << "中国" << endl; //"中国"处可增添地址
//VS2022生成的程序自动等待按任意键退出
//其他编译器防止提示符窗口自动退出解决方法:
//方案一:cin.get();
//方案二(推荐):system("pause");
return 0; //主函数返回
}
1.头文件与C++库中控制输入输出的头文件<iostream>
#include<iostream>
(#include)包含一个头文件。
(<iostream>)C++库自带控制输入输出的头文件,i=input(入),o=output(出),stream(流)。
2.主函数main(){}以及int整型
int main(){}
int 代表此函数为整型(返回无小数部分值,如return 0)。
main 是必须有的源代码必须有的主函数。
小括号()中可以包含参数,空的小括号指无参数,可以用(void)表示。
花括号{}中包含函数体,可以包含声明、语句等。
3.命名空间namespace与std
using namespace std;
using namespace 可以使用 std 所包含的命名空间,这条语句在此代码主函数中,可以省去主函数中所有原本需要写的 std::。
若这条语句放在主函数外(可以在源代码顶部),则可以省去整个源码中用到 std::地方的std::前缀
使用标准C++库函数时必须使用 std 限定。std 限定在<iostream>头文件中的 cout(c 输出)、cin(c 输入)等标准函数
4.cout输出流
cout << "姓名:" << "YHLZ" << endl;
<<将右侧信息插入到 cout 输出流中,每条字符串信息用""半角双引号引起来,endl 指示换行,C++与C语言也可以使用 \n 作为换行符,但换行符不可放在变量名、函数名、参数名等处。
5.停留生成程序窗口的方法
//VS2022生成的程序自动等待按任意键退出
//其他编译器防止提示符窗口自动退出解决方法:
//方案一:cin.get();
//方案二(推荐):system("pause");
源代码运行示例如下:
二.长度单位转换
编写一个C++程序,它要求用户输入一个以 long 为单位的距离,然后将它转换为码(yard)(1long=220码)
//2.7_2.cpp
//长度单位转化
#include<iostream> //输入输出
int main()
{
using namespace std; //省去“std::”
double d_Long,d_Yard; //声明double浮点型长度单位long的数值与英码yard的数值
cout << "请输入长度(单位:long):" ;
cin >> d_Long; //将输入流中的浮点型数值传输给d_Long
d_Yard = 220 * d_Long; //计算long单位转换为yard单位
cout << d_Long << "long=" <<d_Yard <<"yard." << endl;
//输出(打印)转换式
return 0;
}
1.double浮点型声明
double d_Long,d_Yard;
double 声明浮点型(有小数部分)变量,变量名命名采用 d(double 缩写)+下划线_+便于理解的实用名称 long 与 yard(实际题目要求的长度单位英文名)。
//作者命名偏好下划线且第二个单词开始大写
2.cin输入流
cin >> d_Long;
cin 捕获用户输入流,将输入的内容传输给变量 d_Long。C++是面向对象型编程语言,将输入流发送给对象并且智能选择类。
3.乘法赋值计算
d_Yard = 220 * d_Long;
计算部分,将捕获的long单位数值*220的结果从左向右赋给赋值号(=)左侧的yard具体数值
也可以通过这段代码替换实现
cin >> d_Long;
cout << d_Long << "long=" << d_Long*220 <<endl;
//前面省去对英码数值变量d_Yard的声明,直接用算式代替
源代码运行示例如下:
三.自定义函数
编写一个C++程序,它使用3个用户自定义的函数(包括 main()),并生成下面的输出:
Three blind mice(三盲鼠)
Three blind mice
See how they run(视其何行)
See how they run
其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次,并生成其余的输出
//2.7_3.cpp
//自定义函数
#include<iostream>
using namespace std; //全局范围省去“std::”书写
void t(); //声明不带参数、无返回值的自定义函数,该函数输出句子首字母为T
void s(); //声明不带参数、无返回值的自定义函数,该函数输出句子首字母为S
int main()
{
t(); //函数调用
t();
s();
s();
return 0; //主函数有返回值0(整型)
}
void t()
{
cout << "Three blind mice" << endl;
}
void s()
{
cout << "See how they run" << endl;
}
1.void函数声明
void t();
void表示该自定义函数无返回值,()表示无参数,这句声明代码中新建了一个名为t的函数
当然也可以使用其他命名,例如function函数的英文缩写或者其他名字。
2.空函数简单调用
t();
函数声明在源码顶部,函数体void t(){}在主函数下面,那么可以在主函数中直接调用函数。
函数体中可以包含语句、变量声明等。该函数只有执行打印输出流的语句。
源代码运行示例如下:
四.年龄转月份
编写一个程序,让用户输入年龄,然后显示该年龄包含多少个月,如下所示:
输入你的年龄:29
//2.7_4.cpp
//输入年龄转月份
#include<iostream>
int main()
{
using namespace std;
int y,m; //声明int整型时间数值y(年),m(月)
cout << "请输入您的年龄:";
cin >> y; //将输入流中的整型数值传输给y
m = 12 * y; //月=12*年
cout << y << "岁的朋友,您的年龄包含" << m << "个月。" << endl;
//也可以用cout<<y<<"年有"<<y*12<<"月"<<endl;替换上面的代码,同时省去对变量m的声明与赋值计算
return 0;
}
学习C++基本数值类型
此程序与程序 2.7_2.cpp 相类
源代码运行示例如下:
五. (实用程序)温度单位转换
编写一个程序,其中主函数调用一个用户自定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:
请输入摄氏温度值:
20
20摄氏度是68华氏度
℉=1.8×℃+32.0
方案一(未自定义函数,较简单)
//2.7_5_1.cpp
//方案一
//实用程序:温度单位转换
#include<iostream>
int main()
{
using namespace std; //省去“std::”
double C, F; //声明温度单位℃的数值与℉的数值
cout << "请输入温度(单位:℃):";
cin >>C; //将输入流中的浮点型数值传输给C
F = 1.8 * C+32.0; //计算℉结果赋值给F
cout << C << "℃=" << F << "℉" << endl;
//输出转换结果,先给用户展示验证输入℃,再展示转换结果℉
return 0;
}
1.F = 1.8 * C+32.0;
单独将赋值运算过程提取出来,便于修改数值(此程序为温度转换公式常量,没必要修改数值)
2. cout << C << "℃=" << F << "℉" << endl;
注意:如果使用符号“℃”与“℉”时,编译出的程序运行时符号显示可能出现问题
所以实际操作建议用方案二中的
输出转换结果,先给用户展示验证输入℃,再展示转换结果℉。这是一个好的编程习惯
方案二(自定义函数)
//2.7_5_2.cpp
// 方案二
//实用程序:温度单位转换
#include<iostream>
double c_To_F(double);
int main()
{
using namespace std; //省去“std::”
double C,F; //声明温度单位℃的数值与℉的数值
cout << "请输入温度(单位:摄氏度):";
cin >>C; //将输入流中的浮点型数值传输给C
F = c_To_F(C);
cout << C << "摄氏度相当于" << F<< "华氏度" << endl;
//输出转换结果,先给用户展示验证输入℃,再展示转换结果℉
return 0;
}
double c_To_F(double sum)
{
return 1.8 * sum + 32.0;
}
1.自定义带参数函数声明
double c_To_F(double);
声明一个 double 浮点型的函数(用来实现计算摄氏度℃转华氏度℉)返回一个浮点型数值(自动截断小数部分的没用的0)
并且声明这个函数包含 double 的参数!注意:声明时必须注明有参数函数的参数类型
2.调用带参数函数并且将实际参数带入
F = c_To_F(C);
函数调用,参数带入。
调用函数 c_To_F 同时,用变量C(即摄氏温度值)换掉 c_To_F 函数块里的浮点型参数 sum ,将变量 C 的具体数值替换参数 sum。
函数
!注意:调用时省去函数类型double与参数类型double,参数名直接用带入变量名C代替即可
3.带参数函数返回值计算
double c_To_F(double sum)
{
return 1.8 * sum + 32.0;
}
具体函数块
使用主函数中所提供的变量 C 代替参数 sum,进行计算
此时函数返回值就会赋给主函数中摄氏温度值变量 F
!!注意:返回值部分仍需使用 sum ,因为运行前不知函数是否会被调用
源代码运行示例如下:
六.长度单位转换(光年—>天文单位)(参数详解)
编写一个程序,其main调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值并显示结果:
请输入光年值:
4.2
4.2光年=265608天文单位
天文单位是从地球到太阳的平均距离(约1.5亿公里或9600万英里),光年是光一年走的距离(约10万亿公里或6万亿英里)(除太阳外,最近的恒星大约离地球4.2光年)。请使用double类型:
转换公式为1光年=63240天文单位
//2.7_6.cpp
//长度单位转换(光年—>天文单位)
#include<iostream>
double fun(double); //声明double浮点型返回值函数及参数类型
int main()
{
using namespace std;
double gn,tw; //变量gn指光年,tw指天文单位
cout << "请输入光年:" << endl;
cin >> gn;
tw=fun(gn);
cout <<gn<< "光年=" << tw<< "天文单位。" << endl;
return 0;
}
double fun(double s) //具体函数块,说明形参s
{
return 63240* s ; //返回值的计算
}
- 需讲解的代码:
- double fun(double);
- int main(){tw=fun(gn);}
- double fun(double s){return 63240* s ;}
参数:任意函数括号里的一部分简洁易懂地介绍C++参数
main(void){}或main(){}指主函数main无参数
- 形参(形式参数)
例如,double fun(double);这里第二个double声明形式参数是double类型
double fun(double s){return 63240* s ;} 这里括号里的 s 是形式参数,
形式上作为函数fun调用前的参数,计算会参照 s 的数值(尽管此时 s 还没有具体数值,需要到实际(调用)参数“借”来数值进行计算,自己只走过场)
形式参数在调用会被实际参数代替。- 实参(实际参数)
例如,int main(){tw=fun(gn);} 这里主函数块里函数调用时,原本形式参数 s 的位置被实际有具体数值的 gn 代替,gn 就是实际应用到函数 fun 的计算中的实际参数。
源代码运行示例如下:
七.(实用程序)小时 : 分钟电子表式显示
编写一个程序,要求用户输入小时数和分钟数。在 main() 函数中将这两个值传递给一个void函数,后者以下面这样的格式显示这两个值
输入小时数:9
输入分钟数:12
时间:9 : 12
//2.7_7.cpp
//电子表时间显示
#include<iostream>
using namespace std; //全局范围省去“std::”书写
void time(int,int);
int main()
{
int h;
int m; //变量h指小时(hour),m指分钟(minute)
cout << "请输入小时数:";
cin >> h;
cout << "请输入分钟数:";
cin >> m;
time(h, m); //函数调用,实参带入
return 0;
}
void time(int num1,int num2) //具体函数块,声明形参num1,num2
{
cout << num1 << " : " << num2 << endl;
//注意:" : "是"空格+半角冒号+空格"
}
两个整型参数示例程序(见注释简洁解释)
源代码运行示例如下:
结语
今天我们共同学习了C++头文件<iostream>,主函数、数值类型及函数参数等重要知识。
学习编程是一条漫长的路,贵在坚持。每天学习来提升自己的的编程能力,成为耀眼的IT之星。
各位读者跟随我的脚步,我们共同努力,共同进步吧!
专栏下一篇文档:C++学习/温习笔记:源码学编程(二)
其它文章:
如有探讨问题联系邮箱:yhlz0613@163.com
对于文章中的错误请各位批评指正,我一定及时更正
请在投票后评论回复意见,如有关于写博文的指导也请您回复提出
<!--感谢浏览 诸君慢行且留言 过客匆匆常回访-->