寒假作业2月5号

2024-02-06 11:04
文章标签 寒假作业

本文主要是介绍寒假作业2月5号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第四章  堆与拷贝构造函数

 一 、程序阅读题

1、给出下面程序输出结果。

#include <iostream.h>

class example

{int a;

public:

example(int b=5){a=b++;}

void print(){a=a+1;cout <<a<<"";}

void print()const

{cout<<a<<endl;}

};

void main()

{example x;

const example y(2);

x.print();       6

y.print();       2

}

2、运行程序,写出程序执行的结果。

#include<iostream.h>

class Location

{   public:

int X,Y;

void init(int initX,int initY);

int GetX();

int GetY();

};

void Location::init (int initX,int initY)

{X=initX;

Y=initY;

}

int Location::GetX()

{return X;

}

int Location::GetY()

{return Y;

}

void display(Location& rL)

{cout<<rL.GetX()<<" "<<rL.GetY()<<'\n';

}

void main()

{

Location A[5]={{5,5},{3,3},{1,1},{2,2},{4,4}};

Location *rA=A;

A[3].init(7,3);

rA->init(7,8);

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

display(*(rA++));

}

7  8

3  3

1  1

7  3

4  4

3. 给出下面程序输出结果。

#include <iostream.h>

int a[8]={1,2,3,4,5,6,7};

void fun(int *pa,int n);

void main()

{int m=8;

fun(a,m);

cout<<a[7]<<endl;

}

void fun(int *pa,int n)

{for (int i=0;i<n-1;i++)

*(pa+7)+=*(pa+i);

}

结果28

4. 给出下面程序输出结果。

#include <iostream.h>

class A

{

int *a;

public:

A(int x=0):a(new int(x)){}

~A() {delete a;}

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<<x1.getA()<<""<<x2.getA()<<endl;    10   8

}

5. 阅读下面的程序,写出运行结果:

#include < iostream.>

using namespace std;

class Samp

{

public:

    void Set_i_j(int a, int b){i=a,j=b;}

    ~Samp()

    {

        cout <<"Destroying.." << i <<endl;

    }

    int GetMulti () { return i * j; }

protected:

int i;

int j;

};

int main ()

{

Samp * p;

p = new Samp[l0];

if(!p)

{

cout << "Allocation error \ n";

return;

}

for(int j =0; j<l0; j ++)

    p[j]. Set_i_j (j, j);

for(int k=0; k<l0; k++)

    cout <<"Multi[" <<k <<"] is:"<< p[k].GetMulti () <<endl;

delete [ ] p;

return 0;

}

Multi[0] is:0

Multi[1] is:1

Multi[2] is:4

Multi[3] is:9

Multi[4] is:16

Multi[5] is:25

Multi[6] is:36

Multi[7] is:49

Multi[8] is:64

Multi[9] is:81

Destroying..9

Destroying..8

Destroying..7

Destroying..6

Destroying..5

Destroying..4

Destroying..3

Destroying..2

Destroying..1

Destroying..0 

6. 写出下面程序的运行结果,请用增加拷贝构造函数的方法避免存在的问题。

#include < iostream>

using namespace std;

class Vector

{

public:

    Vector (int s = 100);

    int& Elem(int ndx);

    void Display();

    void Set ();

    ~Vector ();

protected:

int size;

int* buffer;

}

Vector::Vector (int s)

{

buffer = new int [size = s];

for(int i = O; i<size; i + + )

    buffer [i] = i* i;

}

int& Vector:: Elem(int ndx)

{

    if(ndx< 0 || ndx> = size)

    {

        cout << "error in index" <<endl;

        exit (1);

    }

    return buffer [ndx];

}

void Vector::Display ()

{

    for(int j =0; j< size; j ++)

    cout << buffer[j] <<endl;

}

void Vector:: Set ()

{

    for(int j =0; j<size; j++)

        buffer[j] = j + 1;

}

Vector:: ~ Vector()

{

    delete [] buffer;

}

int main()

{

    Vector a(10);

    Vector b(a);

    a. Set ();

    b. Display ();

 

return 0;

}

结果

1

1

4

9

16

25

36

49

64

81

7.读下面的程序与运行结果,添上一个拷贝构造函数来完善整个程序。

    

#include < iostream>

using namespace std;

class CAT

{

public:

    CAT();

    CAT(const CAT&);

    ~CAT();

    int GetAge() const (return * itsAge;)

    void SetAge(int age) { * itsAge = age; }

protected:

int * itsAge;

};

CAT::CAT ()

{

itsAge = new int;

*itsAge = 5;

}

CAT::~CAT ()

{

    delete itsAge;

    itsAge = 0;

}

void main()

