寒假作业2月6号

2024-02-17 21:52
文章标签 寒假作业

本文主要是介绍寒假作业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 test::num = 5;_______

Test::Test(int n)

{ num=n; }

void Test::show()

{ cout<<num<<endl; }

void main()

{ Test t(10);

__t.show();_______

}

  2 、在下面程序的底画线处填上适当的字句,使该程序执行结果为40。

#include <iostream>

class Test

{ public:

____static int x__;

Test (int i=0)

{x=i+x;}

int Getnum()

{return Test::x+7;}

};

Int test::x=33_______;

void main()

{Test test;

cout<<test.Getnum()<<endl;

}

3 、下列程序运行的结果是___________

     #include <iostream.h>

#include <string.h>

#include <iomanip.h>

class student

{char name[8];

int deg;

char level[7];

friend class process; // 说明友元类

public:

student(char na[],int d)

{ strcpy(name,na);

deg=d;

}

};

class process

{ public:

void trans(student &s)

{int i=s.deg/10;

switch(i)

{case 9:

strcpy(s.level, "优");break;

case 8:

strcpy(s.level,"良");break;

case 7:

strcpy(s.level,"中");break;

case 6:

strcpy(s.level,"及格");break;

default:

strcpy(s.level,"不及格");

}

}

void show(student &s)

{cout<<setw(10)<<s.name<<setw(4)<<s.deg<<setw(8)<<s.level<<endl;}

};

void main()

{ student st[]={student("张三",78),student("李四",92),student("王五

",62),student("孙六",88)};

process p;

cout<<"结 果:"<<"姓名"<<setw(6)<<"成绩"<<setw(8)<<"等级"<<endl;

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

{ p.trans(st[i]);

p.show(st[i]);}

}

 姓名   成绩   等级

 张三   78     中

 李四   92     优

 王五   62     及格

 孙六   88     良

二、编程题

1.

 (1) 编写一个类,声明一个数据成员和一个静态数据成员。让构造函数初始化数据成员,并把静态数据成员加1,让析构函数把静态数据成员减1。

 (2) 根据(1)编写一个应用程序,创建三个对象,然后显示它们的数据成员和静态数据成员,再析构每个对象,并显示它们对静态数据成员的影响。

 (3) 修改(2),让静态成员函数访问静态数据成员,并让静态数据成员是保户的。

#include <iostream>using namespace std;class AAA
{friend int static_re();
private:int a;
protected:static int b;
public:AAA(int a):a(a){b++;}~AAA(){b--;cout << "b=" << b << endl;}int get_int(){return a;}static int get_static(){return b;}
};int static_re()
{AAA::b=100;cout << "B:" << AAA::b << endl;return AAA::b;
}int AAA::b=0;int main()
{AAA a1(10),a2(20),a3(30);cout << "a1_int=" << a1.get_int() << endl;cout << "a2_int=" << a2.get_int() << endl;cout << "a3_int=" << a3.get_int() << endl;cout << "static=" << a1.get_static() << endl;static_re();return 0;
}

2.

 (1) 下述代码有何错误,改正它。

#include < iostream>

using namespace std;

class Animal;

void SetValue(Animal&, int);

void SetValue(Animal&, int, int);

class Animal

{

public:

    friend void SetValue(Animal&, int);

protected:

int itsWeight;

int itsAge;

};

void SetValue(Animal& ta, int tw)

{

    a.itsWeight = tw;   ---》ta.itsWeight=tw;

}

void SetValue(Animal& ta, int tw, int tn)

{

    ta.itsWeight = tw;

    ta.itsAge = tn;

}

int main()

{

    Animal peppy;

    SetValue(peppy, 5);

    SetValue(peppy, 7,9);

 

return 0;

}

 (2) 将上面程序中的友员改成普通函数,为此增加访问类中保护数据的成员函数。

#include <iostream>class Animal {
public:void SetValue(int);void SetValue(int, int);protected:int itsWeight;int itsAge;};void Animal::SetValue(int tw) {itsWeight = tw;}void Animal::SetValue(int tw, int tn) {itsWeight = tw;itsAge = tn;}int main() {Animal peppy;peppy.SetValue(5);peppy.SetValue(7, 9);return 0;}

3. 重新编写下述程序,使函数Leisure()成为类Car和类Boat的函数。作为重新编程,在类Car和类Boat中,增加函数set()。

#include < iostream>

using namespace std;

class Boat;

class Car

{

public:

    Car(int j){size = j;}

    friend int Leisure(int time, Car& aobj, Boat& bobi);

protected:

    int size;

class Boat

{

public:

    Boat(int j){size = j;}

    friend int Leisure(int time, Car& aobj, Boat& bobj);

protected:

    int size;

};

int Leisure(int time, Car& aobj, Boat& bobi)

{

    return time * aobj.size *bobi.size;

}

};

int main()

{

    Car c1(2);

    Boat bl(3);

    int time = 4;

    cout << Leisure(time, cl,bl);

 

return 0;

}

 

 #include <iostream>
using namespace std;class Boat;class Car {
public:Car(int j) { size = j; }int Leisure(int time, Boat& bobj);void set(int j) { size = j; }private:int size;
};class Boat {
public:Boat(int j) { size = j; }int Leisure(int time, Car& aobj);void set(int j) { size = j; }private:int size;
};int Car::Leisure(int time, Boat& bobj) {return time * size * bobj.size;
}int Boat::Leisure(int time, Car& aobj) {return time * size * aobj.size;
}int main() {Car c1(2);Boat bl(3);int time = 4;cout << c1.Leisure(time, bl) << endl;return 0;
}

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



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

相关文章

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

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

寒假作业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月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

寒假作业2024.2.14

1.请编程实现二维数组的杨辉三角 #include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <unistd.h>int main(int argc, const char *argv[]){int n;printf("please enter n:");scanf("%d",&n