type
status
date
slug
summary
tags
category
password
icon
教师:王颖 邮箱:[email protected] 要求:上实验课前预习 实验按进度递交(截止日期前) 答疑
成绩占比
spoc 10(作业、互评)
出勤10
期中考试30(第九周)
期末考试50
第一章
🤗 标识符
标识符是以字母或下划线开始的,由字母、数字字符和下划线组成的字符串,用来标
识变量名、符号常量名、函数名、类名等。例如,下面的标识符都是合法的。
A2 student area_of_circle num _dd Int
而下面的标识符则不合法。
2A A-B area of circle(一个标识符) M.D int
数据的输入和输出
cin和cout
一、cout
cout 称为标准输出设备,通常是指显示器
其使用形式为:
cout<<表达式 1<<表达式 2<<......<<表达式 n
;说明: 1 将各表达式的值按顺序输出到显示器上,数据的输出格式由系统自动决定。 2 “<<
”称为输出运算符,也称为插入运算符。 3 各表达式可以是任意类型的。 4 可以使用格式控制符控制数据的输出格式,如设置整数基数、数值表示形式、填充 5各表达式必须用<<
分隔,而不能用逗号
‘ ’表示字符常量
“ ”表示字符串常量
二、cin
其使用形式为:
cin>>变量1>>变量 2>>......>>变量 n;
说明: 1 从键盘输入数据,依次送入各变量中。 2 “>>”称为输入运算符,也称为提取运算符。后面必须跟变量,不需要加endl 3 各变量可以是任意数据类型,输入时各个数据之间用空格、TAB 键或回车分隔。
第二章 基本数据类型、运算符和表达式
数据类型
指出了应为数据分配的存储空间的大小
规定了数据所能进行的操作

变量
程序中所有变量必须先定义后使用;
没有确定值的变量不能参与被赋值以外的其它运算;
可同时定义多个同类型的变量,这些变量间通过逗号分隔;
C++中变量可随时使用,随时定义。
初始化
变量必须先有确定的值才能参与各种相应的操作
获取值的途径有
通过语句输入(sin>>a) 通过赋值语句(a=3) 通过初始化方式赋初值 (int k=3)
int k=m=n=3; ❌ //不允许为多个变量同时初始化
常量
在程序运行过程中其值不能改变的量,有值常量和符号常量两种
- 整形常量
进制 | 形式 | 实例 | 错例 |
十进制 | 以数字1~9开始 | -3,+5,12 | 045 |
八进制 | 以数字0开始
(由0~7之间数字组成) | 023,-010 | 078 |
十六进制 | 以0x或0X开始
(由0~9及A~F组成) | 0XAF,-0X51 | 0XFH |
- 实型常量 十进制小数形式:由正负号、数字和小数点组成如1.25、-1.25、17. 和 .1
指数形式:由尾数、指数符号e(或E)及指数构成,其中指数必须是十进制整数。 如:1.25e-5、+1e10、-1.25e5
注意:
e前面不能没有数字;
e后面的数字必须为整数(只能是值常量,不能是符号常量或变量);
指数不能用园括号括起来;
如:1E(-3)、E-5、1e2.1都是错误的。
- 字符常量
C/C++提供了两类字符型常量:
- 普通字符常量: 用单引号括起来的一个字符。如: ' A ' 、 ' 0 ' 、 '? '
- 转义字符常量:以“ \ ”开头的用单引号括起来的字符序列。如: ' \n ' 、 ' \t ' 、 ' \x61 '
说明:
Ø字符型数据在内存中以ASCII码存储
如:'A'的ASCII码为65;'a'的ASCII码为97; '0'的ASCII码为48
Ø 0~255之间的整型与字符型数据可通用
如:char ch= 'a'-32;
Ø '\0'与'0'不同,前者是空字符,ASCII码为0,后者是数字字符,ASCII码为48

