当前位置: 首页 > news >正文

假期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),让静态成员函数访问静态数据成员,并让静态数据成员是保户的。

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;

}

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;

}

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

#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; }

    int Leisure(int time, Boat& bobj);

    void set(int j) { size = j; }

    int getSize() { return size; } // 公有访问函数

private:

    int size;

};

class Boat {
public:

    Boat(int j) { size = j; }

    int Leisure(int time, Car& aobj);

    void set(int j) { size = j; }

    int getSize() { return size; } // 公有访问函数

private:

    int size;

};

int Car::Leisure(int time, Boat& bobj) {
    return time * getSize() * bobj.getSize(); // 使用公有访问函数

}

int Boat::Leisure(int time, Car& aobj) {
    return time * getSize() * aobj.getSize(); // 使用公有访问函数

}

int main() {
    Car c1(2);

    Boat bl(3);

    int time = 4;

    cout << c1.Leisure(time, bl) << endl;

    return 0;

}

相关文章:

  • Android11+ 如何获得外部存储权限
  • 亚信安慧AntDB领航分布式数据库的突破之路
  • 【doghead】VS2022 win11 安装配置WSL2 以编译linux端的cmake项目并运行2
  • 计算已知经纬度的两点距离(两种方法GeoTools和Haversine公式)
  • 《低功耗方法学》翻译——第八章:低功耗IP设计
  • Python进阶--爬取下载人生格言(基于格言网的Python3爬虫)
  • MySQL原理(五)事务
  • 【Linux】基于管道进行进程间通信
  • api接口是什么意思,api接口该如何防护呢?
  • DNS服务器异常有什么影响,怎么处理
  • gtkmm4文件浏览对话框
  • 【目录】CSAPP的实验简介与解法总结(已包含Attack/Link/Architecture/Cache)
  • 蓝桥杯嵌入式第六届真题(完成)STM32G431
  • Linux------命令行参数
  • Objective-C中对象与对象之间的关系
  • iOS | NSProxy
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • vue:响应原理
  • 前端技术周刊 2019-02-11 Serverless
  • 前端相关框架总和
  • 为什么要用IPython/Jupyter?
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #pragam once 和 #ifndef 预编译头
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • %check_box% in rails :coditions={:has_many , :through}
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (三)c52学习之旅-点亮LED灯
  • (十八)SpringBoot之发送QQ邮件
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • **PHP分步表单提交思路(分页表单提交)
  • .chm格式文件如何阅读
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .Net MVC4 上传大文件,并保存表单
  • .NET Reactor简单使用教程
  • .NET 设计模式初探
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET开发人员必知的八个网站
  • .NET实现之(自动更新)
  • ::前边啥也没有
  • @RestController注解的使用
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [ 数据结构 - C++] AVL树原理及实现
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [C#基础知识系列]专题十七:深入理解动态类型