int a=1,b=1,c=1,d=1,m=1,n=1;n=(a=2)&&(b=2);

作者&投稿:连古 (若有异议请与网页底部的电邮联系)
设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>~

这是逻辑运算,n的值为2
(m=a>b) 是赋值表达式,若a大于b则m得真,否则m得假。 a=1,b=2, a>b 为假,故 m=假。赋值表达式(m=a>b)为假。m=0。
在逻辑与&&运算中,如果第一个操作数为假,则结果是假,后面的操作数不参与运算,本题中因为第一个操作数(m=a>b)为假,所以第二个操作数(n=c>d)不参加运算,因此n的值不变。

扩展资料:逻辑运算规则:
逻辑变量之间的运算称为逻辑运算。 二进制数1和0在逻辑上可以代表“真”与“假”、“是”与“否”、“有”与“无”。这种具有逻辑属性的变量就称为逻辑变量。
计算机的逻辑运算和算术的逻辑运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算那样有进位或借位的联系。
逻辑运算主要包括三种基本运算:逻辑加法(又称“或”运算)、逻辑乘法(又称“与”运算)和逻辑否定(又称“非”运算)。此外,“ 异或”运算也很有用。

n=2,因为m=(a>b);
解释为:如果a大于b,那么m等于true(即1);否则m等于false(即0);
n=c>d也是这个意思.
再有(m=a>b)&&(n=c>d)首判断a>b是否为真,因为a=1,b=2.所以a>b为假。m=0,接着就不进行
n=c>d。故n的值未改变。估是因为&&的原因。

n=(a=2)&&(b=2);
注意这里a=2和b=2是赋值语句,两个赋值语句逻辑与结果为真。
所以n=1,a=2,b=2


鄂尔多斯市17767718596: c++语言 int a=1,b=1 ,c=1,d=1,x=1,y=1; x=a!=b)&&(y=c!=d); cout<<x<<","<<y; x=0,y=1 为何? -
赏纪欧力: 根据运算符的优先级可以这么看:(x=(a!=b))&&(y=(c!=d)) a!=b不成立,所以是false,x=false,也就是x=0;&&左侧的值为false了,根据&&短路的性质,右侧的表达式不会进行计算,所以y值没有变化

鄂尔多斯市17767718596: int a=0,b=1,c=1,d;执行语句d= -- a‖++b&&--c.求a,b,c,d的值 -
赏纪欧力: 运行结果是:-1,1,1,1 楼上的,在式子中,--a || ++ b && --c; 这是一个布尔条件测试算式,只能是真(1)或假(0) 你可能认为如下是正确的:布尔条件完整测试式子作如下运算:&& 运算高于 || 运算,于是,测试 ++b && --c ++b = 2, -- c = 0 -->...

鄂尔多斯市17767718596: #include<stdio.h> int main(void) { int a,b=1,c=1,d=0; scanf("%d",&a); for(b=1;b<=a;b++) { c*=b; -
赏纪欧力: 如果 循环使用,保留前面运算对后面的影响:int a,b=1,c=1,d=0; do{ scanf("%d",&a); for(b=1;b<=a;b++) { c*=b; d+=c; } printf("%d\n",d); } while (a>=1);=== 如果 循环使用,不 保留前面运算对后面的影响:int a;do{ int b=1,c=1,d=0; scanf("%d",&a); 照抄 ....} while (a>=1);

鄂尔多斯市17767718596: 已有定义语句:int a=0,b=1,c=1,d;,执行语句d= -- a||++b&&--c;后,a -
赏纪欧力: --a a本来就等0 --后就成了 -1 而||或操作从左到右然扣-1为非0所以 非0值||其它 得出 ture 一般就是1 所以 a= -1 d=1其它不会执行 b=1 c=1 不变

鄂尔多斯市17767718596: int a=1,b=1,c=1; a=a+++b+++c; printf("%d",a); 求输出是多少?解释一下原因,谢谢了!!! -
赏纪欧力: int a=b=c=0; printf("%d,%d,%d,%d"a,b,c,a++&&b++||c++); printf是从最后一个参数开始的,a++ a 还当前是0 &&b++ 不会运行了,因为a++是假,那么a++&&b++也就是假了,然后是或上c++ 也是假, 所以,最后一个数是0, a++过一次了,a是1,b没加过是0 c++ 了 是 1

鄂尔多斯市17767718596: 1 - 1/2+……+1/d=sum int a=1,b=1,c=1,d,sum=1; printf("请输入一个数字"); scanf("%d -
赏纪欧力: for (b=a*(1/c);a=(-1)*a;c<=d;c++) 括号中出现了用分号分隔的4项. 而且sum应该是float型,而不是int型.#include <stdio.h>void main(){int i,d;float sum=0.0,a=1.0;printf("请输入一个正整数: ");scanf("%d",&d);for(i=1;i<=d;i++) {a=-a;sum-=a/i;}printf("d=%d\tsum=%.3f",d,sum);}

鄂尔多斯市17767718596: EXCEL中,同一行中用不同字母代替数字,再求和,如何设置(A=1,B=1,C=1,D=0,E=0,F=2,G=2) -
赏纪欧力: 凑个热闹,来个最短的: =SUMPRODUCT(INT(FIND(B2:M2,"DEABCFG")/3))

鄂尔多斯市17767718596: 下列语句的输出结果是 int a=1,b=1,c=1;a=a+++b+++c;printf("%d),a);是什么?元算步骤是什么,告诉我,谢谢了
赏纪欧力: 又是那出的考题? 输出4 一般而言,单目运算符优先级较高,赋值运算符优先级低.算术运算符优先级较高,关系和逻辑运算符优先级较低.多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性 求解a顺序:a=(a++)+(b++)+c为(1++)+(1++)+1=3,而a++运算过后,a再自增1,所以a的值为4

鄂尔多斯市17767718596: 假设a=1,b=1,c=1表达式 d=++a||++b&&++d 运算后,变量a,b,c,d 的值为多少? -
赏纪欧力: a=2,b=1,c=1,d=1||是有一个为真结果为真,而||和&&不是同等优先级的,运算顺序是由左向右,所以当++a运算后判断为真,则结果为真了,不被继续往下运行,此时a=2,其他的都为以看C语言书后的附录,有所有运算符的优先级顺序,看了以后就会懂了,,多看书哦

鄂尔多斯市17767718596: #include<stdio.h> main() {int a=1,b=1,c=1; a=a+++b+++c++; printf("%d,%d,%d",a,b,c);} -
赏纪欧力: a=a+++b+++c++很显然这个表达式里面有运算符加号,所以要先分类, a= a++ + b++ + c++,层次清楚了在从运算规则分解表达式a=a+b+c;a=a+1;b=b+1;c=c+1;所以最后结果为4,2,2

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网