教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

OOP技术:面向对象程序设计期末复习指导(3)

来源:网络收集 时间:2026-01-01
导读: class AA { int* a; int n; int MS; public: void InitAA(int aa[], int nn, int ms) { if(nnms) {coutError!endl; exit(1);} MS=ms; n=nn; a=new int[MS]; for(int i=0; in; i++) a[i]=aa[i]; } int CompareBig(AA

class AA {

int* a;

int n;

int MS;

public:

void InitAA(int aa[], int nn, int ms) {

if(nn>ms) {cout<<"Error!"<<endl; exit(1);}

MS=ms;

n=nn;

a=new int[MS];

for(int i=0; i<n; i++) a[i]=aa[i];

}

int CompareBig(AA b); //比较*this与b的大小,从前向后按两数组

//中的对应元素比较,若*this中元素值大则返回1,若b中

//元素值大则返回-1,若相等则继续比较下一个元素,直到

//一个数组中无元素比较,此时若两者的n值相同则返回0,

//否则若*this中的n值大则返回1,若b中的n值大则返回-1。

};

OOP,面向对象,程序设计,C++,Java

4、 根据下面类中Give函数的原型和注释写出它的类外定义。

class Array {

int *a; //指向动态分配的整型数组空间

int n; //记录数组长度

public:

Array(int aa[], int nn); //构造函数,利用aa数组长度nn初始化n,

//利用aa数组初始化a所指向的数组空间

Array(Array& aa); //拷贝构造函数

Array& Give(Array& aa); //实现aa赋值给*this的功能并返回*this

Array Uion(Array& aa); //实现*this和aa中的数组合并的

//功能,把合并结果存入临时对象并返回

int Lenth() {return n;} //返回数组长度

void Print() { //输出数组

for(int i=0; i<n; i++)

cout<<a[i]<<' ';

cout<<endl;

}

};

5、

指出程序或函数的功能

double f1(double a, double b, char op) {

switch(op) {

case ’+’: return a+b; case ’-’: return a-b; case ’*’: return a*b; case ’/’: if(b==0) { cout<<"divided by 0!"<<endl; exit(1); } else return a/b; default: cout<<"operator error!"<<endl; exit(1); }

}

6、 根据下面类中Compare 函数成员的原型和注释写出它的类外定义。

class AA {

int* a;

OOP,面向对象,程序设计,C++,Java

int n;

int MS;

public:

void InitAA(int aa[], int nn, int ms) {

if(nn>ms) {cout<<"Error!"<<endl; exit(1);}

MS=ms;

n=nn;

a=new int[MS];

for(int i=0; i<n; i++) a[i]=aa[i];

}

int Compare(AA b); //比较*this与b的大小,若两者中

//的n值相同,并且数组中前n个元素值对应

//相同,则认为两者相等返回1,否则返回0。

};

7、

下面给出了矩阵类Matrix定义。为了求两个矩阵对象的乘积,需要定义一个Matrix的友元函数Multiply()。请按照友元函数Multiply()的声明编写出该函数的定义。

class Matrix {

public:

Matrix(int row,int col); //构造一个具有row行col列的矩阵

~Matrix() {delete []mem;} //析构函数

friend bool Multiply(Matrix &m1, Matrix &m2, Matrix &m3);

//定义Multiply()为友元函数,该函数把m1×m2的值赋给m3

//其他成员函数从略

private:

int *mem; //动态申请矩阵空间

const int rows,cols; //矩阵的行数和列数

};

Matrix::Matrix(int row,int col):rows(row),cols(col)

{

mem = new int[row*col];

}

bool Multiply(Matrix &m1, Matrix &m2, Matrix &m3)

{

//确定矩阵是否能够进行相乘

if(m1.rows != m3.rows ||m2.cols != m3.cols || m1.cols != m2.rows) return false; //定义sum变量,用于计算乘积矩阵m3中每个元素的值

int sum;

//请在下面编写剩余部分

OOP,面向对象,程序设计,C++,Java

}

8、

指出程序或函数的功能

int fun6(int m, int n, int b=2)

{

if(m<b && n<b) return m*n;

else if(m%b==0 && n%b==0) return b*fun6(m/b,n/b,b); else return fun6(m,n,++b);

}

9、

下面程序段第4-9行中存在着三条语句错误,请指出错误语句的行号并说明原因。 class A { //1行

int a,b; //2行

const int c; //3行

public: //4行

A() {a=b=c=0;} //5行

A(int aa, int bb):c(aa+bb) {a=aa; b=bb;} //6行

}; //7行

A a,b(1,2,3); //8行

A x(2,3), y(4); //9行

错误行的行号为______、________和________。

错误原因分别为___________________、__________________和__________________。

10、 根据下面类中Uion 函数的原型和注释写出它的类外定义。

class Array {

int *a; //指向动态分配的整型数组空间

int n; //记录数组长度

public:

Array(int aa[], int nn); //构造函数,利用aa数组长度nn初始化n,

//利用aa数组初始化a所指向的数组空间

Array(Array& aa); //拷贝构造函数

Array& Give(Array& aa); //实现aa赋值给*this的功能并返回*this

Array Uion(Array& aa); //实现*this和aa中的数组合并的功能,把合并

//结果(其长度为两数组长度之和)存入临时对象并返回

int Lenth() {return n;} //返回数组长度

OOP,面向对象,程序设计,C++,Java

void Print() { //输出数组

for(int i=0; i<n; i++)

cout<<a[i]<<' ';

cout<<endl;

}

};

11、

指出程序或函数的功能

void f4(char a[M][N])

{

int c1,c2,c3;

c1=c2=c3=0; for(int i=0;i<M;i++) if(strlen(a[i])<5) c1++; else if(strlen(a[i])>=5 && strlen(a[i])<15) c2++; else c3++; cout<<c1<<’ ’<<c2<<’ ’<<c3<<endl;

}

12、 根据下面类中拷贝构造函数的原型写出它的类外定义。

class Strings {

char *s; //指向动态分配的字符串数组空间

int n; //记录字符串长度

public:

Strings(char*str); //构造函数,利用str字符串长度初始化n,

//利用str字符串初始化s所指的字符串空间

Strings(Strings& str); //拷贝构造函数

…… 此处隐藏:2857字,全部文档内容请下载后查看。喜欢就下载吧 ……
OOP技术:面向对象程序设计期末复习指导(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/127892.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)