自考C++程序设计模拟试题及答案(三)
-
#include
class Complex
{public:
Complex( double r=0,double v=0):real(r),virt(v){}
friend Complex operator+(Complex a,Complex b);
friend ostream& operator<<(ostream& out,Complex& a);
private:
double real:
double virt;
};
ostream& operator<<(ostream& out,Complex& a)(retur out<
Complex operator+(Complex a,Complex b)
{return Complex(a.real+b.real,a.virt +b.virt);}
void main()
{Complex(2,5),b(7,8),c(0,0);
c=a+b;
cout<
c=4.1+a;
cout<
c=b+5.6
cout<
}
-
编写一个时间类,实现时间的加、减、读和输出。
#include
#include
#include
#include
class Time
{public:
Time(char*s=NULL);
void operator+(Time&ti);
void operator-(Time&ti);
void Display();
Protected:
int hour;
int minute;
int second;
};
-
#include
#include
using namespace std;
class complex
{public:
int real;
int imag;
complex(int r=0, int i=0)
{real=r;
imag=i;
}
};
complex operator+(___________,complex& b)
{int r= a.real +b.real;
int i=a.imag +b.imag;
return___________;
}
void main()
{complex x(1,2),y(3,4),z;
z=x+y;
cout<
}
-
输出数组中的最小数。
#include
void main()
{int a[]={34,91,83,56,29,93,56,12,88,72};
int index=0;
int/sizeof(*a);
for(int i=l;i
{if(a[index]>a[i])
____________
}
cout<<"a数组最小数:"<
}
-
给出下面程序的输出结果。
#include
class A
{int*a;
public:
A(int x=0):a(new int(x)){}
~A(){deletea;}
int getA(){return*a;}
void setA(int x)*a=x;}
};
void main()
{A x1,x2(3);
A*p=&x2;
(*p).setA(x2.getA()+5);
x1.setA(10+x1.getA());
cout<
}
-
请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:
11,10
13,12
#include
class A
{int a;
public:
A(int i=0){a=i;}
int Geta(){return a;}
void show(){cout<
};
class B
{A a;
int b;
public:
B(int i,int j)__________
{}
void show(){cout<
};
void main()
{B b[2]=B(10,11),B(12,13)};
for(int i=0;i<2;i++)
____________
}
-
程序的输出结果如下:
m=4.3,n=3
m=6,n=9
请根据输出数据在下面程序的横线处填写正确的语句。
#include
class Test
___________
{private:
T1 m,n;
public:
Test(T1 i,T1 j){m=i;n=j;}
void show(){cout<<"m="<
};
void main()
{Test
a(4.3,3); a.show();
___________b(6,9.6);
b.show();}
-
#include
class Test
{private:
int x,y=20;
public:
Test(int i,int j){x=i;y=j;}
int getx(){return x;}
int gety(){return y;}
};
void main()
{Test mt(10,20);
cout<
cout<
}
-
#include
class Samp
{public:
void Setij(int a,int b){i=a,j=b;}
~Samp()
{cout<<"Destroying.."<
int GetMuti(){return i*j;}
protected:
int i;
int j;
};
int main()
{Samp*p;
p=new Samp[5];
if(!p)
{cout<
return 1;
}
for(int j=0;j<5;j++)
p[j].Setij(j,j);
for(int k=0;k<5;k++)
cout<<"Muti["<
_________
return 0;
}
-
下面程序的功能是生成具有n个元素的动态数组。
#include
void main()
{int n;
cin>>n;
int a[n];
a[0]=2;
cout<
}
-
#include
using namespace std;
class CMax{
private:
int xx;
int yy;
public:
CMax(int x,int y)
{xx=x;yy=y;}
void set Value( int x, int y)
{xx=x;yy=y;}
int max(){
return xx=x>yy=y? xx:yy;
}
};
void main(){
CMax m();
m.setValue(20,30);
cout<<"Max= "<
}
-
#include
class A
{public:
A(int i=8):y(i){}
static int x;
int y;
};
int x=20;//对类成员初始化
void main()
{A a;
cout<
}
-
#include
#include
class Bas
{int m;
static int n;
public:
Bas(int i=0){n++;m=i;}
void show(){cout<<"n:"<
};
Bas::n=0;
class Der:public Bas
{public:
Der(int i=0):Bas(i){}
};
void main()
{Der d(3);
D.show();}
-
派生的新类同时可以增加或重新定义数据和操作,这称为类的_________性。
-
UML中实例连接反映对象之间的静态关系,消息连接描述对象之间的________关系。
-
C++函数的返回值类型可以是除_________与函数以外的任何类型。
-
返回当前容器中已经存放的对象个数的成员函数是________。
-
一个const对象只能访问__________成员函数。
-
访问控制权限有public、private和_______3种。
-
重载的运算符保持其原有的运算符个数、_______不变。
-
在虚函数原型的语句结束符“;”之前加上________,即将该函数声明为纯虚函数。
-
c++函数分为库函数(标准函数)和_________两类。
-
在C++标准库中,使用_______类来表示复数。
-
与操作对象的数据类型相互独立的算法称为________。
-
C++提供了两种格式控制方式:使用_______类提供的接口和使用带操控符的特殊函数。
-
将对象作为函数参数,是将实参对象的_______传递给形参对象,这种传递是单向的。
-
常对象只能调用它的常成员函数,而一般对象既能调用常成员函数,又能调用_________。
-
程序需要执行键盘输入时,使用__________运算符。
-
如果在派生类中要访问被重定义了的基类同名函数那么需使用_________才可调用。
-
在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是的_________头文件。
-
UML中对象之间的静态关系是通过对象属性之间的连接反映的,称之为_________。
-
在C++中,创建派生类对象时,总是先从_________的初始化开始的
-
使用C++标准类库时,用于指定相应命名空间的语句是_________。
-
在没有为一个类定义任何构造函数的情况下,下列描述正确的是()
- A.编译器总是自动创建一个不带参数的构造函数
- B.这个类没有构造函数
- C.这个类不需要构造函数
- D.该类不能通过编译
-
下面说法正确的是()
- A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
- B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
- C.类的内联函数必须在类体内定义
- D.类的内联函数必须在类体外通过加关键字inline定义
-
关于类的静态成员函数描述错误的是()
- A.在创建对象之前不存在
- B.不能说明为虚函数
- C.不能直接访问非静态函数
- D.不是对象的成员
-
若Sample类中的一个成员函数说明如下:void Set( Sample&a),则 Sample&a的含义是()
- A.指向类 Sample的名为a的指针
- B.a是类 Sample的对象引用,用来作函数Set()的形参
- C.将a的地址赋给变量Set
- D.变量 Sample与a按位与的结果作为函数Set的参数
-
已知p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,正确的是()
- A.A1.p=5:
- B.A1->p=5;
- C.A1.*p=5;
- D.*A1.p=5;
-
下列关于this指针的说法,正确的是()
- A.this指针一定指向常量型数据
- B.this指针指向的数据不可更改
- C.静态成员函数中也可以访问this指针
- D.this指针本身可直接作为成员函数的返回值
-
在构造向量时,不正确的叙述是()
- A.可以使用基本数据类型
- B.可以使用类
- C.可以使用向量
- D.不可以使用容器
-
在派生类中定义虚函数时,可以与基类中相应的虚函数不同的是()
- A.参数类型
- B.参数个数
- C.函数名称
- D.函数体
-
调用声明为int print(int a,int b);的函数时,正确的方法是()
- A.print(0.5,0.8);
- B.print(2);
- C.print(1,2);
- D.print(1,2,3);
-
下列关于友元的描述错误的是()
- A.成员函数不可作友元
- B.类可以作友元
- C.普通函数可以作友元
- D.静态函数可以作友元
-
当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员,称为继承的()
- A.规律性
- B.传递性
- C.重复性
- D.多样性
-
下列说法中,不正确的是()
- A.模板类的基类可以是非模板类
- B.模板类的派生类可以是模板类
- C.根据建立对象时的实际数据类型,编译器把类模板实例化为模板类
- D.可以从构造函数参数列表推断出模板实例化参数类型
-
已知 print()函数是一个类的常成员函数它无返回值,下列表示中正确的项是
- A.void print()const
- B.const void print()
- C.void const print()
- D.void print(const)
-
使用下列哪个流格式控制符可设置转换基数为十六进制()
- A.dec
- B.oct
- C.hex
- D.endl
-
虚函数必须是类的()
- A.成员函数
- B.友元函数
- C.构造函数
- D.析构函数
-
对于友元描述正确的是()
- A.友元是本类的成员函数
- B.友元不是本类的成员函数
- C.友元不是函数
- D.友元不能访问本类的私有成员
-
在函数定义中的形参属于()
- A.全局变量
- B.局部变量
- C.静态变量
- D.寄存器变量
-
类的析构函数是对一个对象进行以下哪种操作时自动调用的()
- A.建立
- B.撤销
- C.赋值
- D.引用
-
在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()
- A.友元函数
- B.虚函数
- C.构造函数
- D.析构函数
-
下列标识符中正确的是()
- A.abe
- B.3ab
- C.int
- D.+ab