C++期末试题<兰州理工大学,19年>

这是一份来自19年的兰州理工大学C++期末考试试卷,包含简述题、改错题、程序运行结果预测及程序设计题。题目涵盖面向对象特性、内联函数、构造函数、函数重载、模板等概念,还要求根据说明设计person和employee类,并实现相关成员函数。
摘要由CSDN通过智能技术生成

试卷
接:https://pan.baidu.com/s/1gFpA9zgw_RDuxzpNkHLa4g
提取码:c3nj

一、简述题

  1. Q:简述面向对象程序设计方法的主要特征

    A:抽象、封装、继承、多态、

  2. Q:什么叫内联函数?它有哪些特点?

    A:内联函数简单来说就是由关键字`inline`修饰的函数。
    
    内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。
    
    如此,节省了参数传递、控制转移等开销。
    
    
  3. Q:构造函数的主要作用是什么?它有什么特性?

     A:构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象化为一个特定的状态
     不同于其他函数,构造函数有如下特性:
    	1)构造函数的函数名与类名相同,而且没有返回值。
    	2)构造函数通常被声明为公有函数
     	3)构造函数在对象被创建时自动调用
    
  4. Q:什么是函数重载?调用时系统通过什么来区分?

    	A:两个以上的函数,具有相同的函数名,但是其参数的个数或者类型不同。
    	调用时,系统根据实参和形参的个数和类型的最佳匹配来区分该调用哪一个函数。
    
  5. Q:派生类继承基类的方式有几种?分别是什么

    	A:3种
    	公有继承,保护继承,私有继承
    
  6. Q:为什么使用模板?定义类模板的一般格式是什么?

    	A:为什么使用模板?实现代码的高度复用,减少不必要的重复劳动,从而实现泛型编程的目标。
    		一般格式:
            template<typename T>
            class className{
            	[members];
            }
    

二、改错题[每题只有一个错误]

  1. #include <iostream>
    using namespace std;
    #include <math.h>
    
    class complex{
         
    private:
        double real;
        double imag;
    public:
        complex(double r,double i){
         
            real = r;
            imag = i;
        }
    
        double realcomplex() {
         
            return real;
        }
    
        double imagecomplex() {
         
            return imag;
        }
    
        double abscomplex() {
         
            double t;
            t = real*real + imag*imag;
            return sqrt(t);
        }
    
    };
    
    int main(){
         
        complex a(1.0,1.0);
        /*cout<<a.real<<endl错误*/
        /*
         * real是complex的一个私有成员,
         * 外部无法访问。
         * 要取得real的值,就必须调用complex类的
         * 外部接口(公有成员函数)realcomplex(),
         * 故应该改为cout<<a.realcomplex()<<endl;
         */
        cout<<a.realcomplex()<<endl;
    }
    
  2. #include <iostream>
    using namespace std;
    class Point{
         
    public:
        int m,n;
    /*private:
        Point(){ m=0; n=1;}错误*/
    /*构造函数通常声明为公有函数
     * 应改为
     * public:
     * Point(){ m=0; n=1; }
     * */
    private:
        Point(){
          m=0; n=1;}
    };
    
    int main(){
         
        Point op;
        op.m = 123;
    }
    
  3. #include <iostream>
    using namespace std;
    
    class Sample{
         
    private:
        int n,m;
    public:
        Sample()
        {
          m=0; n=0; }
        Sample(
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值