第4章 选择结构程序设计
第四篇选择结构程序设计
以某表达式的值等于0作为条件时可写成对该表达式 取反的形式。
例如,语句:if(x==0) printf(“x=0”);可以简写成:
if(!x) printf(“x=0”);
4.3 if语句
说明: (3)无论是if语句中的语句还是if-else语句中的语
句1、语句2,都可以是任何语句。当它们中的某 一个是有多条语句组成时,必须写成复合语句的 形式。例如,语句:
优先级: 高 算术运算符
< ,<=, >, >=
低
==, !=
赋值运算符
4.2 关系运算与逻辑运算
2.关系表达式
一般形式为:〈表达式〉〈关系运算符〉〈表达式〉
合法的关系表达式:
a>b
a+b<c-d
(a=3)<=(b=5)
‘a’>=‘b’
(a>b)==(b>c)
关系表达式的值:
——逻辑值
“真” “1”表示
else
printf(“n=%d NO\n”,n); }
➢多分支if语句
4.3 if语句
当if-else语句中的语句2是另一条if语句时,就构成了多分支if语句。
语句的一般形式为: 表 达 式
1
if(表达式1) 语句1 真
假 执行过程:
假 表达式2
else if(表达式2) 语句2
真
假
else if(表达式3) 语句3
用N-S流程图表示例4.1的算法 输入weight
成立
weight≤50
不成立
pay=weight*0.35
pay=50*0.35+(weight50)*0.5
04 选择结构程序设计
程序输出举例: Enter two numbers: 2 2 (用户从键盘输入2 2)
num1=2 num2=2 result=1
4.2 逻辑运算符及逻辑表达式
逻辑运算符用于支持基本逻辑运算。三 种逻辑运算符及其意义,如表4.2.1所示。
表4.2.1
逻辑运算符 !
&& ||
名称 逻辑非 逻辑与 逻辑或
下面给出程序清单:
#include <stdio.h> main() { int value,choice;
printf("Convert : \n");
/*输出菜单*/
printf(" 1: decimal to hexadecimal\n");
printf(" 2: hexadecimal to decimal\n");
printf("Enter a decimal value: "); scanf("%d", &value); printf("%d in hexadecimal is %x\n", value,value); } else if(choice==2) { printf("Enter a hexadecimal value: "); scanf("%x", &value); printf("%x in decimal is %d\n",
例4.3.3 用双分支if语句重新编写例4.3.1的 程序。
可以利用一个分支处理变量a为正数的情 况,如令x=a。用另一个分支初处理变量a为 负数的情况,如令x=−a。最后输出结果。下 面给出程序:
第四章 选择(分支)结构程序设计
本章要点:
1 . 关系表达式
2 . 逻辑表达式
3 . 选择结构程序设计
第四章
选择结构程序设计
主要内容: 1. 关系运算符与关系表达式 2. 逻辑运算符与逻辑表达式 3. if 语句 4. switch 语句
5. 程序举例
C语言程序设计
例: 银行存款的例子 设银行定期存款年利率rate 一年 2.68 % 二年 2.98% 三年 3.5 % 五年及以上 4.2 % 并已知存款期为n年,存款本金为capital元, 编程计算n年后本息之和deposit.
{float score;
printf(“input score:”); scanf(“%f”,&score); if(score>=90) printf(“Excellent!\n”); else if(score>=80) printf(“Good!\n”); else if(score>=70) printf(“Middle!\n”); else if(score>=60) printf(“Pass!\n”); else printf(“Fail!\n”);
4.3 if语句
例:要求用户输入一个实数,然后求出这个实数 的绝对值。
4.3 if语句
2. 分支执行 if(表达式) 语句1 else 语句2 即 if (P) A else B
当P 为真时(非0)执行A,否则执行B或后续语句。
4.3 if语句
例: if (a>0) printf(“A is a positive\n”); else printf(“A is not a positive\n”);
C语言程序设计
选择结构是三种基本结构(顺序、选择、循环)之
C语言程序设计:第4章 选择结构程序设计
作用 小于 小于等于 大于 大于等于 等于 不等于
运算数 双目 双目 双目 双目 双目 双目
结合性 左结合 左结合 左结合 左结合 左结合 左结合
优先级 10 10 10 10 9 9
2
例如:
(1) 比较整型变量k大于0,表达式为:k>0 (2) 比较考试成绩score大于等于60,表达式为:score>=60 (3) 比较整型变量k模2等于0,即判断k是否是偶数:k%2==0 (4) 比较字符变量ch的值等于'A',表达式为:ch!='A'
return 0; }
Input 2 integers(a b):100 10<回车> 100,10
Input 2 integers(a b):10 100<回车> 100,10
2.双分支if语句
if (表达式) 语句1 else 语句2
执行过程: 首先先判断表达式的值 若为非0则执行语句1 若为0则执行语句2
if语句的双分支形式,在语法上 视为一条语句。
表达式
真
语句1
假
语句2
例4-4:判断整数的奇偶性。从键盘输入一个整数x,根据其奇 偶性输出x是奇数或x是偶数。
Input an integer: 12<回车> 12 is odd number.
#include <stdio.h>
int main()
return 0;
}
例4-5:修改例3-6使用海伦公式计算三角形面积程序的要求,当输入 的三个边长能够构成三角形时,计算面积;否则,输出不能构成三角 形。
思路分析:三角形面积的计算过程与原例题相同,新要求是在“三个 边长能构成三角形”这一条件成立时才进行计算面积,否则直接输出 提示信息。根据数学知识,这一条件可以描述为“任意两个边长之和 大于第三个边长”,输入三个边长a、b、c后,条件可以使用如下的 逻辑表达式描述:
第四章.选择结构程序设计
逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来 表示。
反过来在判断一个量是为“真”还是为“假”时,以“0” 的数值代表“假”,以非“0”的数值代表“真”。
3)逻辑运算的规则:
(1)与运算&& 参与运算的两个量都为真时(非0),结果才为真(值为1),
否则为假(值为0)。 例如:5>0 && 4>2,由于5>0为真,4>2也为真,其结果
也为“真”,表达式的值为1。
(2)或运算|| 参与运算的两个量只要有一个为真(非0),结果就为真(值
为1)。 两个量都为假(值为0)时,结果为假(值为0)。 例如:5>0 || 5>8, 结果也就为真(值为1)。
3)逻辑运算的规则:
(3)非运算! 参与运算量为真(非0)时,结果为假(值为0);参与运
“假”。
C语言中没有逻辑数据型,用 1 表示“真”、0 表示
“假” 。
如: 5>0的值为“真”,即为1。
(a=3)>(b=5)由于3>5不成立,其值为0。
关系表达式是表达式,因此也允许出现嵌套的情况。
如:a>(b>c), a!=(c==d)等。
逻辑运算符和表达式
1.逻辑运算符
C语言中提供了三种逻辑运算符 ! 非运算 && 与运算 || 或运算
语句2
非0 表达式m 0 语句m 语句n
语句n;
if…else if 结构的执行过程
例 如:
void main() { int result;
printf("input your result: "); scanf(“%d”,&result); if (result>=90) printf(“your result is wounderful!\n"); else if(result >=80) printf(" your result is good!\n"); else if(result >=70) printf(" your result is normal!\n"); else if(result >=60) printf(" your result is passed!\n"); else printf(“you’ll take a another test!\n"); }
C语言程序设计第四章
运行情况: 1989↙ 1989is not a leap year.
2000↙
2000 is a leap year.
C程序设计
第五章
选择结构程序设计
例4.6 求
2 ax bx c 0 方程的解
#include "stdio.h" #include "math.h" main() {float a,b,c,d,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The equation"); if (fabs(a)<=1e-6) printf("is not a quadratic"); else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%8.4f\n",-b/(2*a)); else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2); } else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } }
第4章 选择结构程序设计
Xor
非
与
或
异或
Eqv 相等
Imp 蕴含
T
T
F
T
T
F
T
T
T
F
F
F
T
T
F
F
F
T
T
F
T
T
F
T
F
F
T
F
F
F
T
T
8
⑵ 逻辑表达式
用逻辑运算符连接起来的表达式称为逻辑表达式,逻辑
表达式也称为布尔表达式。
例如:① 一元二次方程有实根的条件:a≠0 且
a2-4ac≥0 写成逻辑表达式为:
a<>0 and a^2-
Else 语句块n+1 存在,则执行语句块n+1
23
其流程见图:
24
【例4.4】输入某位学生的百分制成绩,要求输出成绩的等级:
假设90分以上为A等,80-89分为B等,70-79分为C等,60-69
为D等,60分以下为E等。
Private Sub Form_Click()
Dim Score As Integer
4
说明:
[1]、关系运算的两个操作数一般是相同或相容类型的,常对
两个数值、两个字符串、两个日期型数据进行比较。
⑵、如果两个操作数是数值型,则按其大小比较。
例如: 8=9
结果为False
8>7
结果为False
8>=8
结果为True1
[3]、如果两个操作数是字符型,则按字符的ASCII码值从左
到右逐一比较、即首先比较两个字符串的第1个字符,其
End If 其中:[Else
915145-C语言程序设计-第4章 选择结构程序设计
老年人
票价分类 两日联票
65周岁及以上
选择两日联票
• 常见错误
– 条件表示时,“==” 运算符误写作“=”运算符 – 数值0、1、…、9与数字字符’0’、’1’、…、’9’的混淆
4.2.2 逻辑运算
• • • 逻辑运算符
– 逻辑非(!)、逻辑与(&&)和逻辑或(||)
• 逻辑表达式求值方法
– 在逻辑表达式的求值过程中,按其操作数从左至右的 计算顺序,当某个操作数的值可以确定整个逻辑表达 式的值时,其余的操作数不再计算
4.2.3 短路求值
例如:假如有变量定义为 int x,y,z; 求下列表达式执行后,表达式的值和变量的值
序号
① ② ③ ④ ⑤ ⑥
变量初始值
x=y=z=1; x=2,y=0,z=1; x=y=z=1; x=0,y=1,z=2; x=0,y=1,z=2; x=0,y=1,z=2;
单分支 双分支 多分支 综合决策
– 选择控制结构
• 即根据条件进行判断选择执行相应操作的 问题,也称为分支控制结构 • 一般分为单分支、双分支和多分支三种结 构
• 实现的关键
– 判断条件的合法描述 – 选择操作流程的合理设计
4.1 门票价格问题
表4-1 上海迪士尼主题乐园的门票价格表
平日票
370
4.2 条件的表示
微视频:短路求值示例
4.3 单分支结构
• 问题
– 迪士尼门票规则
• 老年人:65周岁以上 平日票:280元,高峰日票:375元
分析 – 需要对条件(年龄大于等于65)进行判断
如果为真,则享受优惠票价 平日票:280元,高峰日票:375元
第4章选择结构程序设计
4.1 选择结构和条件判断
C语言有两种选择语句: (1)if语句,实现两个分支的选择结构 (2)switch语句,实现多分支的选择结构
4.1 选择结构和条件判断
例4.1 在例3.5的基础上对程序进行改进。 题目要求是求 ax2 bx c 0 方程的根。
由键盘输入a,b,c。假设a,b,c的值任意, 并不保证 b2 4ac 0。需要在程序中进行 判别,如果 b2 4ac 0 ,就计算并输出方 程的两个实根,否则就输出“方程无实根” 的信息。
在C的逻辑运算中,以“1”代表“真” ,以“0”代表“假”
4.4 逻辑运算符和逻辑表达式
4.4.1 逻辑运算符及其优先次序 4.4.2 逻辑表达式 4.4.3 逻辑型变量
4.4.1 逻辑运算符及其优先次序
3种逻辑运算符:
&&(逻辑与) ||(逻辑或) !(逻辑非)
&&和||是双目(元)运算符 !是一目(元)运算符 逻辑表达式
解题思路:
只需要做一次比较,然后进行一次交换即可 用if语句实现条件判断 关键是怎样实现两个变量值的互换
互换前 A ★
●B
互换后 A ●
★B
4.2.1 用if语句处理选择结构举例
C★
A★
●B
4.2.1 用if语句处理选择结构举例
C★ A ●★ ● B
4.2.1 用if语句处理选择结构举例
解题思路:可以先用伪代码写出算法:
if a>b,a和b对换 (a是a、b中的小者) if a>c,a和c对换 (a是三者中最小者) if b>c,b和c对换 (b是三者中次小者) 顺序输出a,b,c
#include <stdio.h> int main() { float a,b,c,t;
第4章 选择结构程序设计
2. IF语句的嵌套格式ELSEIF 其语法结构为 If〈条件1〉Then [语句列1] ElseIf〈条件2〉Then
[语句列2]
... [Else [其他语句列]] End If
【例4-10】在例4-9中使用带ElseIf的块If语句来计算出优惠价,只 需将其中命令按钮Command1的单击(Click)事件代码改为 Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x < 1000 Then y=x ElseIf x < 2000 Then y = 0.95 * x ElseIf x < 3000 Then y = 0.9 * x ElseIf x < 5000 Then y = 0.85 * x Else y = 0.08 * x End If Text2.Text = y End Sub
4.3.2 使用IIF函数
还可以使用IIf函数来实现一些比较简单的选择结构。IIf函数的 语法结构为 IIf(〈条件表达式〉,〈真部分〉,〈假部分〉) 【例4-6】例4-3中命令按钮Command1的单击(Click)事件代码可 以改为
Private Sub Command1_Click()
Dim x As Single, y As Single x = Val(Text1.Text) y = IIf(x >= 0, 1 + x, 1 – 2 * x) Text2.Text = y
4.4 多分支条件选择语句SELECT CASE
4.4.1 SELECT CASE结构与语法 4.4.2 SELECT CASE结构的应用 4.5 使用计时器控件 4.5.1 设计一个电子表 4.5.2 设计一个计时器 4.5.3 设计一个流动字幕板 4.6 提供简单选择的控件 4.6.1 选项按钮 4.6.2 复选框
04 选择结构程序设计-文本资料PPT课件
例如:if(x>y) printf(“%d”,x);
Y
执行语句
if (Number1>=Number2) Number1= Number2;
2、if(表达式) { 语句1; 语句2; 语句3; }
表达式值为真
N
Y 执行语句1
执行语句2
执行语句3
02.11.2020
15
if (Number1< Number2)
判断闰年的条件可以用一个逻辑表达式表示: (year%4==0 && year%100!=0) || year%400==0
表达式为“真”,闰年条件成立,是闰年,否则非闰年。
02.11.2020
14
4.4 if语句 和 switch语句
4.4.1 if语句
N
1、if(表达式) 语句;
表达式 值为真
}ห้องสมุดไป่ตู้
02.11.2020
02.11.2020
17
main()
{ float weight,pay; printf("Please input the weight:"); scanf("%f",&weight); if (weight>=10) pay=weight*6.5;
else pay=weight*8.5;
printf("You should pay %f yuans\n",pay);
•逻辑表达式的 值 是一个 逻辑量 “真”或“假”。
❖C语言编译系统在给出逻辑运算结果时,以1代表“真”,以0代表“假”, ❖但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”
第4章 C语言选择结构程序设计
《 C语言程序设计》
流程图
真 (非0) 表达式
假(0)
语句1
语句2
《 C语言程序设计》
例4.1
【例4.1】试用if…else语句编写程序,判断学生成绩 是否合格。
判断方法: ①如果成绩大于等于60,输出及格 ②否则输出成绩不及格
《 C语言程序设计》
4.2 if语句 if语句
C语言中if条件语句有三种结构形式,分别是: if结构(单分支结构) if if-else if-else结构(双分支结构) if-else-if结构 (多分支结构) if-else-if
《 C语言程序设计》
例4.5 设计一个应用程序,判断某一年是否为闰年
判断方法: ①如果该年能被4整除而不能被100整除,则为闰年; ②或者能被400整除也是闰年。 如: 1996年、2000年是闰年 1996年 2000年是闰年
1998年 1900年不是闰年 1998年、1900年不是闰年
逻辑表达式为: year%4==0 && year%100!=0 || year%400==0
4.4 条件运算符和条件表达式
条件运算符: 1、条件运算符:?:是C语言中惟一的一个三 目运算符。 一般形式为: 2、一般形式为: 表达式1 ? 表达式2 : 表达式3 3、操作过程:如果表达式1成立,则表达式2的 操作过程: 值就是此条件表达式的值;否则,表达式3 的值是此条件表达式的值。
《 C语言程序设计》
《 C语言程序设计》
4.2.2 if-else结构 if-else结构
1、格式: if(条件表达式 语句1 条件表达式) if(条件表达式) 语句1; 真 (非0) else 语句2; 语句 ; 语句1 2、执行过程:
C语言程序设计教程:选择结构程序设计
4.2 switch语句
(5) case后面的语句块可以是一条语句或多条语句,也可 是空语句,但不需要用大括号括起来。
(6) 当case后面常量表达式与switch后面的表达式均不匹 配时,则执行default后面的语句块,default可以放在程序的 任何位置,不一定要位于最后。
(7) 多个case可以共用一个语句块。 例如: switch(n)
注意:当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。 因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。
15
4.1.1 if语句的三种形式
思考:若将例4.4中程序改为以下两种写法,结果分别会如何?
程序段一如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=90)
4.1.1 if语句的三种形式
程序段二如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=60)
printf("及格!\n "); else if(score>=70)
9
4.1.1 if语句的三种形式
2. 双分支选择结构
双分支结构语法的一般格式为:
if(表达式)
{
语句块1;
}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章选择结构程序设计一. 选择题(1)已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是( )。
A)isupper(c)B)'A'<=c<='Z'C)'A'<=c&&c<='Z'D)c<=('z'-32)&&('a'-32) <=c(2)以下选项中,当x为大于1的奇数时,值为0的表达式是( )。
A)x%2==1B)x/2C)x%2!=0D)x%2==0(3)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。
A)1B)0C)2D)不知道a的值,不能确定(4)执行以下程序段后,w的值为( )。
int w='A',x=14,y=15;w=((x‖y)&&(w<'a'));A)-1B)NULLC)1D)0(5)当变量c的值不为2、4、6时,值也为"真"的表达式是( )。
A)(c==2)||(c==4)||(c==6)B)(c>=2&&c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)(6)已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是( )。
A)kk>='A'&& kk<='Z'B)!(kk>='A'||kk<='Z')C)(kk+32) >='a'&&(kk+32)<='Z'D)isalpha(kk)&&(kk<91)(7)有如下程序段:int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'b');执行该程序段后,x的值为( )。
A)trueB)falseC)0D)1(8)判断char型变量c1是否为大写字母的正确表达式是( )。
A) 'A'<=c1<='Z'B)(c1>=A)&&(c1<=Z)C)('A'>=c1)‖('Z'<=c1)D)(c1>='A')&&(c1<='Z')(9) 以下是if语句的基本形式:if(表达式)语句其中"表达式"( )。
A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(10) 有以下程序:#include<stdio.h>main(){ int x;scanf("%d",&x);if(x<=3); elseif(x!=10) printf("%d\n",x);}程序运行时,输入的值在哪个范围才会有输出结果( )。
A)不等于10的整数B)大于3且不等于10的整数C)大于3或等于10的整数D)小于3的整数(11)有以下程序段:int a,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);程序的输出结果是( )。
A)a=10 b=50 c=10B)a=10 b=50 c=30C)a=10 b=30 c=10D)a=50 b=30 c=50(12)若变量已正确定义,有以下程序段:int a=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是( )。
A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7(13) 有以下计算公式:若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是( )。
A)if(x>=0)y=sqrt(x);else y=sqrt(-x);B)y=sqrt(x);if(x<0)y=sqrt(-x);C)if(x>=0)y=sqrt(x);if(x<0)y=sqrt(-x);D)y=sqrt(x>=0?x:-x);(14)若执行下面的程序时,从键盘输入5和2,则输出结果是( )。
main(){ int a,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;else k=b%a;printf("%d\n ",k); }A)5B)3C)2D)0(15)有以下程序:#include <stdio.h >main(){ int x=1,y=0;if(!x)y++;else if(x==0)if(x)y+=2;else y+=3;printf("%d",y);}程序运行后的输出结果是( )。
A)3B)2C)1D)0(16) 有以下程序:#include < stdio.h >main(){ int a=1,b=2,c=3,d=0;if(a==l && b++==2)if(b!=2||c--!=3)printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是( )。
A)1,2,3B)1,3,2C)l,3,3D)3,2,1(17)有以下程序:#include <stdio.h >main(){ int x=1,y=2,z=3;if(x >y)if(y<z)printf("%d",++z);else printf("%d",++y);printf("%d\n",x++);}程序的运行结果是( )。
A)331B)41C)2D)1(18)下列程序的运行结果是( )。
#include "stdio.h"main(){ int x=-9,y=5,z=8;if(x<y)if(y<0)z=0;else z+=1;printf("%d\n",z);}A)6B)7C)8D)9(19)下列函数的运行结果是( )。
main(){ int i=2,p;int j,k;j=I;k=++I;p=f(j,k);printf("%d",p); }int f(int a,int b){ int c;if(a>b)c=1;else if(a==b)c=0;else c=-1;return?; }A)-1B)1C)2D)编译出错,无法运行(20)有如下程序:main(){ float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是( )。
A)0.000000B)0.250000C)0.500000D)1.000000(21)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是( )。
A)if((a>b)&&(b>c))k=1;else k=0;B)if((a>b)‖(b>c))k=1;else k=0;C)if(a<=b)k=0;else if(b<=c)k=1;D)if(a>b)k=1;else if(b>c)k=1;else k=0;(22) 设有条件表达式:(EXP)?i++:j--,则以下表达式中与(EXP)完全等价的是( )。
A)(EXP==0)B)(EXP!=0)C)(EXP==1)D)(EXP!=1)(23)若有定义语句int a,b;double x;,则下列选项中没有错误的是( )。
A) switch(x%2){ case 0:a++;break;case 1:b++;break;default:a++;b++;}B)switch((int)x/2.0){ case 0:a++;break;case 1:b++;break;default:a++;b++;}C)switch((int)x%2){ case 0:a++;break;case 1:b++;break;default:a++;b++;}D)switch((int)x%2){ case 0.0:a++;break;case 1.0:b++;break;default:a++;b++;}(24)以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是( )。
A)switch(a){ case 1:a=b;break;default:a++;}B)switch(a==1){ case 0:a=b;break;case 1:a++;}C)switch(a){ default:a++;break;case 1:a=b;}D)switch(a==1){ case 1:a=b;break;case 0:a++;}(25)有以下程序:#include<stdio.h >main(){ intx=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0: a++; break;case 1: b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是( )。
A)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=1(26)若有定义float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是( )。