第章语言程序设计的三种基本结构课件_第1页
第章语言程序设计的三种基本结构课件_第2页
第章语言程序设计的三种基本结构课件_第3页
第章语言程序设计的三种基本结构课件_第4页
第章语言程序设计的三种基本结构课件_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 C语言程序设计 的三种基本结构 C 语言程序设计Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.1第3章 C语言程序设计 的三种基本结构 C 语 3.1 顺序结构程序设计3.2 选择结构程序设计3.3 循环结构程序设计本章主要内容Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 20

2、04-2011 Aspose Pty Ltd.10/15/20222 3.1 顺序结构程序设计本章主要内容Evaluation 3.1.1 C语句 3.1.2 字符数据的输入与输出 3.1.3 格式输入与输出 3.1.4 顺序结构程序设计应用举例3.1 顺序结构程序设计 返回Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/202233.1 顺序结构程序设计 返回Evaluation only 3.1.1

3、C语句 一个C程序由若干个源程序文件组成,一个源文件由若干个函数和预处理命令及全局变量声明部分组成,一个函数由数据声明部分和执行语句部分组成,执行语句部分就是由C语句组成的。C程序结构如图3-1所示。图3-1Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/20224 3.1.1 C语句 一个C程序由若干个源程 C语句可分为以下5类: 1表达式语句 表达式语句由一个表达式加上分号“;”组成。执行表达式语句就

4、是计算表达式的值。其一般形式为:在表达式语句中,最常用的是赋值语句。例如:a=7; 将7赋给a。 x=y+z; 将y与z之和赋给x。 3.1.1 C语句表达式;Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/20225 C语句可分为以下5类: 3.1.1 C语句表达式;E 3.1.1 C语言基本语句 赋值运算符“=”右边的表达式也可以是一个赋值表达式,一般形式为:展开为:例如:a=b=c=9; 与赋值语句

5、不同的是,在声明变量时,不允许连续给多个变量赋初值。以下声明变量的方式是错误的: int a=b=c=9;变量=(变量=表达式);变量=变量=表达式;Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/20226 3.1.1 C语言基本语句 赋值运算符“=”右 3.1.1 C语言基本语句必须改为:int a=9,b=9,c=9;又如:i+; 自增1语句,i值增1,相当于i=i+1。而a*b; 因计算结果不能保

