笔试题-Golang(红色是目前确定的正确答案)

笔试题-Golang(红色是目前确定的正确答案)

笔试题目

  1. 关于Redis的持久化,下列描述错误的是(2分)
  • A、RDB是以快照的形式,将内存中的数据整体拷贝到硬盘上。
  • B、执行RDB存储时会产生阻塞,因此RDB不适合实时备份,而适合定时备份。
  • C、AOF是以日志形式,将内存中的数据整体拷贝到硬盘上。
  • D、AOF操作的实时性好,但是产生的数据体积大,数据的恢复速度慢。

正确答案:D; 数据体积比RDB小,恢复速度也比RDB快。

  1. 关于G0函数声明,下面语法错误的是()(2分)
  • A, func f(a, b int) (value int, err error)
  • B. func f(a int, b int) (value int, err error)
  • C. func f(a, b int) (value int, error)
  • D, func f(a int, b int) (int, int, error)
  1. Mysql的复制原理以及流程中不正确的是0(2分)
  • A. Master上的binlog dump线程,该线程负责将master的binlog event传到slave;
  • B.Slave上的IO线程,该线程负责接收Master传过来的binlog,并写入relay log;
  • C. Slave上的SQL线程不仅负责把relay log中的binlog读出来,也负责具体binlog event的执行;
  • D. Slave上的SQL线程只负责把relay log中的binlog读出来然后交给worker线程,WoKw线程负责具体binlog event 的执行;

正确答案:D;SQL线程在从服务器上负责读取并执行中继日志中的事件。没有worker线程

  1. 以下关于Clickhouse的说法错误的是(2分)
  • A. Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系統(columnar DBMS)。
  • B、 Clickhouse有四种事务隔离级别。
  • C. Clickhouse不支持二级索引。
  • D. Clickhouse不会自动剔除字段空格,mysql会自动剔除空格。

正确答案:B;Clickhouse支持两种事务隔离级别:Read Uncommitted 和 Read Committed。不像其他数据库(例如MySQL)那样提供四种事务隔离级别。

ClickHouse(中文名:克里克豪斯)是由俄罗斯的Yandex公司开发的一个开源的列式存储数据库管理系统(DBMS),专门用于处理大规模的分布式数据仓库和分析查询。它被设计用于高性能分析性工作负载,并且能够在大规模数据集上执行快速的查询和聚合操作。以下是 ClickHouse 的一些关键特点和特性:
列式存储: ClickHouse采用了列式存储的方式,数据按列而不是按行存储,这种存储结构在大规模分析性查询中能够提供较高的性能和压缩比。
高性能: ClickHouse被设计为能够快速执行复杂的分析查询,支持高并发、大规模的数据集和多节点部署。其查询性能对于聚合和分析查询非常强大。
分布式架构: ClickHouse是一个分布式数据库系统,可以通过横向扩展增加节点数量来应对更大规模的数据。它支持数据分片、副本和负载均衡。
支持SQL: ClickHouse兼容SQL语言,可以使用标准的SQL查询语句进行数据查询和分析。这使得用户能够在熟悉的语法下进行数据分析。
实时数据注入: ClickHouse支持实时的数据注入,可以通过多种方式将新数据插入到数据库中,包括常规的批量插入、实时插入以及支持Kafka等消息队列的流数据注入。
数据压缩: ClickHouse使用多种压缩算法对数据进行压缩,以减少存储需求和提高查询性能。
灵活的存储引擎: ClickHouse支持多种存储引擎,包括 MergeTree 引擎、Log引擎等,用户可以根据具体需求选择合适的存储引擎。
开源: ClickHouse是开源的,用户可以免费使用、修改和分发它。

ClickHouse在处理大规模数据分析和查询方面表现出色,特别适用于需要快速查询和分析海量数据的场景,例如数据仓库、日志分析、时序数据分析等。
  1. 已知小根堆为8,15,10,21,34,16,12,删除关键字8之后需重建堆,最后的叶子节点为?(2分)
  • A. 34
  • B. 21
  • C. 16
  • D. 12

