正确答案为A。
考试重点考察点:
1、在C语言中,由&&或||组成的逻辑表达式,在特定的情况下会产生“短路”的现象。在逻辑表达式的求解中,并不是所有的运算对象都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该逻辑运算符。(若“&&”的左边的运算对象的值为0,则不再对右边的运算对象进行运算,直接得出整个表达式的值为0;若“||”的左边的运算对象为1,则不再对右边的运算对象进行运算,直接得出整个表达式的值为1。)
(1)若执行下列语句
a=0;b=1;
c=a++&&(b=6);
各变量的值为:a为1,b为1,c为0,由于(b=6)没被执行到,故b的值不变。
(2)执行语句
a=1;b=1;c=0;
d=--a||b--||(c=b+3);
后,结果:a为0,b为0,c为0,d为1,表达式中的(c=b+3)没有被执行到,c值不变。
2、用C语言正确表示数学意义上的a<b<c,
正确的表示方法是 a<b&&b<c。因为a<b<c在C语言执行中,假定a=8,b=7,c=6,在数学中,a<b<c是不成立的。但是在C语言中,8<7<6会首先首先执行8<7得到0,再接着算0<6,这样就成合法了。所以一定注意C语言考试中这个a<b<c样子的是考试陷阱。
知识点:if语句的三种形式使用;if和else的搭配;嵌套的if语句的使用
重要程度:★★★★
1、if语句的三种形式
1.1 if语句
if只管后面一个分号;要管多个用大括号把多个语句括起来。
程序1:
if(a<b)
{t=a; a=b;b=t;}
--------------------------
程序2:
if(a<b)
t=a; a=b;b=t;
程序1、2注意两者的区别 !!!
图1if语句的流程图
1.2 if-else语句
它的一般格式如下:
if(表达式)
语句1;
else
语句2;
例如:对两数大小的比较,输出大数。用if-else语句实现:
if(x>y)
printf(“%d”,x);
else
printf(“%d”,y);
图2if-else语句的流程图
例1:若有以下程序
main( )
{
int a=5,b=4,c=6,t=0;
if(a<b) {t=a;a=b;b=t;}
if(a<c) t=a;a=c;c=t;
printf("%d %d%d\n",a,b,c);
}
执行后输出结果是

答案:645
分析:程序的第一行在定义a、b、c、t四个变量时初始化了值。接下来,第一个if语句的表达式为:a<b,a变量里存放的是整数5,b变量里存放的是整数4,可以判断该表达式为“假”,那么程序应该跳过if的子句。子句是一条复合语句则{t=a;a=b;b=t;}被跳过。第二个if语句的表达式为:a<c,因为变量a的值为5,变量c的值为6,因此该表达式的值为“真”,执行该if的语句“t=a;”,t的值被赋为5。该if语句执行完成后,还有两个其它的语句“a=c;c=t;”执行后这两条语句后,a的值被赋为6,c的值被赋为5。因此,最后输出a、b、c变量的值应该分别为6、4、5。若将if(a<b) {t=a;a=b;b=t;}改为if(a<b) t=a;a=b;b=t;,请读者自行分析结果。
1.3 if-else-if 语句结构
它的一般格式如下:(只有一个语句被执行)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-72458-2.html
1900对于退休老人来说正常生活肯定没问题的
而且钱可随时转进转出