C语言 第3章 C语言的控制结构.ppt

上传人:s****8 文档编号:67255568 上传时间:2022-12-24 格式:PPT 页数:78 大小:918KB
返回 下载 相关 举报
C语言 第3章 C语言的控制结构.ppt_第1页
第1页 / 共78页
C语言 第3章 C语言的控制结构.ppt_第2页
第2页 / 共78页
点击查看更多>>
资源描述

《C语言 第3章 C语言的控制结构.ppt》由会员分享,可在线阅读,更多相关《C语言 第3章 C语言的控制结构.ppt(78页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构第三章第三章 控制结构控制结构3.13.1C C语言的基本语句语言的基本语句3.23.2数据的输入与输出数据的输入与输出3.33.3基本控制结构与流程控制语句基本控制结构与流程控制语句3.43.4选择结构控制选择结构控制3.53.5多分支结构控制语句多分支结构控制语句3.63.6循环控制循环控制3.73.7辅助控制语句辅助控制语句3.83.8程序设计举例程序设计举例1C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.13.1C C语言的基本语句语言的基本语句C语句:以语句:以“;”作分隔符作分隔符,编译后产生机器指令

2、。编译后产生机器指令。C语句分类语句分类表达式语句:表达式加分号构成。表达式语句:表达式加分号构成。空语句;空语句;程序控制语句(程序控制语句(9种):种):复合语句:用括起来的一组语句。复合语句:用括起来的一组语句。函数调用语句:由一次函数调用加一个分号构成函数调用语句:由一次函数调用加一个分号构成的语句。的语句。如如 total=total+limit;a=3;func();if()else switchfor()while()dowhile()continuebreakgotoreturn分支分支循环循环辅助控制辅助控制一般形式:一般形式:数据说明部分;数据说明部分;执行语句部分;执行语

3、句部分;说明:说明:“”后不加分号后不加分号语法上和单一语句相同语法上和单一语句相同复合语句可嵌套复合语句可嵌套如:如:printf(“this is a C statement”);2C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构 C语言本身不提供输入输出语句,得由标准语言本身不提供输入输出语句,得由标准I/O库库函数提供。输入输出库函数很丰富,可以从键盘、函数提供。输入输出库函数很丰富,可以从键盘、显示器、磁盘文件和硬件端口进行输入或输出操作。显示器、磁盘文件和硬件端口进行输入或输出操作。本节主要介绍用于键盘输入和显示器输出的函数。本节主要介绍用于键盘输入和显示器输出的函数

4、。3.23.2数据的输入与输出数据的输入与输出3C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.23.2数据的输入与输出数据的输入与输出3.2.1字符数据的输入与输出字符数据的输入与输出1 1、字符输入函数、字符输入函数int getchar(void)函数功能:函数功能:从输入设备从输入设备(一般为键盘一般为键盘)上输入一个字符。上输入一个字符。它每被调用一次,就从标准输入设备上取一个字符,它每被调用一次,就从标准输入设备上取一个字符,返回值是该字符的返回值是该字符的ASCII编码值。可以赋给字符变量编码值。可以赋给字符变量或整型变量。或整型变量。执行执行getchar()

5、时输入字符后要回车。时输入字符后要回车。例:例:#include main()char c;c=getchar();putchar(c);输出结果输出结果:A A4C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.23.2数据的输入与输出数据的输入与输出2 2、字符输出函数、字符输出函数int putchar(int)函数功能:函数功能:向标准输出设备向标准输出设备(一般为显示器一般为显示器)输出一个输出一个字符,并返回返回概字母的字符,并返回返回概字母的ASCII码值。参数可以是码值。参数可以是字符常量,变量或整型数。字符常量,变量或整型数。例:例:#include main

6、()char a,b,c;a=b;b=o;c=y;putchar(a);putchar(b);putchar(c);输出结果输出结果:boy5C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.2.2格式输入与输出printf函数函数(格式输出函数格式输出函数)printf函数的一般格式为:printf(格式控制,输出表列)“格式控制格式控制”是用双引号括起来的字符串,它包括两种信息 1、格式说明,由“%”和格式字符组成,格式说明总是由“%”字符开始。2、普通字符,即需要原样输出的字符。“输出表列输出表列”是需要输出的一些数据,可以是表达式。printf(“a=%4d,b=%4d

7、”,a,b);普通字符格式说明输出表列3.23.2数据的输入与输出数据的输入与输出6C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构格式输入与输出格式字符格式字符 对不同类型的数据用不同的格式字符。有以下几种格式字符d格式符格式符用来输出十进制整数。有以下几种用法%d,按照整数的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格;如果大于m,则按照实际位数输出。若a=123,d=12345则:printf(“%4d,%4d”,a,b);输出:123,12345 (代表空格)%ld,输出长整型数据。如:long a=135790;printf(“%

8、ld”,a);输出:135790 对长整型数据也可以制定字段宽度,如printf(“%8ld”,a);输出:135790 o格式符格式符以八进制形式输出整数。由于是将内存单元中的各位的值按照八进制形式输出,因此输出的数值不带符号。对长整型,用“%lo”格式,同样可以加字段宽度。如:int a=-1;printf(“%d,%o“,a,a);输出结果为:-1,1777777C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构格式输入与输出x x格式符格式符格式符格式符 以十六进制形式输出整数。同样不会出现负的十六进制数。u u格式符格式符格式符格式符用来输出unsigned型数据,即无符

9、号数,以十进制形式输出。一个有符号整数也可以用%u格式输出;反之,一个unsigned也可以用%d、%o、%x格式输出。按相互赋值的规则处理。Int a=-1;printf(“%x,%d,%o”,a,a,a);输出:ffff,-1,177777Main()unsigned inrt a=65535;int b=-2;printf(“a=%d,%o,%x,%un”,a,a,a,a);printf(“a=%d,%o,%x,%un”,b,b,b,b);运行结果:-1,177777,ffff,65535 -2,177776,fffe,655348C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控

10、制结构格式输入与输出c格式符格式符用来输出一个字符。s格式符格式符用来输出一个字符串。有几种用法%s,按照实际长度输出字符串。%ms,输出的字符串占m列。如果字符串的长度大于m,则突破m的限制,将字符串全部输出;反之,则左补空格。%-ms,如果字符串的长度小于m,则在m范围内,字符串向左靠,右补空格。%m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。%-m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的左侧,右补空格。如果nm,则m自动取n值,以保证n个字符正常输出。Main()printf(“%3s,%7.2s,%.4s,%-5.

11、3sn”,”china”,”china”,”china”,”china”);输出如下:china,ch,chin,chi9C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构格式输入与输出f f格式符格式符格式符格式符 用来输出实数,以小数形式输出。有以下几种用法%f,不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数。注意注意:并非全部数据都是有效数字,单精度实数的有效位数一般为7位,双 精度有效位数为16位。%m.nf,指定输出数据共占m列,其中有n位小数。如果数值长度小于m,则左补空格。%-m.nf与%m.nf基本相同,只是输出的数值向左端靠,右端补空格。mai

12、n()float f=123.456;printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);输出如下:123.456001123.456001123.46123.46 123.4610C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构格式输入与输出e格式符格式符以指数形式输出实数。可用以下形式%e,不指定输出数据占的宽度和数字部分小数位数,Turbo C自动指定给出5位小数,指数部分占4位,其中“e”占1位,指数符号占1位,指数占2位。数值按照标准化指数形式输出。%m.ne和%-m.ne,m、n和“-”字符含义与前相同。(Turbo C中n包括小

13、数点)若 f=123.456 则printf(“%e%12e%10.2e%.2e%-10.2e”,f,f,f,f,f);输出如下:1.23456e+021.23456e+021.2e+021.2e+021.2e+02g格式符格式符用来输出实数,它根据数值的大小自动选择f格式或e格式,且不输出无意义的0。若f=123.4 则 printf(“%f%e%g”,f,f,f);输出:123.4000021.23400e+02123.4注意注意 除X,E,G外,其他格式字符必须用小写字母。如“%d”不能写成“%D”。可以在printf()函数中的“格式控制”字符串内包含“转义字符”,如:”n”,”t”等