正确答案:C;

调整后:     10
         /    \
        15     12
       /  \   /   \
      21   34 16
  1. 条件 “BETWEEN 20 AND 30”表示年龄在20到30之间,且()(2分)
  • A、包括20岁不包括30岁
  • B、 不包括20岁包括30岁
  • C、 不包括20岁和30岁
  • D、包括20岁和30岁
  1. 下列应用层协议中使用UDP来实现的是()(2分)
  • A. HTTP
  • B. FTP
  • C. DNS
  • D, SMTP

正确答案:C;

  1. 下列常见 Linux 命令的组合使用中,不正确的是()(2分)
  • A、取log_1.txt log_2.txt 两个文件并集:cat log_1.txt log_2.txt | sort | uniq
  • B、取 log_1.txt log_2.txt 两个文件交集:cat log_1.txt log_2.txt | sort | uniq -d
  • C、取log_1.txt log_2.txt 两个文件差集:cat log_1.txt log_2.txt | sort | uniq -u
  • D、查看log.txt 的行数:cat log.txt | wc -l
  1. 下列哪一个命令是查看域名的DNS解析记录()(2分)

正确答案:D;

  1. 下面不属于白盒测试方法的是()。(2分)
  • A、边界值分析
  • B、语句覆盖
  • C、条件覆盖
  • D、分支覆盖
  1. 下面哪个命令可以从文本文件的每一行中截取指定内容的数据(2分)
  • А、ср
  • B、dd
  • C、fmt
  • D、cut
  1. Go中关于字符串连接,下面语法正确的是()(2分)
  • A、str:= ‘abc’ + ‘123’
  • B、str:= “abc” + “123”
  • C、str: = ‘123’ + “abc”
  1. MySQL数据库提供了四种级别的事务隔离,其中默认的隔离级别是()(2分)
  • A、Serializable(串行化)
  • B、Repeatableread(可重复读)
  • C、 Readcommitted(读已提交)
  • D、Readuncommitted(读未提交)
  1. 以下实现Web负载均衡的几种方式,不属于软件产品的是(2分)
  • A. HAProxy
  • B. LVS
  • C. Nginx
  • D. F5
  1. 下列那一项不是面向对象语言特征()(2分)
  • A、封装
  • B、开放
  • C、多态
  • D、继承
  1. mysql explain查询中关于Extra列描述错误的是?(2分)
  • A、Using index:使用索引,表示索引能够覆盖所有的查询字段,无需进行回表查询所以效率会高
  • B、Using where;Using index :表示查询的列被索引覆盖,且where筛选条件是索引列前导列的一个范围,或者是索引列的非前导列
  • C、Using filesort :表示当前查询的字段不能被索引覆盖,所以可能会产生回表
  • D、Using index condition:表示查询条件中虽然出现了索引列,但是有部分条件无法使用索引,会根据能用索引的条件先搜索一遍再匹配无法使用索引的条
  1. 分布式session共享解决方案,web服务器宕机session的数据将会丢失的是(2分)
  • A、客户端cookie加密
  • B、 NFS实现文件共享
  • C、nginx的ip_hash
  • D、使用redis保存session

正确答案:B;

  1. redis集群模式是基于CAP理论的哪种模式?(2分)
  • A. AP
  • B. CP
  • C, AC
  • D, CAP
