c语言switch

下列程序的运行结果是_____。
#include ”stdio.h” main()
{
int k; k=3;
switch(k)
{
case 1: printf(”%d\n”, k++);
case 2: printf(”%d\n”, k++);
case 3: printf(”%d\n”, k++);
case 4: printf(”%d\n”, k++);
break;
default: printf(”Full!\n”);
}
}
A、3 B、4 C、3 4 D、4 4

第1个回答  2013-06-25
#include ”stdio.h” 
main()
{
   int k;   k=3;   
   switch(k)   
  {
   case 1: printf(”%d\n”, k++);    
   case 2: printf(”%d\n”, k++);    
   case 3: printf(”%d\n”, k++);    
   case 4: printf(”%d\n”, k++);            
   break;     
   default: printf(”Full!\n”);   
  } 
}

switch结构是顺序执行的,除非break,首先这里k=3,进入case 3,打印3,然后k++,k=4

由于这里没有break,所以顺序执行case 4,打印4,然后break


C

第2个回答  2013-06-25
switch的执行:

1、先执行()中的表达式,看看值是多少

2、然后遍历整个switch语句体,看看哪个case后面的标号跟()中的值相等,或者说做匹配
一旦匹配成功,从该位置起,语句体中所有语句逐条逐句依次执行,直到遇到break或者语句体结束

3、匹配失败的话,回到语句体开头,找default,找到的话,从该位置起,语句体中所有语句逐条逐句依次执行,直到遇到break或者语句体结束

4、没找到的话,就什么都不做

就这个,结合自加自减的知识点,就知道了,选C
第3个回答  2013-06-25
选择c
k = 3;
直接跳转至
case 3
k++先打印k的值是3,再自增,
接着执行case 4
同理,先打印k值是4,再自增。
第4个回答  2013-06-25
答案是C,原因是开始k=3,则 跳转到 case 3。 ++右置为先操作后变化值。所以 为 3,4本回答被提问者采纳
第5个回答  2013-06-25
C
第一个输出时3因为++在后没有break执行case 4输出4。
相似回答