6、留,没有实际意义。说明:1) 一个C语句必须在最后添加分号,分号是C语句中不可缺少的一部分。2) 任何表达式都可以加一个分号成为语句。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/20227 3.1.1 C语言基本语句必须改为:int a=9,b=9 3.1.1 C语言基本语句2函数调用语句 函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式为: 例如:printf(This is a C P

7、rogram); 调用库函数,输出字符串This is a C Program。max(a,b); 调用自定义的max函数。 函数名(实际参数表);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/20228 3.1.1 C语言基本语句2函数调用语句函数名(实际参数 3.1.1 C语言基本语句3控制语句 控制语句用于控制程序的流程, 以实现程序的各种结构方式。它们由特定的语句定义符组成。语言有9种控制语句,

8、可分成以下3类:条件判断语句:if语句、switch语句循环执行语句:do-while、while和for语句转向语句:break语句、goto语句、continue语句、return语句例如:if(a0) printf(OK); Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/20229 3.1.1 C语言基本语句3控制语句Evaluation 3.1.1 C语言基本语句4复合语句 把多个C语句用花括号

9、“”括起来组成一个语句,该语句为复合语句。例如下述是一个复合语句: z=x; x=y; y=z; Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/202210 3.1.1 C语言基本语句4复合语句Evaluation 3.1.1 C语言基本语句5空语句 只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。下面是一个空语句: ; 在程序中空语句可用来作空循环体,空循环体什么也不做。例如:whil

10、e(getchar()!=n) ; 语句的功能是,从键盘输入的字符如果不是回车则重新输入,直到输入回车为止。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/202211 3.1.1 C语言基本语句5空语句Evaluation 3.1.2 字符数据的输入与输出 输入/输出是以计算机为主体而言的。在语言中,所有的数据输入/输出都是由库函数完成的,因此都是函数语句。在使用语言库函数时,要用预编译命令#incl

11、ude将有关“头文件”包括到源文件中。#include 或#include stdio.hEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022123.1.2 字符数据的输入与输出 输入/输出是以3.1.2 字符数据的输入与输出1putchar 函数(字符输出函数) putchar 函数是字符输出函数,其功能是向终端(如显示器)输出单个字符。其一般形式为:例如: putchar(A); 输出大写字母A

12、putchar(c); 输出字符变量c的值也可以输出转义字符,如:putchar(); 输出字符“”putchar(字符变量);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022133.1.2 字符数据的输入与输出1putchar 函数(字3.1.2 字符数据的输入与输出【例3-1】 编写程序,输出英文单词Good。#includevoid main()char a=G,b=o,c=o,d=d; p

13、utchar(a); putchar(b); putchar(c); putchar(d); putchar(n);程序运行结果:GoodEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022143.1.2 字符数据的输入与输出【例3-1】 编写程序,输出3.1.2 字符数据的输入与输出2getchar函数(字符输入函数) getchar函数的功能是从终端(如键盘)输入一个字符。getchar函数没有参

14、数,其一般形式为:getchar函数只能接收一个字符,通常把接收的字符赋给一个字符变量或整型变量。如: char ch;ch=getchar();getchar();Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022153.1.2 字符数据的输入与输出2getchar函数(字符3.1.2 字符数据的输入与输出 getchar函数也可以作为函数语句的一个参数被使用。如:printf(%c,getcha

15、r();putchar(getchar(); 如果通过键盘输入小写字母a,则以上两个函数语句均输出小写字母a。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022163.1.2 字符数据的输入与输出 getch3.1.2 字符数据的输入与输出【例3-2】 将输入的单个字符原样输出。#includevoid main()char ch; ch=getchar(); putchar(ch); 程序运行情

16、况如下:如果输入:A运行结果:AEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022173.1.2 字符数据的输入与输出【例3-2】 将输入的单个字3.1.3 格式输入与输出 1printf函数(格式输出函数) printf函数称为格式输出函数,其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。printf函数调用的一般形式为: printf(“格式控制”,输出表列);Evaluation o

17、nly.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022183.1.3 格式输入与输出 1printf函数(格式输出函3.1.3 格式输入与输出1)格式控制 格式控制字符串用于指定输出格式,它包括两种信息:格式说明和普通字符。 格式说明:由“%”和格式字符组成,说明输出数据的类型、形式、宽度、小数位数等。 printf函数中使用的格式字符主要包括:Evaluation only.Created with Aspose.Slide

18、s for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022193.1.3 格式输入与输出1)格式控制Evaluation 3.1.3 格式输入与输出d格式符:以十进制形式输出带符号整数(正数不输出符号)。有以下几种用法:%d:按十进制整型数据的实际长度输出。%md:m为指定的输出字段的宽度,即输出数据在输出设备上所占的列数。如果数据的位数小于m,则左端补以空格;如果大于m,数据则按实际位数输出。例如:int a=123,b=456; printf(%5d,%2d,a,b);%ld:输出长

19、整型数据。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022203.1.3 格式输入与输出d格式符:以十进制形式输出带符号整3.1.3 格式输入与输出o格式符:以八进制整数形式输出(不输出前缀0),输出的数据不带符号。x或X格式符:以十六进制形式输出无符号整数(不输出前缀0 x)。例如:int a=-1; printf(%d,%o,%x,a,a,a); 输出结果为:-1,177777,ffffu格式

20、符:以十进制形式输出无符号整数,输出长整型时用lu。c格式符:用来输出一个字符,也可以指定输出字符的宽度。例如:printf(%c,%3c,a,b);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022213.1.3 格式输入与输出o格式符:以八进制整数形式输出(不3.1.3 格式输入与输出s格式符:用来输出指定的字符串。s格式符有几种用法:%s:原样输出给定的字符串。例如: printf(%s,GO

21、OD);%ms:m为输出字符串所占的列数。如果字符串的位数小于m,字符串左端补以空格;如果字符串的位数大于m,字符串将原样输出。例如:printf(%2s%6s,Good,Night);%-ms:如果字符串长度小于指定的宽度,字符串向左边靠,在字符串的右边补空格。例如:printf(%-6s,free);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022223.1.3 格式输入与输出s格式符:用来输

22、出指定的字符串。s3.1.3 格式输入与输出%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,字符串的左侧补空格。%-m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的左侧,字符串的右侧补空格。如果n大于m,将保证n个字符全部正常输出。例如: printf(%5.4s,%-5.3s,%2.4s,Shang,Shang,Shang);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose P

23、ty Ltd.10/15/2022233.1.3 格式输入与输出%m.ns:输出占m列,但只取字符3.1.3 格式输入与输出f格式符:以小数形式输出单、双精度实数,小数位数为6位。有以下几种用法:%f:不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数。单精度实数的有效数字位数一般为7位,双精度实数的有效数字位数一般为16位。例如:float x=11111.111;double y=22222222222222.2222;printf(%f,%fn,x*2,y*3); 输出结果:22222.220000,66666666666666.660000Evaluation only

24、.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022243.1.3 格式输入与输出f格式符:以小数形式输出单、双精度3.1.3 格式输入与输出%m.nf:指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,将在输出的数值左端补空格。%-m.nf:与%m.nf基本相同。不同的是,如果数值长度小于m,将在输出的数值右端补空格。例如: float a=345.6789; printf(%7.1f ,%-7.2fn,a,a); 输

25、出结果为:345.7, 345.68Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022253.1.3 格式输入与输出%m.nf:指定输出的数据共占m列3.1.3 格式输入与输出e或E格式符:以指数形式输出实数,用e时指数以e表示,如1.2e3,用E时指数以E表示,如1.2E3。g或G格式符:用来输出实数,它根据数值的大小,自动选f格式或e格式,且不输出无意义的零。用G时,若以指数形式输出,则指数以大

26、写表示。p格式符:输出变量的内存地址。普通字符:在显示中起提示作用,输出时原样输出。例如:printf(a=%d,b=%dn,a,b) ;Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022263.1.3 格式输入与输出e或E格式符:以指数形式输出实数,3.1.3 格式输入与输出使用printf函数时需要注意以下几点:(1)除了X、E、G外,其他格式字符必须用小写字母,如%d不能写成%D。(2)可以在

27、“格式控制”字符串中包含转义字符,例如:printf(%dt%dn,123,789);(3)如果需要输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022273.1.3 格式输入与输出使用printf函数时需要注意以下3.1.3 格式输入与输出2)输出表列 输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。如:

28、printf(max=%d,min=%d,a,b); 双引号中的两个“%d”是格式说明,表示指定的变量a和b按十进制整型输出,双引号中其余内容是普通字符,原样输出。“a,b”为输出表列,变量之间用逗号隔开。假设a和b的值分别是10和7,则输出为:max=10,min=7Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022283.1.3 格式输入与输出2)输出表列Evaluation 3.1.3 格式输

29、入与输出【例3-3】 分析下面程序的输出结果。#include void main() int a=65,b=66; printf(%d %dn,a,b); printf(a=%d,b=%dn,a,b); printf(%c,%cn,a,b);程序运行结果:6566a=65,b=66A,B Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022293.1.3 格式输入与输出【例3-3】 分析下面程序的输

30、出结3.1.3 格式输入与输出【例3-4】 格式字符应用实例。#include void main()int a=65;float b=12.1234567;double c=12345.1234567;char d= A;printf(a=%d,%4d,%-4d,%o,%x,%cn,a,a,a,a,a,a);printf(b=%f,%lf,%3.4f,%-6.1f,%en,b,b,b,b,b);printf(c=%lf,%f,%8.4lfn,c,c,c);printf(d=%c,%3c,%-4c,%dn,d,d,d,d);运行结果:a=65, 65,65,101,41,Ab=12.12345

31、7,12.123457,12.1235,12.1,1.21235e+01c=12345.123457, 12345.123457, 12345.1235d=A, A,A,65Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022303.1.3 格式输入与输出【例3-4】 格式字符应用实例。运3.1.3 格式输入与输出 使用printf函数时要注意输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到

32、右,也可从右到左。Turbo C是按从右到左进行的。如下面的例子:【例3-5】 分析输出表列中的求值顺序。#include void main()int i=6; printf(%d,%d,%d,%dn,-i,+i,i+,i-);程序运行结果:6,7,5,6Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022313.1.3 格式输入与输出 使用printf函数时要注3.1.3 格式输入与输出2scan

33、f函数(格式输入函数) scanf函数的功能是按指定的格式从终端输入数据,并将输入的数据存放到指定的变量中。scanf函数的一般形式为:如:scanf(%d%d,&a,&b); “%d%d”表示输入整型数据,&a,&b分别表示变量a和变量b 的地址。scanf(格式控制,地址表列);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022323.1.3 格式输入与输出2scanf函数(格式输入函数)3.1

34、.3 格式输入与输出1)格式控制 格式控制字符串用于说明数据的类型及格式。其中包括两部分内容:格式说明和输入数据分隔符。常用的格式字符如下:d,i:输入有符号的十进制整数。u:输入无符号的十进制整数。o:输入无符号的八进制整数。X,x:输入无符号的十六进制整数。f:输入实型数c:输入单个字符。s:输入字符串。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022333.1.3 格式输入与输出1)格式控制

35、Evaluation 3.1.3 格式输入与输出可用的附加字符有:l:用于输入长整型数据(如%ld,%lo,%lx)及double型数据(如%lf或%le)。h:用于输入短整型数据(如%hd,%ho,%hx)。m:指定输入数据所占宽度。例如:scanf(%3d%2d,&a,&b); 若输入1234567,将把123赋给变量a,把45赋给变量b,其余部分被截去。*:表示本输入项在读入后不赋给相应的变量。 例如:scanf(%d %*d %d,&a,&b);若输入10 11 12,将把10赋给变量a,11被跳过,12赋给变量b。“%*d”表示读入整数但不赋给任何变量。 Evaluation onl

36、y.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022343.1.3 格式输入与输出可用的附加字符有:Evaluati3.1.3 格式输入与输出2)地址表列 地址表列中给出各变量的地址,地址是由地址运算符“&”后跟变量名组成的,各地址之间用逗号隔开。例如:scanf(%d%d%d%d,&a,&b,&c,&d);Evaluation only.Created with Aspose.Slides for .NET 3.5 Clien

