多益 2020 校招笔试 ( 信息安全工程师 )

2023-12-17 03:38

本文主要是介绍多益 2020 校招笔试 ( 信息安全工程师 ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、单项选择

1.类B是类A的共有派生类,类A和类B中都定义了虚函数 func() , p 是一个指向类 A 对象的指针,则 p->A::func()将( A )?
A 调用 A 中的函数 func()
B 调用 B 中的函数 func()
C 根据 p 指向的对象类型确定是调用 A ,还是 B 的 func()
D 不但调用 A 中的函数 ,也调用 B 中的函数

原题截图:
在这里插入图片描述
参考代码:

#include "stdafx.h"
#include<string.h>
#include<iostream>
using namespace std;class A {
public:virtual void fun();
}a;
void A::fun() {cout << "A" << endl;
}class B :public A {void fun();
}b;
void B::fun() {cout << "B" << endl;
}int main()
{A *p_a;p_a = &a;p_a->fun();p_a = &b;p_a->fun();//B *p_b;//p_b = &b;//p_b->fun(); // 函数"B::fun"不可访问getchar();return 0;
}

继承和派生:https://blog.csdn.net/one_super_dreamer/article/details/81611118
虚函数:https://www.cnblogs.com/weiyouqing/p/7544988.html


在这里插入图片描述

2.分析下面代码:最后输出的字符串是 :ACC

#include "stdafx.h"
#include<string.h>
#include<iostream>
using namespace std;class ObjectA {
public:ObjectA() {}virtual ~ObjectA() {}void Print() {cout << "A" << endl;}
};class ObjectB {
public:ObjectB() {}virtual ~ObjectB() {}virtual void Print() {cout << "B" << endl;}
};class ObjectC :public ObjectA, public ObjectB {
public:ObjectC() {}~ObjectC() {}void Print() {cout << "C" << endl;}
};int main() {// A中没有定义Print()为虚函数,无法被派生ObjectA* Obj1 = new ObjectC;Obj1->Print();delete Obj1;// B中Print()为虚函数,可以被C派生ObjectB* Obj2 = new ObjectC;Obj2->Print();delete Obj2;// C中调用自己的Print()函数ObjectC* Obj3 = new ObjectC;Obj3->Print();delete Obj3;getchar();return 0;
}

原题截图:
在这里插入图片描述


在这里插入图片描述

3.运行以下代码:输入“文件名 12 345 678”,程序的执行结果为( A )?

int main(int argc,char** argv){int n=0,i;for(i=1;i<argc;i++){n = n*10 + *argv[i] - '0'; //*argv[i]为argv[i]的第一个字符。int类型和字符类型一起运算结果为int类型。*argv[i] - '0' 结果仍然是*argv[i]}printf("%d\n",n);getchar();return 0;
}
/*
第一次循环: n=0*10+'1'-'0'=1
第二次循环: n=1*10+'3'-'0'=13
第三次循环: n=12*10+'6'-'0'=136
*/

A 136
B 12345
C 12345678
D 12

原题截图:
在这里插入图片描述

argc和argv:https://www.cnblogs.com/quan1/p/6698107.html


注意这里必须在命令行输入:Test.exe 12 345 678,而不是双击运行它。另外argc=参数个数+1,其中argv[0]=程序名:
在这里插入图片描述
运行结果:
在这里插入图片描述

4.下列哪个C++关键字用来表示变量函数的定义在别的函数中( B )?
A static
B extern~
C inline
D default

static:https://blog.csdn.net/t595180928/article/details/80448249
extern:https://blog.csdn.net/qq_38880380/article/details/81474580
inline:https://www.runoob.com/w3cnote/cpp-inline-usage.html
default:https://www.jianshu.com/p/ef66ba66916c


static 用来定义全局变量,该变量不会因函数的结束而消亡。
extern 用来引入相同项目下不同文件中的变量。
inline 用来减少某个频繁被调用的函数对内存栈的过分消耗。
default 用来初始化默认构造函数、析构函数、拷贝函数、拷贝赋值函数。

原题截图:
在这里插入图片描述

5.下列描述中,表达错误的是( B )?
A 共有继承时基类的 public 成员在派生类中仍然是 public 的
B 共有继承时基类的 private 成员在派生类中仍然是 private 的~
C 共有继承时基类的 protected 成员在派生类中仍然是 protected 的
D 私有继承时基类的 public 成员在派生类中是 private 的

B:公有继承中基类的 private 成员不能被派生类访问

原题截图:
在这里插入图片描述

6.在一个单链表中,若 q 所指节点是 p 所指节点的前驱节点,在p、q 中插入一 s 所指的节点,则执行什么( D )?
A s->link=p->link ; p->link=s
B p->link=s ; s->link=q
C p->link=s->link ; s->link=p
D q->link=s ; s->link=p

在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱节点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱节点原先的后继节点

原题截图:
在这里插入图片描述

7.如下代码:在 Windows NT 32 系统下,sizeof(A) , sizeof(B) , sizeof(C ) 分别为

class A{
};
/*空类被实例化时,编译器会隐含地为其添加一个字节sizeof(A)=1
*/class B{bool var1;int var2;bool var3;
};
/*bool占1字节,int占4字节。1+4=5(对齐)=8,8+1=9(对齐)=12sizeof(B)=12
*/class C{int var1;bool var2;bool var3;
};
/*bool占1字节,int占4字节。4+1=5(继续)+1=6(对齐)=8sizeof(C)=8【注意:不同字节大小的数据类型相邻时只对齐一次】
*/

class 大小:https://www.cnblogs.com/sz-leez/p/7119232.html

原题截图:
在这里插入图片描述

8.下面程序的输出结果:

#include<iostream>
using namespace std;void PrintSequence(int stopNum) {int num;num = 1;while (true) {if (num >= stopNum) { throw num; } 	// throw 后会跳出循环cout << num << endl;num++;}
}int main() {try {PrintSequence(2);}catch (int exNum) {	 // catch 接收 ‘throw’ 的值cout << "exception:" << exNum << endl;}getchar();return 0;
}
}

结果:
在这里插入图片描述

原题截图:
在这里插入图片描述9.在 linux 中,对 file.sh 文件执行 #chmod 645 file.sh ,该文件的权限是( D )?
A -rw-r–r--
B -rw-r–rx-
C -rw-r–rw-
D -rw-r–r-x

chomd 语法:https://www.runoob.com/linux/linux-comm-chmod.html


解析:
6 = 4 + 2 = r + w
4 = 4 = r
5 = 4 + 1 = r + x

原题截图:
在这里插入图片描述

10.有 100 万个在 [0,10000] 区间的随机数,现在需要对这些数进行排序,以下速度最快的是( A )?
A 快速排序
B 冒泡排序
C 插入排序
D 散列表

快速排序:选择一个基数,小于这个数的放在左边,大于这个数的放在右边,递归。时间复杂度 = O(NlogN)
冒泡排序:循环 N - 1 次,比较相邻的元素如果不满足顺序要求则两两交换。时间复杂度 = O(N2)
插入排序:找到开头的有序部分(无序则找到第一个),之后的每个数都插入到这个有序部分的合适位置。时间复杂度 = O(N2)
散列表:先构建散列表(类似字典),根据给定关键字的值(类似单词首字母)去定位散列表的位置,是一种空间换时间的算法。时间复杂度 = O(log₂N)


解析:散列表(哈希)是查找算法,而不是排序算法

原题截图:
在这里插入图片描述
11.未授权的实体得到了数据的访问权,这属于安全的( A )破坏
A 机密性
B 完整性
C 合法性
D 可用性

原题截图:
在这里插入图片描述

12.风险评估的基本过程( C )?
A 通过以入发生的信息安全事故,找到风险所在
B 风险评估就是对照安全检查单,查看相关的管理和技术实施是否到位
C 识别并评估重要的信息资产,识别各种可能的威胁和严重的弱点,最终确定风险
D 风险评估并没有规律可循,完全取决于评估者的经验所在

原题截图:
在这里插入图片描述

13.下列技术中,不能预防重放攻击的是( C )?
A 时间戳
B Nonce
C 明文填充
D 序号

时间戳:1970年1月1日0:00到现在的总描述。客户端和服务端分别生成时间戳,判断客户端与服务端是否在同时间段内。
Nonce:在加密领域中,一个只能被使用一次的随机数。Server 首先发送 nonce 到 Client,Client 将数据和 nonce 通过 hash 运算再提交到 Server 进行验证,所以即使窃取了前一次的 hash 值也无法冒充用户。
明文填充:一种加密方式。在明文长度不是算法要求的块长度的整数倍时使用。
序号:Server、Client 都创建一个会话管理类,成员为组号(当前会话编号)、序列号(当前组号下发送请求的编号),初始值为0。Client 向 Server 发送请求时将组号、序列号拼接在请求之前,保存组号、序列号,之后组号序列号++。Server 接收到请求,保存组号序列号,下次接收 Client 请求时,把请求中的组号序列号和保存的组号序列号比较,小于等于为重放攻击,大于则为正常。

原题截图:
在这里插入图片描述

14.以下哪个攻击可以提供拦截和修改 http 数据包的功能( D ) ?
A sqlmap
B metasploit
C hackbar
D burpsuit

sqlmap:SQL注入点扫描工具
metasploit:一个漏洞框架,类似于msf
hackbar:火狐浏览器插件,用来测试SQL注入、XSS
burpsuit:抓包工具

原题截图:
在这里插入图片描述

15.防火墙应具有强大的审计功能和自动日志分析功能是因为( A )?
A 可以更早发现潜在威胁并预防工技大发生
B 一句安全管理部门要求
C 内网审计系统的要求
D 日志是防火墙进行安全决策的参考

原题截图:
在这里插入图片描述

16.容灾的目的和实质是( B )?
A 信息系统的必要补充
B 保持信息系统的业务持续性
C 提升用户的安全预期
D 实现对系统数据的备份

原题截图:
在这里插入图片描述
17.某个机构的网络遭受多次入侵攻击,下面哪一种技术可以提前检测到这种行为( C )?
A 杀毒软件
B 包过滤路由器
C 蜜罐
D 服务器加固

原题截图:
在这里插入图片描述
18.对利用软件缺陷进行的网络攻击,最有效的防范法是( A )?
A 及时更新补丁程序
B 安装防毒软件并及时更新病毒库
C 安装防火墙
D 安装漏洞扫描软件

原题截图:
在这里插入图片描述

19.信息隐藏主要研究如何将机密信息秘密隐藏于另一公开信息中。以下关于利用多媒体数据来隐藏机密信息的陈述中,错误的是( B )?
A 多媒体信息本身有很大的冗余性
B 多媒体信息本身编码效率很高
C 人眼或人耳对某些信息有一定的遮蔽效应
D 信息嵌入到多媒体信息中不影响多媒体本身的传送和使用

原题截图:
在这里插入图片描述20.修改以太网 mac 地址的命令为( B )?
A ping
B ifconfig
C arp
D traceroute

1.禁用网卡:
ifconfig 网卡 down
2.修改 mac
ifconfig 网卡 hw ether 新的mac

原题截图:
在这里插入图片描述

二、问答题

在这里插入图片描述

int a[] = {1,2,3} 【正确】
在这里插入图片描述


int b[3] = {1}; 【正确】(因为0不方便测试,所以这里改成了1)
在这里插入图片描述


char c[] = {0,1,2}; 【正确,但是 int 强行转换 char 会输出乱码】
在这里插入图片描述


char d[3] = “123”; 【错误】(数组长度超上限)
在这里插入图片描述
在这里插入图片描述


char e[3] = {""}; 【正确】 (为了方便这里用 “1” 代替了 “”)
在这里插入图片描述


char f[3] = {“01”}; 【正确】(这里 “01” 元素被当做 2 个 char 元素)
在这里插入图片描述


char g[3] = {‘0’,‘1’}; 【正确】
在这里插入图片描述


char h[3] = {“0”,“1”}; 【错误】(初始值设定太多)
在这里插入图片描述


char i[][3] = { “0”,“1” }; 【正确】(这里因为两个 i 变量相互冲突所以改成了 a)
在这里插入图片描述


char j[][3] = {{“0”},{“1”}}; 【正确】(这里因为两个 j 变量相互冲突所以改成了 a)
在这里插入图片描述

在这里插入图片描述

A*算法:https://blog.csdn.net/zgwangbo/article/details/52078338
(1)①曼哈顿距离:横向格子数+纵向格子数。②欧式距离:两点间的直线距离。
(2)估算距离 h < 实际距离 h’
在这里插入图片描述

在这里插入图片描述

信息安全三要素
保密性:保密信息只能让有权读到或更改的人读到和更改。
完整性:在存储或传输信息的过程中,原始的信息不能允许被随意更改或篡改。
可用性:信息合法拥有和使用者,在需要的时候都能得到信息。


信息系统
由计算机硬件、网络通信设备、计算机软件、信息资源、信息用户和规章制度组成的以处理信息流为目的的人机一体化系统。主要有五个基本功能,即对信息的输入、存储、处理、输出和控制。

在这里插入图片描述

iptables 介绍:https://blog.csdn.net/llxx1234/article/details/78758634

(1)添加白名单
① iptables -A INPUT -s 某IP地址 -p all -j ACCEPT
② service iptables save
③ service iptables restart
-A:尾部追加(append)【INPUT:处理来自外部的数据】
-s:指定地址(source)
-p:协议(protocol)【all:所有协议】
-j:执行目标(jump to target)【ACCEPT:允许访问】


(2)开放 80,445 端口
① iptabels -A INPUT -p tcp -m state --state NEW -m tcp --dport 80,445 -j ACCEPT
② service iptables save
③ service iptables restart
-m state:使用 state 模块【–state NEW:第一个数据包到达服务器时的状态字段为 NEW】
-m tcp:使用 tcp 模块【–dport:目的端口】


(3)只允许 192.168.0.0/26 访问 22 端口
① iptables -A INPUT -p tcp --dport 22 -j REJECT
② iptables -A INPUT -p tcp -s 192.168.0.0/26 --dport 22 -j ACCEPT
③ service iptables save
④ service iptables restart
REJECT:拒绝访问


(4)8080端口映射到 80 端口
① iptables -t nat -A PREROUTING -m tcp -p tcp --dport 8080 -j DNAT --to-destination 某IP地址:80
② service iptables save
③ service iptables restart
【注意:80 转发到 8080 = 8080 映射到 80】
-t:指定表名(table),默认为 filter【PREROUTING:处理刚到达本机并在路由转发前的数据包】
-d:目的地址
DNAT:修改数据包的目的地址
–to-destination:设置目的 ip

在这里插入图片描述

1.保障系统开发时的安全
(1)避免危险API和危险中间件版本
(2)采用面向对象的开发方法。使模块之间、子系统之间能实现隔离。
2.保障硬件的安全(硬件设备或机房辅助设备)
3.保障机房环境的安全(防火、防水、防潮、供电、温度等)
4.网络通信安全
(1)使用安全传输层协议(TCL)和安全超文本传输协议(HTTPS)
(2)使用防火墙
(3)对重要数据进行加密
(4)使用 VPN,并及时对账号进行回收和销毁
5.软件安全
(1)避免危险的操作系统版本和数据库管理器版本
(2)定期对系统进行安全测试
6.数据安全
(1)验证操作数据库的用户
(2)对数据库进行加密(避免危险的加密方法,如 md5、base64)

在这里插入图片描述

(1) 入侵检测技术的基本模型包括那三大部分?
通用入侵检测模型、层次化入侵检测模型、管理式入侵检测模型。
(2)入侵检测系统和防火墙,一般哪个在外部?这么分配有什么好处?
入侵检测在内部,防火墙在外部。好处:降低入侵检测的误报率(入侵检测比防火墙敏感)

在这里插入图片描述

三、编程题

1.将一个10进制数字转换为二进制,并统计这个二进制数里 “1” 出现的次数。

这篇关于多益 2020 校招笔试 ( 信息安全工程师 )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/502934

相关文章

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

未雨绸缪:环保专包二级资质续期工程师招聘时间策略

对于环保企业而言,在二级资质续期前启动工程师招聘的时间规划至关重要。考虑到招聘流程的复杂性、企业内部需求的变化以及政策标准的更新,建议环保企业在二级资质续期前至少提前6至12个月启动工程师招聘工作。这个时间规划可以细化为以下几个阶段: 一、前期准备阶段(提前6-12个月) 政策与标准研究: 深入研究国家和地方关于环保二级资质续期的最新政策、法规和标准,了解对工程师的具体要求。评估政策变化可

如何成为一个优秀的测试工程师

链接地址:http://blog.csdn.net/KerryZhu/article/details/5250504 我一直在想,如何将自己的测试团队打造成世界一流的团队?流程、测试自动化、创新、扁平式管理、国际标准制定、测试社区贡献、…… 但首先一点是明确的,就是要将每一个测试工程师打造成优秀的测试工程师,优秀的团队必须由优秀的成员构成。所以,先讨论“如何成为一个优秀的测试工程师”,

两道笔试题

“char a='\72'”是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT

华为23年笔试题

消息传输 题目描述 在给定的 m x n (1 <= m, n <= 1000) 网格地图 grid 中,分布着一些信号塔,用于区域间通信。 每个单元格可以有以下三种状态:  值 0 代表空地,无法传递信号;  值 1 代表信号塔 A,在收到消息后,信号塔 A 可以在 1ms 后将信号发送给上下左右四个方向的信号塔; 值 2 代表信号塔 B,在收到消息后,信号塔 B 可以在 2ms

实现的动态规划问题华为笔试题C++实现

秋招刷力扣题,我觉得我对动态规划不是熟练,在此处做总结 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。我觉得最大的问题就是对问题的分解,分解后的问题与分解前的问题具有相同的决策机制,将决策机制进行抽象,最终可以得到对应的解; 动态规划中开始介绍的爬楼梯等问题,答