37、设有以下类和对象的定义:class A {public: int k; }; A x1,x2,*p1,*p2; 则下面针对成员变量k的引用,正确的是()。
A.x1->k=1;
B.x2.k=2;
C.p1.k=3;
D.(*p2)->k=4;
第1题:
设有以下类和对象的定义: 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
第2题:
若类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();
第3题:
若类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.return i;
D.void make()
第4题:
设有以下程序:
include<iostream>
using namespace std;
int main()
{
int a,b,k:4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
cout<<a<<b<<end1;
return 0;
}
执行该程序后,a的值为【 】,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.return i;
D.void make()
第6题:
有如下类声明: class MyBASE{ int k; public: void set(int n){k=n;} int get( )const{return k;} }; class MyDERIVED:protected MyBASE{ protected: intj; public: void set(int m,int n){MyBASE::set(m);j=n;} int get( )const{return MyBASE::get( )+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是
A.4
B.3
C.2
D.1
第7题:
设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A.k=*p1+*p2
B.p2=k;
C.p1=p2;
D.k=*p1*(*p2);
第8题:
下面是类MyClass的定义,对定义中各语句描述正确的是( )。 class MyClass { private: int x,y, z; public: void MyClass(int A) { x=a; } //① int f(int a, int B) //② { x=a; y=b; } int f(int a,
A.语句①是类MyClass 的构造函数的定义
B.语句②和③实现类成员函数的重载
C.语句④实现对类成员变量x的更新操作
D.语句①、②、③和④都不正确
第9题:
若类A和类B的定义如下: class A { public: int i,j; void get(); }; class B:A{ int i, j; protected; int k; public: void make(); }; void B: :make()(k=i*j;} 则其中 ______ 是非法的表达式。
A.void get();
B.int k;
C.void make();
D.k=i*j;
第10题:
已知类X的定义如下,为了实现将对象成员k的值修改为678,下面的哪条语句是正确的 ______。 class X{ private: int k; public: K(int n){k=n;} set(int n){k=m;} }; void fun(){ X a(10),*p=&a; ______ }
A.p->set(678);
B.X(678):
C.p->k=678;
D.p.set(678);
第11题:
若有以下程序: #include<iOStream> using namespaces std; class A { public: A(){} A(int i) { x1=i; } void dispa() { cout<<"X1="<<x1<<",": } private; int x1; }; class B:public A { public: B(){} B(int i):A(i+10) { x2=i; } void dispb() { dispa(); cout<<"x2="<<x2<<end1; } private: int x2; }; . int main() { B b(2); b.dispb() return 0; } 程序运行后的输出结果是( )。
A.x1=10,x2=2
B.x1=12,x2=10
C.x1=12,x2=2
D.x1=2,x2=2
第12题:
A. 3
B. 4
C.5
D.6
E.7
第13题:
( 29 )已知类 MyClass 声明如下:
class MyClass{
int n;
public;
MyClass ( int k ) : n ( k ) {}
int getValue () const{return n;}
};
在下列数组定义中正确的是
A ) MyClass x1[2];
B ) MyClass x2[2]={new MyClass ( 1 ) , new MyClass ( 2 ) };
C ) MyClass *x3[2];
D ) MyClass *x4[2]={MyClass ( 1 ) , MyClass ( 2 ) };
第14题:
有如下类声明: class MyBASE { int k: public; void set(int n){k=n;} int get() const{return k;} }; class MyDERIVED: protected MyBASE { protected: int j; public: void set(int m, int n){MyBASE::set(m);j=n;} int get() const{return MyBASE::get()+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是( )。
A.4
B.3
C.2
D.1
第15题:
对下面程序描述正确的是( )。 #include < iostream > using namespace std; class A { private: int i; public: class B { private: int j; protected: int k; int fun1 ( ); } MyB; int fun2 ( ); }
A.定义类B的对象的语句是: A::B b;
B.类A的成员函数fun2()可以用MyB.j的方式访问类B的私有成员j。
C.类A的成员函数fun2()可以用MyB.k的方式访问类B的保护成员k。
D.类B的成员函数fun1()可以直接访问类A的私有成员i。
第16题:
有如下类声明: class MyBASE{ int k; public: void set(iht n){k=n;} int get()coast{return k;} }; class MyDERIVED:pnoted My BASE { protected: int j; public: void set(int m,int n){MyBASE::set(m);j=n;} int get()const{return MyBASE::get()+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是
A.4
B.3
C.2
D.1
第17题:
若类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();
第18题:
若类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.return i;
D.void make()
第19题:
设p1和p2是指向一个血型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A.k=*p1+*p2
B.p2=k;
C.p1=p2;
D.k=*p1*(*p2);
第20题:
设有以下类和对象的定义: ClaSSA {public: intm; }; Ak1,k2,*p1,*p2; 则下面针对成员变量m的引用,错误的是( )。
A.k1.m=1
B.k2→m=2
C.p1→m=3
D.(*p2).m=4
第21题:
若类A和类B的定义如下: class A { int i,j; public: void get(); //… } ; class B:A//默认为私有派生 { int k; public: void make(); //… }; void B::make() { k=i*j; } 则上述定义中, ( )是非法的表达式。
A.void get();
B.int k;
C.void make();
D.k=i*j;
第22题:
设有以下定义:class person{int num;char name[10];public:void init (int n, char *m);┇};person std [30];则下面叙述中,不正确的是( )。
A.std是一个含有30个元素的对象数组
B.std数组中的每个元素都是person类的对象
C.std数组中的每个元素都有自己的私有变量num和name
D.std数组中的每个元素都有各自的成员函数init
第23题:
A.k=*p1+*p2
B.k=*p1*(*p2)
C.p2=k
D.p1=p2
第24题:
若有类W说明class W{int a;public:voidfConst(int&)const;};,则函数fConst的正确定义是()