C语言程序设计前五章总结
2021-12-16 11:46:19 7 举报
AI智能生成
C语言入门前五章超详细思维导图,包含很多小的、细的知识点,入门必备。
作者其他创作
大纲/内容
第一章 程序设计与C语言
1.2 程序与程序设计语言
1.2.1 程序设计语言的发展
1946年第一台电子计算机问世
1.机械语言
第一代计算机语言
0和1组成的二进制指令代码。机器指令的集合(即指令系统)就是该计算机的机器语言。
2.汇编语言
用助记符来代替机器指令的二进制串
3.高级语言
接近于数学语言或人的自然语言,不依赖于计算机硬件
(1)非结构化的语言
早期追求效率:FORTRAN、ALGOL、BASIC
(2)结构化语言
良好的基本结构:QBASIC、Pascal、C语言
(3)面向对象的语言
流水式:C++、C#、Visual Basic、JAVA
1.2.2 程序设计语言的功能
1.数据表达(即定义变量)
数据类型就是对某些具有相同性质的数据集的总称
2.流程控制(数据处理)
(1)顺序控制结构
(2)分支控制结构
(3)循环控制结构
共同特点
只有单一的入口和单一的出口
结构中的每个部分都有被执行的可能
结构内不应出现永不终止的死循环
1.2.3 程序的算法表示
软件的主体是程序,程序的核心是算法
算法特点
(1)确定性
(2)有穷性
(3)可行性
(4)有零个或多个输入
(5)有一个或多个输出
1.用文字描述算法
2.用流程图描述算法
顺序结构
选择结构
循环结构
3.伪代码表示
4.程序设计语言表示
程序特点
完成某一特定的任务
使用某种程序设计语言描述如何完成该任务
储存在计算机中,并且被运行后才能起作用
1.3 C语言程序设计的特点
1.3.1 C语言的发展历史
C语言是1972年由美国贝尔实验室的Dennis Ritchie设计
1.3.2 C语言的特点
语句简洁紧凑,使用方便灵活
9种控制语句
运算符丰富,表达能力强
C语言程序可移植性好
生成的目标代码质量高、运行效率高
语言处理能力强
C语言是一种结构化语言
不足
语法检查不严格
对数组下标越界不检查,导致程序出错
1.3.3 C语言的约定
一般将程序设计语言的规范称为语法
1.C语言中的约定
标识符
第一个字符必须是字母或下划线
关键字
C语言中共有32个关键字
用户自定义标识符
预定义标识符
分隔符
逗号
类型说明和函数参数表中,分隔各个变量
空格
用于个单词之间作间隔符
2.C语言的语法成分
常量
变量
运算符
C语言提供了34种运算符
表达式
算术运算优先于关系运算
语句
以分号结尾
函数定义与调用
函数是完成特定功能的小模块
输入与输出
1.4 C程序的编辑、编译、链接和运行
1.4.1 程序设计的任务
分析问题
设计算法
程序设计
运行并调试程序
分析程序运行结果
编写程序文档
1.4.2 运行C程序的步骤与方法
编辑源程序
对源程序进行编译
链接(库函数)
运行(目标程序)
第二章 数据类型、运算符和表达式
2.1引例
注释可以出现在程序中合适的地方,但必须成对出现
2.2 C语言的数据类型
基本类型
整形
字符型
实型(浮点型)
构造类型
数组类型
结构体类型
共用体类型
枚举类型
指针类型
空类型
2.3 C语言的常量
2.3.1 直接常量
1.整型常量
即整数,包括正整数、负整数、零
十进制表示:数字0~9,正、负号;
八进制表示:以0为前缀,其后由数字0~7组成;一般无符号
十六进制表示:以0x、0X为前缀,其后由数字0~9和A~F组成;一般无符号
后加u、U认为是unsigned int;后加l、L认为是long int;
2.实型常量
实数又称为浮点数,C语言中,实数只能用十进制形式表示
小数形式:整数或小数为零时可以省略,但小数点不可以
指数形式:格式+-尾数E指数
E或e前后必须有数字,并且指数部分只能是整数
3.字符型常量
特点:
只能用单引号括起来,不能用双引号或其他
是单个字符,不能是字符串
可以是ASCII字符集中的任意字符,只占一个字符
\数字 表示八进制;\x数字 表示十六进制
\0放入函数,直接结束
4.字符串常量(双引号)
2.3.2 符号常量(用标识符表示常)
形式:#define 标识符 常量值
好处:
增加程序的可读性
提高程序的可维护性
简化程序代码
方便数组定义
2.4 C语言的变量
2.4.1 变量的定义与使用
1.变量的定义
2.变量的初始化
3.变量的使用
2.4.2 整型变量
说明:
有符号整数以二进制补码形式存储
无符号整数以二进制原码形式存储
2.4.3 实型变量
单精度型数据能保留7位有效数字,双精度型数据能保留16位有效数字
双精度只保留6位小数,其余部分四舍五入
2.4.4 字符型变量
2.5 运算符和表达式
2.5.1 赋值运算符和赋值表达式
1.简单赋值运算符(”=“)
2.复合赋值运算符
3.赋值表达式
赋值语句属于表达式语句
赋值运算符左侧必须是一个变量
赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号
2.5.2 算数运算符和算术表达式
1.基本的算术运算符
如果a和b中有一个是实型,则a和b都转换为double类型
2.自增、自减运算符
前缀方式:先计算,后使用
后缀方式:先使用,后计算
注意:
两个单目运算符不能出现在同一个式子中。
先单目,后双目
3.算术运算符的优先级和结合性
单目右结合,双目左结合
4.算术表达式
2.5.3 逗号运算符和逗号表达式
执行顺序:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值
2.5.4求字节数运算符(单目)
2.6 数据类型转换
2.6.1自动类型转换
把占用内存空间少的(低级)类型向占用空间多的(高级)类型转换
2.6.2强制类型转换
(类型说明符)(表达式)
注意:
需强制类型转换中的表达式一定要括起来,否则只对紧随括号后的量进行类型转换
由高到低,会损失数据的精度
并不改变表达式中变量的类型和值
第三章 顺序结构程序设计
3.2 C语言的语句
1.说明语句
2.表达式语句
3.分支语句
4.循环语句
5.转向语句
6.复合语句
7.空语句
8.函数定义与调用
9.输入和输出
3.3 数据的输入和输出
C语言本身没有提供输入输出语句,所有的数据输入输出功能都是由系统提供的库函数
3.3.1 输出函数(printf())和输入函数(scanf())
1.printf()函数
(1)格式控制说明
(2)普通字符
2.scanf()函数
(1)格式控制说明
(2)普通字符
3.3.2 整形数据的输入和输出
3.3.3 实型数据的输入和输出
3.3.4 字符型数据的输入和输出
1.使用scanf()函数和printf()函数对字符型数据进行输入输出
2.使用getchar()函数和putchar()函数对字符型数据进行输入输出
(1)getchar()函数
(2) putchar()函数
3.4 数学库函数
exp(x)即e的x次方
fabs(x)绝对值
以e为底的对数函数log(x)
幂函数pow(x,y)
平方根函数sqrt(x)
第四章 分支结构程序设计
4.2 关系运算符、逻辑运算符、条件运算符
4.2.1 关系运算符和关系表达式
1.关系运算符
注意:1.关系运算符都是双目运算符,其结合方向是左结合
2.关系运算符的优先级低于算术运算符,但高于赋值运算符
3.关系运算符中,>,<,>=,<=的优先级相同,==,!=的优先级相同,前者的优先级高于后者
2.关系表达式
4.2.2 逻辑运算符和逻辑表达式
1.逻辑运算符
‘!’ 逻辑非 右结合 单目 高
‘&&’ 逻辑与 左结合 双目 |
‘||’ 逻辑或 左结合 双目 低
2.逻辑表达式
说明:可以是任何类型的数据,最终都是以非0和0来判断
a&&(b=0)正确
当计算出一个值表达式的值,确定了整个逻辑表达式的值,此后就不再计算右边表达式的值,这种情况叫做“短路”
只有当“&&”左边的表达式值为真时才计算右边表达式的值
只有当“ | | ”左边的表达式值为假时才计算右边表达式的值
运算符优先级:
! 算术运算符 关系运算符 &&和|| 赋值运算符
右结合 左结合 右结合
高——————————————————————————低
4.2.3 条件运算符和条件表达式
1.条件运算符
条件运算符由”?"和“:”两个符号组成,由于条件求值,它是一个三目运算符,需要有三个操作数,条件运算符的优先级低于逻辑运算符,高于赋值运算符,它是右结合的。
2.条件表达式
形式:表达式1?表达式2:表达式3
顺序:计算1,非0真,执行2;否则执行3;
4.3 使用if-else实现分支结构
4.3.1 if-else语句
1.双分支if语句
2.单分支if语句
4.3.2 if 语句的嵌套
4.3.3 多分支if语句
4..4 使用switch语句实现分支结构
说明:switch后的表达式可以是任何表达式,但值只能为整形、字符型、枚举型之一
每个case后面的常量表达式的值互不相同,否则就会出现互相矛盾的现象
各个case和default的出现次序不影响执行结果
可以让多个case共用一组执行语句
switch语句允许嵌套使用
4.5 分支结构程序设计示例
第五章 循环结构程序设计
5.2 使用for语句实现循环结构
for语句是C语言提供的功能强大、使用广泛的一种循环结构,不仅可以解决循环次数未知的循环问题,特别适合解决循环次数已知的循环问题
若输入的数字字符是‘7’,其ASCII码是55,而字符‘0’的ASCII码是48,二者相减即为数字7.这是一种将数字字符转换为数字的常用方法
5.3 使用while语句实现循环语句
在C语言中,使用while语句完成不定次数的循环。如果满足循环条件,则反复执行循环语句,当循环条件不满足时退出循环
语句中的表达式可以是任意类型的表达式,若表达式的值为非0,则表示循环条件为“真”,执行循环体语句,若表达式的值为0,则表示循环条件为“假”,不执行循环体语句,结束循环,执行循环结构的下一条语句。
5.4 使用do-while语句实现循环语句
在C语言中,do ——while语句也用于完成不定次数的循环控制。与while语句不同的是,do ——while语句首先执行一次循环体,然后判断循环条件,如果满足则反复执行循环体语句,否则结束循环。
一般来说,如果题目中给出的循环次数首选for循环语句,如果循环次数不明确,需要通过其他条件控制循环。通常选用while循环语句,如果需要先执行语句,然后再根据条件判断是否执行循环体,则do while语句最合适。
5.5 改变循环结构的跳转语句
5.5.1 break语句
当break语句用于循环语句中时,可使程序终止循环而转去执行循环语句的后续语句。通常break语句总是与if一起配合使用,即满足条件时便跳出循环。
5.5.2 continue语句
continue语句的作用是跳过循环体中continue后面的语句,继续下一次循环。continue语句只能用在循环语句中,常与 if语句一起使用
注意continue语句与break语句有本质的区别;continue语句只是结束本次循环,并不终止整个循环的执行;而break语句的作用是强制终止整个循环程序
5.6 循环嵌套
循环嵌套格式中的内外循环不允许出现交叉,即外循环要完全包括内循环
循环嵌套时,内循环中使用break语句和continue语句时,只影响包含它们的内循环,与外循环无关
5.7 典型算法举例
5.8 循环程序设计示例
0 条评论
下一页