37、t Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022353.1.3 格式输入与输出2)地址表列Evaluation 3.1.3 格式输入与输出【例3-6】 格式输入与格式输出函数的应用示例。#include void main()int a,b,c;char ch1,ch2;float d,e;scanf(%d%d%d,&a,&b,&c);scanf(%c%c,&ch1,&ch2);scanf(%f%f,&d,&e);printf(a=%d,b=%d,c=%dn,a,b,c);printf(ch1=%c,ch2=%cn,

38、ch1,ch2);printf(d=%f,e=%fn,d,e);程序运行情况如下:101612AB3.56a=10,b=161,c=2ch1=A,ch2=Bd=3.500000,e=6.000000Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022363.1.3 格式输入与输出【例3-6】 格式输入与格式输出函3.1.4 顺序结构程序设计应用举例 【例3-7】 输入两个小写字母,输出其ASCII码和

39、对应的大写字母。#include void main()char ch1,ch2;printf(input character ch1,ch2: ); scanf(%c%c,&ch1,&ch2);printf(%d,%dn%c,%cn,ch1,ch2,ch1-32,ch2-32);程序运行结果:input character ch1,ch2:ab97,98A,B Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/

40、15/2022373.1.4 顺序结构程序设计应用举例 【例3-7】 输入两个3.1.4 顺序结构程序设计应用举例【例3-8】已知圆的半径r10,试用C语言编程求圆的周长p=2r和圆的面积s=r2。#include void main()float pi,r,p,s;r=10;pi=3.14;p=2*pi*r; s=pi*r*r; printf(p=%.2fn,p);printf(s=%.2fn,s);程序运行结果:p=62.80s=314.00Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.