14、。11C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构格式输入与输出 一个格式说明以“%”开头,以d、o、x、u、c、s、f、e、g等字符之一结束,中间可以插入附加格式字符,如:字符”l”等。如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示。Printf(“%f%”,1.0/3);scanf()函数函数(格式输入函数格式输入函数)1、一般格式、一般格式 scanf(格式控制,地址列表);“格式控制”的含义同printf()函数,“地址列表”是由若干地址组成的列表,可以是变量的地址,或字符串的首地址。Main()int a,b,c;scanf(“%d%d%d”,&

15、a,&b,&c);printf(“%d,%d,%dn”,a,b,c);用如下格式输入:345 或345 或 3 45 或3T4 5 注意:用格式”%d%d%d”输入数据时,不能用逗号作为两个数据间的分隔符。12C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构格式输入与输出2、格式说明、格式说明 和printf()函数中的格式说明相似,以%开始,以一个格式字符结束,中间可以插入附加字符。说明对unsigned型数据,可以用%u、%d、%o和%x格式输入。可以指定输入数据所占列数,系统自动按照它截取所需数据。Scanf(“%3c”,&ch);Scanf(“%3d%3d”,&a,&b)

16、;%后的“*”附加说明符,用来表示跳过它相应的数据。Scanf(“%2d%*3d%2d”,&a,&b);输入数据时,不能规定精度。例如:scanf(“%7.2f”,&a);是不合法的scanf()函数的执行中应注意的问题函数的执行中应注意的问题scnaf()函数中的“格式控制”后面应当是变量地址,而不应是变量名。如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。如:Scanf(“%d:%d:%d”,&h,&m,&s);输入应该用以下形式:12:23:11输入:abc 结果:a=ch输入:123456 结果:123=a 456=b输入:123456

