c语言有关swich的题。
因为a=7,所以第一个switch里面的(a%4)的结果是3,7对4取余是3
c语言switch简单例题_c语言switch语句例题
又因为只有case 0和case 1,但是case 1后面没有break关键字,所以继续执行第二个switch语句。
因为b=6,6对3取余为0。所以进去case 0这个分支,m++,结果为m=2;
然后因为有break语句,整个switch语句结束
输出m的值,m=2
c语言switch题目
第一问就像楼上说的那样类似于一个if语句
是按照Case 'a': case 'A': case 'b': case 'B':
一个个依次判断下来的
下面说第二个问题,类似上面的
switch里面的语句也是顺序执行的,
由于楼主把default语句放在最上面了
所以在编译结束后,如果条件满足就不执行default了
(不满足的话,执行default)
相反,如果将default语句放在最下面(中间没有break)
那么顺序执行时会执行到default语句的
default 是没有那个选择条件时才执行的,当已经执行了一次以后就不会执行了。
关于第1个问题,应该是当输入a,A,b,B中的某一个时,输出good,因为每次只能选 择一个字符,所以当是它们其中的一个时,就输出结果。
你的是循环吗,如果是循环的话应该会输出error
1,
case 'a':
case 'A':
case 'b':
case 'B': printf("good"); break;
只要是'a''A''b''B'四个字符中的其中一个就会执行printf("good");
2,
switch语句没有循环功能,所以只执行了一次,不会执行到default
Case 'a': case 'A': case 'b': case 'B': printf("good"); break;
这条语句它等同于
Case'a':case:'A':printf("good");break;
Case'b':case:'B':printf("good");break;
Swithch(n++)是没有意义的要实现循环就应该是
for()
{Switch()
}这样的形式。
有关C语言 switch语句的例题讲解
格式太
不好了,我给你弄了下很清楚明显了,希望以后一定要注意格式,这样不仅美观,而且对找问题很有帮组:
void
main()
{int
a=2,b=7,c=5;
switch(a>0)
{case
1:
switch(b<0)
//b明显大于0,所以这里的判断b<0得到的结果明显为假,也就是0,而下面的case里面只有1,2所以都不满足
{case
1:printf("@");break;
case
2:printf("!");break;
//上面2个条件都不满足,而后面又没有break等,所以顺序执行下面的语句
}case
0:
//也就是到这里来了
switch(c==5)
//c明显等于5,所以这里得到的结果真,也就是1
{case
0:printf("*");break;
case
1:printf("#");break;
//满足这个条件,然后打印“#”,并break推出
case
2:printf("$");break;
}default:printf("&");
}printf("\n");
}
c语言switch case语句例子是什么?
c语言switch case语句例子是:
#include
int main(void){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday
case 2:printf("Tuesday
case 3:printf("Wednesday
case 4:printf("Thursday
case 5:printf("Friday
case 6:printf("Saturday
case 7:printf("Sunday
default:printf("error
}return 0;
}程序解读:
本程序是要求输入一个数字,输出它对应的星期的英文单词。
注意项:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case后,允许有多个语句,可以不用{}括起来。
3、各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
4、default子句可以省略不写。
求问这道关于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题目找错简单
货物价格s变量应该为浮点类型float;
switch语句中要有default,可对应s>=10000的情况,因此直接令c=s/1000即可;
“1000元以上、5000元以下货物征税2%”,感觉包括1000但不包括5000
因此对应的c为1,2,3,4,那么d=2语句应写在case 4:之后;
最后输出税金的格式为%f,默认是保留小数点后6位,不知道题目有没有其他格式要求
比如对于s<1000、税金为0的情况,是否还要保留小数点后6位
以下修改的代码仍按照%f格式输出,具体改动的地方见注释:
附源码链接: