C++开发笔试真题

news/2024/5/5 21:30:15/文章来源:https://blog.csdn.net/weixin_41694574/article/details/126981016

文章目录

  • 单选
      • 1·关于斐波那契数列的这段代码时间复杂度?(O(n))
      • 2·关于Linux系统,描述错误的是?
      • 3·❓输出正确的结果 ==9==
      • 4·在编译系统中,语法分析程序输出的是—==语法分析树==
      • 5·❓网段地址154.27.0.0的网络,若不做子网划分,能支持几台主机?(B)
      • 6·❓关于HTTP协议下面描述正确的是 (D)
      • 7·关于排序算法描述错误的是-(A)
        • 排序算法总结
    • 多选
      • 1·下列说法正确的是?(AC)
      • 2·❓下列哪个方法可以用于创建一个可运行的类?(BD)
      • 3·OSI网络七层描述正确的是 ()
        • OSI七层网络模型
      • 4·❓下列说法错误的是?
      • 5·在软件工程中,关于单元测试的方法,如下选项正确的是?
    • 6·以下程序说法正确的是?
    • 编程题
      • 1·手机运行时长
        • 输入描述
        • 输出描述
        • 样例
        • C++参考代码-仅供参考
      • 2·米小兔的英语考试
        • 题目描述
        • 输入描述
        • 输出描述
        • 样例
        • C++参考代码–仅供参考

单选

1·关于斐波那契数列的这段代码时间复杂度?(O(n))

def fib(n):if(n<=1);//0,1直接返回return n;fibs=[0]*(n+1);//初始化一个数组fibs[1]=1;for i in range(2,n+1);//从下标为2的数字开始fibs[i]=fibs[i-1]+fibs[i-2];return fibs[n];//返回第n个数字

2·关于Linux系统,描述错误的是?

  • A:etc主要存放配置文件,启动脚本等

  • B:Linux主要分内核、shell、文件系统和应用程序

  • C:Linux是内核目前尚无法脱离界面运行 可以脱离界面运行

  • D:bin目录下主要放置一些系统必备的执行文件

3·❓输出正确的结果 9

using namespace std;
//考察内存对齐
struct  TEST{char t_a;char t_b;int t_c;char t_d;
};
int main()
{int a[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int num=a[1][sizeof (TEST)/4];cout<<num;return 0;
}
//9
//test的大小为12

test的大小为12–结构体对齐的规则是什么?

4·在编译系统中,语法分析程序输出的是—语法分析树

  • 四元式
  • 表达式
  • 语法分析树
  • 句子
**编译过程分为:==编译预处理(.ii文件)、编译(.s)、汇编(.o)、链接==**1. 编译预处理:生成.ii文件1. 处理以#开始的预编译指令、如#include、#define2. 删除注释行、删除define,展开宏定义3. 添加行号和文件名标识-便于编译时编译器产生调试用的行号信息及用于编译时产生编译错误或警告时能够显示行号2. 编译:–进行一系列的词法分析\语法分析\语义分析\优化后产生相应的汇编代码文件1. 词法分析-将源代码的字符分割成一系列的记号2. 语法分析-对词法分析后的记号-进行语法分析-从而形成语法树3. 语义分析1. 静态语义:编译时可以确定的语义2. 动态语义:只有在运行时才能确定的语义-C++中的多态-virtual的虚函数与虚表指针❓4. 中间语言生成-源码优化器-对代码进行优化:2+6直接优化成85. 目标代码生成与优化3. 汇编:1. 将汇编代码转化成机器可以执行的指定.o4. 链接:-生成可执行文件1. 地址和空间分配2. 符号决议3. 重定位**静态链接:复制和拷贝一份所需要的内容**==效率高-耗内存==**动态链接:保存其对应的地址-运行时进行寻址**==开销小-速度慢==

5·❓网段地址154.27.0.0的网络,若不做子网划分,能支持几台主机?(B)

A:1024
B:65534
C:254
D:16777206

6·❓关于HTTP协议下面描述正确的是 (D)

A:HTTP协议是有状态的  无状态
B:HTTP协议默认的端口号是8080    80
C:HTTP协议中只能通过post方法向服务器上传资源  post get也可以
D:HTTP协议是以ASCAII码传输,建立在TCP/IP协议指上的应用层  头部用ASCAII 数据用二进制

7·关于排序算法描述错误的是-(A)

A:插入排序和快速排序的时间复杂度为O(1)
B:希尔排序的核心思路是序列分割成为若干子序列分别进行直接插入排序
C:虽然快速排序速度较高,但是考虑到空间复杂度、元素无序程度,代码风格等诸多元素,其它排序算法依然有其适用场景
D:冒泡排序的核心思路是比较相邻的元素,如果第一个比第二个大就交换

排序算法总结

xiVy4g.png

多选

1·下列说法正确的是?(AC)

A:在类的构造函数中不能够初始化静态成员变量
B:普通成员函数不可以访问静态成员变量
C:静态成员函数不能访问普通成员变量
D:静态成员在类的所有对象中是共享的

2·❓下列哪个方法可以用于创建一个可运行的类?(BD)

A:
public class X implements Runnable{protected void run(){.......}
};B:
public class X implements Runnable{public void run(){.......}
};C:
public class X extern Thread{protected void run(){.......}
};D:
public class X implements Runnable{public void run(){.......}
};

3·OSI网络七层描述正确的是 ()

  • A:网络层:负责数据包从源到宿的传递和网际互联(包PackeT)
  • B:物理层:通过媒介传输比特,确定机械及电器规范(比特Bit)
  • C:表示层:建立、管理和终止会话(会话协议数据单元SPDU)
  • D:会话层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)

OSI七层网络模型

  1. 物理层
    • 机械、电子、定时接口通信、信道上的比特流传输
  2. 数据链路层
    • 物理寻址、同时将原始比特流转变为逻辑传输路线
  3. 网络层-IP
    • 控制子网的运行,如逻辑编址,分组传输、路由选择
  4. 传输层-TCP、UDP
    • 接受上一层的数据,在必须要的时候对数据进行分割,并将这些数据交给网络层,且保证这些数据有效达到对端
  5. 会话层
    • 不同机器上的用户直接建立管理和会话
  6. 表示层–加密解密、压缩、解压缩
    • 信息的语法语义以及它们的关联,如加密、解密、转化翻译、压缩和解压缩
  7. 应用层–HTTP、FTP
    • 各种应用程序协议

4·❓下列说法错误的是?

  • 高级编程语言编译程序常用的语法分析方法中,递归分析法属于自底而上的分析方法
  • “未定义符号”错误(Undefinded SymBol Error)一般发生在预编译阶段
  • 程序编译常常被设计成“前端”加“后端”的模式,有利于功能的移植和扩展
  • 与编译器相比,解释器能产生更快的程序

5·在软件工程中,关于单元测试的方法,如下选项正确的是?

  • 白盒测试又称功能测试,允许测试人员利用程序内部的逻辑结构及有关信息,设计或者选择测试用例,对程序所有逻辑进行测试

  • 静态测试可以通过人工分析来测试程序的正确性

  • 动态测试通过动态分析,程序测试等方法来检车和确认程序是否存在问题

  • 黑盒测试又称结构测试,不考虑成簇内部特性,只依据程序的需求规格说明做检测

白盒测试又称结构测试,

6·以下程序说法正确的是?

for(int i=0;i<2;i++){cout<<i+'b'+1;
}
  • 时间复杂度为O(1)
  • 时间复杂度为O(n)
  • 输出:0b11b1
  • 输出:99100

//b字符的ASCII码值为 98

时间复杂度和不受数值的变化是固定的所以是O(1)

编程题

1·手机运行时长

手机后台可以运行多个程序,假设当后台没有APP运行时,手机进入休眠,否则手机处于运行状态
第i个APP的开始运行时间为starti,运行结束时间为endi,组成第i个APP的运行区间为intvekis[i]=[starti,endi]
数组intvekis表示今天手机各个APP运行时间的区间的集合,求今天手机运行了多长时间

输入描述

输入所有APP的运行时间区间,每行都是一个APP运行区间starti和endi

输出描述

运行时间

样例

输入:
1 3
2 6
8 10
15 18
输出:
10

C++参考代码-仅供参考

#include <iostream>
#include <vector>
#include <algorithm>
#include <sstream>
using namespace  std;
int main(){int start;int end;vector<pair<int,int>>arr;string ss;vector<int>arr2;int temp;while(1) {getline(cin, ss);if (ss.size() == 0) {break;}istringstream stemp(ss);stemp>>start>>end;pair<int, int> t(start, end);arr.push_back(t);cin.sync();cin.clear();ss.clear();}int starti=arr[0].first;int endi=arr[0].second;int sum=0;for(int i=1;i<arr.size();i++){if(arr[i].first>endi){sum+=endi-starti;starti=arr[i].first;end=arr[i].second;}else {end=arr[i].second;}}sum+=endi-starti;cout<<sum;return 0;
}

2·米小兔的英语考试

题目描述

一串排列好的卡片,每个卡片上都有一个英文字母,组成的字符串为s,现要求可以通过增加卡片、抽出卡片、替换卡片的方式(26个字母均可替换),将卡片排列称目标字符串,求最少需要操作多少次

输入描述

字符串s和字符串t

输出描述

操作次数

样例

输出:
"horses"
"ros"
输出:
3

C++参考代码–仅供参考

