- chjshen 的博客
C++语法基础1-顺序结构
- 2023-11-21 9:00:16 @
第一章:顺序结构
基础一
1.c++编程简介及所用编程软件
1. c++简介
C++是在C语言的基础上开发的一种面向对象编程语言,应用非常广泛。 常用于系统开发,引擎开发等应用领域,支持类、封装、继承、多态等特性。 C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高, 而且同时具有高级语言与汇编语言的优点。
C++语言是对C语言的扩充,从Simula中吸取了类, 从ALGOL语言中吸取了运算符的一名多用、引用和在分程序中任何位置 均可说明变量,综合了Ada语言的类属和Clu语言的模块特点,形成了 抽象类,从Ada Clu和ML等语言吸取了异常处理,从BCPL语言中吸取 了用
//
表示注释C++语言保持了C语言的紧凑灵活、高效以及易于移植性 强等优点,它对数据抽象的支持主要在于类概念和机制,对面向对象风范的 支持主要通过虚拟机制函数因C++语言既有数据抽象和面向对象能力,运行性能高,加上C语言的普及,而从C语言到C++语言的过渡较为平滑,以及C++语言与C语言的兼容程度可使数量巨大的C语言程序能方便地在C++语言环境中复用,使C++语言在短短几年内能流行。
2. 编程软件的使用:(IDE:DEV C++)
Dev-C++(或者叫做 Dev-Cpp)是 Windows 环境下的一个轻量级 C/C++ 集成开发环境(IDE)。它是一款自由软件,遵守GPL许可协议分发源代码。它集合了功能强大的源码编辑器、MingW64/TDM-GCC 编译器、GDB 调试器和 AStyle 格式整理器等众多自由软件,适合于在教学中供 C/C++语言初学者使用.
2. 键盘位置
看一下你的键盘,和下面的图(少了最上面的一行)做一个对照。
3、特殊符号
在编程里面,经常会用到一些特殊符号,学编程首先要知道怎么输出这些特殊符号。
经常用到的特殊符号有(第几行根据上面的图):
符号 | 输入方式 | 用途 |
---|---|---|
shift | 倒数第二行左右都有 | 输出大写字母,或键上边的特殊符号 |
blank | 最下面的中间长条 | 空格 |
tab | 第二行最左 | 制表符,平台上为2个空格 |
caps lock | 第三行最左 | 大小写切换,灯亮大写,灯灭小写 |
enter | 第三行最右(右shift上面) | 回车换行 |
' | enter左边第一个 | 单引号,两个表示字符,'a' |
; | enter左边第二个 | 分号,一个代码语句结束的符号 |
# | shilf+3 | 第一行必须用到 |
< | shift + , | 小于号,连续两个作输出用,cout << |
( | shift + 9 | 小括号,函数后面要用到,main() |
{ | shift + [(enter左上位置) | 大括号,main() {} |
" | shift + '(enter左边) | 双引号,两个表示字符串,"hello" |
4、C++ 基本语法
第一个程序:hello world
#include <iostream>
using namespace std;
int main() {
cout<<"hello world!";
return 0;
}
[练习题]
基础二
一、 cout输出
1、中文输出
双引号""表示是字符串,可以直接使用中文。
要小心的是,单引号只能是英文字符",不能是中文字符“,如果用了中文的“就会报错。
2、连续输出
如果要连续输出字符串和数值,例如:我的年龄是:11。
直接把字符串和数值连起来,用cout输出,这种方法是不行的。
cout << "我的年龄是:"11;
可以使用两个cout输出,或者用一个cout连续输出:
cout << "我的年龄是:";
cout << 11;
cout << "我的年龄是:" << 11;
3、 四则运算
学会cout输出以后,我们就可以使用cout输出四则运算的结果了。
cout << 3+2; //结果是5
表达式
:3+2不是字符串,而是表达式,输出的是表达式的结果(数值)。
4、换行符
endl 表示 换行符,用cout << endl就会实现换行。
cout << endl;
cout << endl;
cout << endl;
会输出三个空行。
5、多行输出
利用cout的连续输出特性,在输出信息后再跟一个endl,就能实现多行输出。
cout << "春眠不觉晓," << endl;
cout << "处处蚊子咬。" << endl;
练习题
二、整型变量
1. 变量
** 常量** const double PI = 3.14;
在程序运行期间其值可以改变的称为变量,变量要先声明,再使用。
int a; //声明一个整数类型的变量a
a = 100; //往a里面放入100这个数值,赋值
a = a + 1;
cout << a; //取出a里面的数值100,进行输出
c++支持在变量定义的同时初始化赋值,例如:
int n = 100; //声明一个整数类型的变量n,
//同时放入一个数值100
扩展理解
1. 变量名
- 大小写:区分大小写,如 A 和 a 是不同的变量名,但一般建议变量名用小写字母
- 规则:由字母、数字和下划线 3 种字符组成,第一个字符不能是数字
2. 变量的作用
- 当变量用来赋值时,例如a = 3,这时a的作用是容器,用来放入后面的3(赋值)。
- 当变量用来计算时,例如a + 1,这时a的作用是值,用来把a的值(3)取出来,再加上1,产生了一个中间结果4,注意这个4不会影响到a,a还是3。
- 当变量同时赋值和计算,例如a = a + 1,右边a的作用是值,把值(3)取出来,加上1,产生中间结果4,然后把4放入左边的a(容器)。
练习题
三、表达式
1. 表达式
表达式
:多个对象通过运算符连接组成。
2 + 3 //算术表达式
a = 3 //赋值表达式
3 > 2 //关系表达式
表达式的值
:
2 + 3 ----> 值为5
a = 3 -----> 值为3
3 > 2 -----> 值为true(真)
2. 复杂表达式
表达式可以作为一个对象(中间结果),参与组成更加复杂的表达式。
3 + 4 + 5 //3 + 4是一个表达式,再与运算符+、5组成新表达式
3 + 4 * 5 //3、运算符+、表达式4*5(值是20)组成新表达式
3 +( 3 > 2) //3、运算符+、表达式3>2(值是1)组成新表达式
四、cin输入
1、 cin输入流
- cin 和 cout 相反,一个是输入流,一个是输出流
- cin 从输入设备(一般为键盘)读入数据送到输入流中,赋值给指定变量。
- cout 是把信息输出到输出设备(一般为屏幕)。
2、 cin 语法
- 代码语法:
cin >> 变量 1 >> 变量 2 >> ... >> 变量 n;
- 平台操作:运行的时候,在结果区点击鼠标出现焦点,输入数据,多个数据用空格隔开,最后回车。
- 程序运行:运行到cin语句时,会停止在那里等待用户输入,输入完成后(回车符号)才继续往下运行。
- cin读入数据给变量,遇到空格、tab、回车就停止,读取下一个变量用的数据。
3、cin例子
//定义变量,用来接收输入
int n;
//程序运行到这里,会停止住,等待用户输入完成才继续往下
cin >> n;
cout << n << endl;
在学习阶段,建议使用cin前用cout输出提示,以防看不到信息,不知道点击输入
。
五、计数器
1、计数器
通常我们把具有计数功能的变量称为“计数器”,一般计数器变量用i 、j、k、n等命名。
有时候如果明确是计算次数、个数的,变量名也有使用num、count(缩写为cnt)的。
2、计数器模式
计数器在声明之后,要先设置一个初始值,一般是0。
计数器的运算一般都是每次+1或者-1。
3、自增运算符
语句i = i + 1,也可以写成i++,++叫做自增运算符。
4、自减运算符
语句 i = i - 1, 也可以写成 i--,--叫做自减运算符。
扩展理解
1、前自增和后自增
a = a * ++i ;
i++和++i是不一样的。
i++表示先用原来的i,再把i增加1,++i表示先把i增加1,再拿来用。
例如:
-
i为10, x = i++,则x=10, i=11
-
i为10, x=++i,则x=11, i=11
六、累加器
1、累加器
指一个变量,每次在自己原来的值基础上累加新的数据,例如
int n = 3;
//把n的值(3)取出来,加上100,产生中间结果103,再放回n容器
n = n + 100;
2、常用场景
当我们看到以下的场景时,首先就要想到这是一个累加器:
* 计算 1 + 2 + 3 + 4的和。
* 计算一个班级的成绩总和。
* 计算今天一共花了多少钱。
* 计算平均分。//先累加,再除数目,结果为平均分
3、累加器模式
int sum = 0;//定义变量,初始化为0
sum = sum + 1;//右边是0+1,运算后,sum的值是1
sum = sum + 2;//右边是1+2,运算后,sum的值是3
sum = sum + 3;//右边是3+3,运算后,sum的值是6
4、更多运算
除累加之外,还有累减、累乘、累除等运算:
x = x - 2;
y = y * 3;
z = z / 4;
总体上,都可以理解成: a) 取出变量的值。 b) 进行运算,产生中间结果。 c) 把中间结果放回变量。
####6.扩展理解*
6.1、累加与直接计算的区别
直接计算:
n = 1 + 2 + 3 + 4
累加:
n = 0;
n = n + 1;
n = n + 2;
n = n + 3;
n = n + 4;
累加有两种好处:
- 可以在每一步输出结果,进行调试,例如:
n = n + 2; cout << n; //这个时候输出3
- 可以继续往下累加(扩展),例如原来是加到4,现在加到5:
n = n + 4; //增加一行,不需要修改上面的代码 n = n + 5;
6.2. 递推
实际上,累加模式创造了一种递推的可能,即每次运行的结果作为下次运算的基础。
递推模式:
- 初始值: n = 0
- 递推公式: n = n + i, (i 从1到n)
七、除法与求余
1、除法运算/
15 / 2, 表示15除以2的整数,值为7。
1 / 3, 值为0
1.0 / 4, 值为0.25
/表示除法:
- 如果是整数/整数,结果是整除,小数会被丢掉。
- 如果有一个浮点数,结果是浮点数。(float,double)
2、求余算法%
15 % 2, 表示15除以2的余数,值为 1。
28 % 10, 表示38除以10的余数,值为8。
%表示求余,%运算的结果不会超过后面的值,例如 % 10 的结果最大是9。
八、小数类型
前面我们学到的都是整数,那么像0.5这样的小数,在编程语言里是怎么存储和使用的呢?
1、变量使用
//浮点数的变量声明和赋值
float f = 0.5;
double d = 0.5;
- float表示单精度浮点数,一般精度在7、8位数。
- double表示双精度浮点数,一般精度在15、16位数。
2、混合运算的自动转换
不同数据类型的变量混合运算时,会自动将所有变量类型都转换成最大精度的类型进行运算。
例如:整数运算表达式和浮点数运算表达式:
1 + 2 -> 返回整数3
1.0 + 2 -> 返回浮点数3.0
1 / 2 -> 返回整数0
1.0 / 2 -> 返回浮点数0.5
3、案例:求金字塔边的面积
金字塔的边是等腰三角形,假设底是 3 米,高是 5 米,面积公式是底 乘 高 除以 2。
int a = 3, b = 5;
float s = a * b / 2; //返回的是7,原因是整数运算
s = a * b / 2.0; //返回的是7.5,被转换成浮点数运算
a = 1e8;