京东 2018 秋招测试开发工程师笔试题
一.单选题
1.若度为m 的哈夫曼树中,其叶结点个数为 n,则非叶结点的个数为( )
A. n-1
B. n/m-1
C. (n-1)/(m-1)
D. n/(m-1)-1
E. (n+1)/(m+1)-1
2.进程会在各个状态之间切换,下面哪些是不可能的( )
A. 运行→就绪
B. 运行→等待
C. 等待→运行
D. 等待→就绪
3.若一序列进栈顺序为 a1,a2,a3,a4,问存在多少种可能的出栈序列( )
A. 12
B. 13
C. 14
D. 15
4.下面关于c++拷贝构造函数说法错误的是( )
A. 产生了新的对象实例,调用的就是拷贝构造函数;如果没有,调用的是赋值运算符
B. 没有定义拷贝构造函数的话,编译器不会默认自动产生拷贝构造函数
C. 类中可以存在超过一个拷贝构造函数
D. 声明一个私有拷贝构造函数可以防止按值传递对象
5.查询该目录及子目录下所有的以.conf 为后缀的文件
A. fifind ./ -name “conf”
B. fifind ./ -name “*.[conf]”
C. fifind ./ -type d | egrep “.(conf)”
D. fifind ./ -regextype posix-extended -regex “.*.(conf)”
6.若将网络192.168.0.0/22 划分为5 个子网,则可以划分出的最小子网的子网掩码是( )
A. 255.255.255.0
B. 255.255.255.128
C. 255.255.255.192
D. 255.255.255.224
7.有2 个关系模式:订单表:R(订单号,日期,客户名称,收货人) 订单明细表:S(订单号,商品编
码,单价,数量) 若要检索 2017/1/1 到2017/12/31 期间,订购商品的总金额超过 20000 元的客户名称
和总金额,则 SQL查询语句是( )
A. SELECT客户名称,单价数量 AS 总金额 FROM R,S WHERE 日期 BETWEEN *"*2017-1-1"AND “2017-12-31”
AND 单价数量>20000
B. SELECT客户名称, SUM(单价数量) AS 总金额 FROM R,S WHERE R.订单号*=* S.订单号 AND日期
BETWEEN “2017-1-1” AND “2017-12-31” GROUP BY 客户名称 HAVING 单价数量>20000
C. SELECT 客户名称, SUM (单价数量*)* AS 总金额 FROM R,S WHERE R.订单号*=* S.订单号 AND 日期
BETWEEN “2017-1-1” AND “2017-12-31” GROUP BY 客户名称 HAVING SUM(单价数量)>20000
D. SELECT 客户名称,单价数量 AS 总金额 FROM R,S WHERE R.订单号*=* S.订单号 AND 日期 BETWEEN
“2017-1-1” AND “2017-12-31” GROUP BY 客户名称 HAVING 单价数量>20000
8.下面覆盖标准中 ,覆盖标准最低的是?( )
A. 语句覆盖
B. 判定覆盖
C. 条件覆盖
D. 判定/条件覆盖
9.下面代码如果用基本路径法测试的话,覆盖几条路径?
void sort(int num, int type){
int a = 0;
int b = 0;
while(num-- > 0){
if(3==type){
a=b+1;
break;
} else if(4==type){
x=y+10;
} else if(5==type){
x=y+20;
} else {
x=y+30;
}
}
}
A. 3
B. 4
C. 5
D. 6
10.正则表达式 ^d+ 【^d】+ 能匹配下列哪个字符串?( )
A. 123
B. 123a
C. d123
D. 123def
E. d7d
11.一个序列为(13,18,24,35,47,50,63,83,90,115,124),如果利用二分法查找关键字为 90 的,则需要
几次比较 。( )
A. 1
B. 2
C. 3
D. 4
12.已知一个二叉树前序遍历和中序遍历分别为 ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为?(
)
A. DGEBHFCA
B. DGEBHFAC
C. GEDBHFCA
D. ABCDEFGH
13.以下哪个命令不能查看文件里内容?()
A. more
B. cat
C. ls
D. less
14.把14,27,71,50,93,39 按顺序插入一棵树,插入的过程不断调整使树为平衡排序二叉树,最终形成平衡排
序二叉树高度为?
A. 3
B. 4
C. 5
D. 6
15.定义如下程序:
public class Person{
{
tem.out.println(“P1”);
}
static{
System.out.println(“P2”);
}
public Person(){
System.out.println(“P3”);
}
}
public class Students extends Person{
static{
System.out.println(“S1”);
}
{
System.out.println(“S2”);
}
public Students(){
System.out.println(“S3”)
}
public static void main(String[] args){
new Students();
}
}
程序执行结果是?( )
A. P1P2P3S1S2S3
B. P1P2P3S2S1S3
C. P2P1S1P3S2S3
D. P2S1P1P3S2S3
16.下面程序的输出是?( )
public class Main {
public static void main(String[] args) {
Other o = new Other();
new Main().addOne(o);
System.out.println(o.i);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
A. 0
B. 1
C. 编译出错
D. 运行出错
二.不定项选择题
1.有关linux 线程的描述,正确的是( )
A. 线程自己拥有很少的资源,但它可以使用所属进程的资源
B. 同一进程中的多个线程具有相同的地址空间,所以它们间的同步和通信也易于实现
C. 进程创建与线程创建的时空开销不相同
D. 线程是资源分配的基本单位,进程是资源调度的基本单位
2.以下哪些状态为 TCP连接关闭过程中的出现的状态?()
A. LISTEN
B. TIME-WAIT
C. LAST-ACK
D. SYN-RECEIVED
3.下面选项中,和192.168.3.110/27 属于一个子网的有哪些( )
A. 192.168.3.94
B. 192.168.3.124
C. 192.168.3.96
D. 192.168.3.126
4.Linux 系统中,哪些可以用于进程间的通信?
A. Socket
B. 临界区
C. 消息队列
D. 信号量
5.白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。下面属于白盒测试方法的有
哪些?( )
A. 句覆盖
B. 等价类划分
C. 边界值分析
D. 判定条件覆盖
6.下列选项中,有关死锁的说法正确的是?( )
A. 采用“按序分配”策略可以破坏产生死锁的环路等待条件
B. 在资源的动态分配过程中,防止系统进入安全状态,可避免发生死锁
C. 银行家算法是最有代表性的死锁解除算法
D. 产生死锁的现象是每个进程等待着某个不能得到且不可释放的资源
7.现有testfifile 文件内容如下所示
12 12 213 5434 3123 123 34 对所有数字求和,以下做法正确的是:( )
A. awk ‘BEGIN{sum}{sum+$1}END{print sum}’ testfifile
B. awk ‘BEGIN{sum =0}{sum+=$1}END{print sum}’ testfifile
C. awk ‘{sum+$1}END{print sum}’ testfifile
D. wk ‘{sum+=$1}END{print sum}’ testfifile
8.以下关于HTTP 说法正确是的:( )
A. HTTP POST方式比 GET更安全
B. HTTP GET请求提交参数没有长度限制
C. HTTP POST请求提交参数没有长度限制
D. HTTP GET和POST请求提交参数都没有长度限制
9.python 代码如下:( )
foo = [1,2]
foo1 = foo1
foo.append(3)
A. foo 值为[1,2]
B. foo 值为[1,2,3]
C. foo1 值为[1,2]
D. foo1 值为[1,2,3]
10.在测试“搜索”功能时,下列哪些测试用例是必须的( )
A. 模糊查询值的搜索测试用例
B. 全数字的搜索测试用例
C. 全半角的搜索测试用例
D. 字母大小写的搜索测试用例
11.下面选项中对 TCP与 UDP 论述正确的是?( )
A. TCP是面向连接的,如打电话要先拨号建立连接
B. TCP支持一对一,一对多,多对一和多对多的交互通信
C. TCP面向字节流,实际上是 TCP把数据看成一连串无结构的字节流
D. UDP 是无连接的,即发送数据之前不需要建立连接
12.C++中的拷贝构造函数在下面哪些情况下会被调用( )
A. 对象创建的时候
B. 使用一个类的对象去初始化该类的一个新对象
C. 被调用函数的形参是类的对象
D. 当函数的返回值是类的对象时,函数执行完成返回调用者
13.用浏览器访问www.jd.com 时,可能使用到的协议有?( )
A. MAC
B. HTTP
C. SMTP
D. ARP
E. RTSP
14.功能测试用例需包含哪些元素( )
A. 测试步骤
B. 预期结果
C. 测试数据
D. 实际结果
三.编程题
1.两个子串给定一个字符串 s, 请计算输出含有连续两个 s 作为子串的最短字符串。 注意两个s 可能有重叠部分。例
如,“ababa"含有两个"aba”.
输入描述**????*
输入包括一个字符串s,字符串长度length(1 ≤ length ≤ 50),s 中每个字符都是小写字母.
输出描述**????*
输出一个字符串,即含有连续两个 s 作为子串的最短字符串。
输入例子****1:
abracadabra
输出例子****1:
abracadabracadabra
2.括号匹配方案
合法的括号匹配序列被定义为:
\1. 空串""是合法的括号序列
\2. 如果"X"和"Y"是合法的序列,那么"XY"也是一个合法的括号序列
\3. 如果"X"是一个合法的序列,那么"(X)"也是一个合法的括号序列
\4. 每个合法的括号序列都可以由上面的规则生成 例如"", “()”, “()()()”, “(()())”, "(((())))"都是合法的。 东
东现在有一个合法的括号序列 s,一次移除操作分为两步:
\5. 移除序列s 中第一个左括号
\6. 移除序列s 中任意一个右括号.保证操作之后s 还是一个合法的括号序列 东东现在想知道使用上述的
移除操作有多少种方案可以把序列 s 变为空 如果两个方案中有一次移除操作移除的是不同的右括号
就认为是不同的方案。 例如: s = “()()()()()”,输出 1, 因为每次都只能选择被移除的左括号所相邻的右
括号. s = “(((())))”,输出24, 第一次有4 种情况, 第二次有3 种情况, … ,依次类推, 4 * 3 * 2 * 1 = 24
输入描述**????*
输入包括一行,一个合法的括号序列 s,序列长度 length(2 ≤ length ≤ 20).
输出描述**????*
输出一个整数,表示方案数
输入例子****1:
(((())))
输出例子****1:
24
求职必备刷题官网:https://github.com/bennyrhys/interview
【更多互联网公司笔试面试真题请关注“让我遇见相似的灵魂”公众号】