- 字符串常量
是用双引号括起来的字符序列, 系统在字符串常量最后自动加字符串结束符号' \0 '
例如:
- 符号常量
是以标识符形式出现的常量,作用是便于程序阅读和修改。C++中用define命令或关键字const定义符号常量,形式如下:
#define 标识符 常量值
如#define PI 3.14
或:const 数据类型 标识符 = 常量值;
前者是命令,末尾无分号;
后者是语句,末尾有分号
1 习惯上符号常量名大写,而变量名小写,以示区分
2 符号常量虽然用标识符来标识,但本质上是常量,其值不能被修改;
运算符和表达式
运算符具有三个属性:
优先级:指运算的先后次序,共分15个级别。(见p27表1.2.4)
结合性:指相同优先级运算符连续出现时的计算顺序,分自左向右和自右向左两种,除特别声明外,皆指自左向右。
目 数:指运算符要求的操作数的个数,包括单目、双目和三目,一般目数越少,优先级越高。
算数运算
种类:
+ (加法或取正)
- (减法或取负)
* (乘法)
/ (除法)
% (求余数)
++ (自增)
-- (自减)
其中:++和--的结合性是自右向左的。
优先级:(从高到低)
(++、--、+、- )正负
(*、/、%)
( +、- )加减
在除法运算中,若两个操作数都是整数,则商为整数,小数部分一律舍去 • %(求余运算)要求两个操作数都是整型,结果为整除后余下的整余数,余数的符号与被除数符号一致。
自增、自减运算符(++、- -)++i , --i (在使用 i之前,先使i的值加减1)i++ , i-- (在使用 i之后, 再使i的值加减1)
关系运算
关系运算描述的是一种“判断关系”
种类:
<(小于)、<=(小于等于)、>(大于)
==(等于)、 >=(大于等于)、 !=(不等于)
优先级: (从高到低)
( < 、 <= 、> 、 >= )
( = = 、 != )
取值:
“真(true)” 或“假(false)”;用“1”代表“真”,用 “0” 代表“假”。如:
5>3 ? a<B ?
逻辑运算
逻辑运算通常用来连接关系运算。
种类:
&&(逻辑与)、 ||(逻辑或)、!(逻辑非)
优先级: (从高到低)
! && ||
运算要求与结果:
运算数可以是任意类型的数据,但所有“非0”的数据都当作“1”参与运算;
运算的结果只有 0(false)和1(true)两种。
说明:
当多个&&连续出现时,如表达式1&& 表达式2 && 表达式3,则从左到右,只要一个操作数为0,结果就为0,不进行后续运算。
当多个 || 连续出现时,如表达式1 || 表达式2 || 表达式3,则从左到右,只要一个操作数为1,结果就为1,不进行后续运算。
条件运算
形式:
e1?e2:e3
说明:
e1通常为条件表达式,但不仅限于条件表达式;
当e1成立时(非0),将e2的值作为整个表达式的值,不再计算e3;否则将e3的值作为整个表达式的结果,而不计算e2的值
赋值运算
变量 赋值运算符 表达式
作用:将一个数据赋给一个变量,并以变量的值作为整个表达式的值。 赋值运算符可以是 “=”,也可以是复合赋值运算符,如“+=”、“-=”、“*=”等
b /= a+2 等价于: b = b/(a+2)
逗号运算
形式: e1,e2,e3,……
说明:
e1、e2、e3均为表达式,从左向右依次计算;
最后一个表达式的值作为整个表达式的值;
逗号运算符常用于循环语句的表达式中,将多个表达式连成一个表达式,如:
for(i=0,j=n;i<j;i++,j--)
逗号运算符的优先级别最低。
第三章 结构化程序设计
复合语句(Compound Statement),也称为块(Block),是一种语言结构,用于将多个语句组合在一起,使它们作为一个单元来执行。复合语句由一对花括号{}
包围,其中包含了一个或多个语句。这些语句在复合语句内部按照顺序执行
顺序结构
是一种按照语句出现的先后顺序依次执行的语句结构
选择结构
是一种根据条件的值判断程序流向的语句结构,C/C++提供两类选择语句: - if语句,实现n分支,要求n个表达式; - switch语句,实现多分支;只用1个表达式。
双分支if语句
形式:
当表达式为真(非0)时,执行语句1,否则执行语句2。
多分支if语句
注意:
无论有几个分支,程序只执行一个分支,当有多个表达式同时满足时,则只执行第一个与之匹配的语句
switch语句
是一种条件控制语句,用于在多个不同的选项之间进行选择执行。 执行过程:当若表达式的值与某个常量表达式的值相等,则从该常量表达式后面的语句开始执行,直至遇到break后退出switch语句;若找不到相匹配的常量表达式,则执行default后面的语句 它的基本语法如下:
break、default都是可写可不行
循环结构
说明:
1 如果表达式代表的条件为真(非0),则执行循环体语句后再回到条件判断,直到条件为假(0)跳出循环;
———
2 循环体语句只能是一条语句,但可以为复合语句;
———
3 while循环和for循环中,表达式结束的括号后不能有“;”但do while循环中,表达式结束的括号后一定要有“;”
———
4 while循环和for循环先判断后执行,循环体可能一次都不执行; do while循环先执行后判断,循环体至少执行一次。
while循环
语法:while (布尔表达式) { 循环体; }