Redis 集群模式是基于 CAP 理论中的 AP 模式(A. AP)。CAP 理论指出,在分布式系统中,无法同时满足一致性(Consistency)、可用性(Availability)、和分区容错性(Partition Tolerance)这三个特性。

 Redis 集群中,为了提高可用性和分区容错性,选择了 AP 模式,允许在网络分区的情况下继续提供服务,即牺牲了一致性。在 Redis 集群中,数据分片(partitioning)和复制(replication)是用来实现高可用性和分区容错性的关键机制。
  1. 下面的Go程序的运行结果是() func main() { if (true) { ​ defer fmt.Printf(“1”) }else { ​ defer. fmt.Printf(“2”) } fmt.Printf(“3”) }(2分)
  • A. 321
  • B. 32
  • С. 31
  • D, 13
  1. 假设使用一种加密遵法,它的加密方法很简单:将每一个字母加5,即a加密为f,b加密成g。这种算法的密钥是5,那么它属于()。(2分)
  • A.对称密码术
  • B、分组密码术
  • C、公钥密码术
  • D、单向函数密码术
  1. 下面关于OLAP和OLTP的描述错误的是(2分)
  • A. OLAP允许用户从不同的角度交互式的分析多维数据,它包含3中基本的分析操作:上卷(consolidation/roll-up),下钻(drill-down)和切片/切块(slicing and dicing)
  • B.OLTP的特征是大量数据上的低复杂度的查询,主要目的是处理事务而不是BI或报表用途
  • C、OLAP的核心是OLAP cube,也称超立方体或多维数据集,它由多个维度及对应维度上的度量值组成
  • D、OLTP是使分析人员管理人员或执行人员能够从多种角度对从原始数据中转化出来的能够真正为用户所理解的并真实反映企业维特性的信息进行快速一致交互地存取,从而获得对数据的更深入了解的一类软件技术

正确答案:D;

OLAP(在线分析处理)和 OLTP(在线事务处理)是两种不同类型的数据库处理系统,用于满足不同的业务需求。以下是对它们的简单描述:
OLAP(在线分析处理):
目的: OLAP 旨在支持复杂的查询和分析操作,用于业务智能、数据挖掘和决策支持系统。
数据处理: 处理大量的历史数据,允许用户执行复杂的查询和聚合操作,以获取对业务进行深入分析的报告。
数据库设计: 通常采用星型或雪花型的数据模型,包括大量聚合的数据,以便提供高性能的查询。
响应时间: 查询响应时间可以是几秒到几分钟,取决于数据量和复杂性。
OLTP(在线事务处理):
目的: OLTP 用于支持日常的业务交易,处理诸如插入、更新和删除等实时事务操作。
数据处理: 处理实时的、交易性质的数据,通常涉及对数据库中的记录进行短时事务的读写。
数据库设计: 采用规范化的数据模型,以确保数据的一致性、完整性和最小冗余。
响应时间: 着重于提供快速的事务响应时间,通常是几毫秒到几秒。
总体而言,OLAP  OLTP 针对不同的数据处理需求和使用场景,OLAP 用于支持复杂的分析和决策,而 OLTP 用于支持日常的业务交易。在一些系统中,可能会采用混合的解决方案,以满足不同类型的业务需求。
  1. 下面关于Redis描述错误的一项是()(2分)
  • A.Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件。
  • B.主从复制不要用单向链表结构,用图状结构更为稳定。
  • C、如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次。
  • D、如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次。

正确答案:B;

  1. HTTPS采用()协议实现安全网站访问?(2分)
  • A. TSL
  • B. IPsec
  • C. PGP
  • D. SLT

正确答案:TLS, HTTPS 采用 TLS(Transport Layer Security) 协议实现安全网站访问。

IPsec(Internet Protocol Security): IPsec 是一组协议套件,用于在网络层提供安全性。它可以用于加密和身份验证网络通信,保护 IP 数据包的完整性和机密性。与 HTTPS 不同,HTTPS 主要用于在应用层(HTTP)提供安全性,而 IPsec 在网络层提供更通用的安全性。

