C语言教学ppt课件

上传人:钟*** 文档编号:4973313 上传时间:2020-01-16 格式:PPT 页数:291 大小:3.50MB
返回 下载 相关 举报
C语言教学ppt课件_第1页
第1页 / 共291页
C语言教学ppt课件_第2页
第2页 / 共291页
C语言教学ppt课件_第3页
第3页 / 共291页
点击查看更多>>
资源描述
C语言程序设计 1 教学内容 第一章C语言概述第二章算法第三章数据类型 运算符与表达式第四章最简单的C程序设计第五章选择结构程序设计第六章循环控制第七章数组第八章函数第九章预处理命令第十章指针第十一章结构体第十三章文件 2 前言 前言 一 计算机语言 1 机器语言2 汇编语言3 高级语言 4 高级语言向机器语言的过渡 机器指令的集合 符号化的机器语言 通用自然的算法语言 3 前言 二 程序与程序设计 完成某一功能的计算机指令的有序集合 1 程序 2 程序设计 设计 编制 调试程序的过程 4 3 程序设计的基本步骤 1 分析问题 2 确定解题思路和算法 3 编制流程图 4 编写源程序 5 静态检查 6 上机调试 7 正式运行 前言 5 本章内容1 1C语言发展史1 2C语言特点1 3简单C程序分析 第一章C语言概述 返回 6 第一章C语言概述 第一章C语言概述 1 1C语言发展史 1960ALGOL60 AlgorithmicLanguage 198787ANSIC1990ISOC 1972C 取BCPL第二个字母 1970B 取BCPL第一个字母 1978标准C1983ANSIC 1967BCPL BasicCombined ProgrammingLanguage 跳转 7 第一章C语言概述 1 2C语言特点 1 简练 自由 结构化 32个关键字 9种控制语句 2 运算符丰富 附录 34种 3 数据结构丰富 4 可直接对硬件进行操作 5 目标程序质量高 6 可移植性好 8 第一章C语言概述 1 3简单C程序分析 例1 1打印 显示 一串字符 运行结果 Thisisanexample example1 1 main printf Thisisanexample n 9 第一章C语言概述 例1 2已知角度值45 求正弦值的2倍 example1 2 include math h main floatx y x 45 y 2 sin x 3 14 180 printf Y f n y 运行结果 Y 1 413650 10 第一章C语言概述 例1 3已知三角形三边a b c 求面积 example1 3 include math h main floata b c p s scanf f f f 输入 4 5 6 输出 P 7 500000S 9 921567 11 第一章C语言概述 max intx inty main maxnumber intz inta b c if x y z x scanf d d 例1 4已知整数a b 求其中的最大数 12 第一章C语言概述 C程序结构 1 C程序由函数构成 C程序 一个主函数 main函数 一个主函数 若干其他函数 子或库 TurboC有300多个 跳转 3 语句书写自由 后带分号 4 可用 对C程序作注释 前一页 13 本章内容2 1算法的概念2 4算法的表示2 5结构化程序设计 第二章算法 返回 14 第二章算法 第二章算法 程序 数据结构 算法 程序 数据结构 算法 程序设计方法 语言工具和环境 数据结构 对数据的描述 算法 对操作的描述 include math h main floatx y x 45 y 2 sin x 3 14 180 printf Y f n y 15 例如 1 2 3 100 5050或100 1 99 2 98 49 51 50 100 49 100 50 5050 第二章算法 2 1算法的概念 算法 为解决一个问题而采取的方法和步骤 16 第二章算法 2 4算法的表示 用流程图表示算法 起止框 处理框 判断框 输入 出框 流程线 连接点 注释框 17 第二章算法 例2 1计算265的平方根 顺序结构 N S图 18 第二章算法 例2 2打印X的绝对值 分支结构 N S图 X 0 yn 打印x打印 x 19 第二章算法 例2 3计算1到100的和 循环结构 i 100 n N S图 i 1 s 0 s s i i i 1 打印s y i 1 s 0 s s i i i 1 打印s 当i 100 20 1 自顶向下 2 逐步细化 3 模块化设计 4 结构化编码 第二章算法 2 5结构化程序设计方法 了解内容 结构化程序便于编写 阅读 修改和维护 可以减少程序出错的机会 提高程序的可靠性 保证程序的质量 结构化程序设计方法的基本思路是 把一个复杂问题的求解过程分阶段进行 每个阶段处理的问题都控制在人们容易理解和处理的范围内 21 本章内容3 1C的数据类型3 2常量与变量3 3整型数据3 4实型数据3 5字符型数据3 6变量赋初值3 8算术运算符与算术表达式3 9赋值运算符和赋值表达式3 10逗号运算符和逗号表达式 第三章数据类型 运算符与表达式 返回 22 第三章数据类型 运算符与表达式 空类型void 无return的函数 C数据类型 基本类型 构造类型 指针类型 整型实型字符型枚举型 数组型结构体型共用体型 单精度双精度 第三章数据类型 运算符与表达式 3 1C的数据类型 23 第三章数据类型 运算符与表达式 3 2常量与变量 一 常量 1 整型常量 0和正负整数 4 字符串常量 括起来的字符串 5 符号常量 define符号名常量 2 实型常量 3 字符型常量 跳转 24 第三章数据类型 运算符与表达式 definePI3 1415926 例3 2定义一个符号常量PI 其值为 25 第三章数据类型 运算符与表达式 二 变量 1 变量名 以标识符命名 由字母 数字或下划线组成首字符为字母或下划线用来标识变量 符号常量 数组 函数 文件等 标识符 例 sumgood123student name 26 第三章数据类型 运算符与表达式 2 变量的定义 用变量定义语句定义变量及其类型 1 变量定义语句的格式 类型关键字变量名或赋值表达式表 实型 字符型 2 类型关键字 整型 基本型int短整型short长整型long无符号型unsigned 单精度型float双精度型double char 27 第三章数据类型 运算符与表达式 3 说明 必须在程序执行部分之前对程序中的所有变量进行定义 C语言中整型和字符型数据通用 可在定义变量的同时给其赋初值 例 inta 3 b 4 c 5 floatx y z 0 5 charw a 变量名不能用关键字 变量区分大小写 28 第三章数据类型 运算符与表达式 4 举例3 3 definePI3 1415926 include math h main floatx y x 67 y 2 sin x PI 180 printf y f y 返回 29 第三章数据类型 运算符与表达式 1 常量 十进制567 789 0八进制0567 0753十六进制0 x567 0 xa12 变量 inti j i 10 j 10 3 3整型数据 30 第三章数据类型 运算符与表达式 3 整型变量数的表示范围 32768 32767 4 整型变量的分类 有符号基本整型 signed int无符号基本整型unsignedint有符号短整型 signed short int 无符号短整型unsignedshort int 有符号长整型 signed long int 无符号长整型unsignedlong int 31 第三章数据类型 运算符与表达式 a 0111111111111111 b 5 无符号和有符号数的比较 inta 32768 32767 unsignedintb 0 65535 数据位 32767 65535 21521421321221121029282726252423222120 32768 16384 8192 4096 2048 1024 32 第三章数据类型 运算符与表达式 举例3 4main inta b c d unsignedintu a 12 b 24 u 10 c a u d b u printf a u d b u d n c d 运行结果 a u 22 b u 14 33 第三章数据类型 运算符与表达式 a 0111111111111111 6 整型数据的溢出 符号位 32767 a 1 1000000000000000 符号位 32768 34 第三章数据类型 运算符与表达式 举例3 5main inta b a 32767 b a 1 printf a d b d n a b 运行结果 a 32767 b 32768 35 第三章数据类型 运算符与表达式 7 整型常量的类型使用整型常量时应注意以下几点 在 32768 32767 范围内的整数赋给int型或long型变量如 inta longb a 0 xb4 b 12 在 2147483648 2147483647 范围内的整数赋给long型变量如 longb b 50000 如果机器中短整型和基本整型所占字节数相同 则同等对待如 inta shortb a 0576 b a 常量无unsigned型 赋值时注意溢出问题一个整型常量后面加一个l或L则认为是long型常量 虚实对应 如 inta longb a 1234 b 12L 36 第三章数据类型 运算符与表达式 1 常量 小数形式 567 789 0 0 5 0指数形式123e4 753E 5 输出时规范化1 23000e 06 2 变量 floatx doubley longdoublez x 3 14159 y 7 86e12 3 4实型数据 浮点数 37 第三章数据类型 运算符与表达式 main floata b a 123456 789e5 b a 20 printf a f b f n a b 运行结果 a 12345678848 000000 b 12345678848 000000 3 实型数据的舍入误差举例3 6 38 第三章数据类型 运算符与表达式 4 实型常量的类型许多编译系统均将实型常量按照双精度数处理 结果存入单精度变量 降低了运算速度 可以在实型常量的后边加一个f或F以表示单精度数 如 floatf f 2 45678f 4523 65f 5 单精度变量有6 7位有效数字 10 37 1038 双精度变量有15 16位有效数字 10 307 10308 39 第三章数据类型 运算符与表达式 1 常量 a a x b n t c 101 x41 d 0 或 000 ASCII值为0的空操作字符2 变量 charc1 c2 c1 a c2 b 3 内存中的存储形式 c19701100001 c29801100010 八进制 十六进制 3 5字符型数据 A 40 第三章数据类型 运算符与表达式 4 字符型数据的使用举例3 7main charc1 c2 c1 97 c2 98 printf c1 c c2 c n c1 c2 printf c1 d c2 d n c1 c2 运行结果 c1 a c2 bc1 97 c2 98 41 第三章数据类型 运算符与表达式 举例3 8main charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c1 c c2 c n c1 c2 printf c1 d c2 d n c1 c2 运行结果 c1 A c2 Bc1 65 c2 66 42 第三章数据类型 运算符与表达式 举例3 9main inti charc i a c 97 printf c c c d n c c printf i c i d n i i 运行结果 c a c 97i a i 97 43 第三章数据类型 运算符与表达式 5 字符串常量 Howdoyoudo CHINA a 123 45 注意 1 没有字符串变量 可用字符数组存储 2 字符串常量在内存中的存储形式 3 在输出语句中的应用printf Howdoyoudo printf c c c d n c c 44 第三章数据类型 运算符与表达式 inta 3 floatf 3 14 charc a inta b 3 c inta 3 b 3 c 3 注意 变量的初始化不是在编译阶段完成的 而是在程序运行时执行本函数时赋予初始值的 3 6变量赋初值 45 第三章数据类型 运算符与表达式 3 8算术运算符与算术表达式 一 C运算符简介 13类 算术运算符 关系运算符 逻辑运算符 赋值运算符 条件运算符 逗号运算符 指针运算符 强制类型转换运算符 类型关键字 46 第三章数据类型 运算符与表达式 二 算术表达式 1 定义 用算术运算符和括号将运算对象连接起来且符合C语法规则的式子 2 运算顺序a b c 1 5 a 47 3 运算类型 3 7混合运算 1 同类型运算结果类型不变 不同类型运算先按类型级别低向高转换成同一类型 再计算 doublefloatlongunsignedintchar short 高低 10 a i f d l 4 优先级和结合性 第三章数据类型 运算符与表达式 48 第三章数据类型 运算符与表达式 类型关键字 表达式 例 int a float 5 3 double x y 三 强制类型转换运算 注意 int x y只转换x的类型后与y相加 int x不等同于int x 49 第三章数据类型 运算符与表达式 举例3 10main inti floatx x 3 6 i int x printf x f i d n x i 运行结果 x 3 600000 i 3 50 第三章数据类型 运算符与表达式 四 自增 自减运算 1 运算规则 i i使用前使i值加 减 1i i 使用后使i值加 减 1 2 注意 1 只能用于变量 2 右结合方向 3 使用时谨防出错 51 第三章数据类型 运算符与表达式 3 例 52 第三章数据类型 运算符与表达式 3 9赋值运算符和赋值表达式 一 赋值运算符及其操作 将一个表达式的值赋给一个变量 二 赋值表达式 说明 1 发生类型转换 自学60 61页 2 右结合 例 x b 2 a a b c 5a b 4 c 6 那么a 5 b c 53 第三章数据类型 运算符与表达式 三 复合赋值运算 复合赋值运算符 运算符 赋值号 54 第三章数据类型 运算符与表达式 3 10逗号运算符和逗号表达式 1 逗号表达式 表达式1 表达式2 表达式n 2 运算规则 从左到右依次计算各表达式的值 以表达式n的值作为最终值 其优先级最低 55 第三章数据类型 运算符与表达式 举例3 11main inti floatf 7 2 printf i d n f 4 i f printf f f n f 运行结果 i 11f 11 200000 56 本章内容4 1C语句概述4 2赋值语句4 3I O的概念及在C语言中的实现4 4字符数据的输入 输出4 5格式输入与输出 第四章最简单的C程序设计 返回 57 第四章最简单的C程序设计 4 1C语句概述 第四章最简单的C程序设计 C语句 控制语句 条件 分支 循环 函数调用语句 函数加分号 表达式语句 表达式加分号 空语句 一个单独的分号 复合语句 用 将若干语句括起 58 第四章最简单的C程序设计 4 2赋值语句 语句格式 赋值表达式 例如 if a b 0 t a if a b x a if a b y a 在if后面的小括号内必须是表达式 59 C程序最基本的成分是语句目前我们已掌握的语句 变量说明语句 inta b c 表达式语句 x y 特别地 a 5 赋值语句 60 可以编写简单程序如 main intx y x 5 y 2 x x 3 x 1 该程序语法上完整 但还缺少输出 61 数据的输出用输出函数实现 其中的两种输出函数 1 putchar函数 字符输出函数 用于输出一个字符 如 putchar a putchar 100 charc b putchar c 62 例 输出单词Boy的完整程序 include stdio h 注意该语句的作用main chara b c a B b o c y putchar a putchar b putchar c 63 2 printf函数 格式输出函数 任意类型 任意格式 任意个数 例如 inta 100 b 56 printf a d b d a b 普通字符格式说明格式控制输出表列输出结果 a 100 b 56 后的字符称格式字符 不同格式字符对应不同的数据类型 64 d格式符 按整数格式输出几种用法 d不指定宽度 按实际宽度输出 md按指定宽度输出 m为宽度 ld用于输出长整型数 65 例 inta 125 b 453 longc 65535 printf a d b 5d c ld a b c 输出结果 a 125 b 453 c 65535 66 c格式符 用于输出字符charc A printf c c c c B 输出结果 c A B输出对象既可以是字符变量 字符常量 还可以是整型表达式 67 如 inta 100 charb A printf n d c a a printf n c d b b 输出结果 100 dA 65 68 完整前面的程序 main intx y x 5 y 2 x x 3 x 1 printf ny d y 69 例4 1已知三角形三边a b c 求面积 include math h main floata b c p s scanf f f f 第四章最简单的C程序设计 70 第四章最简单的C程序设计 例4 2已知整型变量x y的值分别是3和5 试将它们的值互换 intx 3 y 5 z z x x y y z y 3 5 x 71 第四章最简单的C程序设计 4 3字符数据的输入 输出 2 语句功能 从指定设备 读一个字符输出c的值 字符 1 语句格式 输入 getchar 输出 putchar c 字符变量 72 第四章最简单的C程序设计 例4 3输入一个字符并把它输出出来 include stdio h main charc c getchar putchar c 73 第四章最简单的C程序设计 1 语句格式 输入scanf 格式控制 地址表列 输出printf 格式控制 输出表列 2 语句功能 按格式控制描述的格式给地址表列中的量输入值或输出输出表列中各量的值 3 格式控制 括起来的一串格式字符和其它字符 4 4格式输入与输出 74 第四章最简单的C程序设计 4 格式字符 指定输出宽度在格式符中插入 m n例 10d 10 4f 12 5e 75 本章内容5 1关系运算符和关系表达式5 2逻辑运算符和逻辑表达式5 3if语句5 4switch语句4 5格式输入与输出 第五章选择结构程序设计 返回 76 第五章逻辑运算和判断选取控制 第五章选择结构程序设计 5 1关系运算符和关系表达式 算术运算关系运算赋值运算 高 低 77 第五章逻辑运算和判断选取控制 二 关系表达式 2 关系表达式的值 1 真0 假 78 第五章逻辑运算和判断选取控制 5 2逻辑运算符和逻辑表达式 一 运算符与优先级 算术运算关系运算 高 低 逻辑运算真值表 79 第五章逻辑运算和判断选取控制 二 逻辑表达式 例 设a 4 b 5 则 a为0 假 a b 1为1 真 5 3 2 2 4 0结果为1 逆波兰表达式计算过程 从左到右 运算符和其后面的比较 级别底的和前面的数一起进栈 级别高的运算 最后全部出栈同时完成计算 80 第五章逻辑运算和判断选取控制 m a b n c d 当a 1 b 2 c 3 d 4 m 1 n 1时 执行结果m 0 n c d 不被执行 n仍然为1 2 逻辑运算的对象并非仅限于逻辑量 例if 5 x 10 elsex 0 思考题 上式去掉括号后m a b n c d结果如何 81 第五章逻辑运算和判断选取控制 5 3if语句 条件语句 一 语句格式 任意表达式 可以是复合语句 格式1 if e 语句格式2 if e 语句1else语句2格式3 if e1 语句1elseif e2 语句2elseif e3 语句3 elseif em 语句melse语句n 82 第五章逻辑运算和判断选取控制 二 语句功能 83 第五章逻辑运算和判断选取控制 格式3 if e 语句1elseif e 语句2elseif e 语句3 elseif e 语句melse语句n 1 2 3 m 计算e1的值并判断 其值非0执行语句1 否则 判断e2的值 其值非0执行语句2 否则 判断e3的值 其值非0执行语句3 否则 判断em的值 其值非0执行语句m 否则 执行语句n 84 第五章逻辑运算和判断选取控制 例5 1从键盘输入两个整型数 输出最大数 main inta b scanf d d 85 第五章逻辑运算和判断选取控制 例5 1从键盘输入两个整型数 输出最大数 main inta b scanf d d 86 第五章逻辑运算和判断选取控制 例5 2输入两个整型数 按大小输出 main inta b temp scanf d d 87 第五章逻辑运算和判断选取控制 例5 3输入互不相等的三个数 按从小到大顺序输出它们 分析 设已知的三个数为a b c 1 可直接通过逻辑表达式和条件语句设计程序 2 可通过条件语句和互换变量值设计程序 即经过处理后使 a b c 88 第五章逻辑运算和判断选取控制 方法 1 main floata b c scanf f f f 89 第五章逻辑运算和判断选取控制 方法 2 main floata b c t scanf f f f 90 例5 4求一元二次方程ax2 bx c 0的解 第五章逻辑运算和判断选取控制 91 第五章逻辑运算和判断选取控制 includemain floata b c d x1 x2 scanf f f f 92 第五章逻辑运算和判断选取控制 例5 5某运输公司吨公里基本运费为p 根据距离s的远近计费标准如下 s 250km没有折扣250 s 5002 折扣500 s 10005 折扣1000 s 20008 折扣2000 s 300010 折扣3000 s15 折扣根据货物重量w和运距s 求运费f 返回 93 第五章逻辑运算和判断选取控制 main floatp s w d f scanf f f f 94 第五章逻辑运算和判断选取控制 三 if语句的嵌套 嵌套if的一般形式 if if 语句1else语句2elseif 语句3else语句4 内嵌if 内嵌if 注意 else总是与它上面最近的if配对 95 第五章逻辑运算和判断选取控制 if if 语句1elseif 语句2else语句3 内嵌if if if 语句1elseif 语句2else语句3 内嵌if if if 语句1else语句2 if if 语句1 else语句2 96 第五章逻辑运算和判断选取控制 分析 a 0不是二次方程 b2 4ac 0有两个相等实根 b2 4ac 0有两不等实根 b2 4ac 0有两共轭复根 include math h main floata b c d x x1 x2 xr xi scanf f f f 编程 例5 6求一元二次方程ax2 bx c 0的解 97 第五章逻辑运算和判断选取控制 求x1 x2 x 求xr xi x1 x2 xr xi NO d 0 d 0 求x y y n n y n a 0 开始 a b c end 98 第五章逻辑运算和判断选取控制 if fabs a 0 x1 b sqrt d 2 a x2 b sqrt d 2 a printf Tworealroots f f x1 x2 else xr b 2 a xi sqrt d 2 a printf Complexroots f f xr xi 99 第五章逻辑运算和判断选取控制 四 条件运算符与条件表达式 3 优先级 算术关系逻辑运算 除外 条件运算赋值运算 高 低 右结合 100 第五章逻辑运算和判断选取控制 1 输出x和y当中的最大值z x y x y printf max d z 或printf max d x y x y 或x y printf d x printf d y 举例 2 a b a b 1等价于a b a b 1 而不是 a b a b 1 3 a b a c d c d等价于a b a c d c d 4 x y 1 5 6表达式的值的类型取高的 5 ch ch A 101 第五章逻辑运算和判断选取控制 5 4switch语句 102 第五章逻辑运算和判断选取控制 三 break语句 使流程跳出switch结构 终止switch语句的执行 103 第五章逻辑运算和判断选取控制 例5 7用switch语句设计 例5 5运费程序 跳转 s 1d 01 s 2d 0 22 s 4d 0 054 s 8d 0 088 s 12d 0 112 sd 0 15 104 第五章逻辑运算和判断选取控制 main floatp w s d f intc scanf f case4 case5 case6 case7 d 0 08 break case8 case9 case10 case11 d 0 1 break case12 d 15 break f p w s 1 d printf f 15 2f f 105 第五章作业 第111页5 3 5 5 5 7 上机调试作业 第111 112页5 6 5 7 第五章逻辑运算和判断选取控制 106 第五章逻辑运算和判断选取控制 习题5 5已知x 求分段函数值y main floatx y scanf f 程序1 107 第五章逻辑运算和判断选取控制 main floatx y scanf f 程序2 108 第五章逻辑运算和判断选取控制 习题5 6 分析 设百分制成绩为x 成绩等级为y 109 第五章逻辑运算和判断选取控制 习题5 10 分析 设坐标为 x y 高度为h设 a x 2 y 2 1b x 2 y 2 1c x 2 y 2 1d x 2 y 2 1 2 2 2 2 2 2 2 2 110 本章内容6 1概述6 2goto语句6 3while语句6 4do while语句6 5for语句6 6循环的嵌套6 7几种循环的比较6 8break语句和continue语句 第六章循环控制 返回 111 第六章循环控制 第六章循环控制 C循环控制 if goto循环 6 2 while循环 6 3 do while循环 6 4 for循环 6 5 6 1概述 112 第六章循环控制 6 2goto语句及其构成的循环 一 goto语句 113 第六章循环控制 二 用法 1 与if语句联合使用构成循环 2 用来实现从多重循环体内转出 L1 if e 循环体gotoL1 当型循环 L2 循环体if e gotoL2 直到型循环 114 第六章循环控制 例6 1求s 1 2 3 n的值 main inti 1 sum 0 n scanf d main inti 1 sum 0 n scanf d 115 第六章循环控制 6 3while语句 当型 循环 一 语句格式 while e 循环体 二 执行过程 先判断后执行 当表达式e值为非0时 执行循环体 然后重复执行while语句 当e的值为0时 结束循环 执行后继语句 单语句或复合语句 116 第六章循环控制 例6 2求s 1 2 3 n的值 用while循环n 100 main inti 1 s 0 n scanf d main inti 1 s 0 n scanf d 117 第六章循环控制 6 4do while语句 直到型 循环 一 语句格式 do循环体while e 二 执行过程 先执行后判断 先执行do后的循环体 然后判断表达式e的值 若为非0 重复执行循环体 直到while中的表达式e为0 结束循环 单语句或复合语句 118 第六章循环控制 例6 3求s 1 2 n的值 用do while循环n 100 main inti 1 s 0 n scanf d main inti 1 s 0 n scanf d 119 第六章循环控制 6 5for语句及其构成的循环 二 执行过程 1 计算表达式1 2 判断表达式2 若非0 执行循环体 转3 否则 结束循环 转4 3 计算表达式3 转2 4 执行for语句的下一条语句 120 第六章循环控制 三 说明 例6 4求s 1 2 n的值 用for循环n 100 main inti s 0 n scanf d 121 第六章循环控制 2 for语句中的三个表达式均可省略注意 1 分号不能省略 2 应保证循环正确执行 main inti 1 s 0 n scanf d main inti 1 s 0 n scanf d 122 第六章循环控制 例6 5给一年级的小学生出10道100以内的加法练习题 分析 1 出题2 回答3 判断对错 include stdlib h main inti x y z randomize for i 1 i 10 i x random 99 y random 99 printf d d x y scanf d 思考 1 做对几题2 总成绩 include stdlib h main inti x y z intcount 0 score 0 randomize for i 1 i 10 i x random 99 y random 99 printf d d x y scanf d 123 第六章循环控制 例6 6求Fibonacci数列 1 1 2 3 5 8 的前30项 分析 f1 f2 1 fn fn 1 fn 2 n 3 注 一行打印3个数字 main longi 1 j 1 k intn printf 8ld 8ld i j for n 3 n 30 n k i j printf 8ld k if n 3 0 printf n i j j k 124 第六章循环控制 例6 7求分数序列 1 2 2 3 3 5 5 8 8 13 13 21 的前20项之和 main intk floati 1 j 2 s 0 for k 1 k 20 k s s i j j i j i j i printf sum 10 6f n s 125 第六章循环控制 1 循环的嵌套概念对各种循环结构是一样的 即某一循环的循环体内包含另一循环结构 2 各种循环结构可以互相嵌套 for while嵌套for while 6 6循环的嵌套 多重循环 126 第六章循环控制 1 各种循环结构可以互相替代 但不提倡使用用goto构成的循环 2 在while和do while语句构成的循环体中必须有使循环趋于结束的语句 如i 6 7几种循环的比较 3 在while和do while语句构成的循环中 循环变量的初始化必须在循环之前完成 4 在while do while和for语句构成的循环中 可以用break和continue跳出或结束本次循环 127 第六章循环控制 6 8break语句和continue语句 一 break语句 1 用来跳出switch结构 2 用来跳出当前循环 循环 break 128 第六章循环控制 例6 8利用公式 2 6 1 2 2 2 3 2 4 2 求 的近似值 直到最后一项的值小于10 8为止 include math h main longi 1 doublepi 0 while i i 1e8 pi pi 1 0 i i i pi sqrt 6 0 pi printf pi 10 6f n pi 6 9程序举例 129 第六章循环控制 例6 8利用公式 2 6 1 2 2 2 3 2 4 2 求 的近似值 直到最后一项的值小于10 8为止 include math h main longi doublepi 0 for i 1 i 1e8 break pi pi 1 0 i i pi sqrt 6 0 pi printf pi 10 6f n pi 130 第六章循环控制 例6 9打印100以内个位数为6 且能被3整除的数 main inti j for i 0 i 9 i j i 10 6 if j 3 0 continue printf d j 可以省略 131 第六章循环控制 例6 10写出下列程序的运行结果 main inti j a 0 for i 0 i 2 i for j 0 j 4 j if j 2 break a a printf d n a 132 第六章循环控制 例6 11打印99表 1 1 11 2 22 2 41 3 32 3 63 3 91 4 42 4 83 4 124 4 161 5 52 5 103 5 154 5 205 5 251 6 62 6 123 6 184 6 245 6 306 6 361 7 72 7 143 7 214 7 285 7 356 7 427 7 491 8 82 8 163 8 244 8 325 8 406 8 487 8 568 8 641 9 92 9 183 9 274 9 365 9 456 9 547 9 638 9 729 9 81 133 第六章循环控制 例6 11打印99表 main inti j for i 1 i 9 i for j 1 j i j printf d d 3d j i i j printf n 134 第六章循环控制 例6 12百鸡百钱问题 公鸡一只5元 母鸡一只3元 小鸡三只1元 用100元买一百只鸡 问公鸡 母鸡 小鸡各多少只 设 公鸡x只 母鸡y只 小鸡z只列等式 x y z 10015 x 9 y z 300 135 第六章循环控制 例6 12百鸡百钱问题 main intx y z for x 1 x 20 x for y 1 y 33 y for z 1 z 100 z if x y z 100 136 第六章循环控制 例6 13求ex的台劳级数展开式的前n项之和 ex 1 x x x22 x33 xn 1 n 1 main floatx s 1 t 1 f 1 inti n scanf f d 137 第六章循环控制 例6 14求素数问题 单个或多个 main inti m scanf d 138 第六章循环控制 f x x1 f x1 x2 f x2 139 第六章循环控制 例6 15用牛顿迭代法求代数方程e x x 0的实根 include math h main floatf1 f0 x1 2 x0 do x0 x1 f0 exp x0 x0 f1 exp x0 1 x1 x0 f0 f1 while fabs x1 x0 1e 6 printf f n x1 140 第六章作业 上机调试作业 第129页6 2 6 8 6 14 第129页6 2 6 4 6 6 6 8 第六章循环控制 141 本章内容7 1一维数组7 2二维数组7 3字符数组 第七章数组 返回 142 第七章数组 第七章数组 7 1一维数组 143 第七章数组 例 inta 10 floatb 5 定义一维整型数组a和实型数组ba数组中的元素是 a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 b数组中的元素是 b 0 b 1 b 2 b 3 b 4 144 第七章数组 例7 1求s a1 a2 a10 main inti floats 0 a 10 for i 0 i 10 i scanf f 145 第七章数组 四 一维数组的初始化 1 在定义数组时 给数组元素赋初值 例 inta 6 1 2 3 4 5 6 3 未赋初值的数组 各元素值不确定 4 数组的大小由初始化的数据个数决定 例 inta 1 2 3 5 数组中全部元素初始化为0 例 inta 6 0 146 第七章数组 例7 2求Fibonacci数列的前30项 一行三个 main longf 30 1 1 inti for i 2 i 30 i f i f i 1 f i 2 for i 0 i 30 i if i 3 0 printf n printf 8ld f i 147 第七章数组 例7 3已知一组数 n个 找出其中最大者 main inti n floata 20 max scanf d 148 第七章数组 例7 3已知一组数 n个 找出其中最大者 及其位置 main inti n position floata 20 max scanf d 149 第七章数组 例7 4对任意10个数按从大到小排序 选择法 main floata 10 t inti j p for i 0 i 10 i scanf f 150 第七章数组 例7 4对任意10个数按从大到小排序 交换法 main floata 10 t inti j for i 0 i 10 i scanf f 151 第七章数组 7 2二维数组 例 inta 3 4 floatb 5 10 一 引入 152 第七章数组 三 数组元素 数组名 下标1 下标2 a 0 0 a 0 1 a 0 2 a 0 3 a 1 0 a 1 1 a 1 2 a 1 3 a 2 0 a 2 1 a 2 2 a 2 3 四 二维数组元素在内存中的存储形式按行从上到下 行内从左到右存放 12个连续存储单元 体积 12序号 153 第七章数组 五 二维数组的输入 输出问题 154 第七章数组 六 二维数组的初始化 3 部分元素初始化 例 inta 3 3 1 4 5 6 4 省略第一维初始化 例 inta 3 1 4 5 6 155 第七章数组 例7 5打印以下的杨辉三角形 要求打印出10行 11112113311464115101051 i 0i 1i 2i 3i 4i 5i 6 j 0j 1j 2j 3j 4j 5j 6 i j i j i j 156 第七章数组 main inty 10 10 i j for i 0 i 10 i y i 0 1 y i i 1 for i 2 i 10 i for j 1 j i 1 j y i j y i 1 j y i 1 j 1 for i 0 i 10 i for j 0 j i j printf 5d y i j printf n 157 第七章数组 main inty 11 11 i j for i 1 i 10 i y i 1 1 y i i 1 for i 3 i 10 i for j 2 j i 1 j y i j y i 1 j y i 1 j 1 for i 1 i 10 i for j 1 j i j printf 5d y i j printf n 158 第七章数组 二 初始化 1 用字符常量 结尾无 0 构不成字符串 例 charc 6 H a p p y chard G o o d B y e 159 第七章数组 注 c数组长度为7 其中c 6 0 d数组长度为9 其中d 8 0 不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组 c Happy d c 160 第七章数组 三 字符数组的输入和输出I O 1 用 c 逐个元素的I O2 用 s 整个字符串I O例 charc 20 scanf s c printf s c 注意 c为数组名 其作为输入项时不加 输入的字符个数要小于数组的大小 输出时 串尾有 0 3 用字符串I O函数 puts c 和gets c for i 0 str i 0 i printf c str i 161 第七章数组 四 字符函数1 puts 字符数组 例如 charstr China nBeijing puts str 分两行输出 光标停在三行上 2 gets 字符数组 例如 charstr 20 gets str 从键盘输入 Howareyou 注意 scanf s str 只接受How 162 第七章数组 3 strcat 字符数组1 字符数组2 string h 例如 charstr1 30 People sRepublicof charstr2 China printf s n strcat str1 str2 4 strcpy 字符数组1 字符串2 例如 charstr1 10 str2 China strcpy str1 str2 或strcpy str1 China 2 注意 str1 China 或str1 str2 是不合法的 for i 0 str2 i 0 i str1 i str2 i str1 i 0 163 第七章数组 5 strcmp 字符串1 字符串2 例如 if strcmp str1 str2 0 printf Yes 注意 if str1 str2 printf Yes 是不合法的 6 strlen 字符数组 例如 charstr 10 China n printf d strlen str 结果为6 7 strlwr 字符串 将字符串中的大写字母转成小写 8 strupr 字符串 将字符串中的小写字母转成大写 164 第七章数组 例7 6有三个字符串 要求找出其中最大者 include string h main charstring 20 str 3 20 inti for i 0 i0 strcpy string str 0 elsestrcpy string str 1 if strcmp str 2 string 0 strcpy string str 2 puts string 165 第七章作业 上机调试作业 7 6 7 10 7 13 第153页7 3 7 4 7 5 7 13 第七章数组 166 本章内容8 1概述8 2函数的定义8 3函数的调用8 4参数及函数值8 5函数的嵌套调用8 7数组作为函数参数8 8局部变量和全局变量8 9变量的存储类别 第八章函数 返回 167 第八章函数 第八章函数 8 1概述 main d e f g h i j k l m a b c 168 第八章函数 函数 库函数自定义函数 无参函数有参函数 169 第八章函数 voidprint printf n main inti j for i 1 i 4 i for j 1 j i j printf print 一 无参函数例8 1打印图案 返回 170 第八章函数 intmax intx inty main inta b c max1 intz scanf d d d z x y x y 二 有参函数例8 2求3个数中的最大数 返回 171 第八章函数 8 2函数的定义 跳转 172 第八章函数 三 说明 1 省略类型符的函数 系统自动定义为整型2 形参的定义可以在函数体外进行 头部的下一行 3 可定义空函数类型符函数名 4 函数名在函数体中不作为变量使用 返回的函数值由return给出 跳转 173 第八章函数 8 3 8 4函数的调用 参数及函数值 一 调用方式 1 函数语句 函数名 实参表 例 fun x y z prn 2 函数作为运算量参加表达式计算例 z 5 max x y 3 函数作为参数参加计算例 d max max a b c 跳转 跳转 174 第八章函数 floatf intk main floatfac 1 intn m floatc inti scanf d d for i 1 i k i 175 第八章函数 二 实参 形参 函数值 1 形参在函数调用时被分配内存单元 调用结束后立即释放 3 形参为变量时 实参与形参的数据传递是 值传递 即 单向传递 4 应保证形参与实参个数 类型 顺序的一致 字符型与整型可通用 形参与实参的类型可以赋值兼容 跳转 2 实参可以是常量 变量或表达式 但要求有确定值 176 例8 4C语言对实参求值的顺序是从右向左 结果0 第八章函数 intf inta intb main intc if a b c 1 inti 2 p elseif a b c 0 p f i i elsec 1 printf d p return c 177 第八章函数 4 函数值为出现在return语句中的返回值 1 函数名不作为一个量参加函数体中的运算 2 函数返回值的类型由函数类型决定 3 函数调用可不返回值 不使用return语句 4 可用 void 定义 空类型 函数 以此明确表示 不带回值 跳转 跳转 178 第八章函数 三 说明 1 库函数应在文件开头使用 include 2 自定义函数调用时应在主调函数中声明 声明方式 1 在主调函数体内声明 类型符函数名 参数类型1 参数类型2 类型符函数名 参数类型1参数名1 参数类型2参数名2 2 在文件开头进行外部声明 3 省略情况 整型 字符型函数或被调函数出现在主调函数之前 179 第八章函数 main floata b c m floatmax floatx floaty scanf f f f 例8 5求3个数中的最大数 去掉x和y也行 180 第八章函数 floatmax float float main floata b c m scanf f f f 例8 5求3个数中的最大数 181 第八章函数 floatmax floatx floaty return x y x y main floata b c m scanf f f f 例8 5求3个数中的最大数 182 第八章函数 8 5函数的嵌套调用 概念 在调用一个函数的过程中 又调用另一个函数 注 C语言不允许嵌套定义函数 main函数a函数b函数 调用a函数 结束 调用b函数 183 第八章函数 8 7数组作为函数参数 一 数组元素作函数实参与变量同 值传递 例 m max a 5 a 6 184 第八章函数 include math h floatarea floata floatb floatc floatp s p a b c 2 s sqrt p p a p b p c return s 例8 6已知10个三角形的三边长 求它们的面积 185 第八章函数 main floata 10 b 10 c 10 s 10 inti for i 0 i 10 i scanf f f f 例8 6已知10个三角形的三边长 求它们的面积 186 第八章函数 inttotal charword intcount 0 i 0 while word i if word i count i return count 例8 7编写一个函数 求一段文字中包含空格的个数 二 数组名作函数参数 187 第八章函数 main charstring 80 intspace gets string space total string printf Spacenumber d space 例8 7编写一个函数 求一段文字中包含空格的个数 188 第八章函数 voidsort floata intn inti j k floatt for i 0 ia j k j t a i a i a k a k t 例8 8用选择法将n个数按从小到大排序 189 第八章函数 main inti n floata 100 scanf d 例8 8用选择法将n个数按从小到大排序 190 第八章函数 二 数组名作函数参数 1 实参 形参应同为数组名 或数组指针 2 实参 形参应同类型 3 实参 形参数组体积可不相同 4 在有些情况下形参数组可不指定大小 但不允许出现可调数组如 floatf intn floata 不允许写成 floatf intn floata n 5 数组参数的传递按 地址传递 191 第八章函数 8 8 8 9变量的作用域和存储方式 变量分类 按生存期 按作用域 192 第八章函数 局部变量 函数内部定
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!