工学

单选题设有说明语句:int k=1,m=2;double d=7.3;,以下表达式中错误的是()。A k>=m=kB k++C k%(int)dD d>m>k

题目
单选题
设有说明语句:int k=1,m=2;double d=7.3;,以下表达式中错误的是()。
A

k>=m=k

B

k++

C

k%(int)d

D

d>m>k

参考答案和解析
正确答案: B
解析: 暂无解析
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有定义:int k=1,m=2;float f=7;则下列选项中错误的表达式是( )。

A.k=k>=k

B.-k++

C.k%int(f)

D.k>=f>=m


正确答案:C
解析:在C语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量f进行强制类型转换,正确的写法为k%(int)f。在C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、‖(逻辑“或”)、赋值运算符。根据运算符的优先级与结合性,对于选项A),先计算k>=k的值(为真,即1),再用1对k进行赋值。对于选取项 B,先计算k++的值,再对其取负数。对于选项D),先计算k>=f的值(为假,即0),再用0与m进行比较,故最终结果为0。

第2题:

将下面的语句段(A) 补充完整,使其和语句段(B) 在功能上完全等价。

(a) double s=0.0;

【 】;

int k=0;

do{

s+=d;

k++;

d=1.0/(k*k+1);

}while(【 】);

(b) double s=1.0;

for(int k=1;k<=10;k++) s+=1.0/(k*(k+1));


正确答案:d=1.0 k=10
d=1.0 k=10 解析:本题考核while循环与for循环之间的转换。只要把握住循环的起始条件、结束条件和变量控制,就易解这种类型的题目。

第3题:

设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

A.k++

B.k+=1

C.++k

D.k+1


正确答案:A

第4题:

设有如下变量定义: double a=3.500000;float b=2.5; int m=2,n=3; 则表达式“(float)(m+n)/2+(int)a%(int)b”的值是( )

A.2.5

B.3.5

C.4.5

D.表达式不正确


正确答案:B

第5题:

设有以下定义 int a=0; double b=1.25; char c='A'; #define d 2 则下面语句中错误的是

A.a++;

B.b++;

C.c++;

D.d++;


正确答案:D
解析:本题考核的知识点是在自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2定义了d为常数2,不能在对d进行自加运算.故选项D是个不正确的语句,所以,4个选项中选项D符合题意。

第6题:

设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

A.k++

B.k+=1

C.#NAME?

D.k+1


正确答案:A
解析:凡是表达式都有一个值,即运算结果。k++的表达式值为0,k再进行增1运算;k+=1是赋值表达式,其作用是取k中的值加1后再放到k变量中,即表达式的值为1;++k是先进行k增1运算,表达式的值为1;k+1=0+1,其运算的结果为1。所以选项A中表达式的值与其他三个表达式不同。

第7题:

若有以下类型说明语句char a; int b; float c; double d; 则表达式a*bd-c的结果类型为( )。

A.Float

B.char

C.int

D.double


正确答案:D

第8题:

设有以下类和对象的定义: class A {public: int m; }; A k1,k2,*p1,*p2; 则下面针对成员变量m的引用,错误的是( )。

A.k1.m=1

B.k2->m=2

C.p1->m=3

D.(*p2).m=4


正确答案:B
解析: A*pl,A*p2为指向A类对象的指针,故p1→m=3,(*p2).m=4是正确的。但k2不是指针,k2→m的表示是错误的。

第9题:

设有定义:int k=1,m=2;float f=7;则以下选项中错误的表达式是( )。

A.k=k>=k

B.-k++

C.k%int(f)

D.k>=f>=m


正确答案:C
解析:强制类型转换的一般形式为:(类型名)(表达式),而选项C)中没有给类型名加括号,所以选项C)错误。

第10题:

设有定义语句:double x=2.5, y=4.7;int a=7;那么表达式x+a%3*(int)(x+ y)%2/4的值为【 】。


正确答案:2.5
2.5 解析:本题考核运算符的使用(包括类型、优先级、结合性)。强制类型转换符()将表达式x+y的值转换为int型,那么表达式“a%3*(int) (x+y)%2/4”结果将为整型,计算:7%3*7%2/4的结果为0,而x为double型,所以最后的结果为2.5

更多相关问题