//
// Created by HANWENKE on 2022-09-20.
//
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace  std;
int main(){string s1;string s2;cin>>s1;cin>>s2;s1.pop_back();s2.pop_back();s1.erase(s1.begin());s2.erase(s2.begin());cout<<s1<<endl;cout<<s2<<endl;unordered_map<char,int>smap1;unordered_map<char,int>smap2;for(int i=0;i<s2.size();i++)smap2[s2[i]]++;//首先删除s1中多余的字符int count=0;for(int i=0;i<s1.size();){if(smap2.find(s1[i])==smap2.end()){s1.erase(s1.begin()+i);count++;continue;}i++;}if(s1.size()==s2.size()&&s1==s2){cout<<count;}//在s1中找s2的对应值是否存在for(int i=0;i<s2.size();i++){int k=0;if(s1.find(s2[i])==std::string::npos){//s1中不存在这个字符--那就在对应位置上构建这个字符s1.insert(i,1,s2[i]);count++;}}//在s2中找到这个字符对应的位置--进行交换int k=0;for(int i=0;i<s1.size();i++){k=s2.find(s1[i]);if(i!=k){swap(s1[i],s1[k]);count++;}}cout<<count;return 0;
}

1.find(s2[i])==std::string::npos){
//s1中不存在这个字符–那就在对应位置上构建这个字符
s1.insert(i,1,s2[i]);
count++;
}
}
//在s2中找到这个字符对应的位置–进行交换
int k=0;
for(int i=0;i<s1.size();i++){
k=s2.find(s1[i]);
if(i!=k){
swap(s1[i],s1[k]);
count++;
}
}
cout<<count;
return 0;
}


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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C_plus_侯捷课件笔记

大气的编程 文章目录大气的编程complex例子创建一个类需要注意&#xff1a;标准库&#xff08;#include&#xff09;头文件标准形式&#xff1a;声明&#xff08;类定义&#xff09;构造函数class template (类模板)&#xff1a;操作符重载&#xff1a;reference(引用&#xff…

2W 行 | 深入理解「设计模式」

你好&#xff0c;我是悟空。 如何将设计模式运用到项目中&#xff1f;如何理解设计模式的妙用&#xff1f;如何提高代码质量&#xff1f;如何做好重构&#xff1f; 这些问题值得我们每个软件工程师去深入思考和总结。 今天推荐一本书&#xff1a;《设计模式之美》&#xff0…

【附源码】从0到1项目搭建-框架搭建(上)

前言 大家好&#xff0c;本文是基于 SpringBoot 从0搭建一个企业级开发项目&#xff0c;基于SpringBoot 的项目&#xff0c;并集成MyBatis-Plus、Druid、Logback 等主流技术。希望对大家有所帮助~ 目录前言一、概述二、创建统一的依赖管理2.1、统一的依赖管理工程创建2.2、Mave…

Java深入数组

Java深入数组 1、数组概念 数组就是存储数据长度固定的容器&#xff0c;保证多个数据的数据类型要一致。 2、数组的初始化 Java语言中数组必须先初始化才能使用&#xff0c;所谓初始化就是为数组的数组元素分配内存空间&#xff0c;并为每个数组元素赋初始值。一旦数组的初…

ELK优雅开启密码登录认证

ELK登录认证 当我们安装好ELK后&#xff0c;默认是可以直接访问到kibana的&#xff0c;可以直接查看收集到的信息&#xff0c;这样很不安全。 很多人采用的是Nginx代理来做登录验证功能&#xff0c;这也是一种实现方式&#xff0c;但是我们还有另一种更加优雅的方式&#xff0c…

Vue2.0 —— Vue.nextTick(this.$nextTick)源码探秘

Vue2.0 —— Vue.nextTick&#xff08;this.$nextTick&#xff09;源码探秘 《工欲善其事&#xff0c;必先利其器》 一、知识储备 在学习这个 API 之前&#xff0c;我们需要进行一定量的知识储备&#xff0c;并且是从最基础的开始&#xff1a; nextTick&#xff0c;译为&…

激光雷达物体检测(二):点视图检测算法

综述&#xff1a; 1.点视图&#xff1a; PointNet/PointNet&#xff0c;Point-RCNN&#xff0c;3D SSD 2.俯视图&#xff1a; VoxelNet&#xff0c;SECOND&#xff0c;PIXOR&#xff0c;AFDet 3.前视图: LaserNet&#xff0c;RangeDet 4.多视图融合&#xff1a; 俯视图…

谷粒商城 高级篇 (十九) --------- 消息队列

目录一、概述二、应用三、RabbitMQ 概念四、安装 RabbitMQ五、RabbitMQ 运行机制Exchange 类型六、RabbitMQ 整合七、RabbitMQ 消息确认机制1. ConfirmCallback2. ReturnCallback3. Ack 消息确认机制一、概述 大多应用中&#xff0c;可通过消息服务中间件来提升系统异步通信、…

