测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

PROBLEM SET

题库

按难度与知识点筛选,找到适合的练习题。

共 67434 题
重置

题目列表

共 67434 题
A21063 函数定义def func(*args):pass 中的 *args 会将传入的参数打包成什么类型?( ) Python-L4 -- 较难 -- A21064 执行以下Python代码后,输出的结果是?( )words = ["hello", "world", "python"] result = [char for word in words for char in word if char in 'aeiou'] print(len(result)) Python-L4 -- 较难 -- A21065 执行以下 Python 代码,说法正确的是?( )tup = (1, [2, 3], 4) tup[1]= [5,6] Python-L4 -- 较难 -- A21066 执行以下 Python 代码后,输出的结果是?( )matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] total = 0 for row in matrix: for element in row: if element % 2 == 0: total += element print(total) Python-L4 -- 较难 -- A21067 下面代码用来找出输入的 N 个正整数中最⼤的一个。如果将代码段用流程图来表示,则L1标记的代码行应该使用的图形是( )。Max = 0 N = int(input()) while(N): val = int(input()) if val > Max: #L1 Max = val N -= 1 print(Max) Python-L4 -- 较难 -- A21072 线性筛相比埃氏筛的核心改进在于:埃氏筛中一个合数可能被多个质数重复标记,线性筛通过"每个合数只被其最大质因子筛去"的策略,保证每个合数恰好被标记一次,从而实现AO(n) 的时间复杂度。( ) Python-L5 -- 困难 -- A21074 假设数组a的值域范围是D,以下程序的时间复杂度是O(nlog n+nlog D)。( )def check(n, a, k, dist): cnt = 1 last = a[0] for i in range(1, n): if a[i] - last >= dist: cnt += 1 last = a[i] return cnt >= k def solve(n, a, k): a_sort… Python-L5 -- 困难 -- A21075 唯一分解定理保证:若一个数未被任何不超过其平方根的质数筛去,则它一定是质数。( ) Python-L5 -- 困难 -- A21076 在一个数组中,如果两个元素a[i]和a[j]满足 i < j 且 a[i] > a[j] ,则 a[i] 和 a[j],则 a[i] 和 a[j] 是一个逆内的逆序对。下面代码可以正确统计数组 a 区间[l,r]内的逆序对总数。cnt = 0 def merge_count(a, l, m, r): global cnt i = l j = m + 1 while i <= m and j <=… Python-L5 -- 困难 -- A21077 若某算法满⾜递推式:T(n) = 2T(n/2) + 0 (n)则其时间复杂度为O(n log n)。( ) Python-L5 -- 困难 -- A21079 若数组 a 已按升序排列,则下面代码可以正确实现“在a 中查找第一个大于等于x 的元素的位置”。( )def lowerBound(a, x): l = 0 r = len(a) while l < r: mid = (l + r) // 2 if a[mid] >= x: r = mid else: l = mid + 1 return l if __name__ == "__main__":… Python-L5 -- 困难 -- A21080 有一个存储了n个整数的线性表,分别用Python列表(数组)和自定义单链表两种方式实现。在已知元素下标(或结点对象引用)的前提下,Python列表的随机访问操作时间复杂度为O(1);而在Python实现的单链表中,已知某结点对象的引用时,在该结点之后插入一个新结点的操作时间复杂度也为O(1)。( ) Python-L5 -- 困难 -- A21081 下面代码实现两个整数除法,其中被除数为一个“大整数”,用字符串表示,除数是一个小整数,用int表示,则横线处应该填写( )。def big_integer_division(): s, b = input().split() b = int(b) a = [int(c) for c in s] c = [] rem = 0 for i in range(len(a)): rem = rem * … Python-L5 -- 困难 -- A21083 有n位同学的成绩已经从⼩到大排好序,现在对它执行下面这段以第一个元素为pivot 的快速排序,请问此次排序的时间复杂度是( )。def quicksort(a, l, r): if l >= r: return pivot = a[l] i, j = l, r while i < j: while i < j and a[j] >= pivot: j -= 1 while i < j and a… Python-L5 -- 困难 -- A21084 游戏大赛决赛,两组选⼿分别按得分从⼩到大排好队,现在要把他们合并成一个有序排行榜。A组: A = {12, 35, 67, 89} ,B组: B = {20, 45, 55, 78} ,下面是归并合并函数的核心循环,横线处应填入( )。A = [12, 35, 67, 89] B = [20, 45, 55, 78] i = 0 j = 0 result = [] while i < len(A… Python-L5 -- 困难 -- A21085 下面代码用分治求“最大连续⼦段和”,其时间复杂度为( )。import sys def solve(a, l, r): if l == r: return a[l] mid = l + (r - l) // 2 left = solve(a, l, mid) right = solve(a, mid + 1, r) sum_val = 0 lmax = -sys.maxsize - 1 for … Python-L5 -- 困难 -- A21086 给定 n 根木头,第 i 根长度为 a[i] 。要切成不少于 m 段等长木段,求最大可能长度,则横线上应填写( )。def check(a, m, x): cnt = 0 for length in a: if x == 0: return True cnt += length if cnt >= m: return True return cnt >= m def main(): import… Python-L5 -- 困难 -- A21088 在升序数组中查找第一个⼤于等于 x 的位置,下面循环中横线应填( )。def lowerBound(a, x): l = 0 r = len(a) while l<r: mid=l_(r-1)//2 if a[mid]>=x; _______________ else l=mid+1 return l if __name__ == "__main__": a1 = [1, 3, 5, 7, 9]… Python-L5 -- 困难 -- A21089 下面程序的运⾏结果为( )。def check(n, a, k, dist): cnt = 1 last = a for i in range(1, n): if a[i] - last >= dist: cnt += 1 last = a[i] return cnt >= k def solve(n, a, k): a.sort() l = 0 r = a[-1] - a while l<r:… Python-L5 -- 困难 -- A21090 埃氏筛中将内层循环从 j=i*i 开始而不是 j=2*i 的主要原因是( )。def eratosthenes_sieve_for(n): if n < 2: return [] is_composite = [False] * (n + 1) primes = [] for i in range(2, n + 1): if is_composite[i]: continue primes.ap… Python-L5 -- 困难 --