41、0.0.Copyright 2004-2011 Aspose Pty Ltd.10/15/2022383.1.4 顺序结构程序设计应用举例【例3-8】已知圆的半径3.1.4 顺序结构程序设计应用举例【例3-9】计算任意两个整数的和、差。#incldue void main()int a,b,c,d;scanf(%d%d,&a,&b);c=a+b;d=a-b;printf(%d+%d=%d,%d-%d=%dn,a,b,c,a,b,d);程序运行情况如下:12912+9=21,12-9=3 Evaluation only.Created with Aspose.Slides for .NET 3.

42、5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022393.1.4 顺序结构程序设计应用举例【例3-9】计算任意两个3.2 选择结构程序设计 3.2.1 关系运算符与关系表达式 3.2.2 逻辑运算符与逻辑表达式 3.2.3 if语句的3种形式 3.2.4 if语句的嵌套 3.2.5 条件运算 3.2.6 switch语句 3.2.7 选择结构程序设计举例返回Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.

43、0.0.Copyright 2004-2011 Aspose Pty Ltd.10/15/2022403.2 选择结构程序设计 3.2.1 关系运算符与关系表达3.2.1 关系运算符与关系表达式 1.关系运算符 关系运算符是双目运算符,用来比较两个运算量之间的关系。关系运算的结果是“真”或“假”,且只能是二者之一。C语言提供6种关系运算符,它们分别是: (小于) (大于) = (大于或等于) = (等于) != (不等于) 前四种关系运算符(、=)的优先级高于后两种(=、!=)。关系运算符的优先级低于算术运算符。Evaluation only.Created with Aspose.Slide

