首页 > 网络推广 >  > 

switch语句题目_switch语句选择题

c语言的switch练习题的详解?

关键在 switch(y==2) 里的 表达式 (y==2)的 值 是 几。

switch语句题目_switch语句选择题switch语句题目_switch语句选择题


switch语句题目_switch语句选择题


初始化 y=2; 所以 y==2 的 值 是 逻辑值 “真”。

逻辑值“真”用 1 表示。 switch(y==2) 就是 switch(1) 。

switch(y==2) {} 执行完后 回到 switch(x) 内,

这时 没遇到 break 却遇到 case 1: switch(z) {} ,当然进去了。

====

程序路程:

x=0; switch(x) 进 case 0:

执行 switch(y==2) y==2 是真,真是1,

case 1: 打印 ,

break 跳出 switch(y==2);

进入 switch(x)的 case 1:

进入 switch(z) z是3,进 defult: 打印 #

switch语句用法的两道小题

void main()

{int n='e';

switch(n--)

{default: printf("error ");

case 'a':

case 'b': printf("good "); break;

case 'c': printf("pass ");

case 'd': printf("warn ");

}}

e--=d,所以输出结果有warn,再接着往下执行输出pass,good ,遇到break执行结束。

首先需要了解的是default和case 只是为了找到进入的入口,也就是从什么地方进入

题中的n='e',所以入口在default,会执行printf("error "); 这句

其次需要了解的是进入后只有遇到break;再回跳出switch语句,否则会继续执行下面的代码,直到switch结束,所以题中执行完printf("error ");这句后并没有遇到break;,会继续向下执行printf("good ");执行完这句后遇到了reak;switch就结速了,现在明白了吧,根据你现在理解的再看一下第二题是不是就明白了为什么了呢?

break; 这句话的意义是什么。。

遇到break语句才出去。。不然就一直执行到break语句或者执行完 switch{}

70,n = 'e'(--是在后面执行的) ,此时执行default, 因为它没有break,继续执行,知道'b'break

71一样

求问这道关于Switch语句的c语言的题

这是因为这个switch...case句块的执行顺序是这样的,一开始k=8,在case从句中没有匹配的,所以它会执行defult句块中的内容,因为没有break语句来中断,所以在那之后会继续往下执行case10,case11句块中的内容,直到触底退出,因为这个过程共有3个k+=1语句,所以k被加了3次1,这样k的值就从8变成了11。

因为在这里k的初始值是等于8,进入多分支选择时,在已经列出的常量清单中并没有8,所以就从default,这个入口进入,开始执行,由于执行还一个语句后没有退出语句break;所以就连续三次执行加法语句k+=1;

也就是说,在原值8的基础上连续加了三次1,所以k的值就等于11了。

x=0;y=2;z=3;

switch(x)

{case 0: switch(y=2)

{case 1: printf("");break;

case 2: printf("%");break;}

case 1: switch(z)

{case 1: printf("$");

case 2: printf("");

default: printf("#"); }

}这样处理一下结构就很清楚啦,结果应该是显示。

switch(y=2)相当于switch(1)。switch(x)

{case 0: switch(y=2)

{case 1: printf("");break;

case 2: printf("%");break;}

case 1: switch(z)

{case 1: printf("$");

case 2: printf("");

default: printf("#"); }

}个switch(x)->case0

case0:switch(y=2)注意括号中得到的是bool值,即0或1,这里是1,所以printf(“”)

由于case0没有break;顺序执行下面case1:switch(z),z=3,所以选择default,printf(“#”)。

所以是:C, #

C语言中switch语句用法(做题)!谢谢!

Float machine(float money)switch(money)

{case (money<200) :return money;

case (money>=200&&money<500) :return (0.9money);

case (money>=500&&money<1000) :renturn (0.8money);

case (money>=1000) :renturn (0.75money);

default :return 0;

}return 0;

}

switch( money / 100 ){ case 0: case 1: return money; case 2: case 3: case 4: return money 0.9; case 5: case 6: case 7: case 8: case 9: return mondy 0.8; default: return mondy 0.75;}

你好,这些问题很好解决,常客网里面全部都有的

C语言关于switch语句的一道题目

a=2,,b=1 是正确的,,个switch时 因为x=1;所以运行 case1 后面的语句, 然后遇到第二个switch,,因为y=0,,所以运行case 0 后面的语句 ,所以a++,这时a=1; 因为case 后面语句必须加上break才停止运行,,而个case 1后面 没有 break,,所以他会继续运行 case 2,,这时 a++ ,b++,,所以这时a=2,b=1; 总而言之,,case后面的语句必须加上break才会停止运行,,不然它会一直运行到case n 结束。。

#include

main()

{int x=1,y=0,a=0,b=0;

switch(x)

{case 1:switch(y)

{case 0:a++;break;

case 1:b++;break;

}break; //加上break;

case 2:a++;b++;break;

}printf("a=%d,b=%dn",a,b);

}/结果是a= 1, b=0, case1后面少个break;/

有个switch,判断执行case1,在执行case1中的switch判断执行case1中的case0,a变成1:之后在执行个switch中case2,a变成2,b变成1;在输出;

你的结果是因为没有执行个switch的case2

#include

main()

{int x=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;

}break;(加上break;后结果就是a=1,b=0)

printf("a=%d,b=%dn",a,b);

}

结果是a=2,b=1 case 0:a++;break;中的break是跳出switch(y)

case 1:switch(y)后其实没有break语句,所以 case 2:a++;b++;break;也要执行这样a自加了两次,b自加了一次。

main()

{int x=1,y=0,a=0,b=0;

switch(x)

{case 1:switch(y)

{case 0:a++;break;

case 1:b++;break;

}break;( 在这加上break就是你算的结果了)

case 2:a++;b++;break;

}printf("a=%d,b=%dn",a,b);

}

#include

main()

{int x=1,y=0,a=0,b=0;

switch(x)

{case 1:

switch(y)

{case 0:

a++; //a = 1

break;

case 1:

b++;

break;

} //没有break,所以继续执行 case 2

case 2:

a++; //a = 2

b++; //b = 1

break;

}printf("a=%d,b=%dn",a,b);

}

有关C语言 switch语句的例题讲解

switch case是顺序执行的,只要case成立,没有break,那么会一直顺序执行下去,直到遇到break。所以个case1成立之后开始switch(b<0),但是后面没有遇到break,所以继续执行case0,在case0之后执行switch-case1 遇到了break,这样最外面的switch暂停。

举个例子吧:

int a=0;int b=0;

switch(a)

{case 0:b++;

case 1:b++

case 2:b++;

default :printf("default");

}//执行完毕之后b应该是3

如果没有break语句,那么上一个case执行完了就会接着执行下一个case,而不管case条件是否满足。

这里层switch语句a>0成立,也就是表达式值为1,所以跳转到case 1处,case 1下面的第二层switch语句b<0不成立,表达式值为0,没有符合的case,也没有default,结束,顺序执行层switch语句的case 0(因为case 1没有break), 第二层switch语句条件为c==5成立,表达式值为1,跳转到case 1,输出"#",break跳出第二层switch语句,顺序执行层switch语句的default(仍然是没有break),输出"&"

因为case1后面没有break。就会继续像后面执行。break的作用就是向外一层终止循环。

C语言的switch 因为你的个case 1:没有break

版权声明:本文内容由互联网用户自发贡献。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 836084111@qq.com,本站将立刻删除。