当前位置:文档之家› C 试题 (1)

C 试题 (1)

C++程序设计试题
1、请解释以下定义的对象的区别(10分):
int a=1024; int *p=&a; int *pt=new int(1024); int *pa=new int[1024];
2、以下语句段正确的是 。

(5分)
3、写出以下程序的运行结果:a ) b ) c ) (5分)
4、为什么以下重载的fun 函数调用具有二义性?(10分)
5、Tstring 类用于实现对字符串的管理,请完成成员函数的定义。

(18分)
class Tstring{
char *str;
int len;
public:
Tstring(const char *ps);
~Tstring( );
Tstring(const Tstring & source);
Tstring& operator=(Tstring& it);
Tstring& operator=(const char * ps);
Tstring& operator+( Tstring& it);//实现字符串连接
};
a) int a; int *pi=&a; void *pv=pi; const int *pci=&a; pv=pci; b) int a; int *pi1=&a; void * pv=pi1; int *pi2=pv; c) int a=6,b=7; const int *pc=&a; pc=&b; b=8; d) int k=10,j;
int *const pic=&k; *pic=8;
pic=&j;
a) void fun(int &x) { x=x+1;} int main( ) { int a=9; fun(a); cout<<a; return 0;} b) void fun(int x) { x=x+1;} int main( ) { int a=9; fun(a); cout<<a; return 0;} c)void fun(int *x) { *x=*x+1;} int main( ) { int a=9; fun(&a);
cout<<a; return 0;} void fun(unsigned int x); void fun(float x); int main( ) { fun(0); return 0;}
6、有以下类的继承关系和main 函数,请填空。

(8分)
int main( )
class A{ int a; public: … virtual void fun1( ); virtual void fun2( ); void fun3( );}; class AB:public A{
int c;
public:

virtual void fun1( );
virtual void fun4( );
void fun3( );};
{ A a1,*pa;
AB ab1;
a1=ab1;
pa=&ab1;
A& ra=ab1;
ra.fun1( ); //此处调用的是类(A或是AB)中定义的fun1函数。

pa->fun3( ); //此处调用的是类(A或是AB)中定义的fun3函数。

a1.fun1( ); //此处调用的是类(A或是AB)中定义的fun1函数。

ab1.fun3( ); //此处调用的是类(A或是AB)中定义的fun3函数。

return 0;}
7、设计二维整型数组类,实现构造函数、析构函数;希望以对象(行下标,列下标)的
形式引用数组元素,完成operator( )运算符重载函数。

(12分)
class Intarray{
int* pa;
int size;
public:
Intarray(int row,int Colu);
~ Intarray( );
int& operator( )(int r ,int c) ;
};
8、设计一维数组类模板,完成其成员函数的定义。

(18分)
template <class Type>
class array{
Type* pa;
int size;
public:
array(int maxsiz);
array(array<Type>& it);
array<Type>& operator= ( array< Type>& rhs);
Type& operator[ ](int index);
Type max( );
~ array( );};
9、设计带异常处理的栈类(stack)的异常类,栈内存放数据为int类型,能处理数据入栈时栈满、数据出栈时栈空异常,请完成其构造函数、析构函数和成员函数。

(14分)
class iStack{
int *pa;
int top;//指示栈顶位置
int capacity;//栈的容量
public:
iStack(int maxsize);
iStack(int *a,int n,int maxsize); //用已存在的一维数组来初始化void pop(int& tva); //入栈
void push( ); //出栈
~ iStack( );};。

相关主题