44、s for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022413.2.1 关系运算符与关系表达式 1.关系运算符Eva3.2.1关系运算符与关系表达式 2.关系表达式 关系表达式就是指用关系运算符将两个表达式连接起来的式子。例如:1020、A+12为“真”,其值为1;表达式A+1b)&(34)、!a|(dc)都是合法的逻辑表达式。 与关系运算符和算术运算符相比较,逻辑非的优先级高于算术运算符,逻辑与和逻辑或的优先级低于关系运算符。例如:表达式(!b)=c)|(da) 等价于!b=c|da

45、。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022453.2.2 逻辑运算符与逻辑表达式 2.逻辑表达式Evalu3.2.2 逻辑运算符与逻辑表达式ab!a!ba&ba|b非0非00011非0001010非01001001100 逻辑运算规则 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.

46、0.Copyright 2004-2011 Aspose Pty Ltd.10/15/2022463.2.2 逻辑运算符与逻辑表达式ab!a!ba&ba|3.2.2 逻辑运算符与逻辑表达式【例2-10】逻辑运算应用示例。#incldue void main() int i=1,j=2,k=3; int n1,n2,n3; float x=3.0,y=0.85; n1=x&ji; n2=x+y|i+j-k; printf(%d,%dn,n1,n2);程序运行结果:0,1Evaluation only.Created with Aspose.Slides for .NET 3.5 Client P

47、rofile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022473.2.2 逻辑运算符与逻辑表达式【例2-10】逻辑运算应用3.2.3 if语句的3种形式1if语句if语句的一般形式: 其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。if语句的执行过程如图3-2所示 if(表达式) 语句图3-2Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd

48、.10/15/2022483.2.3 if语句的3种形式1if语句if(表达式) 语3.2.3 if语句的3种形式【例3-11】 随机输入两个整数,输出其中的小数。#include void main()int a,b,min;scanf(%d%d,&a,&b);min=a; if (minb)min=b;printf(min=%d,min);程序运行情况如下:17119min=17Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose P

49、ty Ltd.10/15/2022493.2.3 if语句的3种形式【例3-11】 随机输入两个整3.2.3 if语句的3种形式2if-else语句 if-else语句的一般形式: 其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。if-else语句的执行过程如图3-3所示。if(表达式) 语句1 else 语句2图3-3Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022503.2.3