2 do-while循环
语法do { 循环体; } while(布尔表达式) ;
do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-while循环的循环体至少执行一次。

3 for循环
语法for (初始表达式; 条件; 更新) {
循环体;
}
for循环中三个表达式都可以省略,但两个分号不能省

其他控制语句
数组
一维数组
形式
数组名[整型常量表达式] 例如 s[5]
1. 下标从0开始
2. 数组名是常量,表示数组在内存中的首地址。
- 数组长度应该为整型常量表达式,不能是变量
数组元素基本操作
- 数组元素的输入
for(j=0; j<N; j++) cin>>a[j];
- 通过随机函数rand()产生0~100的N个数据
线性同余法求rand : n = (a*f(n)+b)%M
- 数组元素的求和
sum=0;
for(j=0; j<N; j++)
sum+=a[j];
二维数组
定义
数据类型
数组名[常量表达式1][常量表达式2]
如float a[2][3];
以“先行后列”的规则连续存放
数组的初始化
- 按在内存排列顺序
int a[2][3]={1,2,3,4,5,6};
- 按行给所有元素赋初值,每一行的数据放于一个花括号内
int a[2][3]={{1,2,3},{4,5,6}};
- 按行给部分元素赋初值,在静态存贮类型static中省略的元素初值此时自动为0
static int b[3][4]={{1,2},{0,3,4},{0,0,5}}
- 按行赋初值也可省略第一维的长度
static int c[ ][3]={{1},{ },{2}};
对应的数组c为:
字符串和字符数组
字符串常量: "ab123"
a | b | 1 | 2 | 3 | \0 |
字符串结尾有‘\0’
字符串处理函数
加上#include “stdio.h”
strlen(str)
功能:求str所指向的字符串的长度。不包括字符串结束标志'\0' 说明:str可为字符串常量、字符数组名或字符指针。L=strlen(s);
strlwr(str)
功能:将字符串中的大写字母转换成小写字母。 说明:str为字符字符串常量、数组名或字符指针 或者for (i = 0; str[i] !='\0'; i++) if(str[i]>=’A’&&str[i]<=‘Z’) str[i]=str[i]-’A’+’a’ ;
strupr(str)
功能:将字符串中的小写字母转换成大写字母。 说明:str为字符字符串常量、数组名或字符指针
strcpy(str1,str2)
功能:将str2所指的字符串复制到str1中。 说明:str1和str2为字符数组名或字符指针,str2还可以是字符串常量。str1要有足够大的空间。
strcat(str1,str2)
功能:将str2字符串内容连接到str1字符串内容的后面 说明:str1要有足够大的空间。 例如:char s1[20] = “abcd”,*p=s1; cout<<strcat(s1, “kkk")<<endl; //s1中的内容变为abcdkkk
strcmp(str1,str2)
功能:比较字符串str1和str2的大小。 说明:从左至右逐个字符进行比较ASCII码值,直到出现不相同字符或遇到'\0'为止。
str1 小于 str2 返回 -1
str1 等于 str2 返回 0
str1 大于 str2 返回 1
指针和数组
指针是一种变量,存放另一个变量的地址
函数
函数的特点:
- 函数具有相对独立的功能;
- 函数之间通过参数(输入)和返回值(输出)来联系;
- 使用函数有利于代码重用,提高开发效率;
使用说明:
- 函数类型指函数返回值的数据类型;
- 形式参数可以为空,但圆括号不能省略;
- 对没有返回值的函数,函数类型定为void型(无类型或空类型)。
- 非void型函数的函数体中必须要有
return
语句,用于返回函数值;返回的表达式值的类型与函数类型最好一致。形式为:return 表达式
;
或return (表达式)
;
- void型函数的函数体中return语句可以不出现;若出现,则不能带任何表达式。
return;
- 函数的定义需独立于其它函数之外,即函数体中不允许嵌套定义函数;
- 作者:王康吉
- 链接:https://kangji.wang/article/CppStudy
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。