c语言选择结构问题!

2025-03-22 17:36:00
推荐回答(4个)
回答1:

1.
#include
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语句,进入外层……等等
这样就能得出这一段程序代码的运行结果:
*#

回答2:

B为0,因为,上面
{(x&0xff)&&(z>'a')}
是一个布尔运算表达式.
因为,
'a'
=
97,z='B'=66,
所以
66>97运行结果为假.即返回
0,
在C语言中0为假,非0为真.
又因为
(x&0xff)&&(z>'a')
是与操作就是,当两个同时为真时才为真,
有一个为假就为假了.虽然左边的部分
(x&0xff)运算结果为真,
但是(z>'a')运算结果为假.所以
总的表达式为假,所以总的布尔表达式返回0.
两个大括号,只是起到
便于阅读的作用.或划分作用范围的作用.在这里可以省去.
还有不明白的地方也可以问我...

回答3:

switch语句是c语言中的一个多项选择的语句,其用法是对switch后面括号里运算所得的值进行case后的匹配,并执行相关语句,遇到break语句,则跳出后续case语句,完成整个switch语句的执行,然后从
“}”后面的语句开始执行,即执行了case
0:m++;break;后,执行printf("%d\n",m);,要想输出3,把
case
0:m++;
break;}}
后面的两个大括号之一移到case
1:m++;之后即可,简单地说就是把两个switch语句搞成并列的。
还是大一学的,都快忘了,你可以参考下

回答4:

0
B=(1)
&&
(2)
看2表达式
z>'a'
由于z='B'
,
'B'好像是66,'a'是97,我要没记错的话,反正大写都比小写的小.
所以z>'a'这个表达式是假,即为0
那么(1)
&&
(2)
真与假还是假(任意数&&0后均为0),就是0