C语言题,以下程序的输出结果是
#include"stdio.h"main(){inta,i;a=0;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:...
#include "stdio.h"
main()
{
int a,i;
a=0;
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
printf("%d\n",a);
}
} 展开
main()
{
int a,i;
a=0;
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
printf("%d\n",a);
}
} 展开
展开全部
#include "stdio.h"
main()
{
int a,i;
a=0;
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2; \*i=13的时候根据switch语句的功能,从这儿开始执行,由于没有break打断因此一下每条语句都再一次执行*\
case 2:a+=3; \*i=2的时候根据switch语句的功能,从这儿开始执行,由于没有break打断因此一下每条语句都一次执行*\
case 1: \*i=1的时候根据switch语句的功能,从这儿开始执行,由于没有break打断因此一下每条语句都一次执行*\
case 2:a+=3; \*i=2的时候根据switch语句的功能,从这儿开始执行,由于没有break打断因此一下每条语句都一次执行*\
default:a+=5; \*i=4的时候根据switch语句的功能, 由于没有找到4标号,所以只执行这一条*\
}
printf("%d\n",a);
}
}
结果是31,我说的只是原理,你可以根据上面别人说的过程就会明白的。
main()
{
int a,i;
a=0;
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2; \*i=13的时候根据switch语句的功能,从这儿开始执行,由于没有break打断因此一下每条语句都再一次执行*\
case 2:a+=3; \*i=2的时候根据switch语句的功能,从这儿开始执行,由于没有break打断因此一下每条语句都一次执行*\
case 1: \*i=1的时候根据switch语句的功能,从这儿开始执行,由于没有break打断因此一下每条语句都一次执行*\
case 2:a+=3; \*i=2的时候根据switch语句的功能,从这儿开始执行,由于没有break打断因此一下每条语句都一次执行*\
default:a+=5; \*i=4的时候根据switch语句的功能, 由于没有找到4标号,所以只执行这一条*\
}
printf("%d\n",a);
}
}
结果是31,我说的只是原理,你可以根据上面别人说的过程就会明白的。
展开全部
#include "stdio.h"
main()
{
int a,i;
a=0;
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
printf("%d\n",a);
}
}
i是1的时候执行a+=3得3再执行a+=5 得8 输出8
i=2的时候执行 a+=3得11再执行a+=5得16 输出16
i=3时执行a+=2得18 a+=3得21再执行a+=5得26 输出26
i=4的时候执行a+=5得31输出31
main()
{
int a,i;
a=0;
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
printf("%d\n",a);
}
}
i是1的时候执行a+=3得3再执行a+=5 得8 输出8
i=2的时候执行 a+=3得11再执行a+=5得16 输出16
i=3时执行a+=2得18 a+=3得21再执行a+=5得26 输出26
i=4的时候执行a+=5得31输出31
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
经过理论分析i=1时,进入程序,执行语句a+=3; 即a=a+3,a=3,再执行a+=5,即a=a+5=3+5=8
然后马上输出结果a=8,你用单步追踪法,也可以知道我的分析没错。按ctrl+f7,打进,a,再按f8一直追踪你要检查的语句
8
第2次,a=8+3=11,再1a+5=11+5=16
16
26
31
剩下的类似,你应该回去再看看switch语句的用法
这很简单,希望能帮到你
然后马上输出结果a=8,你用单步追踪法,也可以知道我的分析没错。按ctrl+f7,打进,a,再按f8一直追踪你要检查的语句
8
第2次,a=8+3=11,再1a+5=11+5=16
16
26
31
剩下的类似,你应该回去再看看switch语句的用法
这很简单,希望能帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据i值不同,每次从相应 case 处开始执行,注意 case 后没有 break; 语句, 因此执行完相应 case 语句后,程序会继续向下执行,直到最后,因而最终结果为 8 16 26 31 所以在编程的时候一定要注意不要遗漏每条 case 语句后面的 break ; 否则会造成错误的结果~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
printf("%d\n",a);
}
switch在for循环里面
switch接受i的值
如果i为0 不执行操作
i为3 执行a+=2;
。。。。。
switch执行完后再接着执行for循环 一共执行4次
i的值依次为 1 2 3 4
switch 每次接受的i的值都不一样 执行的语句也不一样
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
printf("%d\n",a);
}
switch在for循环里面
switch接受i的值
如果i为0 不执行操作
i为3 执行a+=2;
。。。。。
switch执行完后再接着执行for循环 一共执行4次
i的值依次为 1 2 3 4
switch 每次接受的i的值都不一样 执行的语句也不一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询