已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章C语言流程控制,本章重点,格式化输入输出函数C语言中的顺序、分支和循环程序的设计方法,3.1格式化输入输出函数,printf()函数scanf()函数,3.11printf()函数,C标准库函数中提供了一些输入输出函数,如前面遇到的printf()函数和scanf()函数,它们非C关键词,而是函数名而已,可以自己编写输入输出函数。printf()函数和scanf()函数在系统文件“stdio.h”中声明,所以在程序的开始部分要使用编译预处理命令“#include”。,在日常生活中,我们要经常将华氏温度转换成摄氏温度,其转换公式如下:式中:c表示摄氏温度,f表示华氏温度。,运行结果:,如:,printf()函数的作用就是输出。对比:函数语句:printf(fahr=%f,celsius=%fn,fahr,celsius);输出结果:fahr=100.000000,celsius=37.777778得出:双引号里,第一个%f换成了fahr的值,第二个%f换成了celsius的值,并且以单精度数据形式显示。,printf()函数一般的调用格式为:printf(格式控制字符串,输出参数1,输出参数2,输出参数n);“格式控制字符串”是用双引号括起来的字符串,也称作“转换控制字符串”,包括两种意思。,普通字符普通字符即需要原样输出字符。如:printf(fahr=%f,celsius=%fn,fahr,celsius);fahr=100.000000,celsius=37.777778双引号内,两个%f变化除外,其余均无改变,格式说明格式说明由“%”和格式字符组成,如%d、%f等,它的作用是将输出的数据转换成指定的格式输出。,%c,%d,%e,%E,%x,%u,%s,%o,%G,%g,%f,%,%X,一个字符,根据数值的不同自动选择%f或%e。用于指数小于-4或者大于精度,根据数值的不同自动选择%F或%E。用于指数小于-4或者大于精度,无符号八进制整数,字符串,无符号十进制整数,使用十六进制数字of的无符号十六进制整数,使用十六进制数字oF的无符号十六进制整数,输出一个%,有符号十进制整数,浮点数、以指数的形式输出(1.2e+02),浮点数、以指数的形式输出(1.2E+02),以小数点形式输出浮点数、十进制记数法,1.对于%md和%ms,m为指定输出数据的宽度,如果数据的位数小于m,则左端补空格,若大于m,则按实际位数输出。例如:printf(%4d,%4d,a,b)若a=12,b=12345,则输出结果为:12,12345,注意:,2.对于%-ms,如果字符串的长度小于m,则输出m列,不足的位数在右侧补空格。例如:printf(“%-4d,%-4d”,a,b);若a=12,b=12345;结果为:a=12,b=12345。,3.对于%m.s,输出占m列,但只是取字符串中左端n个字符,这n个字符输出在m列的右侧,左端补空格。%-m.s则在右侧补空格,如果nm,则m自动取n值,即保证n个字符正常输出。,4.对于%m.nf,指定输出的数据共占m列,其中n位小数。如果数值长度小于m,则左端补空格。%-m.nf与%m.nf一样,只是使输出的数值向左端靠,右端补空格。,3.1.2scanf()函数,依旧探讨华氏温度转换成摄氏温度,上一节中,华氏温度为一定值,如果根据用户来输入相应的数据,求摄氏温度,那该如何进行相应的输入呢?,运行结果:,Pleaseinputfahr:,140,fahr=140.000000,celsius=60.000000,scanf()函数作用,输入数值,例:,scanf函数的作用是输入数据,其基本格式为:scanf(格式控制,地址列表)“格式控制”的含义和printf函数的格式控制。格式说明也是以%开始,以一个格式字符结束,中间可以插入一些普通字符,普通字符同样按原样输出。,scanf函数的格式说明符,如:scanf(”%d”,输入1234,结果i的值为1234输入1234,结果i的值为123输入1234,结果i的值为1234,为了更清楚地了解scanf()函数的用法,须知以下几点:,如:scanf(”%d,%d”,如果不为真,就执行语句组后的语句,2.在if语句中添加else子句格式:if(表达式)语句组1;else语句组2;如果表达式的值为真,就执行语句组1;如果不为真,就执行语句组2。,流程图:,3.多重选择elseif格式:if(表达式1)语句组1;elseif(表达式2)语句组2;elseif(表达式3)语句组3;else语句组n;,假,假,真,真,流程图:,当表达式1为真的时候则执行语句组1,否则的话,将判断表达式2的真假,表达式2为真,则执行语句组2依次这样判断。,4.if语句的嵌套在if语句的语句组中又包含一个或多个if语句称为if语句的嵌套如:if(表达式1)if(表达式2)语句组;if的多重嵌套时,得注意if和else的搭配,写法要得当!,if语句实现多分支时,需要嵌套的if语句层数较多,程序冗长,可读性低。因此可用switch语句来处理多分支情况。switch(表达式)case常量表达式1:语句组1;case常量表达式2:语句组2;case常量表达式n:语句组n;default:语句组n+1;,switch说明:,switch括号内的表达式任意,值和哪个case后的常量表达式匹配,就执行后面的语句,没有匹配的,就执行default后面的,default可省略。每个case后常量表达式的值必须不一样,case和default的顺序不影响结果。执行完一个case后,程序流程转移到下一个case,直到运行完全或遇见break语句,并非直接跳出。多个case可以共用一个执行语句。,例:输入两个实数,按照代数值由小到大的顺序输出这两个数。,满足if条件就交换a,b的值,例:输入三个实数,编程找出其中最大的一个并输出,探究唯一的三目运算符,三目运算符,一般形式:表达式1?表达式2:表达式3其执行顺序为:先求解表达式1,若为真(非0),则求解表达式2,并把表达式2的值作为整个条件表达式的值。若表达式1为假(0),则求解表达式3,并把表达式3的值作为整个条件表达式的值。,注意点:,条件运算符的优先级别高于赋值运算符,但是比关系运算符和算术运算符要低。条件运算符的结合方向为“自右向左”条件表达式中的表达式2和表达式3可以是任意的表达式。表达式1与表达式2和表达式3的类型也可以不同。,编写程序:,编写一程序,从键盘上输入x的值,根据上面的函数,求出y的值。,语句组中只有一句,花括号可以省略。,3.5循环结构程序设计,while循环与自增自减运算符dowhile语句for语句逗号运算符和逗号表达式,3.5.1while循环与自增自减,while语句用来实现“当型”循环结构。其一般形式:while(表达式)语句组;在语句组中必须包含能改变表达式的值来使表达式的值最终变为假,否则循环永远不会中止,例:使用while循环来求“1+2+3+100”的值,运行结果:,循环条件,i为循环变量,循环变量增值,循环体,i=1,i100,sum+=ii+,真,假,流程图如下:,循环变量初始化i=1判断表达式i100是否成立成立就执行循环体不成立就执行循环体后面的语句(循环体未执行)执行循环体后,就再从第一步往下进行判断,直至为假就退出循环,循环体,i+使i每次增1sum+=i进行累加,自增运算符“+”,其作用使变量的值增1.与其相对的还有自减运算符“-”,其作用使变量的值减1。自增自减运算符为单目运算符,所以仅需1个变量。注意,自增自减只能用于变量,不能用于常量或表达式,自增、自减运算符的使用有两种方式:前缀模式:+变量,-变量。(在使用变量之前,先使变量的值加(减)1)后缀模式:变量+,变量-。(在使用变量之后,使变量的值加(减)1)在用自增、自减运算符时,易使表达式产生不正确的地方,尽量不用,3.5.2dowhile语句,dowhile循环先执行循环体语句,然后再判断while后面的条件是否成立。当表达式为真,则返回重新执行循环体语句,如此反复,直到while后面的表达式为假才结束循环,一般形式为:do循环体语句组;while(表达式);,此处分号一定不能少,用while和dowhile分别求1到100的累加和,while循环,dowhile循环,对比:while循环先判断条件,成立则执行循环体,不成立执行其后语句;而dowhile循环先执行一次循环体后判断条件,成立则再执行循环体,不成立,退出循环。所以dowhile至少执行一次循环体,3.5.3for语句,C语言中的for语句是使用最为灵活的语句,其一般形式如下:for(表达式1;表达式2;表达式3)循环体语句组;当循环体语句组只有一句时,花括号可以省略。,for循环的执行过程:,求解表达式1;求解表达式2,如果为真,则执行循环体语句组,执行结束后转步骤;如果表达式的结果为假,则结束循环,转步骤;求解表达式3;转步骤;循环结束,执行循环语句之后的其他语句。,for语句的3个表达式均可省略,但是里面的分号“;”不能省略。需要注意的是,省略相应的表达式,就需要在其他地方弥补相应表达式的功能,以保证程序的正常运行,例:用for循环求1到100的累加和。,相比while和dowhile,使用for循环,很简洁,前提必须弄懂for循环究竟是如何工作的。,continue和break,都有表示结束循环的意思,但continue是结束本次循环,break为结束整个循环。,A,B,A中,结果为sum=5050;B中,结果为sum=1;因为A执行了100次,而B仅执行了1次。,3循环的比较:,while语句、dowhile语句和for语句都可以用来处理同一问题,它们之间可以互换while和dowhile循环体中,应该包含使循环变量改变的语句,避免死循环。for相比相比之下,显得更灵活、强的。for循环的变量初始化在表达式1中,另外二者都在循环之前。,3.5.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年青海农牧科技职业学院单招职业适应性考试必刷测试卷带答案
- 2026年大兴安岭职业学院单招职业技能测试必刷测试卷完美版
- 2026年重庆科技大学单招职业倾向性考试必刷测试卷及答案1套
- 2026年苏州经贸职业技术学院单招职业适应性考试必刷测试卷完美版
- 2025广东广州市白云区农业农村局第一次招聘政府雇员1人参考题库及答案详解(各地真题)
- 2026年上海电力大学单招综合素质考试必刷测试卷附答案
- 2025年驻马店市县区事业单位联考西平县招聘10人参考题库附答案详解(综合题)
- 2026年金山职业技术学院单招职业适应性测试必刷测试卷带答案
- 东方航空秋招试题及答案
- 2026年泉州华光职业学院单招职业技能测试题库含答案
- 数通L2(HCS-Pre-Sales-IP)认证考试题库(含答案)
- 动画片对幼儿亲社会行为的影响
- 国家义务教育质量监测四年级心理健康测试卷3+问卷(附答案)
- 《纸质文物修复与保护》课件-03纸质文物病害类型
- 厌氧氨氧化(ANAMMOX)工艺介绍课件
- 园林花卉病虫害防治技术
- 2020初中物理自制教具-初中物理自制教具大全
- C++可视化编程技术研究与应用
- 2024年甘肃省普通高中信息技术会考试题(含24套)
- 全面提升医疗质量等文件专题考试试题及答案
- 办公区临建迁移方案
评论
0/150
提交评论