17、7结果:12=a 67=b13C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构格式输入与输出 在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。在输入数据时,遇到以下几种情况时该数据认为结束l 遇到空格、或“回车”或TAB键;l 遇到宽度结束;Scanf(“%3d%3d”,&a,&b);l 遇到非法输入。14C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.23.2数据的输入与输出数据的输入与输出格式输出函数的一般形式格式输出函数的一般形式printf(“格式控制字符串格式控制字符串”,输出参数表输出参数表);可以是一个或多个输出项可以是一个或

18、多个输出项.可以是常量或变量表达式,可以是常量或变量表达式,用逗号分隔。类型可以是用逗号分隔。类型可以是整型实型字符型和字符串型整型实型字符型和字符串型.用双引号括起来,用双引号括起来,控制输出项的格式控制输出项的格式和输出一些提示信息和输出一些提示信息 说明说明:格式字符要用小写格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应格式字符与输出项个数应相同,按先后顺序一一对应 格式字符与输出项类型不一致格式字符与输出项类型不一致,自动按指定格式输出自动按指定格式输出函数功能:函数功能:按用户指定的格式,把指定的数据显示到显按用户指定的格式,把指定的数据显示到显示器屏幕上示器屏幕上,

19、并返回输出的字符数。这个函数可以输出,并返回输出的字符数。这个函数可以输出多字信息。多字信息。3.2.2格式输出函数格式输出函数15C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构例:例:include main()int i=97;char ch=a;printf(“i=%d,%cn”,i,i);两个输出项都是变量两个输出项都是变量i,i,但以不同的格式输出但以不同的格式输出,一个是输出的整型数一个是输出的整型数,一个输出的是字符一个输出的是字符a.a.其其格式是由格式是由%d%d与与%c%c控制的控制的.输出结果输出结果:i=97,a3.23.2数据的输入与输出数据的输入与输

20、出16C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构printf(“i=%d,%c n”,i,i);3.23.2数据的输入与输出数据的输入与输出普通字符,普通字符,按原样输出按原样输出转义字符指明特定的操转义字符指明特定的操作,如作,如n表示换行表示换行而格式说明部分由而格式说明部分由%和格式字符串组成,下面详细讨论。和格式字符串组成,下面详细讨论。格式控制格式控制由格式控制字符串实现。格式控制符由三部分组成:由格式控制字符串实现。格式控制符由三部分组成:普通字符:输出时按原样输出,主要用于输出提示信息普通字符:输出时按原样输出,主要用于输出提示信息转义字符:批明特定的操作。转

21、义字符:批明特定的操作。输出项格式说明输出项格式说明%flagswidth.precF|N|h|Ltype17C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构%flagswidth.precF|N|h|LtypeFlags为选择的标志字符。常用的有:为选择的标志字符。常用的有:-:为左对齐,否则右对齐为左对齐,否则右对齐+:正数输出:正数输出+,负数输出,负数输出-空格:正数输出空格,负数输出空格:正数输出空格,负数输出-Width为宽度指示符。用十进制数来设置输出值的最少输为宽度指示符。用十进制数来设置输出值的最少输出个数,少则补空格,多则按实际输出,缺省则按实际输出个数,少则

