




已阅读5页,还剩286页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C语言程序设计 2 教学内容 第一章C语言概述第二章算法第三章数据类型 运算符与表达式第四章最简单的C程序设计第五章选择结构程序设计第六章循环控制第七章数组第八章函数第九章预处理命令第十章指针第十一章结构体第十三章文件 3 前言 前言 一 计算机语言 1 机器语言2 汇编语言3 高级语言 4 高级语言向机器语言的过渡 机器指令的集合 符号化的机器语言 通用自然的算法语言 4 前言 二 程序与程序设计 完成某一功能的计算机指令的有序集合 1 程序 2 程序设计 设计 编制 调试程序的过程 5 3 程序设计的基本步骤 1 分析问题 2 确定解题思路和算法 3 编制流程图 4 编写源程序 5 静态检查 6 上机调试 7 正式运行 前言 6 本章内容1 1C语言发展史1 2C语言特点1 3简单C程序分析 第一章C语言概述 返回 7 第一章C语言概述 第一章C语言概述 1 1C语言发展史 1960ALGOL60 AlgorithmicLanguage 198787ANSIC1990ISOC 1972C 取BCPL第二个字母 1970B 取BCPL第一个字母 1978标准C1983ANSIC 1967BCPL BasicCombined ProgrammingLanguage 跳转 8 第一章C语言概述 1 2C语言特点 1 简练 自由 结构化 32个关键字 9种控制语句 2 运算符丰富 附录 34种 3 数据结构丰富 4 可直接对硬件进行操作 5 目标程序质量高 6 可移植性好 9 第一章C语言概述 1 3简单C程序分析 例1 1打印 显示 一串字符 运行结果 Thisisanexample example1 1 main printf Thisisanexample n 10 第一章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 11 第一章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 12 第一章C语言概述 max intx inty main maxnumber intz inta b c if x y z x scanf d d 例1 4已知整数a b 求其中的最大数 13 第一章C语言概述 C程序结构 1 C程序由函数构成 C程序 一个主函数 main函数 一个主函数 若干其他函数 子或库 TurboC有300多个 跳转 3 语句书写自由 后带分号 4 可用 对C程序作注释 前一页 14 本章内容2 1算法的概念2 4算法的表示2 5结构化程序设计 第二章算法 返回 15 第二章算法 第二章算法 程序 数据结构 算法 程序 数据结构 算法 程序设计方法 语言工具和环境 数据结构 对数据的描述 算法 对操作的描述 include math h main floatx y x 45 y 2 sin x 3 14 180 printf Y f n y 16 例如 1 2 3 100 5050或100 1 99 2 98 49 51 50 100 49 100 50 5050 第二章算法 2 1算法的概念 算法 为解决一个问题而采取的方法和步骤 17 第二章算法 2 4算法的表示 用流程图表示算法 起止框 处理框 判断框 输入 出框 流程线 连接点 注释框 18 第二章算法 例2 1计算265的平方根 顺序结构 N S图 19 第二章算法 例2 2打印X的绝对值 分支结构 N S图 X 0 yn 打印x打印 x 20 第二章算法 例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 21 1 自顶向下 2 逐步细化 3 模块化设计 4 结构化编码 第二章算法 2 5结构化程序设计方法 了解内容 结构化程序便于编写 阅读 修改和维护 可以减少程序出错的机会 提高程序的可靠性 保证程序的质量 结构化程序设计方法的基本思路是 把一个复杂问题的求解过程分阶段进行 每个阶段处理的问题都控制在人们容易理解和处理的范围内 22 本章内容3 1C的数据类型3 2常量与变量3 3整型数据3 4实型数据3 5字符型数据3 6变量赋初值3 8算术运算符与算术表达式3 9赋值运算符和赋值表达式3 10逗号运算符和逗号表达式 第三章数据类型 运算符与表达式 返回 23 第三章数据类型 运算符与表达式 空类型void 无return的函数 C数据类型 基本类型 构造类型 指针类型 整型实型字符型枚举型 数组型结构体型共用体型 单精度双精度 第三章数据类型 运算符与表达式 3 1C的数据类型 24 第三章数据类型 运算符与表达式 3 2常量与变量 一 常量 1 整型常量 0和正负整数 4 字符串常量 括起来的字符串 5 符号常量 define符号名常量 2 实型常量 3 字符型常量 跳转 25 第三章数据类型 运算符与表达式 definePI3 1415926 例3 2定义一个符号常量PI 其值为 26 第三章数据类型 运算符与表达式 二 变量 1 变量名 以标识符命名 由字母 数字或下划线组成首字符为字母或下划线用来标识变量 符号常量 数组 函数 文件等 标识符 例 sumgood123student name 27 第三章数据类型 运算符与表达式 2 变量的定义 用变量定义语句定义变量及其类型 1 变量定义语句的格式 类型关键字变量名或赋值表达式表 实型 字符型 2 类型关键字 整型 基本型int短整型short长整型long无符号型unsigned 单精度型float双精度型double char 28 第三章数据类型 运算符与表达式 3 说明 必须在程序执行部分之前对程序中的所有变量进行定义 C语言中整型和字符型数据通用 可在定义变量的同时给其赋初值 例 inta 3 b 4 c 5 floatx y z 0 5 charw a 变量名不能用关键字 变量区分大小写 29 第三章数据类型 运算符与表达式 4 举例3 3 definePI3 1415926 include math h main floatx y x 67 y 2 sin x PI 180 printf y f y 返回 30 第三章数据类型 运算符与表达式 1 常量 十进制567 789 0八进制0567 0753十六进制0 x567 0 xa12 变量 inti j i 10 j 10 3 3整型数据 31 第三章数据类型 运算符与表达式 3 整型变量数的表示范围 32768 32767 4 整型变量的分类 有符号基本整型 signed int无符号基本整型unsignedint有符号短整型 signed short int 无符号短整型unsignedshort int 有符号长整型 signed long int 无符号长整型unsignedlong int 32 第三章数据类型 运算符与表达式 a 0111111111111111 b 5 无符号和有符号数的比较 inta 32768 32767 unsignedintb 0 65535 符号位 数据位 32767 65535 21521421321221121029282726252423222120 32768 16384 8192 4096 2048 1024 33 第三章数据类型 运算符与表达式 举例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 34 第三章数据类型 运算符与表达式 a 0111111111111111 6 整型数据的溢出 符号位 32767 a 1 1000000000000000 符号位 32768 35 第三章数据类型 运算符与表达式 举例3 5main inta b a 32767 b a 1 printf a d b d n a b 运行结果 a 32767 b 32768 36 第三章数据类型 运算符与表达式 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 37 第三章数据类型 运算符与表达式 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实型数据 浮点数 38 第三章数据类型 运算符与表达式 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 39 第三章数据类型 运算符与表达式 4 实型常量的类型许多编译系统均将实型常量按照双精度数处理 结果存入单精度变量 降低了运算速度 可以在实型常量的后边加一个f或F以表示单精度数 如 floatf f 2 45678f 4523 65f 5 单精度变量有6 7位有效数字 10 37 1038 双精度变量有15 16位有效数字 10 307 10308 40 第三章数据类型 运算符与表达式 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 41 第三章数据类型 运算符与表达式 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 42 第三章数据类型 运算符与表达式 举例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 43 第三章数据类型 运算符与表达式 举例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 44 第三章数据类型 运算符与表达式 5 字符串常量 Howdoyoudo CHINA a 123 45 注意 1 没有字符串变量 可用字符数组存储 2 字符串常量在内存中的存储形式 3 在输出语句中的应用printf Howdoyoudo printf c c c d n c c 45 第三章数据类型 运算符与表达式 inta 3 floatf 3 14 charc a inta b 3 c inta 3 b 3 c 3 注意 变量的初始化不是在编译阶段完成的 而是在程序运行时执行本函数时赋予初始值的 3 6变量赋初值 46 第三章数据类型 运算符与表达式 3 8算术运算符与算术表达式 一 C运算符简介 13类 算术运算符 关系运算符 逻辑运算符 赋值运算符 条件运算符 逗号运算符 指针运算符 强制类型转换运算符 类型关键字 47 第三章数据类型 运算符与表达式 二 算术表达式 1 定义 用算术运算符和括号将运算对象连接起来且符合C语法规则的式子 2 运算顺序a b c 1 5 a 48 3 运算类型 3 7混合运算 1 同类型运算结果类型不变 不同类型运算先按类型级别低向高转换成同一类型 再计算 doublefloatlongunsignedintchar short 高低 10 a i f d l 4 优先级和结合性 第三章数据类型 运算符与表达式 49 第三章数据类型 运算符与表达式 类型关键字 表达式 例 int a float 5 3 double x y 三 强制类型转换运算 注意 int x y只转换x的类型后与y相加 int x不等同于int x 50 第三章数据类型 运算符与表达式 举例3 10main inti floatx x 3 6 i int x printf x f i d n x i 运行结果 x 3 600000 i 3 51 第三章数据类型 运算符与表达式 四 自增 自减运算 1 运算规则 i i使用前使i值加 减 1i i 使用后使i值加 减 1 2 注意 1 只能用于变量 2 右结合方向 3 使用时谨防出错 52 第三章数据类型 运算符与表达式 3 例 53 第三章数据类型 运算符与表达式 3 9赋值运算符和赋值表达式 一 赋值运算符及其操作 将一个表达式的值赋给一个变量 二 赋值表达式 说明 1 发生类型转换 自学60 61页 2 右结合 例 x b 2 a a b c 5a b 4 c 6 那么a 5 b c 54 第三章数据类型 运算符与表达式 三 复合赋值运算 复合赋值运算符 运算符 赋值号 55 第三章数据类型 运算符与表达式 3 10逗号运算符和逗号表达式 1 逗号表达式 表达式1 表达式2 表达式n 2 运算规则 从左到右依次计算各表达式的值 以表达式n的值作为最终值 其优先级最低 56 第三章数据类型 运算符与表达式 举例3 11main inti floatf 7 2 printf i d n f 4 i f printf f f n f 运行结果 i 11f 11 200000 57 本章内容4 1C语句概述4 2赋值语句4 3I O的概念及在C语言中的实现4 4字符数据的输入 输出4 5格式输入与输出 第四章最简单的C程序设计 返回 58 第四章最简单的C程序设计 4 1C语句概述 第四章最简单的C程序设计 C语句 控制语句 条件 分支 循环 函数调用语句 函数加分号 表达式语句 表达式加分号 空语句 一个单独的分号 复合语句 用 将若干语句括起 59 第四章最简单的C程序设计 4 2赋值语句 语句格式 赋值表达式 例如 if a b 0 t a if a b x a if a b y a 在if后面的小括号内必须是表达式 60 C程序最基本的成分是语句目前我们已掌握的语句 变量说明语句 inta b c 表达式语句 x y 特别地 a 5 赋值语句 61 可以编写简单程序如 main intx y x 5 y 2 x x 3 x 1 该程序语法上完整 但还缺少输出 62 数据的输出用输出函数实现 其中的两种输出函数 1 putchar函数 字符输出函数 用于输出一个字符 如 putchar a putchar 100 charc b putchar c 63 例 输出单词Boy的完整程序 include stdio h 注意该语句的作用main chara b c a B b o c y putchar a putchar b putchar c 64 2 printf函数 格式输出函数 任意类型 任意格式 任意个数 例如 inta 100 b 56 printf a d b d a b 普通字符格式说明格式控制输出表列输出结果 a 100 b 56 后的字符称格式字符 不同格式字符对应不同的数据类型 65 d格式符 按整数格式输出几种用法 d不指定宽度 按实际宽度输出 md按指定宽度输出 m为宽度 ld用于输出长整型数 66 例 inta 125 b 453 longc 65535 printf a d b 5d c ld a b c 输出结果 a 125 b 453 c 65535 67 c格式符 用于输出字符charc A printf c c c c B 输出结果 c A B输出对象既可以是字符变量 字符常量 还可以是整型表达式 68 如 inta 100 charb A printf n d c a a printf n c d b b 输出结果 100 dA 65 69 完整前面的程序 main intx y x 5 y 2 x x 3 x 1 printf ny d y 70 例4 1已知三角形三边a b c 求面积 include math h main floata b c p s scanf f f f 第四章最简单的C程序设计 71 第四章最简单的C程序设计 例4 2已知整型变量x y的值分别是3和5 试将它们的值互换 intx 3 y 5 z z x x y y z y 3 5 x 72 第四章最简单的C程序设计 4 3字符数据的输入 输出 2 语句功能 从指定设备 读一个字符输出c的值 字符 1 语句格式 输入 getchar 输出 putchar c 字符变量 73 第四章最简单的C程序设计 例4 3输入一个字符并把它输出出来 include stdio h main charc c getchar putchar c 74 第四章最简单的C程序设计 1 语句格式 输入scanf 格式控制 地址表列 输出printf 格式控制 输出表列 2 语句功能 按格式控制描述的格式给地址表列中的量输入值或输出输出表列中各量的值 3 格式控制 括起来的一串格式字符和其它字符 4 4格式输入与输出 75 第四章最简单的C程序设计 4 格式字符 指定输出宽度在格式符中插入 m n例 10d 10 4f 12 5e 76 本章内容5 1关系运算符和关系表达式5 2逻辑运算符和逻辑表达式5 3if语句5 4switch语句4 5格式输入与输出 第五章选择结构程序设计 返回 77 第五章逻辑运算和判断选取控制 第五章选择结构程序设计 5 1关系运算符和关系表达式 算术运算关系运算赋值运算 高 低 78 第五章逻辑运算和判断选取控制 二 关系表达式 2 关系表达式的值 1 真0 假 79 第五章逻辑运算和判断选取控制 5 2逻辑运算符和逻辑表达式 一 运算符与优先级 算术运算关系运算 高 低 逻辑运算真值表 80 第五章逻辑运算和判断选取控制 二 逻辑表达式 例 设a 4 b 5 则 a为0 假 a b 1为1 真 5 3 2 2 4 0结果为1 逆波兰表达式计算过程 从左到右 运算符和其后面的比较 级别底的和前面的数一起进栈 级别高的运算 最后全部出栈同时完成计算 81 第五章逻辑运算和判断选取控制 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结果如何 82 第五章逻辑运算和判断选取控制 5 3if语句 条件语句 一 语句格式 任意表达式 可以是复合语句 格式1 if e 语句格式2 if e 语句1else语句2格式3 if e1 语句1elseif e2 语句2elseif e3 语句3 elseif em 语句melse语句n 83 第五章逻辑运算和判断选取控制 二 语句功能 84 第五章逻辑运算和判断选取控制 格式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 85 第五章逻辑运算和判断选取控制 例5 1从键盘输入两个整型数 输出最大数 main inta b scanf d d 86 第五章逻辑运算和判断选取控制 例5 1从键盘输入两个整型数 输出最大数 main inta b scanf d d 87 第五章逻辑运算和判断选取控制 例5 2输入两个整型数 按大小输出 main inta b temp scanf d d 88 第五章逻辑运算和判断选取控制 例5 3输入互不相等的三个数 按从小到大顺序输出它们 分析 设已知的三个数为a b c 1 可直接通过逻辑表达式和条件语句设计程序 2 可通过条件语句和互换变量值设计程序 即经过处理后使 a b c 89 第五章逻辑运算和判断选取控制 方法 1 main floata b c scanf f f f 90 第五章逻辑运算和判断选取控制 方法 2 main floata b c t scanf f f f 91 例5 4求一元二次方程ax2 bx c 0的解 第五章逻辑运算和判断选取控制 92 第五章逻辑运算和判断选取控制 includemain floata b c d x1 x2 scanf f f f 93 第五章逻辑运算和判断选取控制 例5 5某运输公司吨公里基本运费为p 根据距离s的远近计费标准如下 s 250km没有折扣250 s 5002 折扣500 s 10005 折扣1000 s 20008 折扣2000 s 300010 折扣3000 s15 折扣根据货物重量w和运距s 求运费f 返回 94 第五章逻辑运算和判断选取控制 main floatp s w d f scanf f f f 95 第五章逻辑运算和判断选取控制 三 if语句的嵌套 嵌套if的一般形式 if if 语句1else语句2elseif 语句3else语句4 内嵌if 内嵌if 注意 else总是与它上面最近的if配对 96 第五章逻辑运算和判断选取控制 if if 语句1elseif 语句2else语句3 内嵌if if if 语句1elseif 语句2else语句3 内嵌if if if 语句1else语句2 if if 语句1 else语句2 97 第五章逻辑运算和判断选取控制 分析 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的解 98 第五章逻辑运算和判断选取控制 求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 99 第五章逻辑运算和判断选取控制 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 100 第五章逻辑运算和判断选取控制 四 条件运算符与条件表达式 3 优先级 算术关系逻辑运算 除外 条件运算赋值运算 高 低 右结合 101 第五章逻辑运算和判断选取控制 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 102 第五章逻辑运算和判断选取控制 5 4switch语句 103 第五章逻辑运算和判断选取控制 三 break语句 使流程跳出switch结构 终止switch语句的执行 104 第五章逻辑运算和判断选取控制 例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 105 第五章逻辑运算和判断选取控制 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 106 第五章作业 第111页5 3 5 5 5 7 上机调试作业 第111 112页5 6 5 7 第五章逻辑运算和判断选取控制 107 第五章逻辑运算和判断选取控制 习题5 5已知x 求分段函数值y main floatx y scanf f 程序1 108 第五章逻辑运算和判断选取控制 main floatx y scanf f 程序2 109 第五章逻辑运算和判断选取控制 习题5 6 分析 设百分制成绩为x 成绩等级为y 110 第五章逻辑运算和判断选取控制 习题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 111 本章内容6 1概述6 2goto语句6 3while语句6 4do while语句6 5for语句6 6循环的嵌套6 7几种循环的比较6 8break语句和continue语句 第六章循环控制 返回 112 第六章循环控制 第六章循环控制 C循环控制 if goto循环 6 2 while循环 6 3 do while循环 6 4 for循环 6 5 6 1概述 113 第六章循环控制 6 2goto语句及其构成的循环 一 goto语句 114 第六章循环控制 二 用法 1 与if语句联合使用构成循环 2 用来实现从多重循环体内转出 L1 if e 循环体gotoL1 当型循环 L2 循环体if e gotoL2 直到型循环 115 第六章循环控制 例6 1求s 1 2 3 n的值 main inti 1 sum 0 n scanf d main inti 1 sum 0 n scanf d 116 第六章循环控制 6 3while语句 当型 循环 一 语句格式 while e 循环体 二 执行过程 先判断后执行 当表达式e值为非0时 执行循环体 然后重复执行while语句 当e的值为0时 结束循环 执行后继语句 单语句或复合语句 117 第六章循环控制 例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 118 第六章循环控制 6 4do while语句 直到型 循环 一 语句格式 do循环体while e 二 执行过程 先执行后判断 先执行do后的循环体 然后判断表达式e的值 若为非0 重复执行循环体 直到while中的表达式e为0 结束循环 单语句或复合语句 119 第六章循环控制 例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 120 第六章循环控制 6 5for语句及其构成的循环 二 执行过程 1 计算表达式1 2 判断表达式2 若非0 执行循环体 转3 否则 结束循环 转4 3 计算表达式3 转2 4 执行for语句的下一条语句 121 第六章循环控制 三 说明 例6 4求s 1 2 n的值 用for循环n 100 main inti s 0 n scanf d 122 第六章循环控制 2 for语句中的三个表达式均可省略注意 1 分号不能省略 2 应保证循环正确执行 main inti 1 s 0 n scanf d main inti 1 s 0 n scanf d 123 第六章循环控制 例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 124 第六章循环控制 例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 125 第六章循环控制 例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 126 第六章循环控制 1 循环的嵌套概念对各种循环结构是一样的 即某一循环的循环体内包含另一循环结构 2 各种循环结构可以互相嵌套 for while嵌套for while 6 6循环的嵌套 多重循环 127 第六章循环控制 1 各种循环结构可以互相替代 但不提倡使用用goto构成的循环 2 在while和do while语句构成的循环体中必须有使循环趋于结束的语句 如i 6 7几种循环的比较 3 在while和do while语句构成的循环中 循环变量的初始化必须在循环之前完成 4 在while do while和for语句构成的循环中 可以用break和continue跳出或结束本次循环 128 第六章循环控制 6 8break语句和continue语句 一 break语句 1 用来跳出switch结构 2 用来跳出当前循环 循环 break 129 第六章循环控制 例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程序举例 130 第六章循环控制 例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 131 第六章循环控制 例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 可以省略 132 第六章循环控制 例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 133 第六章循环控制 例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 134 第六章循环控制 例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 135 第六章循环控制 例6 12百鸡百钱问题 公鸡一只5元 母鸡一只3元 小鸡三只1元 用100元买一百只鸡 问公鸡 母鸡 小鸡各多少只 设 公鸡x只 母鸡y只 小鸡z只列等式 x y z 10015 x 9 y z 300 136 第六章循环控制 例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 137 第六章循环控制 例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 138 第六章循环控制 例6 14求素数问题 单个或多个 main inti m scanf d 139 第六章循环控制 f x x1 f x1 x2 f x2 140 第六章循环控制 例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 141 第六章作业 上机调试作业 第129页6 2 6 8 6 14 第129页6 2 6 4 6 6 6 8 第六章循环控制 142 本章内容7 1一维数组7 2二维数组7 3字符数组 第七章数组 返回 143 第七章数组 第七章数组 7 1一维数组 144 第七章数组 例 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 145 第七章数组 例7 1求s a1 a2 a10 main inti floats 0 a 10 for i 0 i 10 i scanf f 146 第七章数组 四 一维数组的初始化 1 在定义数组时 给数组元素赋初值 例 inta 6 1 2 3 4 5 6 3 未赋初值的数组 各元素值不确定 4 数组的大小由初始化的数据个数决定 例 inta 1 2 3 5 数组中全部元素初始化为0 例 inta 6 0 147 第七章数组 例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 148 第七章数组 例7 3已知一组数 n个 找出其中最大者 main inti n floata 20 max scanf d 149 第七章数组 例7 3已知一组数 n个 找出其中最大者 及其位置 main inti n position floata 20 max scanf d 150 第七章数组 例7 4对任意10个数按从大到小排序 选择法 main floata 10 t inti j p for i 0 i 10 i scanf f 151 第七章数组 例7 4对任意10个数按从大到小排序 交换法 main floata 10 t inti j for i 0 i 10 i scanf f 152 第七章数组 7 2二维数组 例 inta 3 4 floatb 5 10 一 引入 153 第七章数组 三 数组元素 数组名 下标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序号 154 第七章数组 五 二维数组的输入 输出问题 155 第七章数组 六 二维数组的初始化 3 部分元素初始化 例 inta 3 3 1 4 5 6 4 省略第一维初始化 例 inta 3 1 4 5 6 156 第七章数组 例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 157 第七章数组 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 158 第七章数组 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 159 第七章数组 二 初始化 1 用字符常量 结尾无 0 构不成字符串 例 charc 6 H a p p y chard G o o d B y e 160 第七章数组 注 c数组长度为7 其中c 6 0 d数组长度为9 其中d 8 0 不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组 c Happy d c 161 第七章数组 三 字符数组的输入和输出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 162 第七章数组 四 字符函数1 puts 字符数组 例如 charstr China nBeijing puts str 分两行输出 光标停在三行上 2 gets 字符数组 例如 charstr 20 gets str 从键盘输入 Howareyou 注意 scanf s str 只接受How 163 第七章数组 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 164 第七章数组 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 字符串 将字符串中的小写字母转成大写 165 第七章数组 例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 166 第七章作业 上机调试作业 7 6 7 10 7 13 第153页7 3 7 4 7 5 7 13 第七章数组 167 本章内容8 1概述8 2函数的定义8 3函数的调用8 4参数及函数值8 5函数的嵌套调用8 7数组作为函数参数8 8局部变量和全局变量8 9变量的存储类别 第八章函数 返回 168 第八章函数 第八章函数 8 1概述 main d e f g h i j k l m a b c 169 第八章函数 函数 库函数自定义函数 无参函数有参函数 170 第八章函数 voidprint printf n main inti j for i 1 i 4 i for j 1 j i j printf print 一 无参函数例8 1打印图案 返回 171 第八章函数 intmax intx inty main inta b c max1 intz scanf d d d z x y x y 二 有参函数例8 2求3个数中的最大数 返回 172 第八章函数 8 2函数的定义 跳转 173 第八章函数 三 说明 1 省略类型符的函数 系统自动定义为整型2 形参的定义可以在函数体外进行 头部的下一行 3 可定义空函数类型符函数名 4 函数名在函数体中不作为变量使用 返回的函数值由return给出 跳转 174 第八章函数 8 3 8 4函数的调用 参数及函数值 一 调用方式 1 函数语句 函数名 实参表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国焙烤食品糖制品市场消费趋势调查与投资效益研究报告
- 2025年3月29日全国事业单位联考D类《职测》真题及答案
- 离婚协议签署后反悔处理与财产分割纠纷解决合同
- 通信基站租赁合同补充协议模板(含通信服务)
- 互联网金融平台合规经营连带责任担保协议
- 儿童环保纤维服装研发、生产与环保宣传合同
- 医疗机构物业保洁及24小时值班安全保障合同
- 专业机构认证的二手别墅交易合同模板
- 儿童服饰门面房及品牌经营许可权转让协议
- 国际商事合同通则在跨境环保合作合同中的责任分配
- 2025年时事政治考试100题及答案
- 农业产业强镇建设资金申请项目可行性研究及风险评估报告
- 秋形势与政策正确认识中国经济热点问题-教案2025版本
- 药品注册审评员考核试题及答案
- GB/T 7251.10-2025低压成套开关设备和控制设备第10部分:规定成套设备的指南
- 森林防灭火知识培训材料课件
- 成本管控的课件
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- 2025年政府采购评审专家考试题库含答案
- CT检查的课件教学课件
- 年产50万吨钙系列产品项目可行性研究报告
评论
0/150
提交评论