第4章选择(分支)结构程序设计(精)

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

第四章选择(分支)结构程序设计 C语言中实现选择结构的控制语句有两种:条件分支语句if和开关分支语句switch。

一.if语句的三种形式:

1、if(表达式)

语句;

即:条件为真,执行语句1

2、if(表达式) /* if 和 else是关键字,要小写 */

语句1;

else

语句2;

即:条件为真,执行语句1,否则执行语句2

3、 if(表达式1)

语句1;

else if(表达式2)

语句2;

else if(表达式3)

语句3;

else if(表达式n)

语句n;

注意以下几点:

①if 后面的条件可以是如下类型:

● 关系表达式,如x>y

● 逻辑表达式,如x>y&&y>z

● 算术表达式,如x+y

● 赋值表达式,如x=y

● 变量,如x

● 常量,如-5

②如果语句1或语句2是一条语句,则{}一对花括号可以省略③if….else 是一条语句,else 不能单独出现,要注意else 与 if的搭配问题(既:else与其上面最近的且没使用的if搭配)

二.开关分支语句switch

1、形式

switch(表达式)

{ case 常量表达式1: 语句1;break;

case 常量表达式2: 语句2;break;

case 常量表达式3: 语句3;break;

……

case 常量表达式n: 语句n;break;

default : 语句n+1;

}

2、执行过程

当表达式的值等于“常量表达式1”时,执行语句1;

当表达式的值等于“常量表达式2” 时,执行语句2;

……

当表达式的值等于“常量表达式n”时,执行语句n;

当表达式的值与“常量表达式1、常量表达式2……常量表达式n”谁都不等时,就执行default后的语句.

注意以下几点:

1、表达式应该有括号,注意大括号一定要有并且注意配对。

2、表达式可以是整型常量或变量、字符常量或变量、关系表达式、逻辑表达式、整型的算术表达式,总之是整数,但是通常用整型或字符型。C语言计算表达式的值,然后找常量表达式的值匹配。

3、 break 是C语言的一种语句,其作用是跳出switch语句。如果没有break,将会从某个语句组起顺次执行完所有的语句组。有时我们希望这样,有时我们不希望这样。因此可以通过break调整程序的走向。

4、switch和case是关键字,要小写

5、case要和后面的常量表达式用空格分开,且这个常量表达式必须是整型常量或字符常量,不是变量。

6、default可以放在任何位置,不一定在最后,也可以没有

练习题

一、选择题

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

int a=0, y=10;

if (a=0) y--; else if(a>0)y++;else y+=y;

A. 20

B. 11

C. 9

D. 0

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.下面的程序片段所表示的数学函数关系是()。

y=-1;

if(x!=0) if(x>0) y=1; else y=0;

4. 假定i和j为int型变量,则执行以下语句后j的值为()。

int i=1;

switch(i++){

case 1: for(j=0;j<9;j++) if (i==1) break;

case 2: for(j=1;j<10;j++) if (i==2) break;

case 3: printf(“i=%d\n”,i);

}

A. 0

B. 1

C. 9

D. 10

5. 在C语言的语句中,用来决定分支流程的表达式是()。

A. 可用任意表达式

B. 只能用逻辑表达式或关系表达式

C. 只能用逻辑表达式

D. 只能用关系表达式

4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前未配对的最近的if

D.同一行上的if

5.逻辑运算符两侧运算对象的数据类型()。

A.只能是0或1

B.只能是0或非0正数

C.只能是整型或字符型数据

D.可以是任何类型的数据

6.以下关于运算符优先顺序的描述中正确的是()。

A.关系运算符<算术运算符<赋值运算符<逻辑与运算符

B.逻辑与运算符<关系运算符<算术运算符<赋值运算符

C.赋值运算符<逻辑与运算符<关系运算符<算术运算符

D.算术运算符<关系运算符<赋值运算符<逻辑与运算符

7.下列运算符中优先级最高的是()。

A.< B.&& C.+ D.!=

8.选择出合法的if语句(设int x,a,b,c;)()。

A.if(a=b) c++;

B.if(a=

相关文档
最新文档