【笔试强训】Day 7

news2024/11/20 10:34:16

🌈欢迎来到笔试强训专栏


  • (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort
  • 目前状态:大三非科班啃C++中
  • 🌍博客主页:张小姐的猫~江湖背景
  • 快上车🚘,握好方向盘跟我有一起打天下嘞!
  • 送给自己的一句鸡汤🤔:
  • 🔥真正的大师永远怀着一颗学徒的心
  • 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏
  • 🎉🎉欢迎持续关注!
    在这里插入图片描述

请添加图片描述

笔试强训解析

  • 🌈欢迎来到笔试强训专栏
    • 🌈选择题
    • 🌈编程题
      • 1️⃣合法括号序列判断
      • 2️⃣Fibonacci数列
  • 📢写在最后

请添加图片描述

🌈选择题

在()情况下适宜采用 inline 定义内联函数
A 函数体含有循环语句
B 函数体含有递归语句
C 函数代码少、频繁调用
D 函数代码多,不常调用

复习一下内联函数

  • 在编译阶段,会将内联函数展开 —— 将函数调用替换成函数体
  • 少了函数调用参数压栈以及建立栈帧的开销,可以提高效率
  • 注意:inline是一个建议性的关键字 —— 具体情况看编译器,由编译器决定
  • 一般是:没有循环、没有递归、函数体不长

答案选C

在 C++ 语言中,对函数参数默认值描述正确的是()
A 函数带默认值的参数只能有一个
B 一个函数的参数若有多个,则参数默认值的设定可以不连续
C 函数参数必须设定默认值
D 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值

  • 缺省参数:备胎的存在
  • 可以全缺省,也可以半缺省:半缺省的默认值必须从右往左依次给出
  • void f(int a, int b = 20, int c = 10) —— 编译成功

答案选D

下面关于类定义的说法中,正确的是:
A 类定义中包括数据成员和函数成员的声明
B 类成员的缺省访问权限是保护的
C 数据成员必须被声明为私有的
D 成员函数只能在类体外进行定义

类的两种定义:

  1. 将声明和成员函数的定义全部放在类中
  2. 类中放成员变量和成员函数的声明,成员函数的定义可以放在.cpp中,注意成员函数名前必须添加类名::

类成员的缺省访问权限是私有的(private),数据成员被声明成私有是错误的;成员函数也可以在类中定义

答案选A

假定一个类的构造函数为A(int aa,int bb){a=aa–;b=a*bb;},则执行A x(4,5);语句后,x.a和x.b的值分别为()
A 20和5
B 3和15
C 5和4
D 4和20

  • a=aa–;是先赋值再–,所以a还是等于4;bb是5,所以4*5 = 20

答案选D

下列关于构造函数的描述正确的是?

A 构造函数可以声明返回类型
B 构造函数不可以用private修饰
C 构造函数必须与类名相同
D 构造函数不能带参数

复习一下:

  1. 构造函数没有返回值,必须和类名相同,且不能带参数
  2. 一般情况下,构造函数权限都是public,因此在类外创建对象时,编译器要调用构造函数(特殊情况:单例模式 —— 一个类只能创建一个对象,将构造函数设置为private)

答案选C

有一个类A,其数据成员如下:

class A {
...
private:
	int a;
public:
	const int b;
	float* &c;
	static const char* d;
	static double* e;
};

则构造函数中,成员变量一定要通过初始化列表来初始化的是:______。
A a b c
B b c
C b c d e
D b c d
E b
F c

  • 初始化列表位置才是真正的初始化,构造函数体中(是赋值)也会回到初始化列表
  • 初始化列表中:只对类中非静态的成员变量进行初始化(静态的是大家共有的,放在类外)
  • 必须在初始化列表中初始化的有
    1️⃣const修饰的成员变量
    2️⃣引用类型的成员变量
    3️⃣类类型对象,该类没有默认的构造函数

答案选B

C++ 中,有如下类模板定义:

template<class T> class BigNumber{
	long n;
public:
	BigNumber(T i) :n(i) {}
	BigNumber operator+(BigNumber b) {
	return BigNumber(n + b.n);
	}
};

已知 b1, b2 是 BigNumber 的两个对象,则下列表达式中错误的是()
A 3+3
B b1+3
C b1+b2
D 3+b1

  • 运算符重载成类的成员函数,形参个数要比该运算符需要的参数少一个
  • 因为:成员函数隐含了this指针

A:内置类型直接相加是可以的;
B:b1+3;+是对两个BigNumber的对象相加的。
如果类中具有单个参数的构造函数,该构造函数具有类型转换的作用
b1+3;编译器在编译代码节点,会调用单参构造函数将3转换成BigNumber的对象
D:第一个参数一定要是BigNumber的对象,因为是this
答案选D

下面有关友元函数与成员函数的区别,描述错误的是?
A 友元函数可以让本类和友元类对象调用
B 友元函数和类的成员函数都可以访问类的私有成员变量或者是成员函数
C 类的成员函数是属于类的,调用的时候是通过指针this调用的
D 友元函数是有关键字friend修饰,调用的时候也是通过指针this调用的

  • 友元函数:不是类的成员函数,没有this指针,在友元函数内部可以访问类中私有的成员
  • 成员函数:具有隐藏的this,通过对象来调用

答案选D

对于以下代码,说法正确的是()

char * p = new char[100]

A p 和 new出来的内存都在栈上
B p 和 new出来的内存都在堆上
C p在栈上 new出来的在堆上
D p在堆上 new出来的在栈上

  • new:C++中用来从动态申请空间,默认情况下,new底层调用的是 operator new ——》 malloc ,所以申请的空间在堆上
  • 指针p全局作用域中在数据段中,若在函数体中则是在栈上

答案选C

类模板的使用实际上是类模板实例化成一个具体的__________。
A 类
B 函数
C 模板类
D 对象

这个当然是实例化成具体的类!

答案选A

🌈编程题

1️⃣合法括号序列判断

题目地址: 传送

在这里插入图片描述
匹配不成功

  1. 当前字符不是括号字符
  2. 括号匹配不完整
    1️⃣多出了左半边:
    2️⃣多出了右半边:

解题思路:

  • 遍历字符串,遇到左括号就入栈,遇到右括号则查看栈中是否有对应的左括号
  • 若没有,栈为空,则表示多出了右括号,匹配不完整
  • 有,出栈,匹配一个完整的括号 遍历完毕后如果栈不为空,则是多出了左括号

在这里插入图片描述

class Parenthesis {
public:
    bool chkParenthesis(string A, int n) {
        stack<char> arr;
        for(auto ch : A)
        {
            if(ch == '(')
            {
                arr.push(ch);
            }
            else if(ch == ')')
            {
                if(arr.empty())
                {
                    return false;
                }
                arr.pop();
            }
            else
            {
                return false;//不是括号字符返回false
            }
        }
        return arr.empty();
    }
};

2️⃣Fibonacci数列

题目地址:传送

在这里插入图片描述

题目思路:

  • 找到两个距离N最近的两个fib数
  • left(小于N),right(大于N)
  • 最近的距离是:min(N - left , right - N)
#include <iostream>
using namespace std;

int main() {
    int a = 0, b = 1, c;
    int N, left=0, right=0;
    cin >> N;

    while(1)
    {
        c = a + b;
        a = b;
        b = c;

        //通过不断循环找到了左边最小的fib数
        if(c < N)
        {
            left = c;//左边的fib数
        }
        else
        {
            right = c;//右边的fib数
            break;
        }
    }
   cout << min(N - left , right - N) <<endl;
   return 0;
}

📢写在最后

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安科瑞AcrelEMS-SW智慧水务能效管理平台解决方案

系统概述 安科瑞电气具备从终端感知、边缘计算到能效管理平台的产品生态体系&#xff0c;AcrelEMS-SW智慧水务能效管理平台通过在污水厂源、网、荷、储、充的各个关键节点安装保护、监测、分析、治理装置&#xff0c;用于监测污水厂能耗总量和能耗强度&#xff0c;重点监测主要…

2022年史上最全Java面试题:数据结构+算法+JVM+线程+finalize+GC

基本概念 操作系统中 heap 和 stack 的区别 什么是基于注解的切面实现 什么是 对象/关系 映射集成模块 什么是 Java 的反射机制 什么是 ACID BS与CS的联系与区别 Cookie 和 Session的区别 fail-fast 与 fail-safe 机制有什么区别 get 和 post请求的区别 Interface 与 …

服务端高并发分布式架构演进之路

1. 概述 本文以淘宝作为例子&#xff0c;介绍从一百个到千万级并发情况下服务端的架构的演进过程。同时列举出每个演进阶段会遇到的相关技术&#xff0c;让大家对架构的演进有一个整体的认知。文章最后汇总了一些架构设计的原则。 特别说明&#xff1a;本文以淘宝为例仅仅是为…

如何入门学python,这是很值得借鉴的学习方法

前言 众所周知&#xff0c;python的应用领域十分广泛&#xff0c;无论是对于专业的程序员还是从事其他工作的人&#xff0c;python这门编程语言都非常值得学习。 但对于零基础的人来说&#xff0c;该如何入门python编程呢&#xff1f; 虽然现在网上有关python编程的教程很多…

PyFlink系列之一:PyFlink安装和PyFlink使用的详细技术

PyFlink系列之一&#xff1a;PyFlink安装和PyFlink使用的详细技术一、下载PyFlink二、创建TableEnvironment三、TableEnvironment API1.Table/SQL 操作2.执行/解释作业3.创建/删除用户自定义函数4.依赖管理5.配置四、Catalog APIs五、Statebackend&#xff0c;Checkpoint 以及重…

小程序图片加载失败binderror方法处理

场景&#xff1a;我们在小程序项目中的一个图片列表&#xff0c;当某些图片加载失败后&#xff0c;直接显示空白&#xff0c;这样用户体验不好&#xff0c;为了解决当图片加载失败&#xff0c;我们给一个默认图片代替&#xff0c;参考官方给的图片加载失败的处理方法&#xff1…

C51单片机开发程序报错 main.c (11) : error C267 : ‘Func‘ : requires ANSI-style prototype

问题 C51单片机开发程序报错 main.c (11) : error C267 : Func : requires ANSI-style prototype详细问题 问题一 问题二 问题三 可能原因一 函数定义声明处&#xff08;.h文件中&#xff09;与主函数中函数&#xff08;函数名/参数类型/返回值类型&#xff09;不一致 解决…

【Vue2+Element ui通用后台】项目搭建和vue-router使用

文章目录介绍创建项目并引入Element-ui按需引入全局引入vue-router安装嵌套路由介绍 通过这个系列文章&#xff0c;我们将学到&#xff1a; 1.项目搭建使用element实现首页布局 2.顶部导航菜单及与左侧导航联动的面包屑实现 3.封装—个ECharts组件 4.封装一个Form表单组件和Ta…

木字楠后台管理系统开发(4):SpringSecurity引入并编写登陆接口

&#x1f3b6; 文章简介&#xff1a;木字楠后台管理系统开发(4)&#xff1a;SpringSecurity引入并编写登陆接口 &#x1f4a1; 创作目的&#xff1a;为了带大家完整的体验木字楠后台管理系统模版的开发流程 ☀️ 今日天气&#xff1a;冬天来啦&#xff01; &#x1f4dd; 每日一…

在ubuntu上部署gitlab详细步骤

一、Ubuntu安装gitlab步骤&#xff1a; 安装依赖 通过快捷键ctrlaltT打开命令行窗口&#xff0c;然后运行下面两行命令 sudo apt update sudo apt-get upgrade sudo apt-get install curl openssh-server ca-certificates postfix 如果这一步遇到下面提示界面&#xff0c…

BUUCTF Web2

[HCTF 2018]admin flask session的伪造 改密码的页面源码有提示&#xff0c;得到秘钥ckj123 自己的session .eJw9kEGLwjAUhP_KkrOHJm09CB5cbKULeaHwanm5iKu1adK4UBVpxP--XRc8zGmGj5l5sN1paC6GLa7DrZmxXXdkiwf7-GYLptCl2uoOcHWXmDu1kYnGLIFNdQdsBYmtkbb3YI89YDXKUHKNTkCg8S9PliJ…

Kotlin 开发Android app(二十二):Retrofit和简单的mvp框架

到这一节&#xff0c;基本上把大部分kotlin和android的开发都已经介绍完成了&#xff0c;通过了前面和这一章的框架结构&#xff0c;基本上能解决开发中的很多问题&#xff0c;并且能够知道android的主要的技术&#xff0c;并进行独立开发了。对于传统的开发的话&#xff0c;还…

一些可以显著提高大型 Java 项目启动速度的尝试

我们线上的业务 jar 包基本上普遍比较庞大&#xff0c;动不动一个 jar 包上百 M&#xff0c;启动时间在分钟级&#xff0c;拖慢了我们在故障时快速扩容的响应。于是做了一些分析&#xff0c;看看 Java 程序启动慢到底慢在哪里&#xff0c;如何去优化&#xff0c;目前的效果是大…

SpringSecurity安全框架

目录 一、Spring Security介绍 1、框架介绍 2、认证与授权实现思路 二、整合Spring Security 1、在common下创建spring_security模块 2、在spring_security引入相关依赖 3.代码结构说明&#xff1a; 4、创建spring security核心配置类 5、创建认证授权相关的工具类 &a…

Roson的Qt之旅 #139 Qt读写Excel

1.使用QAxObject读写Excel QAxObject类提供了一个包裹COM对象的QObject。 QAxObject可以被实例化为一个空的对象&#xff0c;用它应该包裹的COM对象的名字&#xff0c;或者用一个指向代表现有COM对象的IUnknown的指针。如果COM对象实现了IDispatch接口&#xff0c;该对象的属性…

【Python 身份证JSON数据读取】——身份证前六位地区码对照表文件(最全版-JSON文件)

点个赞留个关注吧&#xff01;&#xff01; 1、生成身份证前六位地区码对照表JSON文件 2、python 读取JSON文件 提取码【1234】 json文件下载 废话不多说&#xff0c;先上效果图 一、生成身份证json数据文件 先去百度搜索地区身份证号码前6位查询 ,然后进入网站控制台界面&…

经常会采坑的javascript原型应试题

一&#xff0e; 前言 原型和原型链在面试中历来备受重视&#xff0c;经常被提及。说难可能也不太难&#xff0c;但要真正完全理解&#xff0c;吃透它&#xff0c;还是要多下功夫的。 下面为大家简单阐述我对原型和原型链的理解&#xff0c;若是觉得有说的不对的地方&#xff…

必备技能,MySQL 查找并删除重复行

本文讲述如何查找数据库里重复的行。这是初学者十分普遍遇到的问题。方法也很简单。这个问题还可以有其他演变&#xff0c;例如&#xff0c;如何查找“两字段重复的行”&#xff08;#mysql IRC 频道问到的问题&#xff09; 如何查找重复行 第一步是定义什么样的行才是重复行。…

碳酸钾碱性溶液除钙镁软化树脂

碳酸钾是重要的基本无机化工、医药、轻工原料之一&#xff0c;主要用于光学玻璃、电焊条、电子管、电视显像管、灯泡、印染、染料、油墨、照相药品、泡花碱、聚酯、炸药、电镀、制革、陶瓷、建材、水晶、钾肥皂及药物的生产。用作气体吸附剂&#xff0c;干粉灭火剂&#xff0c;…

Spring Boot 整合 Groovy 脚本,实现动态编程

Groovy简介 Groovy 是增强 Java 平台的唯一的脚本语言。它提供了类似于 Java 的语法&#xff0c;内置映射&#xff08;Map&#xff09;、列表&#xff08;List&#xff09;、方法、类、闭包&#xff08;closure&#xff09;以及生成器。脚本语言不会替代系统编程语言&#xff…