50、if语句的3种形式2if-else语句if(表3.2.3 if语句的3种形式【例3-12】将例3-11输出两个整数中的小数,改用if-else语句来完成。#include void main()int a, b; scanf(%d%d,&a,&b); if(ab) printf(min=%dn,a); else printf(min=%dn,b);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/20225

51、13.2.3 if语句的3种形式【例3-12】将例3-11输出3.2.3 if语句的3种形式3if-else-if语句 其一般形式为: 其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行后续语句。 如果所有的表达式均为假,则执行语句n。然后继续执行后续语句。if(表达式1) 语句1else if(表达式2) 语句2 else if(表达式3) 语句3 else if(表达式m) 语句m else 语句nEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile

52、.Copyright 2004-2011 Aspose Pty Ltd.10/15/2022523.2.3 if语句的3种形式3if-else-if语句i3.2.3 if语句的3种形式执行过程如图3-4所示。图3-4Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022533.2.3 if语句的3种形式执行过程如图3-4所示。图3-3.2.3 if语句的3种形式【例3-13】 随机输入一个

53、字符,判别该字符的类别。#include void main() char c; printf(input a character: ); c=getchar(); if(c=0&c=a&c=A&c=Z) printf(This is a capital letter. n); else printf(This is an other character.n);Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/1

54、5/2022543.2.3 if语句的3种形式【例3-13】 随机输入一个字3.2.4 if语句的嵌套 下面列举常见的两种嵌套形式:形式一: 形式二:if(表达式1) if(表达式1) if(表达式2 ) 语句1 if(表达式2 ) 语句1 else 语句2 else 语句2else 语句3Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022553.2.4 if语句的嵌套 下面列举常见的两种嵌套形式:

55、Ev3.2.4 if语句的嵌套形式三: 形式四:if(表达式1) if(表达式1) if(表达式2 ) 语句1 if(表达式2 ) 语句1 else 语句2 else 语句2 else if(表达式3 ) 语句3 else 语句4Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022563.2.4 if语句的嵌套形式三: 3.2.4 if语句的嵌套【例3-14】比较两个字符型数据的大小关系。#inclu

56、de void main()char a,b; scanf(%c%c,&a,&b); if(a!=b) if(ab) printf(%c%cn,a,b); else printf(%cb) max=a;else max=b;可用条件表达式写成:max=(ab)?a:b; 其执行语义是:若ab为真,则把a赋给max,否则把b 赋给max。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10/15/2022603.2.

57、5 条件运算例如:Evaluation only.13.2.5 条件运算【例3-15】用条件表达式实现:输出a、b、c三个变量中的最大值。#include void main()int a,b,c,max; scanf(%d%d%d,&a,&b,&c);max=ab?a:b; max=cmax?c:max;printf(max=%dn,max);如果输入:291679运行结果:max=79Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspos

58、e Pty Ltd.10/15/2022613.2.5 条件运算【例3-15】用条件表达式实现:输出a、3.2.6 switch语句 语言提供了另一种用于直接处理多分支选择的switch语句,其一般形式为: switch(表达式) case常量表达式1: 语句1; case常量表达式2: 语句2; case常量表达式n: 语句n; default : 语句n+1; Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright 2004-2011 Aspose Pty Ltd.10

59、/15/2022623.2.6 switch语句 语言提供了另一种用3.2.6 switch语句 其语义是:计算switch后面表达式的值,将该值与逐个case后的常量表达式的值相比较,当表达式的值与某个常量表达式的值相等时,就执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句和default后的语句。如果表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。请见【例3-16】。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile .Copyright

60、 2004-2011 Aspose Pty Ltd.10/15/2022633.2.6 switch语句 其语义是:计算swi3.2.6 switch语句 修改【例3-16】,在每一个case语句之后增加一个break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。程序改写如下: #incdlue void main() int a; printf(please input 1-7 number: ); scanf(%d,&a); switch (a) case 1:printf(Mondayn);break;case 2:printf(Tuesdayn); br

温馨提示

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

评论

0/150

提交评论