




免费预览已结束,剩余121页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计期中复习 讲解人 吴名瀚 第一章C语言概述 学习目标 回顾并掌握计算机运算基础理解计算机程序的基本概念熟悉C语言基础知识了解C语言程序的结构学会在VC环境下编辑 编译 执行C程序能够仿照例子用C语言编写简单的程序 程序设计语言的发展 C语言发展历史 CPU指令系统 由0 1序列构成的指令码组成 用助记符号描述的指令系统 面向机器的语言 程序设计是数据被加工的过程 程序设计关键是定义类 并由类派生对象 用自然语言描述的机器语言 C语言的特点 C语言简洁紧凑 灵活 书写自由C语言介于汇编语言和高级语言之间C语言是一种结构化语言C语言有丰富的数据类型C语言有丰富的运算符C语言具有较高的可移植性 C语言程序基本知识 简单C语言程序示例 例1 1 第一个程序 例1 1源程序 屏幕上输出字符串 includeintmain printf WelcometoC nAsimpleprogram n return0 输出 WelcometoCAsimpleprogram 文件包含命令 stdio标准输入输出函数 h的文件称为头文件 n换行显示 输出语句 main是主函数的函数名 C语言程序的结构函数有且只能有一个主函数main 编译预处理 开头注释 注释内容 注释内容 函数的构造 intmax intx inty 说明部分 函数首行 intz 定义部分 函数体 if x y z x elsez y returnz 函数类型函数名 参数类型参数名 说明部分 定义部分 执行部分 语句序列 总结 C程序的特点如下 1 C程序由函数构成 其中必须有一个main函数 且只能有一个 程序的全部工作都是由各函数分别完成的 3 一个C程序总是从main函数开始执行的 2 函数由函数首部和函数体组成 总结 C程序的特点如下 4 C程序书写自由 5 每个语句或数据定义后必须有一个分号 6 C程序本身没有输入输出语句 由标准函数来完成 7 为注释部分 注释不能嵌套 第二章程序的灵魂 算法 程序如何构成 程序 数据结构 算法 数据结构 对数据的描述 算法 对操作的描述 灵魂 做什么 怎么做 程序 一组计算机能识别和执行的指令 每条指令使计算机执行特定的操作 著名的沃思公式 算法的特性 1 有穷性一个算法应包含有限的操作步骤 2 确定性算法中每一个步骤应当是确定的 不是含糊的 模棱两可的 3 有零个或多个输入 4 有一个或多个输出 5 有效性算法中的每个步骤应当能有效地执行 算法的表示方法 2 用传统流程图表示算法 ANSI规定了一些常用的流程图符号 或 起止框 输入输出框 判断框 处理框 连接点 流程线 注释框 1 用自然语言表示算法 3 用N S流程图表示算法 是一种省去流程线的流程图 由一些基本的框组成一个大的框 适用于结构化程序设计只有那些由基本结构组成的算法结构才能采用N S流程图 算法的表示方法 4 用伪代码表示算法 是介于自然语言和计算机语言之间的文字和符号来描述算法 便于向计算机语言过渡 算法的表示方法 总结 三种基本结构的特点 1 只有一个入口 2 只有一个出口 3 对结构内的每一部分都有一条从入口到出口的路径通过它 4 结构内不存在 死循环 三种基本结构 为提高算法质量 1966年 Bohra和Jacopini提出了以下三种基本结构 用以作为表示一个良好算法的基本单元 1 顺序结构 2 选择结构 3 循环结构 第三章数据类型 运算符与表达式 重点 学习内容 3 0预备知识3 1C语言的语法基础3 2数据类型3 3常量与变量3 4不同类型数据间的转换3 5运算符和表达式 21 3 0预备知识 计算机中数的表示及进制转换数码 基与权数码 表示数的数字符号基 数码的个数权 位权 每一位所表示数值的大小数制计数的规则 各种进制之间的转换二进制 八进制 十六进制转换成十进制 方法 按权相加 各种进制之间的转换 整数 二进制 八进制 十六进制转换成十进制方法 按权相加 十进制转换成二进制 八进制 十六进制 方法 连续除以基 从低到高记录余数 直至商为0 二进制与八进制之间的转换二进制转换成八进制 从右向左 每3位一组 不足3位左补0 转换成八进制八进制转换成二进制 用3位二进制数代替每一位八进制数 例 1101001 2 001 101 001 2 151 8 例 246 8 010 100 110 2 10100110 2 000 0001 1010 2011 3100 4101 5110 6111 7 二进制与十六进制之间的转换二进制转换成十六进制 从右向左 每4位一组 不足4位左补0 转换成十六进制十六进制转换成二进制 用4位二进制数代替每一位十六进制数 0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F 例 11010101111101 2 0011 0101 0111 1101 2 357D 16 例 4B9E 16 0100 1011 1001 1110 2 100101110011110 2 字节和位内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成每个二进位的值是0或1 数值的表示方法 原码 反码和补码原码 最高位为符号位 其余各位为数值本身的绝对值反码 正数 反码与原码相同负数 符号位为1 其余位对原码取反补码 正数 原码 反码 补码相同负数 最高位为1 其余位为原码取反 再对整个数加1 负数补码转换成十进制数 最高位不动 其余位取反十进制再减1 例补码 11111001取反 10000110 6值再减1 6 1 7 3 1 语言的语法基础 4 特殊符号 通常由1到2个符号组成 主要用来表示运算符 3 1 1 C语言字符集 C语言的基本符号可分4个类 归纳如下 1 英文字母 大小写各26个 共计52个 2 阿拉伯数 0 1 2 3 4 5 6 7 8 9共10个数字 3 下划线 3 1 2标识符定义 用来标识变量 常量 函数等的字符序列组成 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度 最长32个字符命名原则 见名知意不宜混淆如l与I o与0 例 判断下列标识符号合法性sumSumM D JohndayDate3daysstudent name 33lotus 1 2 3chara b above 123 M D John 3days 33 char 123 a b 注意 1 用下划线开始的标记符可能与系统的名字相冲突 应该尽量避免使用这样的名字 2 不要在标示符任何位置使用连续的两个下划线 这种方式通常也是仅限于系统使用 关键字 概念 就是具有特定含义的标识符 用户不能用来作自定义标识符 C语言中的关键字较少 由ANSI标准推荐的关键字有32个 常用的有 1 与数据类型有关的 14 charintfloatdoublesignedunsignedshortlongvoidstructuniontypedefenumsizeof 3 2C语言的数据类型 数据类型决定 1 数据占内存字节数2 数据取值范围3 其上可进行的操作 基本数据类型 类型 符号 关键字 数的表示范围 所占位数 整型 字符型 实型 有 无 说明 数据类型所占字节数随机器硬件不同而不同 上表以IBMPC机为例 一般用大写字母是宏定义预处理命令 不是C语句 常量定义 程序运行时其值不能改变的量 即常数 分类 直接常量 整型常量实型常量字符常量字符串常量符号常量 用标识符代表常量定义格式 define符号常量 标识符 常量 3 3常量和变量 整型常量 整常数 三种形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0Xff 例12与12L 例30000为int型65536为longint型 整型常量的类型根据其值所在范围确定其数据类型在常量后面加字母u或U 认为其是unsingedint型 在整常量后加字母l或L 认为它是longint型常量 问题 0123 100 x123 100Xff 10 实型常量 实数或浮点数 表示形式 十进制小数形式 必须有小数点 如0 123 123 123 0 0 0 123 指数形式 e或E之前必须有数字 且e后面的指数必须为整数 如12 3e3 123E2 1 23e4 e 5 1 2E 3 5 实型常量的类型默认double型在实型常量后加字母f或F 认为它是float型 注意 一般用大写字母是宏定义预处理命令 不是C语句 符号常量定义 用标识符代表常量程序运行时其值不能改变的量 即常数 定义格式 define符号常量 标识符 常量 例符号常量举例 ch2 1 c include definePRICE30voidmain intnum total num 10 total num PRICE printf total d total 运行结果 total 300 例符号常量举例 ch2 1 c includevoidmain printf d 10 30 38 字符常量定义 用单引号括起来的单个普通字符或转义字符 字符常量的值 该字符的ASCII码值 例 A 101 x41 65 如 A 65 a 97 0 48 n 10 如 a A n 101 转义字符 反斜线后面跟一个字符或一个代码值表示 例转义字符举例 ch2 001 c ch2 004 c voidmain printf 101 x42C n printf Isay Howareyou n printf CProgram n printf Turbo C 运行结果 屏幕显示 ABCIsay Howareyou CProgram Turbo C 例voidmain printf Y b n 运行结果 屏幕显示 打印机输出 字符的值域 即字符的取值范围ASCII字符表中的所有字符 每个字符型数据在内存中占一个字节 包括可显示字符和非可显示字符 字符常量与字符串常量不同 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 变量概念 其值可以改变的量变量名与变量值变量定义的一般格式 数据类型变量1 变量2 变量n 变量初始化 定义时赋初值 例 inta b c floatdata 决定分配字节数和数的表示范围 合法标识符 例 inta 2 b c 4 floatdata 3 67 charch A intx 1 y 1 z 1 intx y z 1 变量的使用 先定义 后使用 例1intstudent stadent 19 Undefinedsymbol statent infunctionmain 例2floata b c c a b Illegaluseoffloatingpointinfunctionmain 变量定义位置 一般放在函数开头 整型变量占字节数随C编译系统不同而不同short int long voidmain inta b a 32767 b a 1 printf d d a b 运行结果 32767 32768 改过 voidmain longinta b a 32767 b a 1 printf ld ld a b 可用sizeof 字节数运算符 测量 实型变量float 占4字节 提供7位有效数字double 占8字节 提供15 16位有效数字 字符型变量char类型字符变量存放字符ASCII码char与int数据间可进行算术运算 例floata a 111111 111 a 111111 1 doubleb b 111111 111 b 111111 111 例a D a 68 x 101 5 x 65 5 s G s 33 71 y 没有字符串变量 用字符数组存放 3 4不同类型数据间的转换 隐式转换显式转换 强制转换 3 4不同类型数据间的转换隐式转换什么情况下发生运算转换 不同类型数据混合运算时赋值转换 把一个值赋给与其类型不同的变量时输出转换 输出时转换成指定的输出格式函数调用转换 实参与形参类型不一致时转换运算转换规则 不同类型数据运算时自动转换成同一类型 显式转换 强制转换 一般形式 类型名 表达式 例 int x y int x y double 3 2 int 3 6说明 强制转换得到所需类型的中间变量 原变量类型不变 例voidmain floatx inti x 3 6 i int x printf x f i d x i 结果 x 3 600000 i 3 精度损失问题 3 5运算符和表达式 运算符基本概念 运算符两端常量或者变量称为操作数按照运算符所对应的操作数的个数可将运算符分为三种 单目运算符双目运算符三目运算符由操作数 运算符及圆括号按照一定规则构成的式子称为表达式 学习运算符应注意 运算符功能与操作数关系要求操作数个数 运算符为几目的 要求操作数类型运算符优先级别结合方向结果的类型 算术运算符和表达式基本算术运算符 结合方向 从左向右优先级 说明 可为单目运算符时 右结合性两整数相除 结果为整数 要求两侧均为整型数据 例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 自增 自减运算符 本章重点 难点 作用 使变量值加1或减1种类 前置 i i 先执行i 1或i 1 再使用i值 后置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 小结 j与j 经过运算后 变量j的值是相等的都进行了加一但是表达式的值是不同的 j与j 是一个道理 自增 自减运算符 本章重点 难点 作用 使变量值加1或减1种类 前置 i i 先执行i 1或i 1 再使用i值 后置i i 先使用i值 再执行i 1或i 1 说明 不能用于常量和表达式 如5 a b 结合方向 前缀自右向左 后缀自左向右优先级 例 i i i 3 printf d i 3 例 i i 3 printf d i 自增 自减运算符 本章重点 难点 讨论说明 i初值为3 i i i i jC编译系统尽可能多的按照自左向右将若干个字符组成一个运算符i j等价于 i ji的初值为3则 printf d d i i 输出结果 小结 尽量不要写出别人看不懂 也不知道系统会怎么执行的程序 赋值运算符和表达式简单赋值运算符符号 格式 变量标识符 表达式作用 将一个数据 常量或表达式 赋给一个变量 例a 3 d func c d 2 说明 结合方向 自右向左优先级 较低左侧必须是变量 不能是常量或表达式 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 隐式转换 例3 x 2 y a b 3 例 includevoidmain floatf inti i 5 56 f 23 printf d f n i f 523 000000 赋值运算符和表达式简单赋值运算符符号 格式 变量标识符 表达式作用 将一个数据 常量或表达式 赋给一个变量 复合赋值运算符种类 例a 3 d func c d 2 赋值运算符和表达式简单赋值运算符复合赋值运算符赋值表达式定义 由赋值运算符将一个变量和一个表达式连接起来的式子形式 变量 表达式计算过程 计算赋值运算符右侧表达式的值将计算结果赋给左侧的变量赋值表达式的值就是被赋值的变量的值 且可嵌套 例 a b c 5a b 5 a 5 c 6 a b 4 c 6 a b 10 c 2 表达式值为5 a b c值为5 b 5 a 5 表达式值11 c 6 a 11 表达式值10 a 10 b 4 c 6 表达式值5 a 5 b 10 c 2 例 inta 12 a a a a 例 inta 2 a 4 1 a a a a 3 a 264等价于a a a a a a a 0等价于a a a a a a a a 3 逗号运算符和表达式形式 表达式1 表达式2 表达式n结合性 从左向右优先级 低 低于赋值号的优先级 逗号表达式的值 等于表达式n的值用途 常用于循环for语句中 例 ch3 6 c includevoidmain intx y 7 floatz 4 x y y 6 y z printf x d n x 运行结果 x 3 本章小结 3 1C语言的语法基础标识符3 2C语言的基本数据类型三种基本数据类型 整型 实型 字符型 3 3常量和变量符号常量 整型常量 实型常量 字符型常量 字符串常量整型变量 实型变量 字符型变量 3 4数据类型转换隐式转换显示转换3 5运算符与表达式算术运算符 运算赋值运算符逗号运算符 最简单的C程序设计顺序结构 3 1C语句概述3 2输入输出语句3 3顺序程序举例 表达式语句 表达式 简单语句函数调用语句 函数名 参数表 空语句 C语言数据操作复合语句 一条或多条语句 语句条件语句 if语句 switch语句 结构化语句while语句循环语句do while语句for语句流程控制语句break语句限定转向语句continue语句非结构化语句return语句非限定转向语句 goto语句 C语言的语句分类 C语句概述 简单语句 1 表达式语句 2 函数调用语句 简单语句 标准函数调用的目的 在表达式中调用函数 实际上是转去执行一段预先设计好的程序 求出结果后返回调用点 所以函数的值又叫函数的返回值 复合语句 注意 在复合语句中的 内部数据描述语句 中定义的变量 是局部变量 仅在复合语句中有效 复合语句结束的 之后 不需要分号 复合语句可以出现在任何数据操作语句可以出现的地方 空语句 空语句就是一个分号 格式 功能 执行该语句不做任何操作 格式 putchar c 参数 c为字符常量 变量或表达式功能 把参数c的值输出到显示器上返值 正常 为显示的代码值 数据的输入与输出 C语言无I O语句 I O操作由函数实现 include数据输出字符输出函数 格式 printf 格式控制串 输出列表 功能 按指定格式向显示器输出数据返值 正常 返回输出字节数 格式输出函数 输出列表 要输出的数据 可以没有 多个时以 分隔 格式控制串 包含两种信息格式说明 修饰符 格式字符 用于指定输出格式普通字符或转义序列 原样输出格式字符 格式控制字符串 i 3df 5 1f 普通字符 格式说明 5 1f 引导符 宽度 小数位数精度 类型符 inta 567 printf d a inta 255 printf x a inta 65 printf o a inta 567 printf u a chara 65 printf c a printf s ABC floata 567 789 printf e a floata 567 789 printf f a floata 567 789 printf g a printf 567 ff 101 567 A ABC 5 67789e 02 567 789000 567 789 说明格式字符要用小写格式字符与输出项个数应相同 按先后顺序一一对应输出转换 格式字符与输出项类型不一致 自动按指定格式输出 隐式转换 例main unsignedinta 65535 printf a d u o x n a a a a 例inta 3 b 4 表示空格 printf d d n a b printf a d b d n a b 例inta 3 b 4 printf d d n a b printf a d b d n a b 输出结果 3 4a 3 b 4 输出结果 a 1 65535 177777 ffff 附加格式说明符 修饰符 f e格式输出小结 e格式输出都是以标准格式输出实型数据 小数点左边只有一位整数并且非零 两种格式小数点后面一定是六位小数 其中 e格式的六位小数是带字母e为六位 尤其注意当 mf或 me中m宽度小于输出项本身的时候也要补足小数后面六位 对于 f形式输出的float型数据只有前七位数字是精确的 这里的七位不带小数点 同样double型是15到16位数字是精确的 对于 nf ne指定小数要四舍五入 其中对于 ne中n位小数包含e在内 printf数据输出格式字符小结 m nl 格式字符 1 指定输出类型 2 输出长度修正 4 指定是否左对齐输出 5 格式说明起始符号 注意 使用函数printf时要注意一个问题 那就是输出表列中的求值顺序 不同的编译系统不一定相同 可以从左到右 也可从右到左 TurboC是按从右到左进行的 例inti 3 printf d d n i i 格式 getchar 功能 从键盘读一字符返值 正常 返回读取的代码值 3 2数据输入字符输入函数 例 ch3 4 c includemain intc printf Enteracharacter c getchar printf c hex x n c c 运行结果 Enteracharacter A A hex41 注意 调用函数getchar时 程序执行被中断 等待用户从键盘输入数据 当用户键入字符并敲回车键以后 程序继续运行 若用户输入字符后未按回车键 则键入的内容一直保留在键盘缓冲区中 只有用户键入回车键后 字符输入函数getchar才进行处理 函数getchar将回车键作为一个字符读入 如果程序中有两个以上函数getchar时 应该一次性输入所需字符 最后再按回车键 如上例所示 无论输入的是英文字母或标点符号还是数字 都是作为字符输入 格式输入函数 格式 scanf 格式控制串 地址列表 功能 按指定格式从键盘读入数据 存入地址表指定的存储单元中 并按回车键结束返值 正常 返回输入数据个数 地址列表 变量的地址 常用取地址运算符 格式字符 d i o x u c s f e 例scanf d 输入 10 则a 10 例scanf x 输入 11 则a 17 附加格式说明符 修饰符 例scanf 4d 2d 2d 输入19991015 则1999 yy 10 mm 15 dd 例scanf 3d 4d f 输入12345678765 43 则123 k 8765 43 f 例scanf 2d 3d 2d 输入12 345 67 则12 a 67 b 例scanf 3c 2c 输入abcde 则 a c1 d c2 输入分隔符的指定一般以空格 TAB或回车键作为分隔符其它字符做分隔符 格式串中两个格式符间字符 例scanf d o x 输入123123123 输出a 123 b 83 c 291 例scanf d d d 输入12 30 45 则12 h 30 m 45 s 例scanf d d a b 输入3 4 则3 a 4 b 例scanf a d b d c d 输入a 12 b 24 c 36 注意 用 c 格式符时 空格和转义字符作为有效字符输入 输入数据时 遇以下情况认为该数据结束 遇空格 TAB 或回车遇宽度结束遇非法输入 输入函数留下的 垃圾 解决方法 用格式串中空格或 c 来 吃掉 如scanf c c c 若输入a b c 代表空格 则a c1 c2 b c3 如scanf d c f 若输入1234a123o 26 则1234 a a b 123 c 例 CH3 7 C main intx charch scanf d 执行 123 输出 x 123 ch 10 例intx charch scanf d 注意事项 scanf 的格式控制字符串中没有转义字符 如scanf d n a 是错误的 scanf 的格式控制字符串中的普通字符不是用来显示的 而是输入时要求照普通字符输入的 scanf 中参数的第二部分一定是地址列表 不能是表达式 程序三种基本结构 任何一个算法都可以用三种基本结构表示 这三种基本结构为 顺序结构 选择结构和循环结构 三种基本结构 a 当型循环 3 循环结构 b 直到型循环 3 3 2程序举例 ch4 12 c include includemain floata b c s area scanf f f f 例求三角形面积 输入 3 4 6 输出 a 3 00 b 4 00 c 6 00 s 6 50area 5 33 小结 1 表达式与语句的区别 2 格式化输入 输出语句的使用 3 简单顺序程序的编写 第四章选择结构程序设计 学习内容 4 1关系运算符与关系表达式4 2逻辑运算符与逻辑表达式4 3条件语句 if语句 4 4开关语句 switch语句 4 1关系运算符和关系表达式关系运算符种类 结合方向 自左向右优先级别 关系表达式的值 是逻辑值 真 或 假 用1和0表示 关系运算符低于算术运算符关系运算符高于赋值运算符 例inta 3 b 2 c 1 d fa b cb cbf a b c8 7 6 a A 表达式值1 表达式值0 d 1 表达式的值为1 f 0 表达式值为0 表达式值为1 a b c b c a d a b 4 2逻辑运算符和逻辑表达式逻辑运算符种类 非 与 或 和 是双目运算符号 是单目运算符号逻辑运算真值表 C语言中 操作数 0表示 假 非0表示 真 运算结果 0表示 假 1表示 真 优先级 结合方向 短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例a m a b n c d 结果m 0 n 1 选择结构 二分支选择结构 多分支选择结构 4 3if语句if语句 条件选择语句 if语句的三种形式形式一 条件执行 格式 if expression statement执行过程 形式二 分支选择 格式 if expression statement1elsestatement2执行过程 例 if x y printf d x 例 if x y max x elsemax y 形式三 阶梯式if else 格式 if expr1 statement1 elseif expr2 statement2 elseif expr3 statement3 elsestatementn 执行过程 例 if salary 1000 index 0 4 elseif salary 800 index 0 3 elseif salary 600 index 0 2 elseif salary 400 index 0 1 elseindex 0 如 if a b 小结 if后面的表达式类型任意 语句可以是复合语句if x if x 0 if x if x 0 例考虑下面程序的输出结果 includevoidmain intx y scanf d d CompileError 注 else部分不能独立存在 即else前必须有 其必定是if语句的一部分 if语句嵌套 一般形式 4 4switch语句 开关分支语句 一般形式 switch 表达式 caseE1 语句组1 break caseE2 语句组2 break caseEn 语句组n break default 语句组 break 执行过程 其中 表达式可以为整型 字符型 枚举型 常量表达式Ei必须与表达式类型一致 整型与字符型通用 1 计算表达式的值2 若与常量表达式Ei值相等 则从语句i开始执行 直到遇到break语句或switch语句的 3 若与任何常量表达式的值都不一致时 则执行default语句 或执行后续语句 说明 E1 E2 En是常量表达式 且值必须互不相同常量表达式的值Ei仅仅起到语句标号作用 不做求值判断常量表达式的值是唯一的 没有大小顺序语句标号作用 必须用break跳出当前switchcase后可包含多个可执行语句 且不必加 switch可嵌套多个case可共用一组执行语句 如 case A case B case C printf score 60 n break case与常量表达式之间一定要有空格 第五章循环结构程序设计 在C语言中可以用以下语句来实现循环 用while语句 2 用do while语句 3 用for语句 循环控制 就是在给定的条件成立时反复执行某一程序段 被反复执行的程序段称为循环体 5 1while语句 一般形式 while 表达式 循环体语句 执行流程 特点 先判断表达式 后执行循环体 表达式 循环体 假 0 真 非0 while 下一语句 5 2do while语句 一般形式 do循环体语句while 表达式 执行流程 真 非零 循环语句 假 零 下一语句 不可省略 切记 5 3for语句 一般形式 for 表达式1 表达式2 表达式3 循环体语句 说明 表达式1 用于循环开始前为循环变量设置初始值表达式2 控制循环执行的条件 决定循环次数表达式3 循环控制变量修改表达式循环体语句 被重复执行的语句 循环程序设计方法要点 正确确定循环体 找出循环体对循环体循环的次数进行控制 循环控制因子三要素 初值 终值 步长 5 4break语句和continue语句 辅助控制语句 1 break语句 1 语句形式 break 2 作用 结束break所在的switch语句 结束当前循环 跳出break所在的三种循环结构 1 语句形式 continue 2 语句作用 仅用于循环语句中 用来结束本次循环 2 continue语句 3 语句执行流程 continue语句可以结束本次循环 即不再执行循环体中continue语句之后的语句 转入下一次循环条件的判断与执行 5 6循环嵌套 在循环体语句中又包含有另一个完整的循环结构的形式 称为循环的嵌套 如果内循环体中又有嵌套的循环语句 则构成多重循环 嵌套在循环体内的循环体称为内循环 外面的循环称为外循环 5 6循环嵌套 while do while for三种循环都可以互相嵌套 真 真 外循环初始条件 内循环初始条件 内循环体 外循环条件 假 内循环条件 假 修改内循环循环条件 修改外循环循环条件 循环结束 二重循环嵌套结构执行流程 第六章数组 构造数据类型 C语言提供三种构造 复杂 数据类型 数组 结构体 共用体 构造类型是由基本数据类型构造而成的 构造类型的每一个分量都是一个变量 可以是一个简单类型或者构造类型 构造类型分量的使用方法与简单变量相同 构造类型分量占用相邻的存储空间 对于构造类型 重点是访问其分量的方法 基本概念 数组 构造数据类型之一 一批同类型数据的有序集合 用数组名标识 元素 属同一数据类型 用数组名和下标确定 1 一维数组的定义1 定义方式 数据类型数组名 常量表达式 例 inta 10 floatb 5 charc 20 合法标识符 数组运算符单目运算符左结合不能用 表示元素个数下标从0开始 数组名表示内存首地址 是地址常量 编译时分配连续内存内存字节数 元素个数 sizeof 元素数据类型 2 一维数组的初始化初始化方式 在定义数组时 为数组元素赋初值 在编译阶段使之得到初值 数组类型数组名 常量表达式 表达式列表 inta 5 1 2 3 4 5 等价于 a 0 1 a 1 2 a 2 3 a 3 4 a 4 5 说明 1 数组不初始化 其元素值为随机数 3 当全部数组元素赋初值时 可不指定数长度 如inta 5 6 2 3 数值类型数组等价于 a 0 6 a 1 2 a 2 3 a 3 0 a 4 0 如charch 4 a 字符类型数组等价于 ch 0 a ch 1 ch 2 0 ch 3 0 2 只给部分数组元素赋初值 inta 1 2 3 4 5 6 编译系统根据初值个数确定数组维数 4 初值的个数不能多于数组长度 如inta 3 6 2 3 5 1 3 一维数组元素的引用数组必须先定义 后使用只能逐个引用数组元素 不能一次引用整个数组一维数组的下标表示法数组名 下标表达式 其中 下标可以是正整型常量或表达式 例inti 15 intdata i 不能用变量定义数组维数 例inta 10 printf d a 输出数组a的首地址必须for j 0 j 10 j printf d t a j 例intdata 5 data 5 10 C语言对数组不作越界检查 使用时要注意 1 冒泡法排序 基本思路 每次将相邻两个数比较 将小的调到前头 1 对n个数的每相邻两数进行比较 将大数调换到后面 经过一趟这样的操作最大数放到最后 第一趟冒泡排序 结果最大的数被安置在最后一个元素位置上 2 对前n 1个数进行第二趟冒泡排序 结果使次大的数被安置在第n 1个元素位置 3 重复上述过程 共经过n 1趟冒泡排序后 排序结束 for i 0 i n 1 i 第i趟排序算法 第i趟排序算法 for j 0 j n 1 i j 若a j 1 a j 则交换a j 与 j 1 由前面分析可知 要排序的数首先要放入数组中 用二重循环来控制排序过程外循环i控制比较趟数 共n 1趟 内循环j控制一趟的比较次数 n i次 6 2二维数组6 2 1二维数组的定义二维数组定义一般形式数据类型数组名 常量表达式 常量表达式 数组元素的存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行为特征轻量化算法-洞察及研究
- 企业退休人员返聘合同4篇
- 吉林省白城市实验高级中学2025-2026学年高二上学期开学考试语文试卷
- 黑龙江省哈尔滨市巴彦县第一中学、第三中学 2024-2025学年八年级下学期4月月考生物试题
- 部门安全培训目的课件
- 木材家具电商中的品牌建设与传播策略-洞察及研究
- 辩论赛课件教学课件
- 基于区块链的跨境供应链安全追溯体系构建
- 后疫情时代弹性办公空间声景设计中的心理感知与效能优化路径探索
- 可降解减震材料在环保政策驱动下的产业化应用边界探讨
- DB53-T 1285-2024 学校集体用餐配送服务规程
- 图书馆消防安全应急预案
- 《春》课后习题参考答案
- 推拿学课程教案
- 教学计划(教学计划)-2024-2025学年大象版五年级科学上册
- 品酒师(黄酒)理论知识考核要素细目表四级
- 一年级尊师礼仪
- DL∕T 1738-2017 双金属管标装置
- 西师版五年级上册数学全册教案设计
- 液压软管接头24°锥密封端软管接头规范指引
- 2024挡烟垂壁包工合同协议书
评论
0/150
提交评论