计算机二级

设有如下的变量定义,以下符合C语言语法的表达式是______。int i=8,k,a,b;unsigned long w=5;double x=1,42,y=5.2;A.a+=a-=(b=4)*(a=3);B.x%(-3);C.a=a*3=2;D.y=float(i);

题目

设有如下的变量定义,以下符合C语言语法的表达式是______。int i=8,k,a,b;unsigned long w=5;double x=1,42,y=5.2;

A.a+=a-=(b=4)*(a=3);

B.x%(-3);

C.a=a*3=2;

D.y=float(i);

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若类A和类B的定义如下:includeclass A{int i,j;public:int geti(){return i;}};class

若类A和类B的定义如下: #include<malloc.h> class A { int i,j; public: int geti() { return i; } }; class B:public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是( )。

A.k=i*j

B.int k;

C.return i;

D.void make();


正确答案:A
解析:因为派生类不能是基类的私有成员i和j(默认情况下,成员的属性为私有),所以表达式k=i*j是非法的。其余的访问权限都是许可的。

第2题:

有以下定义语句: 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符合题意。

第3题:

已知各变量的类型说明如下:

int k,a,b;

unsigned long w=5;

double x=1.42;

则以下不符合C语言语法的表达式是

A.x%(-3)

B.w+=-2

C.k=(a=2,b=3,a+b)

D.a+=a-=(b=4)*(a=3)


正确答案:A

第4题:

设有以下说明和定义:includeVoid main() {typedef union{long i; int k[5]; char

设有以下说明和定义:#include<iostream. h>Void main() {typedef union{long i; int k[5]; char c;}DATE;struct date{iNt cat; DATE cow; double. dog;}too;DATE max;则下列语句的执行结果是( )。cout<<(sizeof(struct date)+sizeof(max))<<end1;}

A.26

B.52

C.18

D.8


正确答案:B

第5题:

若类A和类B的定义如下: class A [ int i,j; public: int geti() { return i; } }; class B:public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是

A.k=i*j

B.int k;

C.retum i;

D.void make()


正确答案:A
解析:本题考核派生类的定义和访问权限。变量i和j都是基类A的私有变量,它们是隐蔽的,在派生类中不能直接访问。

第6题:

若变量已正确定义并赋值,以下符合C++语言语法的表达式是( )。

A.a=b+l

B.a=b=c+2

C.int 18.5%3

D.a=a+7=c+b


正确答案:B
解析: 本题考查C++语言的正确赋值方法。a=b=c+2实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。选项A中包含一个不合法的运算符”:=”;选项C应改为(int)18.5%3,选项D可理解为两个表达式ca+7:c+b和a=a+7,其中第一个是错的,因为C++语言规定赋值号的左边只能是单个变量,不能是表达式戊常量等。

第7题:

若变量a、b、x、i都已正确定义并赋值,则以下符合C语言语法的表达式是( )。A.a+=a-=(b=4)*(a=3)SXB

若变量a、b、x、i都已正确定义并赋值,则以下符合C语言语法的表达式是( )。

A.a+=a-=(b=4)*(a=3)

B.x%(-3);

C.a=a*3=2

D.y=float(i)


正确答案:A
取余运算符%两边都应是正数,赋值语句左边必须是变量,不能是表达式,强制转换语句强制类型应加括号,而非加在变量上。

第8题:

若变量已正确定义并赋值,以下符合C语言语法的表达式是

A.a:=b+1

B.a=b=c+2

C.int 18.5%3

D.a=a+7=c+b


正确答案:B
解析: 选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。

第9题:

已知各变量的类型说明如下则以下不符合C语言语法的表达式是()。

A.x%(-3)

B.w+=-2

C.k=(a=2,b=3,a+b)

D.a+=a-=(b=4)*(a=3)


正确答案:A

第10题:

已知各变量的定义如下 int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C++语言语法的表达式是( )。

A.a+=a-= (b=4)*(a=3)

B.a=a*3+2

C.x%(-3)

D.y=float i


正确答案:A

更多相关问题