当前位置: 首页 > 面试经验 >

海康威视测试笔试(2024.10.14)

优质
小牛编辑
59浏览
2024-10-14

海康威视测试笔试(2024.10.14)

  1. 0 or 2 and 3 and 4 or 6 and 0 or 3的值是多少?
  2. 运算符优先级:and 优先级 高于 or
  3. and: 两个值都为非零值,返回最后一个真值;有假值,返回第一个假值
  4. or:返回第一个真值
  5. 正交实验法
  6. 通过正交表安排实验组合。
  7. a={1,2,3} b={2,3,4},a-b :从集合中去除集合b中的元素。
  8. SQL中IFNOLL(K,0):检查K的值,如果K的值不为NULL,则返回其值;不然用0代替。
  9. random.uniform(a,b)的作用:随机生成一个大于等于a并且小于等于b的随机浮点数。
  10. Pairwise Testing两两组合测试:测试输入参数的所有可能的两两组合,可以减少测试用例数量、提高测试覆盖率、发现交互缺陷、高效测试策略。
  11. 指令寄存器的位数
  12. 共享设备:多个用户或进程请求设备,但同一时刻只有一个任务使用它们。
  13. a="hello”,b=b"hello” 互换:b表示字节串。
  14. a == b.decode('utf-8') 将字节串解码为字符串
  15. b == a.encode('utf-8') 将字符串转变为字节串
  16. 某网页用户登录,根据需求设计用户登录的测试点:1. 需要输入用户名和密码;2.用户名和密码只能输入小写英文字母和数字;3.用户名和密码最大长度不能超过16位 11. 描述如何测试手机或无线网卡设备在国内区域上网的场景(无线网卡:SIM卡)

编程题:

1.编写函数,输入2个有序列表,列表数据类型只有整数,不使用排序算法,输出合并后的有序列表。

思路:不用排序算法,只用一一对比

def merge_sorted_lists(list1, list2):
    merged_list = []
    i, j = 0, 0  # 初始化两个指针

    # 遍历两个列表,比较当前元素,按顺序添加到 merged_list
    while i < len(list1) and j < len(list2):
        if list1[i] < list2[j]:
            merged_list.append(list1[i])
            i += 1
        else:
            merged_list.append(list2[j])
            j += 1

    # 如果 list1 中还有剩余元素,添加到 merged_list
    while i < len(list1):
        merged_list.append(list1[i])
        i += 1

    # 如果 list2 中还有剩余元素,添加到 merged_list
    while j < len(list2):
        merged_list.append(list2[j])
        j += 1

    return merged_list

2.小明在爬楼梯,有N个台阶,每一次,小明可以爬1或者2个台阶,计算不同台阶的楼梯小明有多少种不同方式爬到顶部。

思路:求最大,动态规划。递归方法

  1. 最后到达第n个台阶的方法有从n-1阶跳1步,或者从n-2阶跳2步。得到方式数量的递推关系如下:
  2. 确定边界条件:
def climb_stairs(n):
    # 边界条件
    if n <= 0:
        print(0)
        return
    elif n == 1:
        print(1)
        return
    elif n == 2:
        print(2)
        return
    
    # 创建一个数组来存储每个台阶的方法数:到达每个台阶的方法数量
    ways = [0] * (n + 1) # 为什么是n+1?
    ways[1] = 1  # 1个台阶,第一个台阶,有1个方法
    ways[2] = 2  # 2个台阶,第二个台阶,有2个方法
    
    # 填充数组,从第3个台阶开始
    for i in range(3, n + 1): 
        ways[i] = ways[i - 1] + ways[i - 2]
    
    # 打印爬到楼梯顶部的方式数量
    print(ways[n])

def climb_stairs(n):
    if n <= 0:
        print(0)
        return
    elif n == 1:
        print(1)
        return
    elif n == 2:
        print(2)
        return
    
    # 用两个变量来保存前两个台阶的方法数
    prev1 = 1  # ways(1)
    prev2 = 2  # ways(2)

    # 从第3个台阶开始计算
    for i in range(3, n + 1):
        current = prev1 + prev2  # 当前台阶的方法数
        prev1 = prev2  # 更新 prev1 为 prev2
        prev2 = current  # 更新 prev2 为 current

    # 打印爬到楼梯顶部的方式数量
    print(prev2)

# 输入台阶数
n = int(input("请输入台阶数: "))
# 调用函数
climb_stairs(n)

 类似资料: