计算机二级

有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是( )。A.a%(int)(x-y)B.a=x!=y;C.(a*y)%bD.y=x+y=x

题目

有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是( )。

A.a%(int)(x-y)

B.a=x!=y;

C.(a*y)%b

D.y=x+y=x

参考答案和解析
正确答案:B
选项中如果x与Y的值相等那么取余时就会有除数为0的情况。C)选项中取余的两个数据都应为整数,不能有一方为实型变量,而a*y的结果为double型。D)选项表达式本身就错误,不能给表达式赋值。所以,本题答案为B)。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设x,y,z 为 int 型变量,且 x=2,y=3 ,则下面表达式中,a的结果为3的是

A.a=x&&y++

B.(a=x)&&y++

C.a=(x&&y++)

D.x&&a=y++


A 解析: y==3,由于y=3所以(y==3)=1,因此x=1。

第2题:

设x,y,z 为 int 型变量,且 x=2,y=3 ,则下面表达式中,a的结果为3的是

A.a=x&&y++

B.(a=x)&&y++

C.a=(x&&y++)

D.x&&(a=y++)


A 解析: y==3,由于y=3所以(y==3)=1,因此x=1。

第3题:

设x为float型变量,y为double型变量,a为int型变量,b为long型变量, c为char型变量,则表达式x+y*a/x+b/y+c的值为()类型。

A.int

B.double

C.char

D.long


double

第4题:

若主函数有变量定义:int x=1 ; double y=2.3 ; 且有合法的函数调用语句f (y , x); 则下列关于函数f的原型声明中一定错误的是 。

A.void f(double, int);

B.int f(int , int);

C.int f(double, double);

D.void f(double, int, int);


void f(double, int, int);

第5题:

有以下定义语句

double a, b; intw; longc;

若各变量已正确赋值,则下列选项中正确的表达式是

A.a=a+b=b++

B.w%(int)a+b)

C.(c+w)%(int)a

D.w=a==b;


正确答案:D
解析:本题中仅选项D为合法的赋值语句,可以解释为w=(a= =b),即把逻辑运算a = =b的结果(真或假,即1或0)赋给整数w。

第6题:

有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是

A.a=a+b=b++

B.w%((int)a+b)

C.(c+w)%(int)a

D.w=a==b;


正确答案:C
解析:选项A中不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=b+(b=b++)才正确;选项B中运算符“%”的对象必须是整型,而在选项B中(int)a+b为double型;选项a,b都为double“==”应该改为“=”。

第7题:

有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是 ______。

A.a=a+b=b++

B.w%((int)a+b)

C.(c+w)%(int)a

D.w=a==b;


正确答案:C
解析:取模运算的操作数必须是整型或长整数类型,因此C正确。

第8题:

有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。

A.a=a+b=b++

B.w%((int)a+b)

C.(c+w)%(int)a

D.w=a==b


正确答案:C
解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。

第9题:

有以下定义:“int a;long b;double X,Y;”,则以下选项中正确的表达式是( )。 A.a%(int x—y)SXB

有以下定义:“int a;long b;double X,Y;”,则以下选项中正确的表达式是( )。

A.a%(int x—y)

B.a=x!=Y;

C.(a*y)%b

D.y=x+y=X


正确答案:D
选项A、C,取模运算符(%)用于计算两个整数相除所得的余数,intx-y与a*y的结果是双精度,因此不能使用取模运算符;选项B,a是属于整型变量,x、Y属于双精度变量,因此不能将x赋值给a。