当前位置: 首页 > news >正文

GESP CCF python五级编程等级考试认证真题 2024年12月

1 单选题(每题 2 分,共 30 分)
第 1 题 下面的程序中,x,y都是正整数,完成的算法是( )
def chenadai(x, y):
        while y:
                x, y = y, x % y
        return x
A. 最小公倍数
B. 最大公约数
C. 数字x能够整除y的最小数
D. 数字x与数字y的所有公约数

第 2 题 下列程序中实现的是( )
def chenadai(x, y):
        return x * y // (x,y的最大公约数)
A. 实现了求x,y的最小公约数
B. 实现了求x,y的最大公约数
C. 实现了求x,y的最小公倍数
D. 实现了求x,y的平均值

第 3 题 欧几里得算法又称作辗转相除算法,下面程序中是这种算法的是( )

A.

def gcd ( a , b ):
        if b == 0 :
                return a
        return gcd ( b , a % b )

B.

def gcd ( a , b ):
        if a < b :
                a , b = b , a
        while b != 0 :
                a , b = b , a % b
        return b

C.

def gcd ( a , b ):
if b == 0 :
return a
return gcd ( a , a % b)        

D.

def gcd ( a , b ):
        if b == 0 :
                return a
        return gcd ( b , b % a)

第 4 题 下列程序是二分法的程序,横线处应该填上( )。
def binary_search(arr, target):
        left = 0
        right = len(arr) - 1
        while left <= right:
                mid = (left + right) // 2
                _________________________
        return -1
A.

if arr [ mid ] == target :
        return mid
elif arr [ mid ] > target :
        right = mid - 1

B.

if arr [ mid ] == target :
        return mid
elif arr [ mid ] > target :
        right = mid
else :
        left = mid

C.

if arr [ mid ] == target :
        return mid
elif arr [ mid ] > target :
        right = mid - 1
else :
        left = mid + 1

D.

if arr [ mid ] == target :
        return mid
else :
        left = mid + 1

第 5 题 下面折半查找程序的时间复杂度为( )
def binary_search(arr, x):
        low = 0
        high = len(arr) - 1
        while low <= high:
                mid = (low + high) // 2
                if arr[mid] == x:
                        return mid
                elif arr[mid] > x:
                        high = mid - 1
                else:
                        low = mid + 1
        return -1
A.O(n * log n)
B.O(n)
C.O(log n)
D.O(n^2)

第 6 题 下列程序中,使用了埃氏筛法,横线处应该填写的是()
def aishishai(n):
        if n < 2:
                return []
        prime = [True] * (n + 1)
        prime[0] = prime[1] = False
        ——————————————————————————————————
                if prime[p]:
                        for i in range(p * p, n + 1, p):
                                prime[i] = False
        return [p for p in range(n + 1) if prime[p]]
A. for p in range(2, n ** 0.5 + 1):
B. for p in range(2, int(n ** 0.5) + 1):
C. for p in range(2, int(n ** 0.5) + 0.5):
D. for p in range(2, n ** 0.5 + 0.5):

第 7 题 18到100之间的所有素数的和为多少( )
A. 1060
B. 1004
C. 1002
D. 1052

第 8 题 下面程序是对2024进行唯一分解,最后的结果应该是( )。
def weiyi(n):
        factors = {}
        for i in range(2, n+1):
                while n % i == 0:
                        if i in factors:
                                factors[i] += 1
                        else:
                                factors[i] = 1
                        n //= i
        return factors
A. 1,2,3,13,23
B. 2,7,11,23
C. 2:3,11:1,23:1
D. 2,3,13,23

第 9 题 下面关于循环链表的说法正确的是( )。
A. 循环链表的最后一个结点指向头结点,形成一个闭环
B. 必须通过特定结点才可以遍历整个链表
C. 不属于链式存储结构
D. 在长度为n的顺序表下标为i的位置前插入一个元素(1 ≤ i ≤ n+1),元素的移动次数为n-i+1

第 10 题 下列归并算法程序中,横线处应该填入的是( )

def merge_sort(array):
        if len(array) == 1:
                return array
        _________________________
        return merge(left, right)
def merge(left, right):
        left_index, right_index, merge_array = 0, 0, list()
        while left_index < len(left) and right_index < len(right):
                if left[left_index] <= right[right_index]:
                        merge_array.append(left[left_index])
                        left_index += 1

                else:
                        merge_array.append(right[right_index])
                        right_index += 1
        merge_array = merge_array + left[left_index:] + right[right_index:]
        return merge_array

A.

left = merge_sort ( array [: len ( array ) - 1 // 2 ])
right = merge_sort ( array [ len ( array ) - 1 // 2 :])

B.

left = merge_sort ( array [ len ( array ) // 2 - 1 ])
right = merge_sort ( array [ len ( array ) // 2 :])

C.

left = merge_sort ( array [ len ( array ) // 2 - 1 ])
right = merge_sort ( array [ len ( array ) // 2 ])

D.

left = merge_sort ( array [: len ( array ) // 2 ])
right = merge_sort ( array [ len ( array ) // 2 :])

================================================

答案和更多内容请查看网站:【试卷中心 -- Python编程 五级/六级/其它】

网站链接 

青少年软件编程历年真题模拟题实时更新

================================================

http://www.lryc.cn/news/505414.html

相关文章:

  • URL的概念与格式
  • 【Elasticsearch】高亮搜索:从原理到Web呈现
  • samout llm解码 幻觉更低更稳定
  • 单片机:实现多任务处理(附带源码)
  • 负载均衡oj项目:介绍
  • 剑指Offer 03比特位计数
  • 多音轨视频使用FFmpeg删除不要音轨方法
  • elasticsearch 使用enrich processor填充数据
  • VMProtect:软件保护与安全的全面解决方案
  • Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:教室信息管理系统(前后端源码 + 数据库 sql 脚本)
  • 第十二篇:linux下socket本地套接字通讯
  • Spring Boot 2.1.7 数据源自动加载过程详解
  • 【Vue.js 3.0】provide 、inject 函数详解
  • JVM(Java虚拟机)的虚拟机栈
  • Elasticsearch02-安装7.x
  • iPhone恢复技巧:如何从 iPhone 恢复丢失的照片
  • vba批量化调整word的图和图表标题
  • 【Flutter_Web】Flutter编译Web第二篇(webview篇):flutter_inappwebview如何改造方法,变成web之后数据如何交互
  • 【C语言的奥秘11】指针知识点总结(续)
  • excel 列名是数据表 的字段名 ,单元格的值 是数据表对应字段的值,生成sql插入语句
  • AI Agent与MEME:技术与文化融合驱动Web3创新
  • IO的入门
  • 构建一个rust生产应用读书笔记四(实战1)
  • SpringCloudAlibaba | Sentinel从基础到进阶
  • 算法刷题Day18: BM41 输出二叉树的右视图
  • 【信息系统项目管理师-论文真题】2015下半年论文详解(包括解题思路和写作要点)
  • Windows如何安装go环境,离线安装beego
  • JavaScript网络请求( XMLHttpRequest 对象,进度事件, 跨源资源共享)
  • 计算机网络信息系统安全问题及解决策略
  • 解决并发情况下调用 Instruct-pix2pix 模型推理错误:index out of bounds 问题