#include <stdio.h>
main()
{int s=0,n;
for(n=0;n<3;n++)
{switch(s)
{case 0:
case 1:s+=1;
case 2:s+=2;break;
case 3:s+3;
case 4:s+=4;}
printf("%d\n",s);}}
答案是3,10,14
具体算出来的过程是什么
首先,先熟悉一下switch里常见逻辑
case标签后无break;则向下一个case标签后的语句执行,例如文中case 1:s+=1;没有break;则会继续向下执行case 2的内容。如果是case 4则会跳出。
好,来分析一下,一共3次循环
for(n=0;n<3;n++)第一次循环,s为0,依次执行标签0,1,2 也就是s+=1,s+=2后,得到s为3
第二次循环,s为3,依次执行的标签为3,4 也就是s+3(这步没有对自身赋值,可以忽略),s+=4,后,得到s为7
第三次循环,s为10,无该项,s为7
最终得到3,7,7而不是3,10,14
希望对你有帮助,测试环境为TC2.0与VC6.0,均为此答案
C语言关于for,switch语句的题目,详解。
首先,先熟悉一下switch里常见逻辑 case标签后无break;则向下一个case标签后的语句执行,例如文中case 1:s+=1;没有break;则会继续向下执行case 2的内容。如果是case 4则会跳出。好,来分析一下,一共3次循环 for(n=0;n<3;n++){switch(s){case 0:case 1:s+=1;case 2:s+=2;break;case...
...我是C语言初学者,这有一道switch语句的题,请大家帮帮忙,帮我解答一...
switch (k){ default: c+=k;case 2: c++; break;case 4: c+=2; break;} 这都是for的循环这个知道吧?问题就是你的default: c+=k;后面没有 break 所以k等于1的时候 执行了default: c+=k;c等于1 不会跳出 还会继续执行case 2: c++; break c等于2了 。然后 k等于2 c等于3了。
C语言switch循环题就解答
很简单,for循环里面嵌套一个switch语句,所以我们从for循环开始看 首先k的初值是5,然后每次循环递减1(k--),所以k在6次循环中的取值分别为:5, 4, 3, 2, 1, 0 接下来把这6个值按从左到右的顺序代入switch语句中,就和解方程一样:1、k=5,switch中执行的语句为 case 5:s++;...
c语言中,for循环里嵌套了switch循环,switch循环里有两个结果,一个brea...
在你这个题目中是 switch 语句嵌套在for语句当中!因为break 在包含在switch语句当中的!所以break 跳出的是 switch的多分支结构而不是跳出for 语句 所以for语句是要执行完毕的!你应该去翻翻嵌套使用循环语句方面的东西。
C语言for循环加switch循环?
s[]里面的数都是1或2或3,而switch(s[k])里的case 正好是1,2,3,所以s[]里的数一共有8个,肯定会执行8次switch(s[k]),并且case 1, case 2后面都没有break,所以肯定会执行case 3,所以x[s[k]]++就相当于要嘛 s[1]++ ,要嘛s[2]++,要嘛s[3]++,s[0]则不变还是0,所以...
C语言程序中for循环和switch的用法?
}}void ComputeAverage() { average = sum \/ 5.0; \/\/ 平均成绩\/\/ printf("全班平均成绩为%7.2f\\n", average);}void Sort() { for (j = 0; j < 4; j++) \/\/ 成绩由高到低排序\/\/ for (i = 0; i < 4 - j; i++) if (score[...
C语言 switch语句的问题
解答:1.请问为什么字母要用''括起来 答:因为ch要判断的是字符 2.如果ch=1 那么是执行case '1'还是 case 1 如果是后者的话 为什么数字不用括起来 答:执行case '1'3.假如执行了break语句 是返回第二行重新判断 答:是跳出switch,跳到putchar('*')执行,然后继续执行FOR循环 4.假如执行了...
一道c语言编程题,求教
思路分析:首先建立一个缓冲数组,由于题目要求输入的数据个数不超过两位,所以,数据的位数设为100即可,即BUF[100]; 当检测到输入,(+,-,*,\/)的时候,停止输入,并将前面的树,用求最大最小的算法(查找法)找出其最大值和最小值(这个算法也可以在输入的时候同时操作!),当输入“=”的...
求问这道关于Switch语句的c语言的题
这是因为这个switch...case句块的执行顺序是这样的,一开始k=8,在case从句中没有匹配的,所以它会执行defult句块中的内容,因为没有break语句来中断,所以在那之后会继续往下执行case10,case11句块中的内容,直到触底退出,因为这个过程共有3个k+=1语句,所以k被加了3次1,这样k的值就从8变成了...
一道关于C语言switch的题,不知道怎么理解,希望懂的人赐教
并由第一个case分支开始将其与case后的常量表达式比较当表达式的值与某个case分支的常量表达式相等时,则执行case后的语句,遇到break则跳出,如没有break ,程序会执行到最后自动跳出。default放在什么位置都行,当表达式的值与所有的case分支的常量表达式都不等时,则执行default后的语句!