20道选择题+2道算法题,算法题我第一题脑抽少写了个判断导致只有9%,第二题82%。选择题部分是对截图通过OCR提取的文字,可能部分有误。
选择题
1.(多选)某证券交易系统采用页式存储管理方式对内存空间进行分配去配。当前有作业Job1由32个逻辑页面构成,每页有1KB,随机装入主存提供的64块存储块中。则以下描述正确的是:
A. 物理地址位数是15
B. 物理地址位数是16
C. 页号地址位数是10
D. 页内地址位数是10
2. (单选)为了提高数据保密性,对已加密文件解密时,不使用加密密钥,该文件使用的加密模型是
A. 对称加密
B. 非对称加密
C. 认证
D. 摘要加密
3. (单选)下列选项中属于交换类排序算法的有
①希尔排序
②冒泡排序
③快速排序
④堆排序
A. ①③
B. ①②
C. ②③
D. ③④
4. (单选)选出下面字节数组流使用正确的是
A. ByteArrayInputStream inputStream = new ByteArrayInputStream(12);
B. ByteArrayInputStream inputStream1 = new ByteArraylnputStream(“abc”);
C. ByteArrayOutputStream outputStream1 = new ByteArrayOutputStream(new FileOutputStream(“”));
D. ByteArrayOutputStream outputStream = new ByteArrayOutputStream(12);
5. (单选)某美发门店结算系统采用单CPU多线程机制KLT模式,以下有关进程K创建的线程k1,k2描述正确的是:
A. 线程k1,k2在用户态运行,调度和管理在内核实现。
B. 线程k1,k2在内核运行,调度和管理也在内核实现。
C. 线程k1,k2在用户态运行,调度和管理也在用户态实现。
D. 线程k1,k2在内核运行,调度和管理在用户态实现。
6. (多选)对称加密算法的特点是
A. 加密速度慢
B. 加密速度快
C. 加密密钥与解密密钥相同
D. 加密密钥与解密密钥不同
7. (多选)在Linux系统中通过apache发布web服务时,如果需要同时发布多个站点,可以使用的配置方案有
A. 基于netbios的虚拟主机
B. 基于IP的虛拟主机
C. 基于域名的虛拟主机
D. 基于MAC的虚拟主机
8. (单选)( )命令可以用于探测目标主机是否开放指定端口
A. netstat
B. telnet
C. ping
D. route
9. (单选)关键字集合{180,160,120,100,80,10,1}构成的二叉排序树,平均查找长度约为
A. 10
B. 8
C. 6
D. 4
10. (单选)给定一个序列{-2,11,-4,13,-5,-2},使得连续子序列的和最大为
A. 24
B. 9
C. 7
D. 20
11. (单选)以下哪一个不是贪心算法的缺点
A. 需要对问题整体解决
B. 只能求满足某些约束条件的可行解的范围
C. 不能用来求最大值或最小值的问题
D. 不能保证求得的最后解是最佳的
12. (单选)某产品运营公司人力资源管理系统中,其中员工表和部门表结构如下:
①员工表(员工编号,姓名,性别,出生日期,入职日期,部门编号)
②部门表(部门编号,名称,职能负责人,联系方式)
若完成操作:利用case 语句对部门职能进行备注说明。规定1号部门负责财务管理;2号部门负责员工培训;3号部门负责产品销售;其他部
门后勤保障。以下操作可行的是:
A. SELECT 部门编号,名称,
职能=CASE
WHEN 1 THEN ‘财务管理’
WHEN 2 THEN ‘员工培训’
WHEN 3 THEN ‘产品销售’
ELSE ‘后勤保障’
END
FROM 部门表
B. SELECT 部门编号,名称,
职能=CASE
WHEN 部门编号=1 THEN ‘财务管理’
WHEN 部门编号=2 THEN ‘员工培训’
WHEN 部门编号=3 THEN ‘产品销售’
ELSE ‘后勤保障’
FROM 部门表
C. SELECT 部门编号,名称,
职能=CASE
WHEN 部门编号=1 THEN ‘财务管理’
WHEN 部门编号=2 THEN ‘员工培训’
WHEN 部门编号=3 THEN ‘产品销售’
END
FROM 部门表
D. SELECT 部门编号,名称,
职能=CASE
WHEN 部门编号=1 THEN ‘财务管理’
WHEN 部门编号=2 THEN ‘员工培训’
WHEN 部门编号=3 THEN ‘产品销售’
ELSE ‘后勤保障’
END
FROM 部门表
13. (多选)关于Mysql锁特性说法正确的是
A. 与表锁相比,行锁并发度高
B. 与行锁相比,表锁并发度高
C. 与表锁相比,行锁开销最大
D. 与行锁相比,表锁开销最大
14. (单选)要实现两个进程互斥,设一个互斥信号量为mutex,初值为1,若mutex=0,则表示
A. 表示有一个进程进入临界区
B. 表示没有进程进入临界区
C. 表示有一个进程进入临界区,另一个进程等待进入
D. 表示有两个进程进入临界区
15. (单选)
下列程序的运行结果是
#include using namespace std; class A{ public: virtual void f(){cout<<"*";} void g(){cout<<"#";} }; class B: public A{ public: void f(){cout<<"&";} void g(){cout<<"%";} }; int main() { B b; A *pa=&b; if(dynamic_cast<B*>(pa) == NULL) { cout<<"NULL"<<endl; } else { dynamic_cast<B*>(pa)->f(); dynamic_cast<B*>(pa)->g(); } return 0; }
A. &%
B. &#
C. *%
D. *#
16. (单选)
分析下面Java代码片段,横线处执行语句正确的是
String sql = "select sid from student"; PreparedStatement preparedStatement = connection.prepareStatement(sql); _________________; connection.close();
A. int r = preparedStatement.executeUpdate();
B. ResultSet r = preparedStatement.executeQuery(sql);
C. int r = preparedStatement.executeQuery();
D. ResultSet r = preparedStatement.executeQuery();
17. (单选)有Linux系统中执行 rm /misc/prog.c 无法删除文件时,需要执行以下操作
A. rm -r /misc/prog.c
B. rm -f /misc/prog.c
C. del /misc/prog.c
D. rmdir /misc/prog.c
18. (单选)
下面代码执行后的输出结果为
#include #include #include int main() { std::exception_ptr p; try { throw std:logic_error("logic_error"); } catch(const std::exception& e) { p = std::current_exception); std:cout<<"current exception\n"; } try { std::rethrow_exception(p); } catch (const std::exception& e) { std::cout<<e.what()<<'\n'; } return 0; }
A. current_exception
logic_error
B. current_exception
C. 编译时报错
D. logic_error
19. (单选)
下面代码运行给果为
public class Test { public static void main(String[] args) { int[] num = {10}; add(num): System.out.println(num[0]); } public static void add(int[] num) { num[0]+=5; } }
A. 0
B. 编译错误
C. 15
D. 10
20. (单选)
关于下面代码,选项中说法错误的是
public static void main(String[] args) throws InterruptedException { File file = new File("d:/dir" "test.txt): try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(): } }
A. new File(“d:/dir”,”test.txt”);中两个参数,第一个是文件所在的目录,第二个是文件名称
B. 如果目录”d:/dir” 存在,则在运行时,会自动创建或覆盖目录下的test.txt文件
C. 如果目录”d:/dir” 不存在,则在运行时,会自动创建
D. 如果目录”d:/dir” 不存在,则在运行时,会抛出异常
算法题
1. 实验数据
时间限制: 3000MS
内存限制: 589824KB
题目描述:
小昱做了很久的实验得到了一个用正整数表示的实验数据,并记录在了纸上。但是由于做完实验太过激动,他一不小心把墨水打翻溅在了纸上,导致数据中一些位置上的数字看不清楚。他仍记得这个数据有以下三个特征:
1. 这个数是正整数,且没有前导零(即数的最高位不是0)
2. 这个数任意两个相邻数位的数字不同
3. 这个数可以被3整除
他现在很关心在满足以上特征的条件下,这个数字最小为多少。
输入描述:
输入一个由数字0-9和‘?’构成的字符串。若输入的第i个字符为问号,则表示数据从高位往低位数的第i位被墨水遮盖,不能确定是哪个数字;否则,表示这一位未被墨水遮盖,是一个确定的数。
输出描述:
输出一个正整数,表示实验数据最小可能是多少。
样例输入:
?12?0?9??
样例输出:
212101902
提示:
输入的字符串长度不超过100000,且至少为1。
所有数据均保证合法,保证存在合法解,且至少含有1个‘?’。
最高位为‘?’表示最高位被遮挡无法确定。因为第一条特征限制,最高位不能为0。因为第二位为1,根据第二条限制,最高位不能为1。所以最高位只能是2到9中的任意一个数字,当最高位为2时,实验数据会最小。第4、6、8、9位数字也被墨水遮挡,当第4、6位为数字1,第8位为数字为0,第9位为数字2时满足小昱记忆中数据的特征,且是可能出现的最小值。
2. 刷栅栏
时间限制: 3000MS
内存限制: 589824KB
题目描述:
小明正在刷栅栏。为了使得栅栏在经过风吹雨打后依然不掉色,需要用两种不同的油漆刷栅栏。
栅栏被按顺序编号为1到1000000000。每一段栅栏需要至少刷 p 遍的1号油漆和 q 遍的2号油漆后才能保证长时间不掉色。
每次刷漆都会使用某种类型的油漆,并将编号属于某个区间内的栅栏都刷上这种油漆。
现在给出每次刷漆的栅栏编号范围和油漆种类,请你求出有多少段栅栏能够长时间不掉色。
输入描述:
第一行有三个正整数n,p,q(1<=n<=100000,1<=p,q<=n),代表刷漆的次数,以及两个参数 p 和 q。
第二到四行给出了一个大小为3*n的矩阵,第 i 列的三个数从上到下记为l,r,t(1<=l,r<=1000000000,1<=t<=2),代表第i次刷漆将编号在 l 到 r 之间的栅栏刷了一遍 t号油漆。
输出描述:
输出一个正整数,代表有多少栅栏可以长时间不掉色。
样例输入:
5 2 2
1 1 2 3 2
3 5 4 5 4
1 2 1 1 2
样例输出:
3