若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。 w=2,x=3,y=4,z=5; m=(w<x)

题目
单选题
若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。 w=2,x=3,y=4,z=5; m=(w<x)w:x; m=(m<z)m:z; m=(m<y)m:y;
A

2

B

3

C

5

D

4

参考答案和解析
正确答案: D
解析: 条件表达式“ab:c”的含义是:当a为真时,其值等于表达式b的值,当a为假时,其值等于表达式c的值。 表达式运算过程:第1个表达式:w-2<x=3为真,所以返回w的值,即m=w=2;第2个表达式;m-2<z=5为真,所以返回m的值,即m=2;第3个表达式;w=2<y=4为真,所以返回m的值,即m=2。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序: void f(int v,int w) { int t; t=v;V=W;W=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d<%d\n",x,y,Z); } 执行后输出结果是( )。

A.1,2,3

B.3,1,2

C.1,3,2

D.2,3,1


正确答案:C
解析:C语言规定else总是和离它最近的if语句配对。分析可以知道,。函数f()作用是让形参v和形参w的值交换。在主函数中首先定义了3个变量x、y和z。然后再执行下面的if-else语句。由程序可以看出第一个else和第一个if搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x、y、z传给形参v和w,以后行参和实参再无联系,故通过if语句调用f()函数后,x、y和z的值并没有改变。因此最后输出的x、y和z的值为1、3和2,所以,4个选项中选项C符合题意。

第2题:

假定w、x、y、m均为int型变量,则执行下列的语句后,m的值是( )。 w=6,x=4,y=3; m=(w<x)?W:X; m=(m<y)?m:y;

A.3

B.4

C.5

D.6


正确答案:A
解析: 条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值,当a为假时,其值等于表达式c的值。第一个表达式:w=6x=4为假,所以返回x的值,即m=x=4;第二个表达式:m=4y=3为假,所以返回y的值,即m=y=3。

第3题:

若m,x,y,均为Integer型变量,则执行下面语句后m值是()m=1:X=2:Y=3m=IIf(X>Y,X+Y,X-Y)()

A.-1

B.0

C.1

D.2


正确答案:A

第4题:

设x、y、z、t均为int型变量,则执行以下语句后,t的值是 ( ) x=y=z=l; t=+ + x | | + + y &&am

设x、y、z、t均为int型变量,则执行以下语句后,t的值是 ( ) x=y=z=l; t=+ + x | | + + y && + + z;

A.不定值

B.2

C.1

D.0


正确答案:C

第5题:

假定w、x、y、z、m均为int型变量,有如下程序段:

w=l;x=2;y=3;z=4;

m=(W<x)?w:x;

m=(m<y)?m:y;

m=(m<2)?m:z;

则该程序运行后,m的值是【 】。


正确答案:√
1 解析:此题考查条件表达式的运用。第1条语句执行后,变量m的值为1。第2条语句执行后,变量m的值为1。第3条语句执行后,变量m的值为1。

第6题:

若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是( )

w=2,x=3,y=4,z=5;

m=(w<x)?w:x;

m=(m<z)?m:z;

m=(m<y)?m:y;

A.2

B.3

C.5

D.4


正确答案:A
解析:条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值;当a为假时,其值等于表达式c的值。表达式运算过程:第1个表达式:w=2x=3为真,所以返回w的值,即m=w=2:第2个表达式:m=2z=5为真,所以返回m的值,即m=2;第3个表达式:w=2y=4为真,所以返回m的值,即m=2。

第7题:

下面程序段的正确输出是

int w=4,x=3,y=2,z=1;

cout<<(w<x? w:z<y? z:x)<<end1;

A.0

B.1

C.2

D.3


正确答案:B
解析:本题为表达式作为变量进行输出,而且表达式为两个三目表达式的嵌套,条件运算术的结合性为向右结合。可以正确得出答案为B。

第8题:

假定w、x、y、z、m均为血型变量,有如下程序段:

w=1;x=2;y=3;z=4;

m=(W<X)?w:X;

m=(m<y)?m:y;

m=(m<z)?m:z;

则该程序运行后,m的值是【 】。


正确答案:√
1 解析:此题考核条件表达式的运用。第1条语句执行后,变量m的值为1。第2条语句执行后,变量m的值为1。第3条语句执行后,变量m的值为1。

第9题:

有以下程序:include void f(int v, int w){int t; t=v; v=w; w=t;}main(){int x=1,y=3

有以下程序: #include <stdio.h> void f(int v, int w) { int t; t=v; v=w; w=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后的输出结果( )。

A.1,2,3

B.3,1,2

C.1,3,2

D.2,3,1


正确答案:C
解析:程序中if语句的条件只有y>z为真,所以执行f(y,z)。函数f的功能是交换两形参的值,但由于实参和形参都是一般变量,因此形参变量值的交换不能影响实参的值,main函数中的y和z并来互换,因此输出结果为:1,3,2。

第10题:

若x、y、z、m均为int型变量,则执行下面语句后m的值是( )。 m=1; x=2; y=3; m=(m<x) ? m : x; m=(m<y) ? m : y; m=(m<y) ? m : z;

A.1

B.2

C.3

D.4


正确答案:A
解析:?:运算符首先执行?之前的表达式,如果表达式的值为真,则返回?和:之间的表达式的值,否则返回:之后的表达式的值。本题中m比x和y都要小,所以,3个表达式都没有改变m的值,故应该选择A。