22、补空格,多则按实际输出,缺省则按实际输出。出。3.23.2数据的输入与输出数据的输入与输出flags width.prec为精度指示符。用小数点加十进制正整数构成,用来为精度指示符。用小数点加十进制正整数构成,用来限制输出数的精度。限制输出数的精度。.precF|N|h|L为长度修饰符,为长度修饰符,F远程指针地址远程指针地址 N近程指针近程指针地址地址h短整数据的值短整数据的值 L长整长整(双精度双精度)数据的值数据的值F|N|h|L18C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构type为格式字符。用来进行格式转换为格式字符。用来进行格式转换d以带符号的十进制形式输出整数

23、(正数不输出符号)以带符号的十进制形式输出整数(正数不输出符号)o以以8进制无符号形式输出整数(不输出前导符进制无符号形式输出整数(不输出前导符O)x(X)以以16进制无符号形式输出整数(不输出前导符进制无符号形式输出整数(不输出前导符Ox)u以无符号以无符号10进制形式输出整数进制形式输出整数 c以字符形式输出一个字符以字符形式输出一个字符s输出字符串输出字符串 f以小数形式输出单、双精度数,隐含输出以小数形式输出单、双精度数,隐含输出6位小数位小数 e(E)以标准指数形式输出单、双精度数,小数位数为以标准指数形式输出单、双精度数,小数位数为6位位 g(G)选用选用%f或或%e格式中输出宽度

24、较短的一种格式格式中输出宽度较短的一种格式%百分号百分号3.23.2数据的输入与输出数据的输入与输出%flagswidth.precF|N|h|Ltypetype19C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.23.2数据的输入与输出数据的输入与输出3.2.2格式输出函数格式输出函数函数功能:函数功能:从键盘输入任何类型的数据给所制定的单元,从键盘输入任何类型的数据给所制定的单元,并返回输入的数据个数。并返回输入的数据个数。格式输入函数一般形式格式输入函数一般形式scanf(“格式控制字符串格式控制字符串”,地址列表地址列表);例如:例如:scanf(“%d%d,%f”,

25、&a,&b,&c);控制字符串说明了需输入数据的类型,两个整型数和控制字符串说明了需输入数据的类型,两个整型数和一个实型数。一个实型数。&a&a,&b&b和和&c&c是变量是变量a a,b b和和c c的地址。的地址。20C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构%*widthF|Nh|Ltype输入赋值抑制字符,输入数据但不赋值输入赋值抑制字符,输入数据但不赋值3.23.2数据的输入与输出数据的输入与输出*widthF N h L宽度指示符,表示最多可输入的字符个数。宽度指示符,表示最多可输入的字符个数。|地址大小修饰符。地址大小修饰符。Ffar Nnear|输入数据类型

26、。输入数据类型。h短整型,短整型,l长整或双精度长整或双精度21C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构%*widthF|Nh|Ltypetype是必须的,表示输入后转换的数据类型。是必须的,表示输入后转换的数据类型。d(D)十进制整数十进制整数o(O)八进制整数八进制整数x(X)十六进制整数十六进制整数i(I)自动根据数头分辨十、八、十六进制自动根据数头分辨十、八、十六进制u(U)无符号十进制整数无符号十进制整数c单个字符单个字符s字符串字符串f(e,g,G)实数实数n不输入数据,将已读入的字符输送到对应的地址中不输入数据,将已读入的字符输送到对应的地址中%百分号百分号

27、3.23.2数据的输入与输出数据的输入与输出type22C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构使用使用scanf应注意应注意:scanfscanf()()的格式控制字符串中的字符不是用于输出的格式控制字符串中的字符不是用于输出的的,都是要求输入的。都是要求输入的。scanfscanf(”x=%d”x=%d”,&x&x);参数的第二部分一定是地址列表参数的第二部分一定是地址列表,不能是表达式,请不能是表达式,请记得在变两前加上记得在变两前加上&。且地址列表的参数与格式说明。且地址列表的参数与格式说明个数应保持一致。个数应保持一致。执行执行scanfscanf()()输入数

28、据时,在两个数据之间允许以一输入数据时,在两个数据之间允许以一个或多个空格间隔,也可以用回车键、个或多个空格间隔,也可以用回车键、tabtab键分隔。键分隔。实数不许规定精度,像实数不许规定精度,像%10.4f%10.4f是不合法的。是不合法的。%后面有后面有*号时,该数据会被禁止使用。号时,该数据会被禁止使用。如果输入时类型不匹配则停止处理,返回如果输入时类型不匹配则停止处理,返回0 0。3.23.2数据的输入与输出数据的输入与输出23C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构例例3.13.1 输入圆的半径,输出圆的周长和面积。输入圆的半径,输出圆的周长和面积。分析:分析

29、:1.定定义义实实型型变变量量r、l、s用用于于存存放放半半径径、周周长长、面积;面积;2.调用输入函数,输入调用输入函数,输入r:3.分别利用周长公式和面积公式求出分别利用周长公式和面积公式求出l、s;4.调用输出函数输出调用输出函数输出l、s。程序举例程序举例 3.23.2数据的输入与输出数据的输入与输出24C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构程序:程序:#include void main()float r,l,s;scanf(“%f”,&r);/*输入一个浮点数据,存入地址输入一个浮点数据,存入地址&r*/l=2*3.14159*r;/*计算周长,赋值给计算周

30、长,赋值给l*/s=3.14159*r*r;/*计算面积,赋值给计算面积,赋值给s*/printf(“n l=%8.4f”,l);/*周长占周长占8个字符宽,个字符宽,4位小数位小数*/printf(“n s=%8.4f”,s);/*输出面积,数据共占输出面积,数据共占8个字符宽,个字符宽,4位小数位小数*/3.23.2数据的输入与输出数据的输入与输出25C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构分析:分析:1.输入小写字母存入变量输入小写字母存入变量a;2.转换成大写转换成大写a=a-32;3.输出输出 a.例例3.23.2 从从键键盘盘输输入入一一个个小小写写字字母母,

31、用用大大写写形形式输出该字母。式输出该字母。3.23.2数据的输入与输出数据的输入与输出26C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构#include“stdio.h”void main()char a;printf(“Input a lowercase letter:”);a=getchar();a=a-32;/*将大写字母转换成对应的小写字母将大写字母转换成对应的小写字母*/printf(“%c n”,a);思思考考:如如何何使使程程序序可可以以处处理理任任何何字字符符的的输输入入。即即判判断断输输入入的的是是小小写写字字母母,才才转转换换成成大大写写;如如果果输输入入

32、的的其其他他字符,则直接输出。字符,则直接输出。3.23.2数据的输入与输出数据的输入与输出程序:程序:27C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构结构化程序设计结构化程序设计基本思想:任何程序都可以用三种基本结构表示,限制使基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(用无条件转移语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序叫结构化程序:由三种基本结构反复嵌套构成的程序叫优点:结构清晰,易读,提高程序设计质量和效率优点:结构清晰,易读,提高程序设计质量和效率三种基本结构三种基本结构3.33.3基本控制结构与流程控制语句基本控制结构与

33、流程控制语句顺序结构顺序结构ABab28C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构二分支选择结构二分支选择结构多分支选择结构多分支选择结构选择结构选择结构3.33.3基本控制结构与流程控制语句基本控制结构与流程控制语句PAB真假bakA1A2AiAnk=k2k=k1k=knk=ki.ab29C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构l当型循环结构l直到型循环结构PA假真baAP真假ba循环结构循环结构3.33.3基本控制结构与流程控制语句基本控制结构与流程控制语句30C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.33.3基本控制结构与

34、流程控制语句基本控制结构与流程控制语句三种基本控制结构的特点:三种基本控制结构的特点:l 只有一个入口只有一个入口l 只有一个出口只有一个出口l 结构内的每一部分都有机会被执行到。即,对每结构内的每一部分都有机会被执行到。即,对每一个框来说,都应当有一条从入口到出口的路径通过一个框来说,都应当有一条从入口到出口的路径通过它它l 结构内不存在死循环结构内不存在死循环APAB注:注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构可以是一个简单语句,也可以是一个基本结构x xx x31C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构例如计算分段函数例如计算分段函数分析:分析

35、:计算计算 x0,如果结果为,如果结果为1:计算:计算:y=3-x;否则,计算:否则,计算:y=2*x;需要根据需要根据x的值进行流程选择(分支)。的值进行流程选择(分支)。3.43.4选择结构控制选择结构控制32C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构main()float x,y;scanf(“%f”,&x);y=2*x;if(x 0)y=3-x;printf(“y=%6.2f”,y);形式一(单分支选择结构):形式一(单分支选择结构):格式:格式:if(表达式表达式)语句语句执行过程:执行过程:表达式表达式语句语句非非0=0表达式表达式语句语句1语句语句2非非0=0

36、形式二(双分支选择结构)形式二(双分支选择结构):格式格式:if(表达式表达式)语句语句1else语句语句2执行过程:执行过程:3.4.1if语句的形式语句的形式main()float x,y;scanf(“%f”,&x);if(x 0)y=3-x;else y=2*x;printf(“y=%6.2f”,y);3.43.4选择结构控制选择结构控制main()float x,y;scanf(“%f”,&x);y=2*x;if(x b 则输出则输出a;否则,输出;否则,输出b。#include main()float a,b;scanf(“%f,%f”,&a,&b);if (ab)printf(“

37、%f”,a);else printf(“%f”,b);34C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构表达式表达式1语句语句1非非0=0表达式表达式2表达式表达式3语句语句n语句语句3语句语句2非非0非非0=0=0形式三(多分支选择结构):形式三(多分支选择结构):格式:格式:if(表达式表达式1)语句语句1else if(表达式表达式2)语句语句2.else 语句语句n 执行过程:执行过程:3.43.4选择结构控制选择结构控制例:例:if(salary1000)index=0.4;else if(salary800)index=0.3;else if(salary600)i

38、ndex=0.2;else if(salary400)index=0.1;else index=0;35C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.43.4选择结构控制选择结构控制 写一个程序完成下列功能写一个程序完成下列功能:1 输入一个分数输入一个分数score 2 score60 输出输出 E 3 60=score 70 输出输出 D 4 75=score 80 输出输出 C 5 80=score 90 输出输出 B 5 90=score 输出输出 Amain()int score;sanf(“%d”,&score);if(score60)printf(“%c”,E

39、);else if(score 70)printf(“%c”,D);else if(score 80)printf(“%c”,C);else if(score 90)printf(“%c”,B);else printf(“%c”,A);36C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构如:如:if(a=b&x=y)printf(“a=b,x=y”);if(3)printf(“OK”);if(a)printf(“%d”,a);if(x)if(x!=0)if(!x)if(x=0)说明:说明:ifif语句中的表达式一般为关系或逻辑表达式,也可以语句中的表达式一般为关系或逻辑表达式,也

40、可以为任何数值类型的表达式。为任何数值类型的表达式。执行语句可以是一条简单语句、空语句或复合语句,执行语句可以是一条简单语句、空语句或复合语句,也可以嵌套其它流程控制语句。也可以嵌套其它流程控制语句。3.43.4选择结构控制选择结构控制例例 考虑下面程序的输出结果考虑下面程序的输出结果:#include main()int x,y;scanf(“%d,%d”,&x,&y);if(xy)x=y;y=x;else x+;y+;printf(“%d,%dn”,x,y);Compile Error!37C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.43.4选择结构控制选择结构控制复

41、杂条件选择复杂条件选择问题问题:输入两个字符输入两个字符ch1和和ch2,如果如果ch1=Z 且且 ch2=B,则输出则输出“You are right!”main()char ch1,ch2;ch1=getchar();ch2=getchar();if(ch1=Z&ch2=B )printf(“You are right!“);复杂条件选择复杂条件选择问题问题:输入两个字符输入两个字符ch1和和ch2,如果如果ch1=Z 且且 ch2=B,则输出则输出“You are right!”38C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构if(表达式表达式1)if(表达式表达式2)

42、语句语句1 else 语句语句2else if(表达式表达式3)语句语句3 else 语句语句4内嵌内嵌if内嵌内嵌ifif(表达式表达式1)if(表达式表达式2)语句语句1 else 语句语句2内嵌内嵌ifif(表达式表达式1)if(表达式表达式2)语句语句1else 语句语句3 内嵌内嵌ifif(表达式表达式1)语句语句1else if(表达式表达式3)语句语句3 else 语句语句4内嵌内嵌ifif语句嵌套语句嵌套3.43.4选择结构控制选择结构控制39C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构#include main()int x,y;printf(Enter i

43、nteger x,y:);scanf(%d,%d,&x,&y);if(x!=y)if(xy)printf(XYn);else printf(XYn);else printf(X=Yn);运行:运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y例例 输入两数并判断其大小关系输入两数并判断其大小关系3.43.4选择结构控制选择结构控制40C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构缺省缺省 时,时,else总是和它上面离它最近的未配对的总是和它上面离它最近的未配对的if配对配对if()if()if()else.els

44、e.else.if else 配对原则:配对原则:3.43.4选择结构控制选择结构控制41C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构例:例:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);修改:修改:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);实现实现if else 正确正确配对配对方法:加方法:加 3.43.4选择结构控制选择结构控制42C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.43.4选择结构控制选择结构控制例例4.44.4 编程实现:根据

