几个C语言选择结构小问题,请高手指教

1.#include<stdio.h>main(){inta=100;if(a>100)printf("%d\n",a>100);elseprintf("%d\n",a<... 1.
#include <stdio.h>
main()
{int a=100;
if(a>100) printf("%d\n",a>100);
else printf("%d\n",a<=100);
}
2.
当a=1,b=2,c=3时,以下if语句执行后,a,b,c中的值分别为___
if(a>c)
b=a;a=c;c=b;
3.若变量已正确定义,
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("*");break;
default:printf("#");
}
}
输出结果是?

答案并不重要,请说一下过程和原因,谢谢!
展开
 我来答
daiye881219
推荐于2016-01-11
知道答主
回答量:26
采纳率:0%
帮助的人:10.6万
展开全部
1.
#include <stdio.h>
main()
{int a=100;
if(a>100) printf("%d\n",a>100);
else printf("%d\n",a<=100);
}
这段程序代码的功能是进行一个判断,首先对整型变量a赋值为100,之后进行判断,经过判断a并不满足if语句中的条件,所以执行else语句,在printf语句中,是将a<=100这个表达式的值(1)输出,所以本程序的运行结果是:
1
注意:有回车换行
2.
当a=1,b=2,c=3时,以下if语句执行后,a,b,c中的值分别为___
if(a>c)
b=a;a=c;c=b;
根据这个程序的运行,首先对a、b、c分别赋值1、2、3,在进行了if语句后,a并不大于c,所以直接跳过b=a这条语句转而执行a=c;c=b,所以最终的结果是:
a=3,b=2,c=2
3.若变量已正确定义,
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("*");break;
default:printf("#");
}
}
这段程序主要考察的是对switch这种分支判断语句的掌握,主要的要点在于:在switch语句的执行过程中,对满足的case语句执行,如果在case语句后没有break语句,则会顺序执行至switch语句结束或下一个case的break,只要你明白了这一点,那么这个程序就很简单了。
首先,对x进行判断,x=0则执行case 0语句,而在switch(y==2)中括号内的值为1,所以又执行case 1,输出了一个"*"之后,遇到break跳出switch语句,进入外层……等等
这样就能得出这一段程序代码的运行结果:
*#
伊人结果难u
2008-08-26 · TA获得超过1899个赞
知道大有可为答主
回答量:2501
采纳率:0%
帮助的人:2228万
展开全部
#include <stdio.h>
main()
{int a=100;
if(a>100) //条件为假不执行
printf("%d\n",a>100);
else printf("%d\n",a<=100); //else 被执行,a,<=100为真,
输出1,
}
2.
当a=1,b=2,c=3时,以下if语句执行后,a,b,c中的值分别为___
if(a>c) //条件为假,不执行,仍为原值.
b=a;a=c;c=b;

3.若变量已正确定义,
x=0;y=2;z=3;
switch(x)
{case 0:
switch(y==2) //条件为真,值为1
{
case 1:printf("*");break;//这句被执行
case 2:printf("%");break;
}
case 1:switch(z)
{case 1:printf("$");
case 2:printf("*");break;
default:printf("#");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_迷雾森林
2008-08-26 · 超过18用户采纳过TA的回答
知道答主
回答量:148
采纳率:0%
帮助的人:0
展开全部
1、输出a<=100 因为a=100 所以if中的条件a>100不成立 不执行if后面的语句 执行else语句 即:打印出a<=100

2、a b c的值不变 因为a=1 c=3 a>c不成立 所以不执行下面的if语句 所以a b c 的值不发生改变

3、输出结果是 *# 因为x=0 所以最开始执行case 0 又因为y==2成立 即为真值1 所以执行下面的case 1 打印出*
因为上一个语句的case 0后面没有break语句 所以将会接着执行下面的case 1 z=3 所以执行default 打印出#
所以最后结果是*#
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式