python实现图像添加噪声、噪声处理、滤波器代码实现

目录 加载图像添加噪声 图像傅里叶变换和反变换并可视化 图像处理---高通滤波、低通滤波、带通滤波 低通滤波器---Butterworth低通滤波器、理想低通滤波器、高斯低通滤波器 加载图像添加噪声 高斯噪声是指它的概率密度函数服从高斯分布&#xff08;即正态分布&#xff09;…

Linux设置开机自启动Java程序--三种方式

Linux设置开机自启动Java脚本程序 缘起 公司内部的服务器中有个SpringCloud项目需要运行&#xff0c;之前都是通过nohup java-jar .. &的命令来执行的&#xff0c;但是这个cloud项目服务太多&#xff0c;手动启动太麻烦而且容易出错&#xff0c;干脆写个执行java的脚本好…

C++内存管理(每日更新)

文章目录0 概述0.1 四个层面的基本用法1 Primitives1.1 new expression1.2 delete expression1.3 调用构造函数与析构函数1.4 array new & array delete1.4.1 array new0 概述 C应用程序malloc非常重要 可以看出&#xff0c;C内存管理主要是有四个层面 0.1 四个层面的基本…

NFT重构票务系统

什么是NFT&#xff1f; NFT是运行在区块链上的一种不可分割的凭证&#xff08;Non-Fungible Token&#xff09;&#xff0c;或者称为非同质化代币。NFT目前主要用在数字艺术品的铸造、拍卖、流转&#xff0c;因为一个NFT能唯一地确定它的所有者&#xff0c;并可在链上跟踪每一…

自然语言语义分析研究进展_笔记

自然语言语义分析研究进展_笔记 词语语义分析&#xff1a;确定词语意义&#xff0c;衡量两个词之间的语义相似度或相关度; 句子语义分析&#xff1a;研究包含句义分析和句义相似度分析两方面; 文本语义分析&#xff1a;识别文本的意义、主题、类别等语义信息的过程&#xff…

使用@JsonFormat并进一步了解:格式化java.util.Date对象

Java 8 Spring Boot 2.7.3 jackson 2.13.3 -- ben发布于博客园 0、前言 开发过程中遇到问题: 前端调用接口得到的时间对象(java.util.Date)总是存在这样那样的问题。 调查后发现,可以使用 @JsonFormat注解(来自jackson依赖包)解决相关问题。 ben发布于博客园 新建spring …

区块链分叉带来的安全挑战

区块链分叉分为软分叉和硬分叉。本文主要探讨的是硬分叉&#xff0c;一种不支持向后兼容的软件升级方式。硬分叉是共识的分裂或者改变&#xff0c;共识就是区块链系统中各节点达成数据一致性的算法&#xff0c;正常情况下每个节点需要运行相同规则的算法&#xff0c;例如比特币…

计算机毕业设计之java+javaweb的影院管理系统-电影院管理系统

计算机毕业设计之javajavaweb的影院管理系统-电影院管理系统 项目介绍 影院的需求和管理上的不断提升,影院管理的潜力将无限扩大,影院管理系统在业界被广泛关注,本网站及对此进行总体分析,将影院信息管理的发展提供参考。影院管理系统对影院发展有着明显的带动效应,尤其对当地影…

【ManageEngine】OpManager 2022用户体验报告

关于SoftwareViews SoftwareReviews是Info-Tech Research Group的一个部门&#xff0c;是一家世界级的技术研究和咨询公司&#xff0c;拥有超过20年的基于研究的IT建议和技术实施。 SoftwareViews务实的工具和详细的客户洞察力帮助软件购买者在技术决策中取得最大成功。 Sof…

Java并发编程解析 | 基于JDK源码解析Java领域中ReentrantLock锁的设计思想与实现原理 (一)

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以…

全能赛道、热门方向、稀缺数据,“嬴彻-清华AIR杯”自动驾驶技术大赛火热开赛中

如果你关注自动驾驶,那有这样一个算法大赛,值得参与。由卡车自动驾驶领导者嬴彻科技与清华大学智能产业研究院(AIR)精心打造的“嬴彻-清华AIR杯”自动驾驶技术挑战赛正火热开赛中。这是国内首个同时覆盖干线物流和城市道路双赛道的大赛。决策规划是自动驾驶当下的热门方向和技术…

go语言的基本数据类型

基本数据类型中的常量已经介绍了 var const iota 。此处要对字符串特别说明&#xff0c;字符串也会被认为是基本数据类型&#xff0c;字符串实际在底层原理上与复合类型的数据非常相似。同事go语言支持八进制&#xff0c;6进制&#xff0c;科学计数法。空指针的值是nil。 整…