计算机等级考试(二级C语言)

已知:int x= 1,y = 2,z =0,则执行z=x>y?(10+x,10-x):(20+y,20-y)后,z的值为()A、11B、9C、18D、22

题目

已知:int x= 1,y = 2,z =0,则执行z=x>y?(10+x,10-x):(20+y,20-y)后,z的值为()

  • A、11
  • B、9
  • C、18
  • D、22
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

写出执行完下列代码段之后指定变量的值:

boo1 x=true,y=false,z=false;

x=x&&y‖z;

y=x‖y&&z;

z=!(x!=y)‖(y==z),

则 x=false, y=false, z=【 】。


正确答案:真

第2题:

已知:intx=1,y=2,z;则执行z=xy?++x:++y;则z的值为()。

A.1

B.2

C.3

D.4


正确答案:C

第3题:

执行下面程序段后,z值为( )。int x=1,y=2,z=3;z=z/(float)(x/y);

A.编译无法通过

B.6

C.3

D.2


正确答案:A

第4题:

设x,y和z都是int型变量,且x=3,y=4,z=5,则下列表达式中,值为0的表达式是A.x&&y B.x<=y C. x||++y&&y-z D.!(x<y&&!z||1)


正确答案:D
在本题中,定义了三个整型变量x,y,z,并分别赋初值为3,4,5。然后求结果为0的表达式。
选项A中的表达式x&&y,由于在C语言中,有非0即真的定义,即变量x,y的值都不为0,因此表达式的结果不为0。
选项B中的表达式x<=y,由于变量y的值比变量x的值大,因此,该表达式的结果也不为0。
选项C中的表达式x||++y&&y-z,由于运算符&&的优先级较||高,那么本表达式等价于x||(++y&&y-z),在表达式中,首先运算++y,将变量y的值变为5,然后执行y-z,得到结果为0,因此,(++y&&y-z)的运算结果为0,但x为非0值,最终的结果不为0。
选项D中的表达式!(x<y&&!z||1),首先运算!z,结果为0,由此可知x<y&&!z的结果为0,但由于||运算符后有一个1,因此,(x<y&&!z||1)部分的结果为1,而再进行逻辑非运算结果为0。

第5题:

设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

第6题:

设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是( )。 A.xYB.x<=YSX

设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是( )。

A.xY

B.x<=Y

C.x‖y+zy-z

D.!((x<y)!z‖1)


正确答案:D
本题考查逻辑运算符的使用。当“”的两个运算对象都是逻辑l时,表达式返回值才是1;“‖”的两个运算对象至少有一个是逻辑1时,表达式返回值也是l,x<y为1,!z为0,10为1,0‖为1,因此,!l为0。

第7题:

下列函数定义中,会出现编译错误的是

A.max(int x,int y,int *z) { *z=x>y ? x:y; }

B.int max(int x,y) { int z; z=x>y ? x:y; return z; }

C.max(int x,int y) { int z; z=x>y?x:y; return(z); }

D.int max(int x,int y) { return(x>y?x:y); }


正确答案:B
解析:定义函数时,若需要声明形式参数时,则每个形式参数都必须单独声明类型。

第8题:

已知x=5,y=2,z=6。表达式x>y And z>x Or xy的值是()。A.FalseB.TrueC.1D.0

已知x=5,y=2,z=6。表达式x>y And z>x Or x<y And Not z>y的值是( )。

A.False

B.True

C.1

D.0


正确答案:A
解析:此题只有关系运算符和逻辑运算符,应先算关系运算符。所有关系运算符运算过后,上式变成:TrueAndFalseOrFalseAndNotTrue。对于逻辑运算符,应先算Not,再算And,最后算Or。最后的结果是False。

第9题:

下列函数定义中,会出现编译错误的是

A.max(int x,int y,int*z) {*z=x>y?xy;}

B.int max(int x,y) {int z; z=x>y?xy; return z; }

C.max(int x,int y) {int z; z=x>y?xy;return(z); }

D.int max(int x,int y) { return(x>y?xy);}


正确答案:B
解析:本题考核的知识点是函数的定义方法。选项B中在说明形参时,省略了第二个参数的类型,故选项B编译不能通过。

第10题:

已有定义int x=3, y=4, z=5;则表达式“!(x+y)+z-1y+z/2”的值是________。

A.6

B.0

C.2

D.1


正确答案:D