int a, b, c;
a=b=c=1;
++a|| ++b && ++c;
A) 错误 1 B) 2 2 C) 2 1 D) 1 1
求详解!
为什么只有a的值被修改,b的没被修改?
追答因为||对流程有控制性,
如果||的左表达式成立,就不会对他的右表达式进行计算,
在你的例子中,++a的值已经是2,是非零
那么||已经满足(有一个值是真就满足),所以这时就忽略了右表达式的计算
要仔细看看书,这个知识点,书上都会有的
...c的值分别为( ). int a,b,c; a=b=c=1; --a||--b&&c++;
a,b,c;a=b=c=-1;++a&&++b||++c;后a,b,c值分别为 a是0 b是-1 c是0 因为 ++a&&++b||++c这个逻辑表达式 先计算&& 因为 ++a是0 所以这部分为0 ++b不执行 再计算|| ++c要计算 所以c=0
int a,b,c; a=b=c=1; 执行以下语句后,a,b,c的值分别为多少?
include <stdio.h>int main(){ int a,b,c; \/\/定义三个变量 a=b=c=1; \/\/将三个变量赋值为1 printf("Before statement 1: a=%d, b=%d, c=%d\\n", a, b, c); \/\/输出执行语句前三个变量的值 ++a||++b&&++c; \/\/执行第一个语句 printf("After statement 1: a=%d, b=%d...
c程序中输入: int a,b,c; a=b=c=1; ++a||++b&&++c; 执行后abc的值为什 ...
++a||++b&&++c是逻辑表达式,它的值只有“真”与“假”两种,常用“非零”和“零”来表示。++a||++b&&++c第一个逻辑操作符为||,它是“或”操作,就是说它两边的表达式只要有一边为“真”整个表达式的值就为真。而++a使a为2,这已为“真”了,所以整个表达式的值已经肯定为“真”了,|...
int a,b,c; a=b=c=1; ++a‖(++b &&++c);求a,b值
a\\b\\c初是1 后面的逻辑表达式本来是先算&&再算|| 但是最终还是算||,||中当左边表达式为真时就不会计算右边表达式所以只运算++a,所以结果是a=2,b=1,c=1
...int a,b,c;”,且a=b=c=1,执行if(a++||++b) c++;语句后,b的值是...
不同的地方是++在前,执行完判断先执行自加,++在后,在循环内部语句执行完后再自加,对写到题来说就是,if判断是a,b都是1,执行完后,先执行++b.在执行内部语句c++,最后执行a++,执行完后全部值都为2,b也是2 另外,在输出sprinf中,++在前或在后,都是先执行自加,在输出,...
执行下列语句后,a和b的值分别为(). int a,b; a=1+'a'; b=2+7%-4...
答案是B:98,-60 int a,b;a=1+'a'; \/\/ 字符a的ASCII是97,97加1赋值给a b=2+7%-4-'A'; \/\/字符A的ASCII是65,7除-4取余为3,加2减65为-60,再赋值给b
c语言int a,b,c.a=b=c=1. ++a||++b&&++c. 求a和b的值
结果是a=2,b=1,因为||和&&的优先级相同,||的执行规则是左边的如果为真就不再执行右边的++b,++a之后a=2,不为0,所以为真
...main() {int a,b,c; a=1;b=3;c=5; printf(“%d,%d\\n”,(++a,b++...
结果是3,10啊。这主要是由于自增操作符++前置还是后置决定的,比如说++a,就是先自增再使用,而a++就是说先使用再自增。执行printf(“%d,%d\\n”,(++a,b++),a+b+c)这条语句的过程中,a=2(就是说已经自增了),b=3(还没自增)。等这条语句执行完之后,那么a=2 b=4~...
...{ int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3...
所以,答案是C
...以下语句后b的值为( )。 a=1;b=10; do { b-=a;a++;} while(b--<0...
【答案】:D 当b为10时,执行b-=a,此时b为9,接着b--表达式值为9,b的值为8,大于0,while不成立,退出循环,故选择D选项。