PGP(Pretty Good Privacy): PGP 是一种用于数据加密和数字签名的协议。它通常用于电子邮件和文件加密,以保护通信的隐私和完整性。PGP 使用非对称加密来实现密钥交换和数字签名。
  1. ()是指今年某个时期与去年相同时期的数据比较(2分)
  • A、环比
  • B、同比
  • C、百分比
  • D、比例
  1. 在一次软件测试中一个输入文件应包括1~255个记录,用边界值分析法那么记录数X在测试中应该取()边界值。(2分)
  • A、X=0,X=1,X=255,X=256
  • B. X=1,X=255
  • C. X=0,X=2,X=254,X=255
  • D. X=0,X=1,X=100,X=255
  1. 在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是()(2分)
  • A. -m
  • B. -d
  • C, -f
  • D. -p
  1. 项目管理的三个基本目标不包括以下():(2分)
  • A、项目范围管理
  • B、项目时间管理
  • C、项目成本管理
  • D、项目风险管理
  1. IPV4地址有()位二进制组组成。(2分)
  • A. 4
  • B. 8
  • C. 16
  • D. 32
  1. 在项目管理基本流程的开发阶段,以下哪部分是该阶段需要执行的?(2分)
  • A、项目计划
  • B、项目进度周报
  • C、测试报告
  • D、可行性分析
  1. GO语言中,如何获取“2022-06-15 00:00:00”类似时间格式的当前时间值(2分)
  • A. time.Now().format(“Y-m-d H:i:s”)
  • B. time.Now.format(“YYYY-mm-dd HH:ii:ss”)
  • C. time.Now.format(“2006-01-02 15:04:05”)
  • D, time.Parse(“Y-m-d H:i:s”, time.Now())

简答题(共2题)

  1. 如何提高产品交付质量?
  • 1)、当前团队的交付质量存在什么问题,大致分类有哪些?
  • 2)、为什么会出现这些交付质量,理想的交付质量标准是什么?
  • 3)、如何才能提高成品交付质量?(10分)
交付质量可能存在这几方面的问题,业务功能欠缺、伪需求、功能操作复杂度变高、频繁出bug、系统经常崩溃等,可以从整个产品的研发时间轴来分析:
1.产品的调研,调研数据的覆盖度、准确性都会影响产品设计的偏差(功能欠缺、伪需求),对客户量等数据的预测分析(会导致后续设计和运维的数据不准确,导致系统经常崩溃);
2.产品的设计,设计没有根据实际用户的场景分析或过度设计(伪需求、操作复杂度变高);
3.开发&测试&运维,开发没有做单元测试、集成测试、性能测试,(频繁出bug,系统经常崩溃);
从上面这几个方面多增加验证和统一流程能较好的提高成品交付质量,同时各岗位同事不能仅关注自身内容,同时需要大致了解整个过程的概念,同时需要多沟通,从而调整在过程中出现的问题。
  1. 目前客户告诉你的某系统或功能挂了,接到这个故障你的处理流程是怎么样?10分)
1. 确认故障照成的影响、严重程度,同时确定是否有备用方案,并确定是否需要及时作出公告声明;
2.如果苗用或省回滚万菜,需先确认,然后尽快执行,避免因未及时执行而导致更大的影响;
3.沟通确认具体的问题,包括获取到问题的时间、复现方式等,方便定位问题所在;
4.定位问题原因并确定修复计划,同时告知相关人员;
5.最后修复、测试并完成上线。

编程题(共1题)

1、买股票:给定一个数组 prices,它的第i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。

示例1:输入:[7,1,5,3,6,4]输出:5

解释:在第2天(股票价格= 1)的时候买入,在第5天(股票价格=6)的时候卖出,最大利润=6-1 =5。注意利润不能是7-1=6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:输入:prices = [7,6,4,3,1] 输出:0

解释:在这种情况下,没有交易完成,所以最大利润为0。提示:1<= prices.length <= 105 0<= prices[i]<= 104(20分)

func getBiggest(prices []int) (result int) {
  // 最少一天买一天卖
  if len(prices) <= 1 {
    return 0
  }
  // 用数组后面的数減去前面的数,并存最大值
  result := 0
  var temp int
  n:= len(prices)
  for i:= n - 1; i > 0; i--{
    for j:= 0;j < i;j++ {
      temp = prices[i] - prices[j]
      if temp > result {
        result = temp
      }
    }
  }
}
标签 :
share(TODO):