C语言总复习.ppt_第1页
C语言总复习.ppt_第2页
C语言总复习.ppt_第3页
C语言总复习.ppt_第4页
C语言总复习.ppt_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2 2数据类型概述 按所表示数据的类型分为 规定 在程序中用到的数据 必须指定数据类型 2 2数据类型概述 按数据的数值是否可变分为 2 3常量 2 数值常量 整型常量 12 3实型常量 13 45 2 34字符常量字符串常量 如 definePRICE30 定义 程序运行时其值不能改变的量 即常数 分类 1 符号常量 用一个符号代表常量定义格式 define符号名常量值 例2 1 符号常量举例 definePRICE30main intn t n 10 t n PRICE printf t d t 运行结果 total 300 2 4变量 变量 在程序运行过程中 其值可以改变的量 有关变量的规定 变量通过变量名来标识 变量名和内存中存储单元相对应 编写程序时通过变量名来存 取存储单元 变量名 8 1000H1001H1002H 255 12 inta 12 变量必须先定义 后使用 2 4变量 变量名的命名规则 变量名必须是一个C语言合法的标识符 标识符 名称定义 用来标识变量名 符号常量名等的字符序列 组成 由字母 数字 下划线组成 且第一个字符必须是字母或下划线 区分大小写 不能使用关键字 最长32个字符 命名原则 1 见名知意 2 不宜混淆 如 l与I o与0 3 符号常量习惯全用大写字母 2 4变量 变量名的命名规则 例2 2 判断下列标识符号合法性 sumSumM D JohndayDate3daysstudent name 33lotus 1 2 3chara b above 123 3days 33 char 123 a b M D John 下面列出的是合法的标识符 也是合法的变量名 sum1 average total month下面是不合法的标识符和变量名 y123 33 3 d64 2 4变量 变量名的命名规则 下一页 call ntest39 string1abccall n39test string1c2 0 例2 3 判断下列标识符号合法性 C语言的基本字符集 数字 0123456789字母 abc zABC Z运算符 特殊符号 下划线 回车 r 换行 n 制表符 t ASCII字符集 基本字符集 返回 C语言的关键字 返回 32个关键字 autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile 关键字 由系统定义的具有特殊含义的符号 不能作其它定义 2 4变量 变量定义的格式 定义变量的一般格式 数据类型变量名1 变量名2 变量名n 决定分配字节数和数的表示范围 合法标识符 如 inta b c floatdata 2 4变量 变量的赋初值 定义变量之后可以给变量赋初值 可将一个同类型的常量赋值给变量 inta 2 b c 4 floatdata 3 67 inta b c floatdata a 2 c 4 data 3 67 如 inta 2 b c 4 floatdata 3 67 charch A intx 1 y 1 z 1 2 4变量 变量的使用规则 如 intstudent stadent 19 Undefinedsymbol statent infunctionmain 变量定义位置 一般放在函数开头 变量的使用 先定义 后使用 3 1整型数据 3 1 2整型常量与整型变量 1 整型常量 整型常量即整常数如 123 45 3 1整型数据 3 1 2整型常量与整型变量 2 整型变量的种类 有三种整型变量 1 基本整型 以int表示 2 短整型 以shortint表示 或以short表示 3 长整型 以longint表示 或以long表示 3 1整型数据 3 1 2整型常量与整型变量 2 整型变量的种类 在实际应用中 变量的值常常是正的 如学号 库存量 年龄 存款额等 为了充分利用变量的表数范围 此时可以将变量定义为 无符号 类型 对以上三种都可以加上修饰符unsigned 以指定是 无符号数 如果加上修饰符signed 则指定是 有符号数 如果既不指定为signed 也不指定为unsigned 则隐含为有符号 signed 实际上signed是完全可以不写的 3 1整型数据 3 1 2整型常量与整型变量 2 整型变量的种类 归纳起来 可以用以下6种整型变量 即 有符号基本整型 signed int无符号基本整型unsignedint有符号短整型 signed short int 无符号短整型unsignedshort int 有符号长整型 signed long int 无符号长整型unsignedlong int 3 1整型数据 3 1 2整型常量与整型变量 2 整型变量的种类 十进制小数如12 12 2 34指数形式如1 2e3123e3 123 103 1e3 1 103 10E2 10 102 规范化形式 小数部分数字小于1 小数点后第一个数字必须是非0数字 必有小数点 e或E前必须有数 且后必为整数 3 2 1实型常量的表示形式 3 2实型数据 3 2实型数据 3 2 2实型变量 1 实型变量的分类 float doubleANSIC并没有具体规定每种类型数据的长度 精度 数值范围 由编译系统自行决定 一般编译系统规定如下表 数据类型数据的长度精度有效位单精度 float 4字节6 7位有效数字双精度 double 8字节15 16位有效数字 3 2 2实型变量 3 把实数按双精度数处理 系统默认将实型常量当作双精度处理 加上f或F后就作单精度处理 一个实型常量可对其它实型变量赋值 但要根据变量的类型截取常量中相应的有效位数 如 如 Floata doublea a 123456 7a 123456 789 接受7位有效数字 9位有效数字全部接受 3 2实型数据 3 3 1字符常量和字符变量 1 字符常量 定义 用单引号括起来单个普通字符或转义字符 如 a A n 字符常量的值 该字符的ASCII码值 如 A 65 a 97 0 48 n 12 3 3字符型数据 3 3 1字符常量和字符变量 2 转义字符 方式 反斜线后面跟一个字符或一个代码值 意义 表示将反斜杠后面的字符或代码转换成另外的意义 这这些字符一般不能显示具体的字符形状出来 只表示特殊的含义 3 3字符型数据 3 3 1字符常量和字符变量 2 转义字符 注意 转义字必须以反斜杠作为开头标志 而且在其后只能有一个字符 或代表字符的八进制或十六进制数 如 nn 是不合法的 101 x41 A 012 n 字符常量只包含一个字符 例如 a n 合法 ax food 不合法 字符常量区分大小写 单引号 是定界符 表示内部是一个字符常量 引号本身不属于字符常量 3 3字符型数据 3 3 1字符常量和字符变量 3 字符变量 字符型变量是通过关键字char来说明的 格式如下 如 charc1 c2 每个字符型变量可用来存放一个字符常量 如 c1 A c2 B 可合并为 charc1 A c2 B 3 3字符型数据 3 3 1字符常量和字符变量 4 字符数据与整型数据在一定条件下可以通用 1个字符型数据在内存用1个字节来存储 存储的是字符对应的ASCII码值 将ASCII码值用二进制形式存储 如 A65B66 字符变量和整型变量是通用的 可以互相赋值 如 charc a charc 97 3 3字符型数据 3 3 1字符常量和字符变量 4 字符数据与整型数据在一定条件下可以通用 字符变量可以使用两种形式输出 既可以字符 c 的形式输出 也可以整型 d 的形式输出 例2 3字符数据的赋值和输出 includevoidmain charc1 97 c2 98 charc1 a c2 b printf c c n c1 c2 printf d d n c1 c2 运行结果a b97 98 3 3字符型数据 C语言中的运算符 15类 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 及其扩展条件运算符 逗号运算符 指针运算符 求字节数 sizeof强制类型转换 类型 分量运算符 下标运算符 其它 学习运算符应注意 与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型 1算术运算符和算术表达式 基本算术运算符 结合方向 从左向右优先级 2 3 4 说明 作为单目运算符时 右结合性两整数相除 结果为整数 要求两侧均为整型数据 中任意数类型为实型 结果均为实型 例5 2 5 2 0 例5 2 5 2 1 10 5 1 5 5 2 例5 2 2 5 2 0 2 5 例5 2 1 5 2 11 10 15 1 05 5 2 inta b c floatd a b c 1 5 a b c 1 5 a b c a b c a b c a b c 自增 自减运算符 作用 使变量值加1或减1优先级与 相同 2 级 从右向左结合种类 前置 i i 先执行i 1或i 1 再使用i值相当于i i 1 后置i i 先使用i值 再执行i 1或i 1 例j 3 k j j 3 k j j 3 printf d j j 3 printf d j a 3 b 5 c a b a 3 b 5 c a b k 4 j 4 k 3 j 4 4 3 c 20 a 4 c 15 a 4 说明 不能用于常量和表达式 如5 a b 结合方向 由右向左优先级 2 3 4 2赋值运算符和赋值表达式 简单赋值运算符符号 格式 变量标识符 表达式作用 将一个数据 常量或表达式 赋给一个变量 复合赋值运算符种类 含义 var1op exp2 var1 var1opexp2 说明 结合方向 由右向左优先级 14 左侧必须是变量 不能是常量或表达式 例inti i 2 56 结果i 2 例 a 5 c 6 a b 4 c 6 a b 10 c 2 表达式值11 c 6 a 11 表达式值10 a 10 b 4 c 6 表达式值5 a 5 b 10 c 2 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型赋值表达式的值与变量值相等 且可嵌套 例 3 x 2 y a b 3 关系运算符种类 结合方向 自左向右优先级别 6 7 运算结果为 1或0 例inta 3 b 2 c 1 d f a bc a bb cbf a b c 表达式值1 表达式值1 表达式值0 d 1 f 0 3关系运算符和关系表达式 关系运算注意事项 例若a 0 b 0 5 x 0 3 则a x b的值为 0 例inti 1 j 7 a a i j 4 0 则a 2 例 a 0结果为 A 100结果为 1 0 例注意区分 与 inta 0 b 1 if a b printf aequaltob elseprintf anotequaltob aequaltob a b anotequaltob 注意数学上的关系运算符和C语言中的关系运算符的区别 逻辑运算符种类 逻辑运算真值表 C语言中 运算量 0表示 假 非0表示 真 运算结果 0表示 假 1表示 真 4逻辑运算符和逻辑表达式 例ab x ya b x y a a b 优先级 2 11 12 结合方向 a x x b a b x y a b x y a a b 例a 4 b 5 aa ba b a b4 0 25 3 2 8 4 0 c d 值为1 值为0 值为1 值为1 值为1 值为1 5 3 2 8 4 0 值为1 逻辑运算的短路特性 逻辑表达式求解时 按从左向右的顺序计算运算符两侧的操作数 一旦得到表达式的结果 就停止计算 后面的运算符和表达式都被 短路 例a m a b n c d 结果m 0 n 1 一般形式 expr1 expr2 expr3执行过程功能 相当于条件语句 但不能取代一般if语句 结合方向 自右向左如a b a c d c d a b a c d c d expr1 expr2 expr3类型可不同 表达式值取较高的类型 例x a b x 0 表达式值为 b x 0 表达式值为 a x y 1 1 5 x y 值为1 0 x y 值为1 5 5条件运算符和条件表达式 形式 表达式1 表达式2 表达式n结合性 从左向右优先级 15 逗号表达式的值 等于表达式n的值用途 求多个表达式的连续计算 常用于循环for语句中 例a 3 5 a 4a 3 5 a 4 a 5例x a 3 6 3 x a 3 6 a例a 1 b 2 c 3 printf d d d a b c printf d d d a b c b c a 15 表达式值60 a 15 表达式值20 赋值表达式 表达式值18 x 18 逗号表达式 表达式值18 x 3 1 2 3 3 2 3 6逗号运算符和逗号表达式 5 3C语句的分类 下一页 5 3C语句的分类 条件语句多分支选择语句 9种控制语句 循环语句循环语句循环语句结束本次循环语句中止执行switch或循环语句 1 if else 2 switch3 for 4 while 5 do while 6 continue7 Break8 Return9 goto 转向语句 从函数返回语句 返回 5 3C语句的分类 由一次函数调用加一个分号构成的语句 函数调用语句 例如 printf ThisisaCprogram scanf d a 又如 若自定义函数intmax inta intb 则有函数调用语句x max 2 5 返回 5 3C语句的分类 由一个表达式后接一个分号构成 表达式语句 返回 5 3C语句的分类 只有一个分号的语句 它什么也不做 空语句 如 常用于被转向点 或循环语句的循环体如 if x 0 elsey x while x 1 返回 5 3C语句的分类 用 把一些语句括起来成为复合语句 复合语句 如 if x 0 i sum sum x else j sub sub x 注意 复合语句中最后一个语句末尾的分号不能漏掉 C语言可以一行写几个语句 也允许一个语句拆开写在几行上 返回 5 4输入和输出语句 一 字符的输入和输出 格式 getchar 功能 从键盘读一字符 字符输入函数 格式 putchar c 参数 c为字符变量功能 把字符c输出到显示器上 字符输出函数 5 4输入和输出语句 一 字符的输入和输出 5 4输入和输出语句 二 格式化输入和输出 格式 printf 格式控制串 输出表 功能 按指定格式向显示器输出数据 格式输出函数 输出表 要输出的数据 可以没有 多个时以 分隔 格式控制串 包含两种信息格式说明 修饰符 格式字符 用于指定输出格式普通字符或转义序列 原样输出 5 4输入和输出语句 二 格式化输入和输出 5 4输入和输出语句 1 格式字符表 5 4输入和输出语句 2 修饰符表 5 4输入和输出语句 例inta 1234 floatf 123 456 printf 08d n a printf 010 2f n f printf 0 8d n a 0 例inta 123 printf o o X X n a a a a 例 例longa 65536 printf d 8ld n a a 例l 00001234 0000123 45 000 1234 173 0173 7B 0X7B 0 65536 例 5 4输入和输出语句 5 4输入和输出语句 二 格式化输入和输出 格式输入函数 格式 scanf 格式控制串 地址表 功能 按指定格式从键盘读入数据 存入地址表指定的存储单元中 并按回车键结束 地址表 变量的地址 常用取地址运算符 格式字符 d i o x u c s f e 例scanf d 输入 10 则a 10 例scanf x 输入 11 则a 17 程序的三种基本结构 结构化程序设计基本思想 任何程序都可以用三种基本结构表示结构化程序 由三种基本结构反复嵌套构成的程序叫结构化程序 优点 结构清晰 易读 提高程序设计质量和效率三种基本结构一 顺序结构 程序的三种基本结构 二 选择结构 二分支选择结构 多分支选择结构 注 A B A1 An可以是一个简单语句 也可以是一个基本结构 程序的三种基本结构 当型循环结构 直到型循环结构 三 循环结构 第6讲顺序程序结构 顺序结构是最基本的一种程序结构 特点 程序中的语句完全按照语句出现的先后顺序依次执行 前面的例子都是顺序结构 顺序结构的程序主要由4部分构成 1 变量说明部分 2 数据输入部分 3 运算部分 4 运算结果输出部分 7 1if语句 一 单分支选择if语句 if语句有三种形式 单分支选择if语句 双分支面具选择if语句 多分支选择if语句 语句形式 if 表达式 语句 语句执行流程 例7 1 从键盘输入两个整数a和b 如果a大于b则交换两数 最后输出两个数 7 1if语句 include 输入a b a b 交换a b 输出 真 假 voidmain inta b t scanf d d if a b t a a b b t printf a d b d n a b 7 1if语句 注意 1 if语句自动结合一个语句 当满足条件需要执行多个语句时 应用一对大括号 将需要执行的多个语句括起 形成一个复合语句 2 if语句中表达式形式很灵活 可以是常量 变量 任何类型表达式 函数等 只要表达式的值为非零值 条件就为真 反之条件为假 7 1if语句 2 双分支选择if语句 语句形式 if 表达式 语句1 else语句2 语句执行流程 表达式 语句1 真 非0 假 0 语句2 7 1if语句 例7 2 输入两个整数 输出其中较大的数 include include voidmain intx y max scanf d d if x y max x elsemax y printf max d n max 输入x y x y max x 输出最大值 结束 真 假 max y 7 1if语句 注意 if和else语句之间只能有一个语句 当if else之间的语句不只一句时 应用一对 将语句括起 if a b a b else a 0 b 10 7 1if语句 3 多分支选择if语句 语句形式 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式n 语句n else语句n 1 7 1if语句 语句执行流程 表达式1 语句1 真 非0 假 0 语句2 表达式2 真 非0 表达式n 语句n 语句n 1 假 0 假 0 真 非0 7 1if语句 提示 1 当if语句中出现多个 if 与 else 的时候 要特别注意它们之间的匹配关系 否则就可能导致程序逻辑错误 else 与 if 的匹配原则是 就近一致原则 即 else 总是与它前面最近的 if 相匹配 7 1if语句 if if 语句1elseif 语句2else语句3 内嵌if if if 语句1 else if 语句2else语句3 内嵌if 内嵌if 7 1if语句 例 if a b if b c printf a b c elseprintf a b 修改 if a b if b c printf a b c elseprintf a b 实现if else正确配对方法 加 如果if与else的数目不一样 可以加花括号 来确定配对关系 7 2switch语句 1 语句形式 switch 表达式 case常量1 语句1 case常量2 语句2 case常量3 语句3 case常量n 语句n default 语句n 1 根据表达式的不同值 选择不同的程序分支 又称开关语句 数值型或字符型 常量表达式的值必须互不相同 否则执行时将出现矛盾 即同一个开关值 将对应多种执行方案 7 2switch语句 2 语句执行流程 指语句的最后一条是否为break 简单语句或复合语句 case语句出现的次序并不影响执行结果 8 1while循环控制 语句一般格式while 表达式 语句 一般为关系表达式或逻辑表达式 也可以是C语言其他类型的合法表达式用来控制循环体是否执行 称为内嵌语句 可以是基本语句 控制语句 也可以是复合语句是循环重复执行的部分 功能 计算表达式的值 为非0 逻辑真 时 重复执行内嵌语句 每执行一次 就判断一次表达式的值 直到表达式的值为0时结束循环 转去执行while后面的语句 循环控制条件 循环体 例如 例5 1 编写程序 求100个自然数的和即 s 1 2 3 100 思路 寻找加数与求和的规律 加数i 从1变到100 每循环一次 使i增1 直到i的值超过100 i的初值设为1 求和 设变量sum存放和 循环求sum sum i 直至i超过100 算法和程序 main inti sum i 1 sum 0 while i 100 sum sum i i printf sum d n sum 程序输出结果 sum 5050 i 循环控制变量sum 累加器 8 2do while语句 语句一般格式do语句while 表达式 功能 先执行内嵌语句 循环体 之后计算表达式的值 不为0 逻辑真 时 再执行循环体并判断条件 直到表达式的值为0结束循环 转去执行while下面的语句 do while循环的算法 main inti 1 sum 0 do sum sum i i while i 100 printf d n sum 用do while语句求100个自然数的和 说明 while和do while都能实现循环控制 while结构程序通常都可以转换成do while结构 区别 do while语句先执行循环体再判断条件 循环体至少执行一次 while语句先判断条件再执行循环体 循环体有可能一次也不执行do while循环体中一定要有能使表达式值趋于0的操作 如i 否则会出现死循环 8 3for语句 语句一般格式for 表达式1 表达式2 表达式3 语句 功能 计算表达式1的值 再判断表达式2 如果其值为非0 逻辑真 则执行内嵌语句 循环体 并计算表达式3 之后再去判断表达式2 一直到其值为0时结束循环 执行后续语句 for语句的算法 例如 main inti sum sum 0 for i 1 i 100 i sum sum i printf sum d n sum 9 2 1函数的定义 函数定义的一般形式 函数类型函数名 类型名形式参数1 声明部分执行语句 例如 求两个数的最大值 intmax intx inty intz z x y x y return z 类型省略时默认为int类型 函数名 实参表列 在C语言中 把函数调用也作为一个表达式 因此凡是表达式可以出现的地方都可以出现函数调用 例如 welcome if iabs a max max iabs a m max c max a b 9 2 2函数的调用 函数调用的一般形式 voidswap intx inty intz z x x y y z printf nx d y d x y main inta 10 b 20 swap a b printf na d b d n a b 9 2 3函数参数与函数的返回值 1 函数的形式参数与实际参数 程序输出结果 x 20 y 10a 10 b 20 形式参数 形参 实际参数 实参 例9 4 编一程序 将主函数中的两个变量的值传递给swap函数中的两个形参 交换两个形参的值 单向值传递 有关形参和实参的说明 实参可以是常量 变量或表达式 但要求它们有确定的值 实参与形参类型要一致 字符型与整型可兼容 实参与形参的个数必须相等 在函数调用时 实参的值赋给与之相对应的形参 单向值传递 2 函数的类型与函数的返回值 说明 函数的类型决定了函数返回值的类型 若省略函数的类型 系统默认其为int型 无返回值的函数应将其类型定义为void 空 类型 函数的类型 例9 6 输出两个数中的大数 max intx inty intz z x y x y return z 返回z的值 main inta b c scanf d d 函数的返回值是通过return语句带回到主调函数的 功能 终止函数的运行 返回主调函数 若有返回值 将返回值带回主调函数 说明 若函数没有返回值 return语句可以省略 return语句中的表达式类型一般应和函数的类型一致 如果不一致 系统自动将表达式类型转换为函数类型 函数的返回值 return语句格式 return 表达式 或return表达式 或return 9 4局部变量和全局变量及其作用域 9 4 1变量的作用域 9 4 2局部变量及其作用域 变量的作用域 变量在程序中可以被使用的范围 根据变量的作用域可以将变量分为局部变量和全局变量 局部变量 内部变量 在函数内定义的变量以及形参 作用域 函数内 问题 一个变量在程序的哪个函数中都能使用吗 9 4 3全局变量及其作用域 全局变量 外部变量 在函数外部定义的变量 作用域 从定义变量的位置开始到本源文件结束 如在其作用域内的函数或分程序中定义了同名局部变量 则在局部变量的作用域内 同名全局变量暂时不起作用 10 1一维数组 例如 inta 10 floatscore 5 数据类型 是数组元素的数据类型 数组名 遵循C语言标识符规则 常量表达式 表示数组中有多少个元素 即数组的长度 它可以是整型常量 整型常量表达式或符号常量 10 1 1一维数组的定义 数据类型数组名 常量表达式 以下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论