单选题若有定义:int a=0,b=0,c=0,d=0;以下关于C语言表达式:(++a‖++b)? ++c:++d执行顺序的叙述正确的是( )。A先执行++a,表达式++a的值为1;再执行++b,表达式++b的值为1,由此可确定(++a‖++b)值为1,因此执行++cB先执行++a,表达式++a的值为1,由此可确定(++a‖++b)值为1,因此执行++cC先执行++b,表达式++b的值为1;再执行++a,表达式++a的值为1,由此可确定(++a‖++b)值为1,因此执行++cD先执行++a,++b,++c,++d,使得a,b,c,d的值都为1,由此可确定(++a‖++b)值为1,因此执行++c
单选题
若有定义:int a=0,b=0,c=0,d=0;以下关于C语言表达式:(++a‖++b)? ++c:++d执行顺序的叙述正确的是( )。
A
先执行++a,表达式++a的值为1;再执行++b,表达式++b的值为1,由此可确定(++a‖++b)值为1,因此执行++c
B
先执行++a,表达式++a的值为1,由此可确定(++a‖++b)值为1,因此执行++c
C
先执行++b,表达式++b的值为1;再执行++a,表达式++a的值为1,由此可确定(++a‖++b)值为1,因此执行++c
D
先执行++a,++b,++c,++d,使得a,b,c,d的值都为1,由此可确定(++a‖++b)值为1,因此执行++c
参考解析
解析:
++a表示先将变量a+1,再执行其他操作,逻辑或运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式(++a‖++b)中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2,即++c,B项正确。答案选择B选项。
++a表示先将变量a+1,再执行其他操作,逻辑或运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式(++a‖++b)中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2,即++c,B项正确。答案选择B选项。
相关考题:
若有定义 int x,y; 并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x++) : (y++) 中的条件表达式 (x-y) 等价的是A)(x-y0)B)(x-y0)C)(x-y0||x-y0)D)(x-y==0)
若有定义语句: int a[2][3],*p[3]; ,则以下语句中正确的是A ) p=a;B)p[0]=a; C) p[0]= ,则以下语句中正确的是A ) p=a;B)p[0]=a;C) p[0]=a[1][2];D)p[1]=a;
若要定义一个具有5个元素的整型数组,以下错误的定义语句是( )。A.int a[5]={0;B.int b[]:{0,0,0,0,0};C.int c[2+3];D.int i=5,d[i];
以下对一维数组c进行正确的定义初始化的语句是A.int c[10]=0; B.int c[10]={0}*10; C.int c[1]={0,0,0,0,0,0,0}; D.int c[10]={0};
设有定义: int a=2,b=3,c=4;, 则以下选项中值为0的表达式是A.(!a==1)(!b==0)B.(a 设有定义: int a=2,b=3,c=4;, 则以下选项中值为0的表达式是A.(!a==1)(!b==0)B.(a<b) !c‖1C.a bD.all(b+b)(c-a)
若有定义“int a=5,b=7;”,则表达式a%-(b%2) 运算后,a的值为( )。A.0B.1C.11S 若有定义“int a=5,b=7;”,则表达式a%-(b%2) 运算后,a的值为( )。A.0B.1C.11D.3
若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x—y)?(x++):(y++)中的条件表达式(x—Y)等价的是( )。A.(x—Y01Ix—YO)B.(x—y0)C.(x—Y0)D.(x—Y==0)
若有定义语句:“int x=10;”,则表达式x-=x+x的值为( )。 A.-20B.-l0C.0 若有定义语句:“int x=10;”,则表达式x-=x+x的值为( )。A.-20B.-l0C.0D.10
单选题若有定义:int a=0,b=0,c=0,d=0; 有C语言表达式 (a++ b++)? c++ : d++,以下关于其执行顺序的叙述正确是( )。A先执行a++,表达式a++的值为0,由此即可确定(a++ b++)值为0,因此执行d++B先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ b++)值为0,因此执行d++C先执行a++,表达式a++的值为1;再执行b++,表达式b++的值为1,由此可确定(a++ b++)值为1,因此执行c++D先执行b++,表达式b++的值为1;再执行a++,表达式a++的值为1,由此可确定(a++ b++)值为1,因此执行c++
单选题若有定义:int w[3][5];则以下不能正确表示该数组元素的表达式是( )。A*(w+1)[4]B*(*w+3)C*(*(w+1))D*(w[0][0]+1)