第3章C语言流程控制ppt课件_第1页
第3章C语言流程控制ppt课件_第2页
第3章C语言流程控制ppt课件_第3页
第3章C语言流程控制ppt课件_第4页
第3章C语言流程控制ppt课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 C言语流程控制本章重点格式化输入输出函数C言语中的顺序、分支和循环程序的设计方法3.1格式化输入输出函数printf()函数scanf()函数3.11 printf()函数 C规范库函数中提供了一些输入输出函数,如前面遇到的printf()函数和scanf()函数,它们非C关键词,而是函数名而已,可以本人编写输入输出函数。printf()函数和scanf()函数在系统文件“stdio.h中声明,所以在程序的开场部分要运用编译预处置命令“#include 。在日常生活中,我们要经常将华氏温度转换成摄氏温度,其转换公式如下:式中: c表示摄氏温度, f表示华氏温度。运转结果:如: prin

2、tf()函数的作用就是输出。对比:函数语句:printf(fahr = %f, celsius = %fn, fahr, celsius);输出结果: fahr = 100.000000,celsius = 37.777778得出:双引号里,第一个%f换成了fahr的值,第二个%f换成了celsius的值,并且以单精度数据方式显示。printf()函数普通的调用格式为:printf(格式控制字符串, 输出参数1, 输出参数2, , 输出参数n);“格式控制字符串是用双引号括起来的字符串,也称作“转换控制字符串,包括两种意思。普通字符普通字符即需求原样输出字符。如: printf(fahr =

3、%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的无符号十六进制整数输出一

4、个%有符号十进制整数浮点数、以指数的方式输出1.2e+02浮点数、以指数的方式输出1.2E+02以小数点方式输出浮点数、十进制记数法字符说明l用于长整型整数,可加在格式符d、o、x、u前面m(正整数)数据最小宽度n(正整数)对于实数,表示输出n位小数;对于字符串,表示截取的字符个数输出的数字或者字符在域内向左靠1.对于%md和%ms,m为指定输出数据的宽度,假设数据的位数小于m,那么左端补空格,假设大于m,那么按实践位数输出。例如:printf(%4d, %4d, a, b) 假设a = 12,b = 12345,那么输出结果为:12,12345 留意:2.对于%-ms,假设字符串的长度小于m

5、,那么输出m列,缺乏的位数在右侧补空格。例如:printf(“%-4d,%-4d,a,b);假设a=12,b=12345;结果为:a=12,b=12345。3.对于%m.s,输出占m列,但只是取字符串中左端n个字符,这n个字符输出在m列的右侧,左端补空格。%-m.s那么在右侧补空格,假设n m,那么m自动取n值,即保证n个字符正常输出。4.对于%m.nf,指定输出的数据共占m列,其中n位小数。假设数值长度小于m,那么左端补空格。%-m.nf与%m.nf一样,只是使输出的数值向左端靠,右端补空格。3.1.2 scanf()函数 照旧讨论华氏温度转换成摄氏温度,上一节中,华氏温度为一定值,假设根据

6、用户来输入相应的数据,求摄氏温度,那该如何进展相应的输入呢?运转结果:Please input fahr :140fahr = 140.000000,celsius = 60.000000scanf()函数作用,输入数值例: scanf函数的作用是输入数据,其根本格式为: scanf(格式控制,地址列表) “格式控制的含义和printf函数的格式控制。格式阐明也是以%开场,以一个格式字符终了,中间可以插入一些普通字符 ,普通字符同样按原样输出。格式说明符意义%c输入单个字符%d输入有符号的十进制整数%f输入浮点数,可以用小数或者整数形式输入%o输入无符号的八进制数%s输入字符串,将字符串存放到

7、一个字符数组中,输入时以非空白字符开始,以第一个空白字符结束,字符串以串结束标志0作为其最后一个字符。%u输入无符号的十进制整数%x,%X输入无符号的十六进制整数%e,% E,%g,%G与%f的作用相同,e,f,g可以互相替换而且大小写的作用相同。 scanf函数的格式阐明符字符意义l用于输入长整型数据,可用于%ld、%lo、%lx、%lu以及double型数据%lf或%leh用于输入短整型数据,可用于%hd、%ho、%hx域宽指定输入数据所占的列宽,应为一个正整数*表示本输入项在读入后不赋给相应的变量如:scanf%d,&i; 输入1234,结果i的值为1234 输入1234,结果i的值为1

8、23 输入 1234,结果i的值为1234为了更清楚地了解scanf()函数的用法,须知以下几点:如:scanf%d, %d, &a,&b加上“&,表示变量a和b的地址这个,输入时,必需加上逗号,才干保证正确如:scanf%4d,&i; 输入12345,结果i的值为1234由于指定域宽为4 输入12345,结果i的值为123由于遇见空白字符scanf格式控制中的普通字符必需按原样输入,地址列表中必需为地址,在变量前加上“取地址运算符读取数据的时候是以指定域宽或者第一个空白字符处为终止最先到达者假设第一个或前几个延续为空白字符、制表符和换行符,都将跳过这些字符留意%s格式阐明符的用法要点深度解析

9、:结合要点1,了解地址的含义 结合要点2、3,分析多数据输入情况 结合要点4,掌握%s的用法3.2 程序流程图 流程图是用一些图框来表示各种操作。用流程图来表示算法,直观笼统,易于了解。美国国家规范化协会ANSI规定了一些常用的流程图符号。菱形框,是对一个给定的条件进展判别,根据给定的条件能否成立来决议如何执行其后的操作。它有一个入口,两个出口衔接点,是用于将画在不同地方的流程线衔接起来。在流程图中,编号一样的衔接点表示这些点是相互衔接在一同的注释框,不是流程图中的必要部分,不反响流程和操作,只是为了对流程图中某些框的操作作必要的补充阐明,以便于人们更好的了解流程图例:求一数值的绝对值。数学分

10、析:假设此数值本身就不小于0,就是其本身,反之,为其相反数。输出X输出 -xX满足条件不满足条件流程图表示:三种根本构造:1.顺序构造,流程图表示如下: 执行完A框指定的操作后接着执行B框所指定的操作。顺序构造是最简单的一种根本构造。2.选择构造,流程图表示如下: 此构造中必需包含一个判别框,根据给定的条件p能否成立来选择执行A框还是B框中所指定的操作。无论p条件能否成立,只能执行A框或者B框之一,两者不能够同时执行。A框或者B框有一个可以是空的,不执行任何操作3.循环构造,流程图表示如下: 当while型循环构造。其功能是:当给定的条件p1成立时,执行A框操作,执行完A后,再判别条件p1能否

11、成立,假设依然成立,再执行A框,如此反复执行A框,直到某一次条件p1不成立为止,此时不执行A框,从b点脱离循环构造 直到until型循环构造。其功能是:先执行A框,然后判别给定的条件p2能否成立,假设p2条件不成立,那么再执行A,然后再对p2条件作判别,假设p2条件依然不成立,又执行A如此反复执行A,直到给定的条件p2成立为止,此时不再执行A,从b点脱离循环构造3.3顺序构造程序设计算术运算符算术表达式赋值表达式例:求一元二次方程的两根。运转结果: 从主函数入口开场执行,定义变量,输入数值,求解方程的解,这都是按照代码的一步一步往下实现的。3.3.1算术运算符5种根本运算符:1). + (加法

12、或者耿直运算符)2). (减法或者负值运算符)3). * (乘法运算符)4)./ (除法运算符)5).%(求余运算符)留意:加法和减法运算符同于数学上乘法在c言语中用“*,而不用“除法在c言语中是“/,而不用“运用“/时,假设除数和被除数都为整数,那么商也是整数,假设参与运算的有负数,3.3.2算术表达式算术表达式 即用算术运算符和括号将运算对象衔接起来,符合C语法规那么的式子算术运算时是按照优先级进展的,假设优先级一样,那么按照结合方向进展计算,并且每一个表达式都会有一个确定的值。3.3.3赋值表达式由赋值运算符将一个变量和一个表达式衔接起来的式子称为赋值表达式。其普通方式为:变量赋值运算符