45、两个数编程实现:根据两个数sex和和tall分类分类,如如果果sex为为F,当,当tall大于等于大于等于150时,输出时,输出”A“,否则输出,否则输出“B“;若;若sex不为不为F,当当tall大大于等于于等于170时,输出时,输出A,否则输出,否则输出B。分析:分析:根据根据sex分支分支在在sex为为F的分支中判断的分支中判断tall=150否否在在sex不为不为F的分支中判断的分支中判断tall=170否否void main()int tall;char sex;printf(“input sex and tall:”);scanf(“%c%d”,&sex,&tall);if (se

46、x=F)if (tall=150)printf(“A”);else printf(“B”);else if (tall=170)printf(“A”);else printf(“B”);43C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构v一般形式:一般形式:switch(表达式表达式)case 常量表达式常量表达式1:语句组语句组 1;break;case 常量表达式常量表达式2:语句组语句组 2;break;.case En:语句组语句组 n;break;default:语句组语句组;break;v执行过程执行过程:switch表达式表达式语句组语句组1语句组语句组2语句组语

47、句组n语句组语句组.E 1E 2Endefaultcase 3.53.5多分支选择控制语句多分支选择控制语句switchswitch语句语句44C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构3.53.5多分支选择控制语句多分支选择控制语句switchswitch语句语句例如:例如:要求按照考试成绩的等级打印出百分制分数要求按照考试成绩的等级打印出百分制分数 段,可以用段,可以用switch语句实现:语句实现:switch(grade)case A:printf(“85100n”);case B:printf(“7084n”);case C:printf(“6069n”);cas