{

    CAT frisky;

    cout << "frisky's age:" << frisky. GetAge() <<endl;

    cout <<"Setting frisky to 6... \ n";

    frisky. SetAge ( 6 );

    cout << "Creating boots from frisky \ n";

    CAT boots(frisky);

    cout <<"frisky's age:" << frisky. GetAge() <<endl;

    cout << "boots'age:" << boons. GetAge () <<endl;

    cout << "setting frisk,, to 7 .... n";

    frisky. SetAge (7);

    cout <<"frisky"s age:" << frisky. GetAge() <<endl;

    cout <<"boots' age:" << boots. GetAge() <<endl;

}

 

运行结果为:

  frisky's age:5

  Setting frisky to 6...

  Creating boots from frisky

  frisky's age:6

  boots' age:6

  Setting frisky to 7...

  frisky's age:7

  boots' age:6

     boots' age:6

添加

CAT::CAT(const CAT& other)

{

    itsAge = new int;

    *itsAge = *other.itsAge;

}

CAT::~CAT()

{

    delete itsAge;

itsAge = 0;

}

这篇关于寒假作业2月5号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/684106

相关文章

秦朗丢寒假作业系摆拍 博主被处罚

大家好! 我是老洪,刚看到秦朗丢寒假作业系摆拍博主被处罚。 据央视财经媒体报道,近期,“秦朗丢寒假作业”事件被证实为自导自编的摆拍视频。 图片来源央视财经公众号截图 该博主与同事薛某,为了吸引更多的粉丝和流量,精心策划并编造了一出“拾到小学生秦朗丢失的作业本”的系列视频。他们深知网络上的热点和趋势,因此,为了制造出更具吸引力的内容,两人决定网购寒假作业本,然后使用手机自拍并制作相关视频。在这个

寒假作业Day 10

寒假作业Day 10 一、选择题 1、下列数据结构中,不属于线性表的是( ) A.队列 B.顺序表 C.二叉树 D.链表 A. 队列:队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。因此,队列是线性表。 B. 顺序表:顺序表是用一段地址连续的存储单元依次存储线性表的数据元素。它也是线性表的一种实现方式。 C. 二叉树:二叉树是每个

寒假作业Day 10

寒假作业Day 10 一、选择题 1、下列数据结构中,不属于线性表的是( ) A.队列 B.顺序表 C.二叉树 D.链表 A. 队列:队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。因此,队列是线性表。 B. 顺序表:顺序表是用一段地址连续的存储单元依次存储线性表的数据元素。它也是线性表的一种实现方式。 C. 二叉树:二叉树是每个

寒假作业Day 04

寒假作业Day 04 一、选择题 首先我们分析一下,char *str[3]是字符指针数组,其三个字符指针分别指向"stra",“strb”,“strc”,而char *p则是字符指针,被赋值stra字符串的首地址,所以一开始输出的是stra,而p++之后则是跳过一个字符的位置,输出tra,最后输出ra 故输出结果为stra tra ra 2、下列代码输出的结果是什么( ) #i

寒假作业Day 02

这是第二天的作业,fighting! Day 02 一、选择题 首先char* s[6]是指针数组,也就是其存储的都是这些字符串的地址,其实际上的类型为char**,而fun函数传入了s数组的首地址。而后续fun函数中打印字符,p[i]即*(p+i),我们也从之前的分析中发现了这个其实也就是一个二维数组,所以for循环打印的就是每行的字符串,也就是按照顺序打印0~3下标的字符串,故答案

寒假作业2月6号

第五章  静态成员与友元 一、填空题     1、一个类的头文件如下所示,num初始化值为5,程序产生对象T,且修改num为10,并使用show()函数输出num的值10。 #include <iostream.h> class Test { private: static int num; public: Test(int); void show(); }; __int t

寒假作业2月12号

分支、循环练习 1、选择题 1.1、以下程序的输出结果是___A_____。     main()    {    int k1=1,k2=2,k3=3,x=15; if(!k1)  x--; else if(k2)  if(k3)  x=4; else x=3;        printf(“x=%d\n”,x);     }    A x=4      B x=15

寒假作业2月14号

指针练习 1、选择题 1.1、若有下面的变量定义,以下语句中合法的是(  A  )。 int i,a[10],*p; A) p=a+2;       B) p=a[5];             C) p=a[2]+2;      D) p=&(i+2);   1.2、有以下程序 main() {    int  a[3][3],*p,i;    p=&a[0][0];

寒假作业2月15号

字符串练习 1、选择题 1.1、有以下程序 int main() {   char  a[7]="a0\0a0\0";int  i,j;     i=sizeof(a);  j=strlen(a);        printf("%d  %d\n",i,j); }   //strlen求出字符串的长度,其实是字符串中字符的个数,不包括\0 程序运行后的输出结果是____C____

寒假作业2月8号

数据类型与作用域练习 1、选择题 1.1、以下选项中,不能作为合法常量的是 ____B______ A)1.234e04    B)1.234e0.4 C)1.234e+4    D)1.234e0 1.2、以下定义变量并初始化错误的是_____D________。      A)     char   c1 =  ‘H’ ;      B)     char   c1 =  99