C语言复习第十九课

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十九课

※主要内容

(1)、选择结构

※主要知识点

(1)、if语句

1.不含else子句的if语句

语句格式: If(表达式) 语句;

例如: if(x>y)printf(“%d”,x);if(x>z) {x++; printf(“%d”,x);}

执行过程是: 先计算出表达式的值,如果表达式的值为真(非0值),则执行其后的if子语句,执行后再去执行if语句后面的下一条语句;如果表达式的值为假(0值),则不执行if子语句,直接执行if语句后面的下一条语句.

例如: 输入两个实数,输出其中的最大数.

#include

main()

{

float a,b;

scanf(“%f %f”,&a,&b);

if(a>b)printf(“%5.2f”,a);

if(b>a)printf(“%5.2f”,b);

}

2.含else的if语句

语句格式: If(表达式) 语句1;

else 语句2;

执行过程是: 先计算出表达式的值,如果表达式的值是真,则执行语句1,执行后再去执行if语句后面的下一条语句;如果表达式的值是假,则跳过语句1而直接执行语句2.

例如: if(x>y)

p rintf(“%d”,x);

else

p rintf(“%d”,y);

功能是: 如果x>y则输出x,否则输出y. (2)、if语句的嵌套

1、在if语句中嵌套具有else子句的if语句语句格式:

If(表达式1)

If(表达式)

语句1;

Else

语句2;

Else

语句3;

2、在if语句中嵌套不含else子句的if语句格式:

If(表达式1)

{if(表达式2) 语句1;}

else

语句2;

3、在else子句中嵌套if子句

格式: If(表达式1) 语句1;

else

If(表达式2) 语句2;

else 语句3;

if语句的配对问题

C语言规定,else 总是与它前面最近的未配对的if语句配对。

例如: 比较两个数的大小关系

void main()

{

int a,b;

scanf(“%d%d”,&a,&b);

if(a!=b)

If(a>b)printf(“A>B\n”);

Else printf(“A

Else printf(“A=B\n”);

}

(2)、条件运算符和条件表达式

如果在条件语句中,只执行单个的赋值语句时,常可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。

条件运算符为?:,它是一个三目运算符,即有三个参与运算的量。

由条件运算符组成条件表达式的一般形式为:

表达式1? 表达式2:表达式3

其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。

1、条件运算符可嵌套

例如:a>b?a:c>d?c:d 应理解为a>b?a:(c>d?c:d)

2、expr1、expr2、expr3类型可不同,表达式值取较高的类型

例x?…a‟:…b‟ //x=0,表达式值为…b‟; x‡0,表达式值为…a‟

x>y?1:1.5 //x>y ,值为1.0; x

(3)、switch语句和break语句

1. switch语句

C语言还提供了一种用语多分支选择结构的switch语句

格式:

Switch(表达式)

{

Case 常量表达式1 : 语句1;

Case 常量表达式2 : 语句2;

……..

Case 常量表达式n : 语句n;

default : 语句n+1;

}

执行过程是:

计算表达式的值,并逐个与后面的常量表达式的值比较,当表达式的值与整个常量表达式的值相等时,则执行它后面的语句,然后不再进行判断,继续执行后面所有case后的语句.如果表达式的值与所有的常量表达式的值都不相等时,则执行default后的语句. (注意语句后有break语句和没有break语句区别),没有break语句,语句会顺序执行下去。

在使用switch语句时还应注意以下几点:

1) 在case后的各常量表达式的值不能相同,否则会出现错误。

2) 在case后,允许有多个语句,可以不用{}括起来。

3) 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

4) default子句可以省略不用。

2、break语句

该语句只能用在switch语句或循环语句中,作用是跳出switch语句或跳出本层循环,转去执行后面的程序.

例如:计算器程序。用户输入运算数和四则运算符,输出计算结果。

main()

{

float a,b;

char c;

printf("input expression: a+(-,*,/)b \n");

scanf("%f%c%f",&a,&c,&b);

switch(c)

{

case '+': printf("%f\n",a+b);break;

case '-': printf("%f\n",a-b);break;

case '*': printf("%f\n",a*b);break;

case '/': printf("%f\n",a/b);break;

default: printf("input error\n");

}

}

本例可用于四则运算求值。switch语句用于判断运算符,然后输出运算值。当输入运算符不是+,-,*,/时给出错误提示。

练习题

一、单项选择题

(1) 选择结构程序设计的特点是()

A. 自上向下逐个执行

B. 根据判断条件,选择其中一个分支执行

C. 反复执行某些程序代码

D. 以上都是

(2) 假定所有变量均已正确定义,下列程序段运行后x 的值是()

a=b=c=0,x=35;

if(!a) x--; else if(b); if(c) x=3; else x=4;

A. 34

B. 4

C. 35

D. 3

(3) 下面的程序片段所表示的数学函数关系是()。

相关文档
最新文档