48、e D:printf(“60n”);default:printf(“errorn”);运行结果:若运行结果:若grade=A则输出:则输出:85100 7084 6069 60 error45C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构说明:说明:3.53.5多分支选择控制语句多分支选择控制语句switchswitch语句语句l语句中的表达式可以是数字型或字符型,表达式的值,称为开语句中的表达式可以是数字型或字符型,表达式的值,称为开关值。关值。l语句结构中各个语句结构中各个casecase后常量表达式的值必须互不相同;否则执后常量表达式的值必须互不相同;否则执行时将出现矛盾

49、,即同一个开关值,对应多种执行方案行时将出现矛盾,即同一个开关值,对应多种执行方案l当表达式的值与某一个常量相等时,就执行后面的语句;若无当表达式的值与某一个常量相等时,就执行后面的语句;若无breakbreak语句,执行该语句后,流程控制转移到下一个分支语句,执行该语句后,流程控制转移到下一个分支:继续继续执行这一个分支的语句,一至到最后一个语句执行完。执行这一个分支的语句,一至到最后一个语句执行完。l当表达式的值与所有常量表达式的值不相等时,执行当表达式的值与所有常量表达式的值不相等时,执行default:default:后面的语句。后面的语句。lcasecase后可包含多个可执行语句,且

50、不必加后可包含多个可执行语句,且不必加 lswitchswitch可嵌套可嵌套l多个多个casecase可共用一组执行语句可共用一组执行语句switch(grade)case A:printf(“85100n”);break;case B:printf(“7084n”);break;case C:printf(“6069n”);break;case D:printf(“60n”);break;.46C语言教学语言教学幻灯片版幻灯片版第三章控制结构第三章控制结构例例 switch(score)case 5:printf(“Very good!”);case 4:printf(“Good!”);c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com