设有说明int a=1,b=2,k;对表达式ka++==3/2||(b-=a--&&3%2)求值后变量a,b的值分别是多
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/11 09:30:32
设有说明int a=1,b=2,k;对表达式ka++==3/2||(b-=a--&&3%2)求值后变量a,b的值分别是多少,为什么?
表达式给错了,是k=a++==3/2||(b-=a--&&3%2)
表达式给错了,是k=a++==3/2||(b-=a--&&3%2)
![设有说明int a=1,b=2,k;对表达式ka++==3/2||(b-=a--&&3%2)求值后变量a,b的值分别是多](/uploads/image/z/7084076-68-6.jpg?t=%E8%AE%BE%E6%9C%89%E8%AF%B4%E6%98%8Eint+a%3D1%2Cb%3D2%2Ck%3B%E5%AF%B9%E8%A1%A8%E8%BE%BE%E5%BC%8Fka%2B%2B%3D%3D3%2F2%7C%7C%28b-%3Da--%26%263%252%29%E6%B1%82%E5%80%BC%E5%90%8E%E5%8F%98%E9%87%8Fa%2Cb%E7%9A%84%E5%80%BC%E5%88%86%E5%88%AB%E6%98%AF%E5%A4%9A)
结果是a=2;b=2;k=1;
因为a++后,a=2;返回a的初值1跟3/2比较,3/2是int相除结果是int(1);比较结果是1==1;所以||后面的不再执行,k的结果是true即是1;
再问: 为什么要返回a的初值跟3/2比较?
再答: int/int结果是int,所以是1不是1.5,跟3.0/2结果不一样
再问: 哦不,我的意思是为什么不是用a++,就是不用2去比较而用1,即a去比较
再答: 这是后增量,取的是原值,等价a++{i=a;a+=1;return i;}
再答: 跟前增量++a不一样
因为a++后,a=2;返回a的初值1跟3/2比较,3/2是int相除结果是int(1);比较结果是1==1;所以||后面的不再执行,k的结果是true即是1;
再问: 为什么要返回a的初值跟3/2比较?
再答: int/int结果是int,所以是1不是1.5,跟3.0/2结果不一样
再问: 哦不,我的意思是为什么不是用a++,就是不用2去比较而用1,即a去比较
再答: 这是后增量,取的是原值,等价a++{i=a;a+=1;return i;}
再答: 跟前增量++a不一样
设有说明int a=1,b=2,k;对表达式ka++==3/2||(b-=a--&&3%2)求值后变量a,b的值分别是多
设有int a=2,表达式(a1的值是( B ) A.1 B.2 C.4 D.8
设有语句int a=3,b=4 ,c=5 ;则表达式:(a+b )+c-1&&b+c/2 的值为______ ,表达式
设有定义 int a=3 b=4 c=5,求下列表达式的值,在表达式运行后,a b c的值分别是多少?
设有变量定义int a=2,b=4,c=6;则表达式a>b?a:c>d?b:d的值是 ( ) a 2 b 4 c 6 d
设有定义int a[]={0,1,2,3,4},*p;,执行语句p=a+2;后,表达式*p的值为( ) A)1 B)2
设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B ).
设有变量定义 int a=2;则表达式 a+=a*=a%=3的值为
int a=1,b=2,c=3; 执行表达式(a=b+c)||(++b)后a,b,c的值分别是多少啊
设有定义int a=3b=4c=5则以下表达式中,值为0的表达式是:A a&&b;B:a
设有定义:int a=5 ,b=2;以下值为1的表达式是 A b!=a B!(b==a/2) C a!=b‖a>=b D
设有说明int a=0,b=1,c=2;下面表达式的值为1(对于逻辑表达式代表非0)的有 A.a && b B.++a