首页 > 试题广场 >

变量x、a、b的值分别为( )。

[单选题]
已有声明"int x,a=3,b=2;",则执行赋值语句"x=a>b++?a++,b++"后,变量x、a、b的值分别为( )。
  • 3  4  3
  • 3  3   4
  • 3  3   3
  • 4  3  4
推荐
A
x=a>b++?a++:b++; //等号右为三目运算符
1.先比较变量a与b的大小,用于判断a>b++正确与否。
因为a=3,b=2,所以a>b++这个表达式为真;
x=a++,进行判断之后变量b自加,b变为3。
2.x=a++,先赋值,再将变量a自加,即x变为3,a变为4。
因此变量x、a、b的值分别为x=3,a=4,b=3。选A。
运行测试结果如下:


编辑于 2019-12-24 14:21:38 回复(0)
x=a>b++?a++,b++ 挑个毛病,题目中的逗号(,)不应该改成冒号(:)嘛?
发表于 2020-01-12 22:24:30 回复(0)
A。考察的运算符的优先级,对于a++、b++的内部运算过程,先使用后自增。
已知:int x,a=3,b=2
经过:x=a>b++?a++,b++
  1. 三目运算的式子,先比较a>b,返回true,b自增1。
  2. a赋值给x后,a自增1。
  3. x为3,a为4,b为3

发表于 2019-12-23 18:51:39 回复(0)

A。

发表于 2020-02-02 16:37:49 回复(0)
选A
已知int x,a=3,b=2;
应该是考察了两点:
1.b++运算是先赋值再自增
2.运算符的优先级问题
对于x=a>b++?a++,b++中的a>b++,运算优先级为:自增运算>比较运算>赋值运算,所以这个表达式实际上为:x=(a>(b++))?a++,b++
b++运算先赋值再自增,所以和a比较大小的b值还是2,又因为a=3,所以比较结果为真,完成比较大小运算后,b自增1变为3;
在整个赋值语句中,问号前的判断表达式为真,则执行a++,此时执行的语句为x=a++,先赋值x=3,再自增a=4,所以答案为A

编辑于 2019-12-24 15:35:54 回复(0)
答案选A
x=a>b++?a++,b++这行代码中的?前面代表条件,后面代表真,假,如果前面条件为真,则a++,如果假则b++
在java中对变量进行++的时候需要注意是前后顺序,比如int a=1; int b = a++;则先得出b=a,也就是等于1,之后才做了++操作,如果是++a,则b=2
所以题目中的a>b++相应为3>2,那肯定是正确的,所以赋值语句为x=a++;那么相当于x=a;也就是x=3
然后a++  =4;b++  =3;所以结果为x=3,a=4,b=3
发表于 2019-12-23 15:10:47 回复(0)
选A

发表于 2019-12-26 19:57:30 回复(0)
选A
发表于 2019-12-23 14:36:37 回复(0)