13、表达式计算过程是:先计算赋值运算符右侧的“表达式的值,然后将这个值赋值给左边的变量。多个赋值表达式共存那么按结合性“自右而左进展一步一步分别赋值。常用的复合赋值运算符a+=y等价于a=a+yb=y等价于b=byc*=y等价于c=c*yd/=y等价于d=d/ye%=y等价于e=e%yy可以是常量、变量以及复杂的表达式赋值运算符“=之前加上其他运算符,就构成复合赋值运算符。 编写程序:从键盘上输入三角形的三边,根据下面的公式求出三角形的面积area。假设输入a、b和c三边的边长可以组成一个三角形。程序为:3.4 选择构造程序设计关系运算符和关系表达式逻辑运算符和逻辑表达式if语句与switch例:

14、一元二次方程根的情况。运转结果: 此程序就表达了,根据不同的情况,有不同的结果,就到达了一种选择的目的。3.4.1关系运算符和关系表达式关系运算符运算符含义小于大于=大于或等于=等于!=不等于算术运算符关系运算符赋值运算符算术运算符: * / %关系运算符: = 算术运算负关系运算符逻辑运算符&与|为双目运算符,需求两个运算量!为单目运算符,只需求一个 逻辑表达式:由逻辑运算符衔接两个数,进展逻辑运算的式子。 表达式结果:“真“假逻辑量:参与逻辑运算的量逻辑值:逻辑量、逻辑表达式的运算结果任何非“0的逻辑量的逻辑值都为真写出下面各逻辑表达式的值。设a=3,b=4,c=5;1. a+bc&b=c

