【2022】小米秋招笔试-测试开发-卷1

一、单选题

1.在一个非零无符号二进制整数之后添加一个 0 ,则此数的值为原数的()

A.4倍

B.2倍

C.1/2倍

D.1/4倍

2.对于while语句,错误的说法是( )

A.用条件控制循环体的执行次数

B.循环体至少要执行一次

C.循环体有可能一次也不执行

D.循环体中可以包含若干条语句

3.一个算法应该是

A.程序

B.问题求解步骤的描述

C.要满足五个基本属性

D.程序和要满足五个基本属性

*4.设有一个递归算法如下: int fact(int n) { /* 大于等于0 */ if ( n<=0 ) return 1 ; else return n*fact (n-1) ; }则计算fact(n)需要调用该函数的次数为

A.n

B.n+1

C.n+2

D.n-1

5.一颗二叉树的先序遍历:ABDECFG;中序遍历:DBEAFCG 则后序遍历为:

A.DEBFGCA

B.DEBAFGC

C.FGCDEBA

D.DBEFGAC

6.以下约束哪个不是单表约束

A.主键约束

B.为空约束

C.唯一约束

D.外键约束

7.下面哪个是性能测试

A.接口测试

B.压力测试

C.单元测试

D.易用性测试

8.以下哪个测试更适用于编码阶段的检查

A.单元测试

B.集成测试

C.系统测试

D.有效性测试

9.下面关于网络端口说法正确的是

A.端口范围受限于内存

B.端口范围没有任何限制

C.端口范围受限于系统的文件句柄数量

D.端口范围受限于TCP协议

10.以下说法正确的是

A.虚拟内存不需要做虚拟地址到物理地址的转换

B.虚拟内存是不用的内存

C.虚拟内存是高速缓冲区

D.虚拟内存会用硬盘中的一部分存储空间当作内存

11.关于线程和进程说法错误的是

A.每个线程有自己独立的地址空间

B.进程阻塞状态可以直接转换为执行状态

C.耗时的操作使用线程,提高应用程序响应

D.进程被唤醒意味着变为就绪状态

二、多选题

12.以下哪些Linux命令可以查看文件内容

A.tail

B.less

C.cat

D.touch

13.以下哪些表达式返回为真()

1

2

3

4

String a="My field1";

String b="My field1";

String c=new String("My field1");

String d=new String("My field1");

A.a==b

B.a==c

C.a.equals(b)

D.a.equals(c)

14.break可以用在()语句中

A.switch

B.for

C.while

D.do-while

15.一个栈的入栈序列是a,b,c,d,e,则栈的可能的输出序列是

A.edcba

B.decba

C.dceab

D.abcde

16.数据在内存中的结构分为

A.逻辑结构

B.物理结构

C.存储结构

D.运算结构

17.查询姓名不是NULL的数据语法不正确的是

A.WHERE NAME ! NULL

B.WHERE NAME NOT NULL

C.WHERE NAME IS NOT NULL

D.WHERE NAME!=NULL

18.https是采用什么方式进行数据加密传输的

A.SSL

B.TLS

C.SET

D.Ipsec

19.程序的三种基本控制结构是()

A.顺序

B.递归

C.选择

D.循环

20.软件生命周期中所花费用最多的阶段是()

A.详细设计

B.软件编码

C.软件测试

D.软件维护

三、问答题

21.【求数字1出现的次数】

问题描述: 

输入一个整数n,求从1到n这n个整数(十进制)中1出现的次数。要求空间复杂度为O(n)。 

输入描述: 

1

输入的数据包含一行: 整数N,要求N>1 

输出描述: 

1

输出一个整数,表示从1到N这N个整数(十进制)中1出现的次数。 

输入样例: 

12 

输出样例:

 5

22.【查找无序数组中第二大的元素】

问题描述: 

输入一个无序数组data[] , 且数组中无重复元素,查找出第二大元素。要求: 时间复杂度为O(n)。 

输入描述: 

1

输入无序数组data[], 且数组中无重复元素 

输出描述:

1

输出数组中第二大元素 

输入样例: 

1

3 8 2 9 12 

输出样例: 

1

答案:

一、单选题

 1.正确答案:B

    解析:最后位加0等于前面所有位都乘以2再相加,所以是2倍。

2. 正确答案:B

    解析:while语句先判断后执行,若不满足条件,则不会执行循环体。

3. 正确答案:B

    解析:算法是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

4. 正确答案:B

    解析:调用从n-1开始,一直到0,一共n次,再加上调用自身,所以就是就是n+1次

