1-1C++程序中,类的构造函数名与类名相同。
(1分)作者张德慧单位西安邮电大学1-1答案正确(1 分)
1-2对象数组生命期结束时,对象数组的每个元素的析构函数并不会都被调用。
(2分)作者黄淑伟单位沈阳师范大学1-2答案正确(2 分)
1-3已知class A中有数据成员int a,如果定义了A的两个对象a1,a2,它们各自的数据成员a的值可以不同.
(5分)作者沙金单位石家庄铁道大学1-3答案正确(5 分)1-5C++程序中,一个类的构造函数可以被重载。
(1分)作者张德慧单位西安邮电大学1-5答案正确(1 分)
1-6C++程序中,一个类的析构函数可以被重载。
(1分)作者张德慧单位西安邮电大学1-6答案正确(1 分)
1-7析构函数的作用主要是释放对象占用的资源。
(1分)作者张德慧单位西安邮电大学1-7答案正确(1 分)
1-8一个类的友元函数可以访问该类的私有成员。
(2分)作者黄淑伟单位沈阳师范大学1-8答案正确(2 分)
1-9this 指针是一个系统预定义的特殊指针,指向当前正在操作的对象。
(2分)作者黄淑伟单位沈阳师范大学1-9答案正确(2 分)
1-10静态成员的特点是不管这个类创建了多少个对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象共享,或者说静态成员为类所有。
(2分)作者黄淑伟单位沈阳师范大学1-10答案正确(2 分)
1-11静态数据成员不能在类中初始化,使用时需要在类体外声明。
(2分)作者黄淑伟单位沈阳师范大学1-11答案正确(2 分)2-1下面程序的运行结果为
#include<iostream.h>class A{
int num;public:
A(int i){num=i;}
A(A &a){num=a.num++;} void print(){cout<<num;}
};void main()
{
A a (1),b(a);
a.print();
b.print();
}
(2分)作者范鹏程单位内蒙古师范大学2-1答案正确(2 分)2-3在下面有关静态成员函数的描述中,正确的是()。
(2分)作者杨雪华单位沈阳师范大学2-3答案正确(2 分)2-5下列关于对象数组的描述中,错误的是()
(2分)作者杨雪华单位沈阳师范大学2-5答案正确(2 分)
2-6下面对于析构函数的描述中,正确的是( )
(2分)作者李志明单位燕山大学2-6答案正确(2 分)2-8以下关于友元的说法哪个是不正确的?
(2分)作者黄淑伟单位沈阳师范大学2-8答案正确(2 分)
2-9假设A是一个类的名字,下面的语句生成几个类A的对象? A *arry[4] ={new A(),NULL,new A()} ;
(2分)作者黄淑伟单位沈阳师范大学2-9答案正确(2 分)
2-10假设A是一个类的名字,下面程序片段,类A会调用析构函数几次? int main(){ A * p = new A[2];
A * p2 = new A;
A a; delete [] p; }
(2分)作者黄淑伟单位沈阳师范大学2-10答案正确(2 分)
2-11关于静态数据成员描述正确的是( ).
(2分)作者黄淑伟单位沈阳师范大学2-11答案正确(2 分)
2-12关于运算符delete的描述中,错误的是( ).
(2分)作者黄淑伟单位沈阳师范大学2-12答案正确(2 分)
2-13关于友元的性质正确的是( )。
(2分)作者黄淑伟单位沈阳师范大学2-13答案正确(2 分)
2-14以下说法正确的是?
(2分)作者黄淑伟单位沈阳师范大学2-14答案正确(2 分)
2-15下列关于静态成员的描述中,错误的是( )
(2分)作者赵晨单位浙江大学2-15答案正确(2 分)
2-16类的实例化是指( )。
(2分)作者陈晓梅单位广东外语外贸大学2-16答案正确(2 分)
2-17关于成员函数特征的描述中,( )是错误的。
(2分)作者陈晓梅单位广东外语外贸大学2-17答案正确(2 分)
2-18设类AA已定义,假设以下语句全部合法,哪些语句会触发调用拷贝构造函数( )。
AA a, b; //1AA c(10, 20); //2AA d(c); //3AA e = d; //4
(2分)作者陈晓梅单位广东外语外贸大学2-18答案正确(2 分)
2-19下列关于构造函数的描述中,错误的是()
(2分)作者李梅莲单位许昌学院2-19答案正确(2 分)
2-20对类的构造函数和析构函数描述正确的是
(2分)作者范鹏程单位内蒙古师范大学2-20答案正确(2 分)
2-21类的析构函数是在什么时候调用的?
(2分)作者范鹏程单位内蒙古师范大学2-21答案正确(2 分)
2-22下列关于构造函数说法不正确的是
(2分)作者范鹏程单位内蒙古师范大学2-22答案正确(2 分)
2-23下列关于构造函数的描述中,错误的是()
(2分)作者范鹏程单位内蒙古师范大学2-23答案正确(2 分)
2-24private访问属性限制对象的成员可以在( ) 中访问。
(2分)作者范鹏程单位内蒙古师范大学2-24答案正确(2 分)
2-25下列特性中,C与C++共有的是( )
(2分)作者范鹏程单位内蒙古师范大学2-25答案正确(2 分)
2-26不能作为函数重载判断依据的是( )
(2分)作者范鹏程单位内蒙古师范大学2-26答案正确(2 分)
2-27C++提供的可有效分配对象空间的运算符是( )
(2分)作者范鹏程单位内蒙古师范大学2-27答案正确(2 分)
2-28下面关于new运算符的描述中错误的是( )
(2分)作者范鹏程单位内蒙古师范大学2-28答案正确(2 分)
2-29不属于类的成员函数的是( ) 。
(2分)作者范鹏程单位内蒙古师范大学2-29答案正确(2 分)
2-30假设MyClass是一个类,则该类的拷贝初始化构造函数的声明语句为( )
(2分)作者范鹏程单位内蒙古师范大学2-30答案正确(2 分)2-32为类提供对外接口的是( )
(2分)作者范鹏程单位内蒙古师范大学2-32答案正确(2 分)
2-33对于任意一个类,析构函数的个数最多为( )
(2分)作者范鹏程单位内蒙古师范大学2-33答案正确(2 分)
2-34若类A的构造函数定义为 A(int aa=1, int bb=0) { a = aa; b = bb; } 则执行:A x(4);后,x.a和x.b的值分别是( )
(2分)作者范鹏程单位内蒙古师范大学2-34答案正确(2 分)
2-35若类A被说明成类B的友元,则( ) 。
(2分)作者范鹏程单位内蒙古师范大学2-35答案正确(2 分)2-37关于类的静态数据成员和静态函数成员,说法错误的是( )
(2分)作者李志明单位燕山大学2-37答案正确(2 分)
2-38静态成员函数没有:
(2分)作者张德慧单位西安邮电大学2-38答案正确(2 分)
2-39下面关于友元的描述中,错误的是:
(2分)作者张德慧单位西安邮电大学2-39答案正确(2 分)
2-40已知类A是类B的友元,类B是类C的友元,则:
(2分)作者张德慧单位西安邮电大学2-40答案正确(2 分)
2-41下列属于类的析构函数特征的是
(2分)作者李廷元单位民用航空飞行学院2-41答案正确(2 分)
2-42建立一个类对象时,系统自动调用
(2分)作者李廷元单位民用航空飞行学院2-42答案正确(2 分)
2-43下列各类函数中,不是类的成员函数的是
(2分)作者李廷元单位民用航空飞行学院2-43答案正确(2 分)
2-44下面对静态数据成员的描述中,正确的是
(2分)作者李廷元单位民用航空飞行学院2-44答案正确(2 分)
2-45下列关于this指针的叙述中,正确的是
(2分)作者李廷元单位民用航空飞行学院2-45答案正确(2 分)
2-46下面程序的输出结果是
#include <iostream>using namespace std;class MyClass {public:
MyClass() {
++count;
}
~MyClass() {
--count;
} static int getCount() { return count;
}private: static int count;
};int MyClass::count = 0;int main() {
MyClass obj; cout << obj.getCount();
MyClass obj2; cout << MyClass::getCount(); cout << obj2.getCount(); return 0;
}
(4分)作者李廷元单位浙江大学2-46答案正确(4 分)
2-47下列关于类定义的说法中,正确的是
(2分)作者李廷元单位民用航空飞行学院2-47答案正确(2 分)
2-48下列关于类和对象的叙述中,错误的是
(2分)作者李廷元单位民用航空飞行学院2-48答案正确(2 分)
2-49以下说法正确的是()。
(2分)作者王秀单位福州大学2-49答案正确(2 分)2-51假如有以下类A:
classA{ public: int func(int a){return a*a;)
};
以下程序片段中不正确的是( )
(2分)作者王秀单位福州大学2-51答案正确(2 分)
2-52以下说法中正确的是
(2分)作者王秀单位福州大学2-52答案正确(2 分)
2-53以下说法正确的是()。
(2分)作者王秀单位福州大学2-53答案正确(2 分)
2-54如果类定义中没有使用 private、protected、或public 关键字,则所有成员( )
(2分)作者王秀单位福州大学2-54答案正确(2 分)
2-55下列函数中,( )不能重载。
(2分)作者何振峰单位福州大学2-55答案正确(2 分)
2-56下列对重载函数的描述中,( )是错误的。
(2分)作者何振峰单位福州大学2-56答案正确(2 分)
2-57在下列关键字中,用以说明类中公有成员的是( )。
(2分)作者余春艳单位福州大学2-57答案正确(2 分)
2-58有关类和对象的说法下列不正确的有( )。
(2分)作者余春艳单位浙江大学2-58答案正确(2 分)
2-59在下面类声明中,关于生成对象不正确的是( )。 class point { public: int x; int y; point(int a,int b) {x=a;y=b;} };
(2分)作者余春艳单位浙江大学2-59答案正确(2 分)2-61以下哪一个不是正确的成员访问属性。
(2分)作者何振峰单位福州大学2-61答案正确(2 分)
2-62类成员的默认访问属性是:
(2分)作者何振峰单位福州大学2-62答案正确(2 分)
2-63所有类都应该有:
(2分)作者何振峰单位福州大学2-63答案正确(2 分)
2-64析构函数可以返回:
(2分)作者何振峰单位福州大学2-64答案正确(2 分)
2-65对于以下关于友元的说法
(2分)作者何振峰单位福州大学2-65答案正确(2 分)
2-66对于类之间的友元关系:
(2分)作者何振峰单位福州大学2-66答案正确(2 分)
2-67友元的作用是
(2分)作者何振峰单位福州大学2-67答案正确(2 分)
2-68给定以下类声明,哪个成员函数可能改变成员变量data?
class A {
public:
void f1 (int d); void f2 (const int &d); void f3 (int d) const;
private:
int data;
};
(2分)作者何振峰单位福州大学2-68答案正确(2 分)
2-69假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()
(2分)作者陈晓梅单位广东外语外贸大学2-69答案正确(2 分)4-1写出下面程序的执行结果。
#include <iostream>
using namespace std;
class CSample {
int x;
public:
CSample() { cout<<"C1"<<endl;}
CSample(int n ) {x = n;cout<<"C2,x="<<x<<endl;}
};
int main()
{
CSample array1[2];
CSample array2[2] = {6,8};
CSample array3[2] = {12};
return 0;
}
2分
2分
2分
2分
2分
2分
作者黄淑伟单位沈阳师范大学4-1答案正确(12 分)
4-2读下面程序并写出结果。
#include <iostream>
using namespace std;
class Sample{
public:
int v;
Sample() { };
Sample(int n):v(n) { };
Sample(const Sample & x) { v = 2 * x.v; }
};
Sample PrintAndDouble(Sample o) {
cout << o.v<<endl;
o.v = 2*o.v;
return o;
}
int main()
{
Sample a(5);
cout << a.v<<endl;
Sample b = a;
cout << b.v<<endl;
Sample c = PrintAndDouble( b );
cout << c.v<<endl;
Sample d;
d = a;
cout << d.v<<endl;;
return 0;
}
2分
2分
2分
2分
2分
作者黄淑伟单位沈阳师范大学4-2答案正确(10 分)
4-3读下面程序并写出结果。
#include <iostream>
using namespace std;
class Sample{
public:
int v;
Sample() {v=0;};
Sample(int n):v(n) { };
Sample(const Sample & x) { v = 2 + x.v; }
};
Sample PrintAndDouble(Sample o) {
cout << o.v<<endl;
o.v = 2*o.v;
return o;
}
int main()
{
Sample a(5);
cout << a.v<<endl;
Sample b = a;
cout << b.v<<endl;
Sample c = PrintAndDouble(b);
cout << c.v<<endl;
Sample d;
d = a;
cout << d.v<<endl;;
return 0;
}
2分
2分
2分
2分
2分
作者黄淑伟单位沈阳师范大学4-3答案正确(10 分)
4-4读下面程序,并写出运算结果。
#include <iostream>
using namespace std;
class S{
int v;
public:
S(){};
S(int n):v(n){}
int getV(){return v;}
};
class D:public S{
private:
int v;
public:
D(int n):S(n){v=n;}
int getV(){return v;}
};
int main()
{
D a(2);
cout << a.getV()<<','<<a.S::getV()<<endl;
return 0;
}
2分
作者黄淑伟单位沈阳师范大学4-4答案正确(2 分)
4-5读下面程序,写出运行结果。
#include <iostream>
using namespace std;
class S{
int v;
public:
S() { };
S(int n):v(n) { }
int getV(){return v;}
};
class D:public S{
private:
int v;
public:
D(int n):S(n){v=2*n;}
int getV(){return v;}
};
int main()
{
D a(2);
cout << a.getV()<<','<<a.S::getV()<<endl;
return 0;
}
2分
作者黄淑伟单位沈阳师范大学4-5答案正确(2 分)
4-6要想使下面程序的输出结果为:
6,4
请补全程序代码。
#include <iostream>
using namespace std;
class S{
int v;
public:
S() { };
S(int n):v(n) { }
int getV(){return v;}
};
class D:public S{
private:
int v;
public:
D(int n):2分{}
int getV(){return v;}
};
int main()
{
D a(2);
cout << a.getV()<<','<<a.S::getV()<<endl;
return 0;
}
2分
作者黄淑伟单位沈阳师范大学
4-7写出下面程序的输出结果。
#include <iostream>
using namespace std;
class A{
public:
int val;
A(int n=0){val=n;}
A & getObj1(){return *this;}
int getObj2(){return val;}
};
int main()
{
A a,b(2),c[2]={10};
cout<<a.val<<endl;
cout<<b.val<<endl;
cout<<c[0].val<<endl;
a.getObj1()=5;
cout<<a.val<<endl;
cout<<b.getObj2()<<endl;
return 0;
}
2分
2分
2分
2分
2分
作者黄淑伟单位沈阳师范大学4-7答案正确(10 分)
4-8读程序,写出运行结果。
#include<iostream>
#include<string.h>
using namespace std;
class A
{
public:
A(char *ps){ strcpy(s,ps); cout<<"1:"<<s<<endl; }
~A(){cout<<"2:"<<s<<endl; }
private:
char s[50];
};
void Fun()
{
A FunObject("F");
static A staticObject("S");
cout<<"In Fun()."<<endl;
}
A GlobalObject("G");
int main()
{
A MainObject("M");
cout<<"In main(), before called Fun"<<endl;
Fun();
cout<<"In main(), after called Fun"<<endl;
return 0;
}
2分
2分
In main(), before called Fun
2分
2分
In Fun().
2分
In main(), after called Fun
2分
2分
2分
作者黄淑伟单位沈阳师范大学4-8答案正确(16 分)
4-9下面是关于类A的一个定义,请写出输出结果。
#include <iostream>
using namespace std;
class A{
private:
int x,y;
public:
void ask1(int a=0,int b=0);
int ask2();
int ask3();
};
void A::ask1(int a,int b){x=a;y=b;}
int A::ask2()
{
if(x>y) return x;
else return y;
}
int A::ask3(){cout<<"x="<<x<<",y="<<y<<endl;}
int main()
{
A a;
a.ask1();
a.ask3();
cout<<a.ask2()<<endl;;
a.ask1(3,5);
a.ask3();
cout<<a.ask2()<<endl;
}
2分
2分
2分
2分
作者黄淑伟单位沈阳师范大学4-9答案正确(8 分)
4-10写出下面类定义的输出结果。
#include <iostream>
using namespace std;
class C{
private:
int x;
double y;
public:
C(){x=0;y=0;}
void ask(int);
void ask(double);
void ask(int,double);
void ask();
};
void C::ask(int a){x=a;}
void C::ask(double b){y=b;}
void C::ask(int a,double b){x=a;y=b;}
void C::ask(){cout<<"x="<<x<<",y="<<y<<endl;}
int main()
{
C c;
c.ask();
c.ask(6,8.2);
c.ask();
c.ask(3);
c.ask();
c.ask(9.2);
c.ask();
}
2分
2分
2分
2分
作者黄淑伟单位沈阳师范大学4-10答案正确(8 分)
4-11下面程序运行结果为
2分
#include <iostream>
#include <string.h>
using namespace std;
class Toy
{
public:
Toy(char* _n) { strcpy (name,_n); count++;}
~Toy(){ count--; }
char* GetName(){ return name; }
static int getCount(){ return count; }
private:
char name[10];
static int count;
};
int Toy::count=0;
int main()
{
Toy t1("Snoopy"),t2("Mickey"),t3("Barbie");
cout<<t1.getCount()<<endl;
return 0;
}
作者杨雪华单位沈阳师范大学4-11答案正确(2 分)
4-12下面程序运行结果。
#include <iostream>
using namespace std;
class Sample
{
public:
Sample(int a){X=a;}
void Print()const{cout<<"Const:X="<<X<<endl;}
void Print(){cout<<"X="<<X<<endl;}
private:
int X;
};
int main()
{
const Sample s1(10);
Sample s2(20);
s1.Print();
s2.Print();
return 0;
}
Const:X=
2分
X=
2分。
作者杨雪华单位沈阳师范大学4-12答案正确(4 分)
4-13下面程序程序运行结果。
#include<iostream>
using namespace std;
class A
{
public:
A(int xx,int yy){X=xx;Y=yy;}
void Set(A &p);
void Disp()
{cout<<X<<","<<Y<<endl;}
private:
int X,Y;
};
void A::Set(A &p)
{
if(this!=&p)
{X=p.X;Y=p.Y;}
}
int main()
{
A o1(2,5),o2(10,20);
o1.Disp();
o1.Set(o2);
o1.Disp();
return 0;
}
第一行为
2分
第二行为
2分
作者杨雪华单位沈阳师范大学4-13答案正确(4 分)
4-14下面程序的运行结果。
#include <iostream>
using namespace std;
class B
{
public:
B(){cout<<++b<<endl;}
~B(){cout<<--b<<endl;}
static int Getb(){return b;}
private:
static int b;
};
int B::b=10;
int main()
{
B b1,b2,b3;
cout<<B::Getb()<<endl;
return 0;
}
程序结果为:
2分
2分
2分
2分
2分
2分
2分 。
作者杨雪华单位沈阳师范大学4-14答案正确(14 分)
4-15写出下面程序的运行结果。
#include<iostream>
using namespace std;
class A
{
public:
A(int i){a=i;}
void print()
{ cout<<"a="<<a<<endl;
cout<<"this->a="<<this->a<<endl;
}
private:
int a;
};
int main()
{
A x(55);
x.print();
return 0;
}
运行结果为:
a=
2分
this->a=
2分
作者杨雪华单位沈阳师范大学4-15答案正确(4 分)
4-16以下程序的运行结果是
2分
#include <iostream>
using namespace std;
class Sample
{
public:
Sample(int i,int j){x=i;y=j;}
void disp()const{cout<<"disp const"<<endl;}
void disp(){cout<<"disp"<<endl;}
private:
int x,y;
};
int main()
{
const Sample a1(4,11);
a1.disp();
return 0;
}
作者杨雪华单位沈阳师范大学4-16答案正确(2 分)
4-17下面程序运行的结果是
2分 .
#include <iostream>
using namespace std;
class Demo
{
public:
Demo(){data=1;}
Demo(int d):data(d){ }
void setData(int d){data=d;}
int getData(){return data;}
private:
int data;
};
int main()
{
Demo array[6]={10,20,30},*pa=array+5;
pa->setData(pa->getData()+15);
while(pa>array)
{
int d=(pa--)->getData();
pa->setData(d+pa->getData());
cout<<pa->getData()<<'.';
}
return 0;
}
作者杨雪华单位沈阳师范大学4-17答案正确(2 分)
4-18有如下程序:请写出程序输出结果。
class Test
{
public:
Test(){cout<<"构造函数"<<endl;}
~Test(){cout<<"析构函数"<<endl;}
};
void myfunc(){
static Test obj;
}
int main()
{
cout<<"main开始"<<endl;
myfunc();
cout<<"main结束"<<endl;
return 0;
}
2分
2分
2分
2分
作者黄淑伟单位沈阳师范大学4-18答案正确(8 分)
4-19写出下面程序的执行结果。
#include<iostream>
using namespace std;
class Cla
{
static int n;
public:
Cla(){n++;}
~Cla(){n--;}
static int get_n(){ return n; }
};
int Cla::n=0;
int main( )
{
Cla *p=new Cla;
delete p;
cout<<"n="<<Cla::get_n()<<endl;
return 0;
}
2分
作者黄淑伟单位沈阳师范大学4-19答案正确(2 分)
5-1将空白的地方填写完整,使程序完成指定的功能。
#include <iostream>
using namespace std;
class Student
{public: 5分//利用参数初始化表进行数据初始化
void display();
private:
int num;
float score;
};
void Student::display()
{cout<<num<<" "<<score<<endl;}
int main()
{
Student stud[5]={
Student(101,78.5),Student(102,85.5),Student(103,98.5),
Student(104,100.0),Student(105,95.5)}; //定义对象数组 5分//定义对象指针指向对象数组
for(5分)//显示第1、3、5名学生信息
p->display();
return 0;
}
}
作者范鹏程单位内蒙古师范大学时间限制400 ms内存限制64 MB
5-2已知平面上的一点由其横纵坐标来标识。本题要求按照已给代码和注释完成一个基本的“点”类的定义(坐标均取整型数值)。并通过主函数中的点类对象完成一些简单操作,分析程序运行结果,将答案写在对应的空格中。
#include <1分>
using namespace std;
class Point
{1分//访问权限设置,私有权限
int x;//横坐标
int y;//纵坐标1分//访问权限设置,公有权限
//以下为构造函数,用参数a,b分别为横纵坐标进行初始化 2分(int a,int b)
{ 1分; 1分;
}
//以下为拷贝构造函数,借用对象a_point完成初始化
Point(2分a_point)
{
x=a_point.x;
y=a_point.y;
}
//以下为析构函数 2分
{
cout<<"Deconstructed Point";
print();
}
//以下为输出点的信息的函数,要求在一行中输出点的坐标信息,形如:(横坐标,纵坐标)
void print()
{
cout<<2分<<endl;
}
};
int main()
{
Point b_point(0,0);
b_point.print();
int a,b; 2分//从标准输入流中提取数值给a,b
Point c_point(a,b);
c_point.print(); 1分//主函数的返回语句
}
/*设输入为10 10,则本程序的运行结果为:1分1分1分1分*/
作者GONG单位哈尔滨华德学院时间限制400 ms内存限制64 MB5-2答案正确(20 分)
C++程序中,类的构造函数名与类名相同。
对象数组生命期结束时,对象数组的每个元素的析构函数并不会都被调用。
已知class A中有数据成员int a,如果定义了A的两个对象a1,a2,它们各自的数据成员a的值可以不同.
C++程序中,一个类的构造函数可以被重载。
C++程序中,一个类的析构函数可以被重载。
析构函数的作用主要是释放对象占用的资源。
一个类的友元函数可以访问该类的私有成员。
this 指针是一个系统预定义的特殊指针,指向当前正在操作的对象。
静态成员的特点是不管这个类创建了多少个对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象共享,或者说静态成员为类所有。
静态数据成员不能在类中初始化,使用时需要在类体外声明。
下面程序的运行结果为
#include<iostream.h>class A{ int num;public: A(int i){num=i;} A(A &a){num=a.num++;} void print(){cout<<num;} };void main() { A a (1),b(a); a.print(); b.print(); }
在下面有关静态成员函数的描述中,正确的是()。
下列关于对象数组的描述中,错误的是()
下面对于析构函数的描述中,正确的是( )
以下关于友元的说法哪个是不正确的?
假设A是一个类的名字,下面的语句生成几个类A的对象? A *arry[4] ={new A(),NULL,new A()} ;
假设A是一个类的名字,下面程序片段,类A会调用析构函数几次? int main(){ A * p = new A[2];
A * p2 = new A;
A a; delete [] p; }
关于静态数据成员描述正确的是( ).
关于运算符delete的描述中,错误的是( ).
关于友元的性质正确的是( )。
以下说法正确的是?
下列关于静态成员的描述中,错误的是( )
类的实例化是指( )。
关于成员函数特征的描述中,( )是错误的。
设类AA已定义,假设以下语句全部合法,哪些语句会触发调用拷贝构造函数( )。
AA a, b; //1AA c(10, 20); //2AA d(c); //3AA e = d; //4
下列关于构造函数的描述中,错误的是()
对类的构造函数和析构函数描述正确的是
类的析构函数是在什么时候调用的?
下列关于构造函数说法不正确的是
下列关于构造函数的描述中,错误的是()
private访问属性限制对象的成员可以在( ) 中访问。
下列特性中,C与C++共有的是( )
不能作为函数重载判断依据的是( )
C++提供的可有效分配对象空间的运算符是( )
下面关于new运算符的描述中错误的是( )
不属于类的成员函数的是( ) 。
假设MyClass是一个类,则该类的拷贝初始化构造函数的声明语句为( )
为类提供对外接口的是( )
对于任意一个类,析构函数的个数最多为( )
若类A的构造函数定义为 A(int aa=1, int bb=0) { a = aa; b = bb; } 则执行:A x(4);后,x.a和x.b的值分别是( )
若类A被说明成类B的友元,则( ) 。
关于类的静态数据成员和静态函数成员,说法错误的是( )
静态成员函数没有:
下面关于友元的描述中,错误的是:
已知类A是类B的友元,类B是类C的友元,则:
下列属于类的析构函数特征的是
建立一个类对象时,系统自动调用
下列各类函数中,不是类的成员函数的是
下面对静态数据成员的描述中,正确的是
下列关于this指针的叙述中,正确的是
下面程序的输出结果是
#include <iostream>using namespace std;class MyClass {public: MyClass() { ++count; } ~MyClass() { --count; } static int getCount() { return count; }private: static int count; };int MyClass::count = 0;int main() { MyClass obj; cout << obj.getCount(); MyClass obj2; cout << MyClass::getCount(); cout << obj2.getCount(); return 0; }
下列关于类定义的说法中,正确的是
下列关于类和对象的叙述中,错误的是
以下说法正确的是()。
假如有以下类A:
classA{ public: int func(int a){return a*a;) };
以下程序片段中不正确的是( )
以下说法中正确的是
以下说法正确的是()。
如果类定义中没有使用 private、protected、或public 关键字,则所有成员( )
下列函数中,( )不能重载。
下列对重载函数的描述中,( )是错误的。
在下列关键字中,用以说明类中公有成员的是( )。
有关类和对象的说法下列不正确的有( )。
在下面类声明中,关于生成对象不正确的是( )。 class point { public: int x; int y; point(int a,int b) {x=a;y=b;} };
以下哪一个不是正确的成员访问属性。
类成员的默认访问属性是:
所有类都应该有:
析构函数可以返回:
对于以下关于友元的说法
对于类之间的友元关系:
友元的作用是
给定以下类声明,哪个成员函数可能改变成员变量data?
class A {
public:
void f1 (int d); void f2 (const int &d); void f3 (int d) const;
private:
int data;
};
假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()
写出下面程序的执行结果。
#include <iostream> using namespace std; class CSample { int x; public: CSample() { cout<<"C1"<<endl;} CSample(int n ) {x = n;cout<<"C2,x="<<x<<endl;} }; int main() { CSample array1[2]; CSample array2[2] = {6,8}; CSample array3[2] = {12}; return 0; }
读下面程序并写出结果。
#include <iostream> using namespace std; class Sample{ public: int v; Sample() { }; Sample(int n):v(n) { }; Sample(const Sample & x) { v = 2 * x.v; } }; Sample PrintAndDouble(Sample o) { cout << o.v<<endl; o.v = 2*o.v; return o; } int main() { Sample a(5); cout << a.v<<endl; Sample b = a; cout << b.v<<endl; Sample c = PrintAndDouble( b ); cout << c.v<<endl; Sample d; d = a; cout << d.v<<endl;; return 0; }
读下面程序并写出结果。
#include <iostream> using namespace std; class Sample{ public: int v; Sample() {v=0;}; Sample(int n):v(n) { }; Sample(const Sample & x) { v = 2 + x.v; } }; Sample PrintAndDouble(Sample o) { cout << o.v<<endl; o.v = 2*o.v; return o; } int main() { Sample a(5); cout << a.v<<endl; Sample b = a; cout << b.v<<endl; Sample c = PrintAndDouble(b); cout << c.v<<endl; Sample d; d = a; cout << d.v<<endl;; return 0; }
读下面程序,并写出运算结果。
#include <iostream> using namespace std; class S{ int v; public: S(){}; S(int n):v(n){} int getV(){return v;} }; class D:public S{ private: int v; public: D(int n):S(n){v=n;} int getV(){return v;} }; int main() { D a(2); cout << a.getV()<<','<<a.S::getV()<<endl; return 0; }
读下面程序,写出运行结果。
#include <iostream> using namespace std; class S{ int v; public: S() { }; S(int n):v(n) { } int getV(){return v;} }; class D:public S{ private: int v; public: D(int n):S(n){v=2*n;} int getV(){return v;} }; int main() { D a(2); cout << a.getV()<<','<<a.S::getV()<<endl; return 0; }
要想使下面程序的输出结果为:
6,4
请补全程序代码。
#include <iostream> using namespace std; class S{ int v; public: S() { }; S(int n):v(n) { } int getV(){return v;} }; class D:public S{ private: int v; public: D(int n):2分{} int getV(){return v;} }; int main() { D a(2); cout << a.getV()<<','<<a.S::getV()<<endl; return 0; }
写出下面程序的输出结果。
#include <iostream> using namespace std; class A{ public: int val; A(int n=0){val=n;} A & getObj1(){return *this;} int getObj2(){return val;} }; int main() { A a,b(2),c[2]={10}; cout<<a.val<<endl; cout<<b.val<<endl; cout<<c[0].val<<endl; a.getObj1()=5; cout<<a.val<<endl; cout<<b.getObj2()<<endl; return 0; }
读程序,写出运行结果。
#include<iostream> #include<string.h> using namespace std; class A { public: A(char *ps){ strcpy(s,ps); cout<<"1:"<<s<<endl; } ~A(){cout<<"2:"<<s<<endl; } private: char s[50]; }; void Fun() { A FunObject("F"); static A staticObject("S"); cout<<"In Fun()."<<endl; } A GlobalObject("G"); int main() { A MainObject("M"); cout<<"In main(), before called Fun"<<endl; Fun(); cout<<"In main(), after called Fun"<<endl; return 0; }
In main(), before called Fun
In Fun().
In main(), after called Fun
下面是关于类A的一个定义,请写出输出结果。
#include <iostream> using namespace std; class A{ private: int x,y; public: void ask1(int a=0,int b=0); int ask2(); int ask3(); }; void A::ask1(int a,int b){x=a;y=b;} int A::ask2() { if(x>y) return x; else return y; } int A::ask3(){cout<<"x="<<x<<",y="<<y<<endl;} int main() { A a; a.ask1(); a.ask3(); cout<<a.ask2()<<endl;; a.ask1(3,5); a.ask3(); cout<<a.ask2()<<endl; }
写出下面类定义的输出结果。
#include <iostream> using namespace std; class C{ private: int x; double y; public: C(){x=0;y=0;} void ask(int); void ask(double); void ask(int,double); void ask(); }; void C::ask(int a){x=a;} void C::ask(double b){y=b;} void C::ask(int a,double b){x=a;y=b;} void C::ask(){cout<<"x="<<x<<",y="<<y<<endl;} int main() { C c; c.ask(); c.ask(6,8.2); c.ask(); c.ask(3); c.ask(); c.ask(9.2); c.ask(); }
下面程序运行结果为
#include <iostream> #include <string.h> using namespace std; class Toy { public: Toy(char* _n) { strcpy (name,_n); count++;} ~Toy(){ count--; } char* GetName(){ return name; } static int getCount(){ return count; } private: char name[10]; static int count; }; int Toy::count=0; int main() { Toy t1("Snoopy"),t2("Mickey"),t3("Barbie"); cout<<t1.getCount()<<endl; return 0; }
下面程序运行结果。
#include <iostream> using namespace std; class Sample { public: Sample(int a){X=a;} void Print()const{cout<<"Const:X="<<X<<endl;} void Print(){cout<<"X="<<X<<endl;} private: int X; }; int main() { const Sample s1(10); Sample s2(20); s1.Print(); s2.Print(); return 0; }
Const:X=
X=
下面程序程序运行结果。
#include<iostream> using namespace std; class A { public: A(int xx,int yy){X=xx;Y=yy;} void Set(A &p); void Disp() {cout<<X<<","<<Y<<endl;} private: int X,Y; }; void A::Set(A &p) { if(this!=&p) {X=p.X;Y=p.Y;} } int main() { A o1(2,5),o2(10,20); o1.Disp(); o1.Set(o2); o1.Disp(); return 0; }
第一行为
第二行为
下面程序的运行结果。
#include <iostream> using namespace std; class B { public: B(){cout<<++b<<endl;} ~B(){cout<<--b<<endl;} static int Getb(){return b;} private: static int b; }; int B::b=10; int main() { B b1,b2,b3; cout<<B::Getb()<<endl; return 0; }
程序结果为:
写出下面程序的运行结果。
#include<iostream> using namespace std; class A { public: A(int i){a=i;} void print() { cout<<"a="<<a<<endl; cout<<"this->a="<<this->a<<endl; } private: int a; }; int main() { A x(55); x.print(); return 0; }
运行结果为:
a=
this->a=
以下程序的运行结果是
#include <iostream> using namespace std; class Sample { public: Sample(int i,int j){x=i;y=j;} void disp()const{cout<<"disp const"<<endl;} void disp(){cout<<"disp"<<endl;} private: int x,y; }; int main() { const Sample a1(4,11); a1.disp(); return 0; }
下面程序运行的结果是
#include <iostream> using namespace std; class Demo { public: Demo(){data=1;} Demo(int d):data(d){ } void setData(int d){data=d;} int getData(){return data;} private: int data; }; int main() { Demo array[6]={10,20,30},*pa=array+5; pa->setData(pa->getData()+15); while(pa>array) { int d=(pa--)->getData(); pa->setData(d+pa->getData()); cout<<pa->getData()<<'.'; } return 0; }
有如下程序:请写出程序输出结果。
class Test { public: Test(){cout<<"构造函数"<<endl;} ~Test(){cout<<"析构函数"<<endl;} }; void myfunc(){ static Test obj; } int main() { cout<<"main开始"<<endl; myfunc(); cout<<"main结束"<<endl; return 0; }
写出下面程序的执行结果。
#include<iostream> using namespace std; class Cla { static int n; public: Cla(){n++;} ~Cla(){n--;} static int get_n(){ return n; } }; int Cla::n=0; int main( ) { Cla *p=new Cla; delete p; cout<<"n="<<Cla::get_n()<<endl; return 0; }
将空白的地方填写完整,使程序完成指定的功能。
#include <iostream> using namespace std; class Student {public: 5分//利用参数初始化表进行数据初始化 void display(); private: int num; float score; }; void Student::display() {cout<<num<<" "<<score<<endl;} int main() { Student stud[5]={ Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5)}; //定义对象数组 5分//定义对象指针指向对象数组 for(5分)//显示第1、3、5名学生信息 p->display(); return 0; } }
已知平面上的一点由其横纵坐标来标识。本题要求按照已给代码和注释完成一个基本的“点”类的定义(坐标均取整型数值)。并通过主函数中的点类对象完成一些简单操作,分析程序运行结果,将答案写在对应的空格中。
#include <1分> using namespace std; class Point {1分//访问权限设置,私有权限 int x;//横坐标 int y;//纵坐标1分//访问权限设置,公有权限 //以下为构造函数,用参数a,b分别为横纵坐标进行初始化 2分(int a,int b) { 1分; 1分; } //以下为拷贝构造函数,借用对象a_point完成初始化 Point(2分a_point) { x=a_point.x; y=a_point.y; } //以下为析构函数 2分 { cout<<"Deconstructed Point"; print(); } //以下为输出点的信息的函数,要求在一行中输出点的坐标信息,形如:(横坐标,纵坐标) void print() { cout<<2分<<endl; } }; int main() { Point b_point(0,0); b_point.print(); int a,b; 2分//从标准输入流中提取数值给a,b Point c_point(a,b); c_point.print(); 1分//主函数的返回语句 } /*设输入为10 10,则本程序的运行结果为:1分1分1分1分*/