💻C/C++程序设计
00 分钟
2023-9-14
2023-11-9
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 键或回车分隔。

第二章 基本数据类型、运算符和表达式

数据类型

指出了应为数据分配的存储空间的大小 规定了数据所能进行的操作
notion image

变量

程序中所有变量必须先定义后使用;
没有确定值的变量不能参与被赋值以外的其它运算;
可同时定义多个同类型的变量,这些变量间通过逗号分隔;
C++中变量可随时使用,随时定义。
🎨
初始化 变量必须先有确定的值才能参与各种相应的操作
获取值的途径有
通过语句输入(sin>>a) 通过赋值语句(a=3) 通过初始化方式赋初值 (int k=3)
int k=m=n=3;      ❌      //不允许为多个变量同时初始化

常量

在程序运行过程中其值不能改变的量,有值常量符号常量两种
  1. 整形常量
    1. 进制
      形式
      实例
      错例
      十进制
      以数字1~9开始
      -3,+5,12
      045
      八进制
      以数字0开始 (由0~7之间数字组成)
      023,-010
      078
      十六进制
      以0x或0X开始 (由0~9及A~F组成)
      0XAF,-0X51
      0XFH
  1. 实型常量 十进制小数形式:由正负号、数字和小数点组成如1.25、-1.25、17. 和 .1
    1. 指数形式:由尾数、指数符号e(或E)及指数构成,其中指数必须是十进制整数。 如:1.25e-5、+1e10、-1.25e5
      🎨
      注意: e前面不能没有数字; e后面的数字必须为整数(只能是值常量,不能是符号常量或变量); 指数不能用园括号括起来; 如:1E(-3)、E-5、1e2.1都是错误的。
  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
 
notion image
  1. 字符串常量
是用双引号括起来的字符序列, 系统在字符串常量最后自动加字符串结束符号' \0 '
例如:
 
  1. 符号常量
是以标识符形式出现的常量,作用是便于程序阅读和修改。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 (布尔表达式) { 循环体; }
notion image
 

2 do-while循环

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

3 for循环

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

其他控制语句

break

用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环。
  1. 只能在循环体内和switch语句体内使用break
  1. 当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体并不能终止循环体的执行

continue

跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定
 
  1. 并没有使整个循环终止。
  1. continue只能在循环语句中使用即只能在 for、while 和 do…while 语句中使用
 

数组

一维数组

形式
数组名[整型常量表达式] 例如 s[5]
💡
1. 下标从0开始
 2. 数组名是常量,表示数组在内存中的首地址。
  1. 数组长度应该为整型常量表达式,不能是变量

数组元素基本操作

  1. 数组元素的输入 for(j=0;  j<N;  j++) cin>>a[j];
  1. 通过随机函数rand()产生0~100的N个数据
线性同余法求rand : n = (a*f(n)+b)%M
  1. 数组元素的求和
    1. sum=0; for(j=0;  j<N;  j++) sum+=a[j];

二维数组

定义

数据类型 数组名[常量表达式1][常量表达式2]
float a[2][3];
以“先行后列”的规则连续存放

数组的初始化

  1. 按在内存排列顺序 int  a[2][3]={1,2,3,4,5,6};
  1. 按行给所有元素赋初值,每一行的数据放于一个花括号内 int  a[2][3]={{1,2,3},{4,5,6}};
  1. 按行给部分元素赋初值,在静态存贮类型static中省略的元素初值此时自动为0 static  int  b[3][4]={{1,2},{0,3,4},{0,0,5}}
  1. 按行赋初值也可省略第一维的长度 static  int  c[ ][3]={{1},{ },{2}}; 对应的数组c为:

字符串和字符数组

字符串常量: "ab123"
a
b
1
2
3
\0
字符串结尾有‘\0’

字符串处理函数

加上#include “stdio.h”
  1. strlen(str) 功能:求str所指向的字符串的长度。不包括字符串结束标志'\0' 说明:str可为字符串常量、字符数组名或字符指针。L=strlen(s);
  1. strlwr(str) 功能:将字符串中的大写字母转换成小写字母。 说明:str为字符字符串常量、数组名或字符指针 或者for (i = 0; str[i] !='\0'; i++) if(str[i]>=’A’&&str[i]<=‘Z’) str[i]=str[i]-’A’+’a’ ;
  1. strupr(str) 功能:将字符串中的小写字母转换成大写字母。 说明:str为字符字符串常量、数组名或字符指针
  1. strcpy(str1,str2) 功能:将str2所指的字符串复制到str1中。 说明:str1和str2为字符数组名或字符指针,str2还可以是字符串常量。str1要有足够大的空间。
  1. strcat(str1,str2) 功能:将str2字符串内容连接到str1字符串内容的后面 说明:str1要有足够大的空间。 例如: char  s1[20] = “abcd”,*p=s1; cout<<strcat(s1, “kkk")<<endl;     //s1中的内容变为abcdkkk
  1. strcmp(str1,str2) 功能:比较字符串str1和str2的大小。 说明:从左至右逐个字符进行比较ASCII码值,直到出现不相同字符或遇到'\0'为止。
💡
str1    小于  str2    返回 -1
str1 等于  str2         返回 0
str1 大于 str2 返回 1

指针和数组

指针是一种变量,存放另一个变量的地址

函数

函数的特点:
  • 函数具有相对独立的功能;
  • 函数之间通过参数(输入)和返回值(输出)来联系;
  • 使用函数有利于代码重用,提高开发效率;
💡
使用说明:
  • 函数类型指函数返回值的数据类型;
  • 形式参数可以为空,但圆括号不能省略;
  • 对没有返回值的函数,函数类型定为void型(无类型或空类型)。
  • 非void型函数的函数体中必须要有return语句,用于返回函数值;返回的表达式值的类型与函数类型最好一致。形式为: return  表达式 或    return  (表达式);
  • void型函数的函数体中return语句可以不出现;若出现,则不能带任何表达式。 return;
  • 函数的定义需独立于其它函数之外,即函数体中不允许嵌套定义函数;
 

评论