随着测试行业的内卷越来越严重,测试工程师面试的时候被问到越来越多的开发题目了,比如说一些通过编程解决的逻辑问题或者开发语言的基础知识。

本文就分享一些面试常见的编程题目:

1.编程实现:有四个数字:1、2、3、4,能组成多少个互不相同且⽆重复数字的三位数?各是多少?

def sws():
  e=[]
  for a in range(1,5):
    for b in range(1, 5):
      for c in range(1, 5):
        if a !=b != c and a != c:
          f=a*100+b*10+c
          e.append(f)
          q=len(e)
          return(e,q)

2.编程实现:计算一个字符串中每一个字符出现的次数。

def cishu(str):
  str1 = ""
  for i in str:
    if i not in str1:
      str1 = str1 + i
      print(i,"出现的次数为:",str.count(i))
str = "wertyuidfghjkcvbnm,ertyui"
cishu(str)

3.编程实现:对一个字符串,去除所有重复字符后,根据字符的编码按照从小到大的顺序排列后输出。字符串 s = “ajldjlajfdljfddd”,去重并从小到大排序输出”adfjl”。

def we():
  s = "ajldjlajfdljfddd"
  a = list(set(s))
  a.sort()
  print(a)

4.编程实现:冒泡排序。

def maopao(lie):
  """
  接受一个列表,返回这个列表从小到大的排序结果
  :param lie:
  :return:
  """
  # 进行len(lie)轮比较
  for i in range(0,len(lie)):
    # 每一轮从第一个元素开始,到倒数第二个元素结尾
    for j in range(0,len(lie) -1 ):
      # 如果前一个元素比后一个元素大,则交换二者的位置
      if lie[j] > lie[j + 1]:
        # 交换
        t = lie[j]
        lie[j] = lie[j + 1]
        lie[j + 1] = t
  return lie
lb = [456,365,789,2231,412,126,1455,1231,123]
a = maopao(lb)
print(a)

5.编程实现:对一个列表,将这个列表的首位之间对称位置的元素互相调换位置。(例如,第一个和最后一个,第二个和倒数第二个)。

def huan(lie):
  # 确定交换次数:列表长度的一半-1
  for i in range(0,len(lie)//2):
    t = lie[i]
    # 使用最后一个元素的下标-1 - i进行倒序的下标取值
    lie[i] = lie[-1 - i]
    lie[-1 - i] = t
  return lie
lb = [465,789,456,489,132,741]
print(huan(lb))

6.编程实现:判断一个字符串是不是回文字符串。判断一个字符串是不是回文字符串(不管是从头开始的字符,还是从尾开始的字符,都一样)。

例如字符串“12321”就是一个回文字符串。

def huiwen():
  """
  :return:
  """
  zfc = input("请输入一个字符串:")
  l = 0
  r = len(zfc) - 1
  while l <= r:
    if zfc[l] == zfc[r]:
      l = l + 1
      r = r - 1
    else:
      break
  if l > r:
    print("这是一个回文字符串")
  else:
    print("这不是一个回文字符串")
print(sun())

7.有一个小球从100米高空落下,每次回弹上一次落下高度的一半。请问第10次落地时,下落高度是多少米?一共运动了多少米?

def ii():
  '''
  :return:
  '''
  a = 100 #第n次下落的高度
  b = 0   #下落的次数
  c = 0   #一共运行的高度
  e = 0   #每次回弹的高度
  for i in range(0, 11):
    b = b + 1
    c = a + c + e
    e = a / 2
    a = e
  return a, c
#调用这个函数
m = ii()
print('第10次下落的高度和一共运行的高度分别是:', m)

8.编程实现:珠穆朗玛峰的高度是8848.8米,一张纸的厚度是0.001米,假如可以无限次折叠,对折多少次后,会超过珠穆朗玛峰的高度。

def diwuti():
  for aa in range(0,100):
    # 纸的厚度乘以2的n次方大于8848.8结束
    if 0.001*2**aa>8848.8:
      return(aa)
print(diwuti())

9.编程实现:键盘输入一个字符串,分别统计该字符串中大写、小写、数字、其他符号的个数。

a =input('请输入一串字符:')
# 设置变量表示字符个数
b = 0
c = 0
d = 0
e = 0
for i in a:
  if 'A' <= i <= 'Z':
    b = b + 1
  elif 'a' <= i <= 'z':
    c = c + 1
  elif '0' <= i <= '9':
    d = d + 1
  else:
    e = e + 1
print('大写字母是:', b, '个')
print('小写字母是:', c, '个')
print('数字是:', d, '个')
print('其他字符是:', e, '个')