48天笔试强训——第9天

105 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第21天,点击查看活动详情


选择题

image.png

函数的形参是一个应用类型,所以我们直接传变量本身就可以,所有选A

image.png

new [5]会开辟连续的空间,同时会调用构造函数5次,对于new []开始的空间,要用delete []进行释放,如果用delete进行释放,很有可能会报错,但是选项没有,他会释放一个空间,调用一次析构函数。

image.png

new动态申请的内存在堆区。

image.png

要使用静态的数据成员的时候吗,在静态成员名前面加上类名和作用域符号(::),静态成员属于类的所有对象,要在类域外面进行定义初始化,当然静态变量要加上static

image.png

类的默认访问权限是私有private

image.png

没有任何参数说明是一元运算符的重载,又因为没有参数所有是前置,比如前置++,当然对于后置++我们要在参数列表中加上一个参数,该参数没有实际意义,只是为了区分前置后后置而已。

image.png

obj1()1会调用构造函数,打印1,obj2(2)也会调用构造函数,打印1,obj3(obj1)会调用拷贝构造,打印2,最后依次析构打印4,所有选B

image.png

静态成员不能在类内初始化,静态成员为类对象所共有的,可以被类对象调用,既然是成员就可以被访问限定符的限定。公共成员可以直接用类名进行调用。

image.png

如果把构造函数设成私有,那么在new一个空间的时候就会报错,如果把析构函数设成私有,那么可以用new类创建,但是不能直接用delete释放空间。

image.png

下面正确的为4,6,7

编程题

另类加法

class UnusualAdd {  
public:  
    int addAB(int A, int B) {  
        if (A == 0) return B;  
        if (B == 0) return A;  
        int a = A ^ B;//求和后当前位的数据  
        int b = (A & B) << 1;//求和后进位的数据  
        return addAB(a, b);//递归两个数进行相加,任意为0时截止  
    }  
};

走方格的方案数

本道题就是一道深度搜索,我们规定行走的方向,先向右,在往下,当不能往右,往下的时候就要换方向,当走到终点的时候返回,且记录下来该次方案,任何回到上一步,直到把路走完。