




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计 程序设计初步 C语句可以分为5类 1 控制语句 9种2 函数调用语句3 表达式语句4 空语句 什么也不做5 复合语句 用 括起来 if else 条件语句for 循环语句do while 循环语句while 循环语句continue结束本次循环break中止执行switch或循环语句switch多分支选择语句goto转向语句return从函数返回语句 九种控制语句 表示算法的三种基本结构 1966年 Bohra和Jacopini提出了程序中需要的三种控制结构顺序结构选择结构循环结构 顺序结构程序举例 ch3 12 c include includemain floata b c s area scanf f f f 例1 输入三角形边长 求面积 输入 3 4 6 输出 a 3 00 b 4 00 c 6 00s 6 50area 5 33 例2 从键盘输入大写字母 用小写字母输出 ch3 13 c include stdio h main charc1 c2 c1 getchar printf c d n c1 c1 c2 c1 32 printf c d n c2 c2 输入 A 输出 A 65a 97 ch3 14 c include includemain floata b c disc x1 x2 p q scanf a f b f c f 输入 a 1 b 3 c 2 输出 x1 1 00 x2 2 00 if语句有三种形式 1 if 表达式 语句 if语句 例 if x y printf d x 选择结构 2 if 表达式 语句1else语句2 例 if x y printf d x elseprintf d y 选择结构 if语句 3 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3 else语句n 选择结构 if语句 说明 1 if后的表达式必须用 括住 表达式一般为逻辑表达式或关系表达式 2 在每个else前面有一分号 整个语句结束处有一分号 3 在if和else后面只含一个内嵌的语句 如果有多个语句 应用花括号 将几个语句合成为一个复合语句 在 外面不需要再加分号 选择结构 由小到大输出两个数 main floata b t scanf f f 问题 1 语句中 取消复合语句会出现什么结果 选择结构 例1 由小到大输出三个数 main floata b c t scanf f f f 选择结构程序举例 main floatx inty scanf f 它可改写为 main floatx inty scanf f 一般形式 if if 语句1else语句2elseif 语句3else语句4从最内层开始 else总是与它上面最近的未曾配对的if配对 如 上例改为 if语句的嵌套 main floatx inty scanf f main floatx inty scanf f if x 0 y 1 可加花括号来避免逻辑错 引例if a b max a elsemax b 给同一变量赋值的情况可用条件表达式 max a b a b 条件运算符 条件表达式的一般形式 条件 表达式1 表达式2 条件运算符 执行过程判断条件若为非0 求解表达式1并以它作为整个表达式的值 若为0 求解表达式2并以它作为整个表达式的值 条件运算符的级别先于赋值号 低于算术和关系 如 x a b a b 1相当于 x a b a b 1 条件运算符的结合方向为自右向左 如 a b a c d c d相当于 a b a c d c d 若a 1 b 2 c 3 d 4 表达式的值为 4 条件表达式不能取代一般的if语句if a b printf d a elseprintf d b 它不能用条件表达式 但可写成 printf d a b a b 条件表达式中三个表达式的类型可以不同如 a 1 1 5 main charch scanf c 将大写字母转换成小写 其他不转换 条件运算符使用举例 一般形式 switch 表达式 case常表1 语句1 break case常表2 语句2 break case常表n 语句n break default 语句n 1 switch语句 多分支选择语句 switch后表达式可以任何类型case后是常量表达式 且须互不相同case的次序可任意执行完一个case后的语句后转向下一个case后的语句执行break语句可中止switch语句的执行多个case可共用一组执行语句 如 case A case B case C printf 60 n break 说明 执行下列程序后 变量k的正确结果是 intk 10 switch k case9 k 1 case10 k 1 case11 k 1 default k 1 A 10B 11C 12D 13E 14 Switch语句应用 一 将下列条件写成C逻辑表达式 1 x 10 10和x yb ab c a b c 练习题 三 变量说明 inta 3 b 1 x 2 y 0 则 a b x y ay y b y a y b y a a a b 练习题 1 C语言中相等关系用运算符 表示 试问对于下列if语句inta 1 b 2 if a b printf AisequaltoB n 在编译时 C编译程序指出该语句有语法错误 A 能B 不能2 下列选项中从语法上讲合法的if语句是 设intx a b c A if a b x B if a b x E if a b c x F if 1 x 练习题 3 下列关于switch语句和break语句的结论中 只有是正确的 A break语句是switch语句中的一部分B 在switch语句中可以根据需要使用或不使用break语句C 在switch语句中必须使用break语句D 以上三个结论中有两个是正确7 如下三个条件语句中 其中s1和s2表示是C语言的语句 它们描述的功能是否等价 A if a s1 elses2 B if a 0 s2 elses1 C if a 0 s1 elses2 D 等价 3 阅读程序写出执行结果main inta b c a 2 b 3 c 1 if a b if a c printf d n a elseprintf d n b printf end n 用goto语句和if语句实现循环goto语句的一般形式 循环结构程序设计 goto语句标号 标识符 main intn sum 0 n 1 loop if n 100 sum sum n n gotoloop printf sum d sum 例求1 2 3 100 1 循环结构满足某一条件P时循环即反复执行A操作 直到P条件为假时停止循环 当型循环 2 C语言表达式while语句 注 循环体中若有多个语句 则需用复合语句 例1 从键盘输入十个整数 求这十个整数的和 includemain intcount 0 num total 0 while count 10 count 计数器 printf EntertheNo d count scanf d 1 循环结构先执行A操作 再判断条件P是否为真 若为真 再执行A 如此反复 直到P为假为止 直到型循环 一般形式 do语句while 表达式 2 C语言表达式do while语句 注 循环体中若有多个语句 则需用复合语句 main unsignedintnumber printf Inputthenumber scanf d 例2 输入一个正整数 要求以相反的顺序输出该数 1 循环结构 计数型循环 2 C语言表达式 注 循环体中若有多个语句 则需用复合语句 1 先求表达式12 求表达式2 若为非0 执行循环体 否则出循环3 执行循环体后求解表达式34 转2 3 执行过程 main intt 1 n j 2 scanf d 例求n includemain charc for c getchar n printf c c 输入 Computer输出 Computer 例 输出键盘输入的字符 例3 求解2的n 0 9 次幂 其中 for循环体又套了一个for语句 多重循环 includemain intm k c i for m 2 k 0 k 9 k c 1 for i 1 i k i c m printf d d d n m k c 执行结果 问题 语句的作用是什么 能否放在第一个循环外 当第一次执行外层for循环语句时k值为零 此时是否进入内循环 注意语句 的作用 break和continue概念 1 break语句的作用是什么 在switch语句中结束case子句 使控制转到switch语句之外 在循环以及的循环体中使用 结束循环过程 使控制转移到整个循环语句之外的下一条语句处 在多层嵌套的循环中 break语句仅能退出一层循环 即只能退出所在的循环体 如果要从最内层的循环跳到最外层 就必须多次使用break语句 或者用goto语句 在循环体中break语句通常是与if语句共同使用 当某个条件成立 或不成立 则执行break语句退出循环 如果在循环语句中包含了switch语句 那么switch语句中的break语句仅仅能使控制退出switch语句 而不会使控制退出包含switch语句的循环语句 break和continue概念 2 continue语句的作用是什么 continue语句仅能在循环语句中使用 功能与break语句类似 但它的作用不是结束循环 而是开始一次新的循环 对于for语句而言是将控制转到实行增量处理和条件测试部分 对于while和do while语句是将控制转到条件测试部分 include math h main intn 100 j k for nk printf disaprimenumber n n 例 求100 200中的素数 注意 break和continue不同用法 例题 阅读程序 写出程序的输出结果 includemain intx 1 j 1 for x10 break if x 2 0 x 3 continue x 1 printf x d j d n x j X 12 j 10 算法概念做任何事情都有一定的步骤 为解决一个问题而采取的方法和步骤 称为算法 Algorithm 第二部分程序设计应用的常用算法 一 递推法 利用前项和后项的相互关系求新项的过程称为 递推 分析 初始条件 F1 1n 1F2 1n 2递推条件 Fn Fn 1 Fn 2n 3 例 求Fibonacci数列 0 1 1 2 3 5 8 13 的前40个数 流程图 利用前项和后项的相互关系求新项的过程称为 递推 main longintf1 f2 intk f1 1 f2 1 for k 1 k 20 k printf 12ld 12ld f1 f2 if k 2 0 printf n f1 f1 f2 f2 f2 f1 程序 问题 2 语句中 if k 2 0 printf n 起什么作用 1 f1 f2为什么采用长整型变量 3 语句能否调换 4 语句等号右边的f1值与 语句等号右边的f1值是否相同 级数展开式计算 例 级数ex的前m 1项之和的展开式为 ex 采用递推法 从前一项推出后一项结果第k项tk 可由前一项求得 即 tk tk 1 ex 因此 可采用如下算法 令t0 1 则 t1 t0 x 1 t2 t1 x 2 t3 t2 tk tk 1 x k ex main intk m floatx s t printf inputm ex 问题 for循环体中 1 和 2 语句顺序能否调换 调换后会产生什么样的结果 利用前项和后项的相互关系求新项的过程称为 递推 二 穷举法 将所有可能的方案都一一测试 找出其中符合要求的 用途 求数学上的整数方程 不定方程 或其它方法无法解决时的一种方法 分析 设 公鸡x只 母鸡y只 小鸡z只根据条件列出方程 例 百鸡问题 公鸡每只5元 母鸡每只3元 小鸡每3只1元 用100元买100只鸡 问公鸡 母鸡 小鸡各多少 流程图 main intx y z for x 1 x 19 x for y 1 y 33 y z 100 x y if z 3 0 程序 baiji c 三 求两个正整数的最大公约数 采用欧几里得的辗转相除的方法 用途 求数学上的整数方程 不定方程 或其它方法无法解决时的一种方法 三 求两个正整数的最大公约数 main intm n t r scanf d d 程序 四 求最大 小 值 求一批数的最大 小 值 可采用 擂台赛 中的淘汰法 设立一个变量作为 擂台 然后两两数据比较大小 大的留下 暂时占据擂台 小的淘汰 最后一个占据擂台的就是最大值 例 某市物理竞赛决赛有56名选手参加 求第一名获得者的编号和成绩 四 求最大 小 值 算法描述 变量number存放编号 score存放分数max存放最高分 maxnum存放最高分者的编号 main intmax 0 maxnum 0 k score number for k 1 kmax max score maxnum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高性能PE管道材料批发供应合同模板
- 2025年绿色生态特色水产养殖基地使用权转让合同
- 2025年医疗设备更新与医院信息化建设全面合作协议
- 2025年企业职工退休生活保障及技能培训服务合同
- 2025年新型共享办公空间租赁代理服务合同
- 海口爵士舞培训课件
- 海关监管体系课件
- 2025年新能源产业联营合作协议全面优化能源资源与可持续发展服务范本
- 2025年公园景区基础设施修缮采购合同廉政保证协议书
- 2025年企业内部数据保密及离职员工竞业限制全面服务合同
- 2025年燃气电厂笔试题库及答案
- 2025年道路运输两类人员安全员考试考核试题库答案
- 2025年学法减分试题及答案
- 《智能建造概论》高职完整全套教学课件
- 2025年教育综合理论知识试题及答案
- GB/T 30807-2025建筑用绝热制品浸泡法测定长期吸水性
- 超声科进修学习汇报
- 2024年甘肃省舟曲县邮政公开招聘工作人员试题带答案详解
- 2025年小学英语(2022版)新课程标准考试测试卷及答案(共四套)
- (高清版)DB34∕T 5193-2025 河流水生态监测技术规范
- 2025年德语DSH考试试卷德语语法练习与解析
评论
0/150
提交评论