• 【笔试刷题训练】day_07


    选择题

    在这里插入图片描述

    内联函数对于编译器只是一个建议,如果该函数没有递归、循环、并且代码较少,那么编译器就会采取内联,否则就不会采取内联的建议
    所以选择:C

    在这里插入图片描述

    1. 缺省参数只能从右向左依次给,例如void func(int a,int b= 10,int c = 10,所以如果某一个参数是缺省的,它后面的参数一定都是缺省的
    2. 缺省参数可有可无
    3. 全缺省:全部缺省;半缺省:部分缺省
    4. 调用函数的时候, 传参是从左向右传递参数,与给缺省参数的顺序相反

    在这里插入图片描述

    回顾:类的两种定义方式

    1. 声明和成员函数的定义都放在类里面
    2. 类中放成员变量和成员函数的声明,类外部(可以放在其他.cpp中)进行成员函数的定义(返回类型 类名::成员函数(参数列表))

    所以答案选A,类中包括数据成员和函数成员的声明

    B: 默认权限是私有
    C: 共有、私有、保护哦都可以
    D: 可以在类外,也可以在类里定义

    在这里插入图片描述

    初始化列表是成员真正初始化的地方,初始化列表中,只能对类中非静态的成员变量进行初始化,因为静态的成员变量是不依赖于对象,只是依赖于类的!
    静态成员在类外部进行初始化

    三种必须在初始化列表进行初始化的成员

    1. 没有默认构造函数的自定义类型的成员
    2. 引用成员
    3. const成员

    所以,题目中只有bc符合,选B

    在这里插入图片描述

    A: 3+3是内置类型相加
    B: b1+3 其实是调用b1.opertor+(&b1,3),这里因为该类具有单参数的构造函数,所以实参3在传递给operator+()的形参的时候,会发生:

    1. 用3构造一个临时对象
    2. 临时对象拷贝构造出形参

    所以b1+3是可以完成调用的!

    C: b1+b2 调用 b1.operator(&b1,b2)
    D: 3+d1,重载的operator+()的第一个参数隐藏默认的是this,所以+号之前一定是一个BigNumber的对象。第一个参数是int类型,没有对应的函数重载,所以会报错!

    在这里插入图片描述

    友元函数不是类的成员函数,但是在友元函数中可以访问类中私有成员
    成员函数具有隐含的this,受访问限定符的限制



    A: A的说法不是很清楚,我的理解是:友元函数可以访问本类的所有对象。并且如果一个类是另一个类的友元类,那么这个友元类可以随意访问另一个类的内部成员,因为友元类中的所有成员函数都是另一个类的友元函数
    B: 声明为友元,我是你的朋友自然可以访问你的私有成员变量或成员函数
    C: 类的成员函数有this指针,没问题,但是选项说的有一些问题,应该是非静态的成员函数才具有this指针,静态成员函数可以直接通过类名+域作用限定符来访问
    D: 友元函数不是成员函数!没有this指针

    编程题

    1. 合法括号序列判断

    👉 题目链接

    判断括号序列是否合法,显然要用到后进先出的栈

    1. 遇到左括号,入栈
    2. 遇到右括号,如果此时栈为空,说明没有左括号与之匹配,如果不为空,左右括号匹配,弹出左括号
    3. 如果遇到的既不是左括号也不是右括号,说明不合法(题目说了序列只能由括号组成)
    4. 那么最后如果栈为空,说明所有括号都匹配,如果栈不为空,说明有多余的左括号没有匹配到右括号返回false

    代码

    class Parenthesis {
    public:
        bool chkParenthesis(string A, int n) {
            // write code here
            stack<char> st;
            //遍历字符串A
            for(size_t i = 0;i< n;++i)
            {
                //如果不是括号,返回false
                if(A[i]!='(' && A[i]!=')')
                {
                    return false;
                }
                //如果是左括号,入栈
                if(A[i] == '(')
                {
                    st.push(A[i]);
                }
                //如果是右括号,出栈(这里要注意检查是否为空,空就不出栈)
                else if(A[i]==')')
                {
                    //如果栈为空,说明没有匹配的左括号
                    if(st.empty())
                    {
                        return false;
                    }
                    else//栈不为空,配对弹出
                    {
                        st.pop();
                    }
                }
            }
            //返回栈是否为空即可
            return st.empty();
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    2. Fibonacci数列

    👉 题目链接

    题目让我们求出输入一个N,需要多少步才可以变成一个Fibonacci数

    思路很简单

    1. 根据所给的N,求出N前面和N后面的那两个Fibonacci数left和right
    2. 取max(left,right)即可
    #include
    #include
    using namespace std;
    int main()
    {
        int N;
        cin >> N;
        
        int f1 = 0;
        int f2 = 1;
        int ans =0;
        //N超过ans的时候跳出循环
        while(N > ans)
        {
            ans = f1 + f2;
            f1=f2;
            f2=ans;
        }
        
        //跳出的时候 N >= ans
        // f1  N  ans
        // f1就是N前面那个Fibonacci数,ans是N后面那个
        cout << min(ans-N,N-f1) << endl;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
  • 相关阅读:
    【计算机网络】3 数据包抓取与分析
    redis 无法远程连接问题。
    新一代L3虚拟网络接入解决方案(畅想)
    AWS启示录:创新作帆,云计算的征途是汪洋大海
    json序列化时案例总结
    基于MATLAB开发AUTOSAR软件应用层模块-part11.AUTOSAR Dictionary-2 mapping
    关于torch.load加载预训练模型时 造成的 临时分配的显存 不释放
    Tomcat8 JVM参数配置
    【Python】解决类中特性(property)覆盖同名属性(attribute)报错问题
    新年学新语言Go之二
  • 原文地址:https://blog.csdn.net/K_04_10/article/details/127434089