15、2. a|b+c&b-c3. ! (ab)&! c|14. ! (x=a)&(y=b)&05. ! (a+b)+c-1&b+c/21.02.13.14.05.13.4.3 if语句与switch语句if,英语中其义有“假设的意思。那么就来研讨C言语中的“假设。1.if语句格式 :if(表达式)语句组;流程图: 假设表达式的值为真,就语句组中的语句;假设不为真,就执行语句组后的语句表达式语句组真假2.在if语句中添加else子句格式 :if(表达式) 语句组1; else语句组2;假设表达式的值为真,就执行语句组1;假设不为真,就执行语句组2。流程图: 表达式语句组1语句组2真假3.多重选择el

16、se if格式:if(表达式1)语句组1;else if(表达式2)语句组2;else if(表达式3)语句组3;else语句组n;表达式1语句组1真假表达式2表达式3语句组n语句组3语句组2假假真真流程图: 当表达式1为真的时候那么执行语句组1,否那么的话,将判别表达式2的真假,表达式2为真,那么执行语句组2依次这样判别。4.if语句的嵌套在if语句的语句组中又包含一个或多个if语句称为if语句的嵌套如:if表达式1if表达式2语句组; if的多重嵌套时,得留意if和else的搭配,写法要得当! if语句实现多分支时,需求嵌套的if语句层数较多,程序冗长,可读性低。因此可用switch语句来

17、处置多分支情况。 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可以共用一个执行语句。例:输入两个实数,按照代数值由小到大的顺序输出这

18、两个数。满足if条件就交换a,b的值例:输入三个实数,编程找出其中最大的一个并输出探求独一的三目运算符三目运算符普通方式:表达式1?表达式2:表达式3 其执行顺序为:先求解表达式1,假设为真非0,那么求解表达式2,并把表达式2的值作为整个条件表达式的值。假设表达式1为假0,那么求解表达式3,并把表达式3的值作为整个条件表达式的值。留意点:条件运算符的优先级别高于赋值运算符,但是比关系运算符和算术运算符要低。条件运算符的结合方向为“自右向左条件表达式中的表达式2和表达式3可以是恣意的表达式。表达式1与表达式2和表达式3的类型也可以不同。编写程序: 编写一程序,从键盘上输入x的值,根据上面的函数,

19、求出y的值。语句组中只需一句,花括号可以省略。3.5循环构造程序设计while循环与自增自减运算符dowhile语句for语句逗号运算符和逗号表达式3.5.1 while循环与自增自减while语句用来实现“当型循环构造。其普通方式:while(表达式)语句组;在语句组中必需包含能改动表达式的值来使表达式的值最终变为假,否那么循环永远不会中止例:运用while循环来求“1+2+3+100的值运转结果:循环条件i为循环变量循环变量增值循环体i=1i100sum+=ii+真假流程图如下:循环变量初始化i=1判别表达式i 100能否成立成立就执行循环体不成立就执行循环体后面的语句(循环体未执行)执行

20、循环体后,就再从第一步往下进展判别,直至为假就退出循环循环体i+使i每次增1sum+=i进展累加自增运算符“+,其作用使变量的值增1.与其相对的还有自减运算符“-,其作用使变量的值减1。自增自减运算符为单目运算符,所以仅需1个变量。留意,自增自减只能用于变量,不能用于常量或表达式自增、自减运算符的运用有两种方式:前缀方式:+变量,-变量。在运用变量之前,先使变量的值加减1后缀方式:变量+,变量-。在运用变量之后,使变量的值加减1在用自增、自减运算符时,易使表达式产生不正确的地方,尽量不用3.5.2 dowhile语句 dowhile循环先执行循环体语句,然后再判别while后面的条件能否成立。

21、当表达式为真,那么前往重新执行循环体语句,如此反复,直到while后面的表达式为假才终了循环普通方式为:do循环体语句组;while表达式;此处分号一定不能少用while和dowhile分别求1到100的累加和while循环dowhile循环对比:while循环先判别条件,成立那么执行循环体,不成立执行其后语句;而dowhile循环先执行一次循环体后判别条件,成立那么再执行循环体,不成立,退出循环。所以dowhile至少执行一次循环体3.5.3 for语句C言语中的for语句是运用最为灵敏的语句,其普通方式如下:for表达式1;表达式2;表达式3循环体语句组;当循环体语句组只需一句时,花括号可以省略。for循环的执行过程:求解表达式1;求解表达式2,假设为真

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论