5. 正确答案:B

    解析:先序:根左右;

               中序:左根右;

               后序:左右根。

     我们根据先序遍历可以确定二叉树的根为 A ,根据中序遍历可以划分出二叉树的左树和右树,以此类推我们可以画出完整的二叉树,再利用后序遍历此树。

后序:DEBFGCA

6. 正确答案:B

    解析:外键约束不是单表约束,它需要与其他表的主键或唯一约束配合使用才有意义。

7. 正确答案:B

    解析:“性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。

8. 正确答案:B

    解析:单元测试大多是开发人员进行的自测,所以更适用于编码阶段的检查

9. 正确答案:B

    解析:

端口范围是指操作系统支持的有效端口号的范围,通常在 0~65535 之间。一些常用的端口号已经被指定,例如 80(HTTP)、443(HTTPS)、22(SSH)等。在使用网络通信时,通常会选择一个未被占用的端口号,并在应用程序启动时打开该端口。

文件句柄是应用程序用来访问文件或其他输入/输出资源的描述符。系统对文件句柄数量的限制通常是硬件资源和操作系统类型、版本等因素决定的。在 Linux 系统中,可以通过ulimit命令来查看和修改文件句柄数量的限制。

虽然端口范围和文件句柄数量之间没有直接关系,但是在某些情况下,它们可能会相互影响。例如,在使用大量文件句柄的应用程序(如 Web 服务器、数据库等)时,可能需要调整系统的文件句柄数量限制,以确保应用程序正常运行并处理更多的连接请求。这也涉及到系统的性能瓶颈和优化等方面,需要进行具体分析和实验。

10. 正确答案:B

      解析:虚拟内存是的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换

二、多选题

11. 正确答案:B

      解析:进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

        只有被调度的进程才会转入运行态,而只有处于就绪态的进程才会被调度,因此阻塞态必须经过就绪态后才能转换为运行态。

12. 正确答案:B

      解析:Linux查看文件内容的命令包括 tail(查看文件末尾数据) less与more类似,可随意浏览文件 cat(查看、合并、创建文件)

13. 正确答案:B

      解析:==与equals的区别 ==是比较两个基本数据类型的变量其储存的“值”是否相等 ;==是比较两个对象的引用是否相等;equals是object类的方法,只能用于比较对象,是比较两个对象的引用是否相等;string类重写了equals方法,比较的是值

14. 正确答案:B

      解析:break作用大多情况下是终止所在层的循环。

15. 正确答案:B

      解析:A 按照abcde入栈,则edcba出栈

               B abcd入栈,d出栈,e入栈,e出栈,c出栈,b出栈,a出栈,就是decba

               D a入栈,a出栈,b入栈,b出栈以此类推,就是abcde

16. 正确答案:B

      解析:数据结构分为逻辑结构、数据的物理结构

    数据逻辑:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后间关系,而与他们在计算机中的存储位置无关。

    数据物理结构:指数据的逻辑结构在计算机存储空间的存放形式。数据的物理结构是数据结构在计算机中的表示,它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。

17. 正确答案:B

      解析:

18. 正确答案:B

      解析:HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。

19. 正确答案:B

      解析:程序的三种基本控制结构是:顺序结构、选择结构、循环结构。

        顺序结构:顺序语句由语句序列组成,程序执行时,按照语句的顺序,从上而下,一条一条地顺序执行。

        选择结构:分支语句根据一定的条件决定执行哪一部分的语句序列。

        循环结构:循环语句使同一个语句组根据一定的条件执行若干次。

20. 正确答案:B

      解析:维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。

三、问答题

21.

public static void main(String args[]){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int count = 0 ;
    for(int i = 1;i <= n;i++){
        int temp = i;
        while(temp>0) {
            if (temp % 10 == 1) {
                count++;
            }
            temp = temp / 10;
        }
    }
    System.out.println(count);
}

22.

import java.util.Scanner;
public class Main{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
String str = sc.nextLine().toString();
String strArr[] = str.split(" ");
int data[] = new int[strArr.length];
for(int i=0; i < data.length; i++) {
data[i] = Integer.parseInt(strArr[i]);
}
System.out.println(secondMaxNum(data));
}
public static int secondMaxNum(int[] testArray)
{
int max1 = 0;
int max2 = 0;
for (int i = 1;i < testArray.length; i++)
{
if(testArray[i] > testArray[max1])
{
max2 = max1;
max1 = i;
}
else if(testArray[i] > testArray[max2] && testArray[i] < testArray[max1])
max2 = i;
}
return testArray[max2];
}
}

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值