青少年软件编程(Python)等级考试试卷(四级)PY四级精编答案及解析

举报
资源描述
青少年软件编程(Python)等级考试试卷(四级) 一、单选题(共25题,每题2分,共50分) 1. 不超过100个元素的有序数列,使用二分查找能找到指定的元素,可能的查找次数不 包括?( )   A.  1次 B.  6次 C.  7次 D.  8次 试题编号:20210129-TR-028 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:按照二分查找法的规律,100个元素的有序列表,不管是否找到,至多查找7次。 2. 运行以下代码,正确的打印结果是?( ) def f():     c=0     for i in range(4,51,4):         if i%6==0:             c=c+1     return c print(f())   A.  1 B.  2 C.  4 D.  8 试题编号:20210206-lfy-006 试题类型:单选题 标准答案:C 试题难度:一般 试题解析:函数f()的作用是求4-50间4和6的公倍数个数,即12的倍数个数。 3. 10个人站一列,分苹果,问第10个人分到多少个苹果,他说比前面一个人多分到2个 ,依次往前,都说比前面一个人多分到2个,最后问第一个人,他说分到10个苹果。 用以下函数求第10个人分到的苹果数,则应补充选项为?( ) def  apple(n):      if n == 1:          return 10      else:          return                    print(apple(10))   A.  apple(n)+2 B.  n+2 C.  apple(n-1)+2 D.  apple(n+1)-2 试题编号:20210131-TR-023 试题类型:单选题 标准答案:C 试题难度:一般 试题解析:def  apple(n):      if n == 1:          return 10      else:          return  apple(n-1)+2  print(apple(10)) 4. 观察程序段,以下说法错误的是?( ) def fib(n):     if n==1 or n==2:         s=1     else:         s=fib(n-1)+fib(n-2)     return s m=int(input("请输入m的值(m>2):")) print(fib(m))   A.  如果输入m的值为8,打印的结果为20 B.  该程序段用了递归来实现 C.  如果缺少语句“return s”,程序会报错 D.  语句“def fib(n):”中的n为形参 试题编号:20210129-lfy-019 试题类型:单选题 标准答案:A 试题难度:较难 试题解析:定义函数时的语法如下:       def 函数名(参数集合):           <函数体>           [return 函数值] 本题中的自定义函数fib(m)需要返回值,所以“return 函数值”语句不能少,定义 时“函数名<参数集合>”中的参数为形参,调用时“函数名<参数集合>” 中的参数为实参。如果输入m的值为8,打印的结果为21。 评价描述: 5. 关于python函数参数的说法正确的是?( )   A.  函数一定要有参数和返回值 B.  在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也 被修改 C.  参数的值是否会改变,与函数中对变量的操作有关,与参数类型无关 D.  函数的形参在函数被调用时获得初始值 试题编号:20210129-TR-004 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:函数的形参作用域为本函数,在函数被调用时获得初始值。 6. 关于递归与递推方法的比较,错误的观点是?( )   A.  递归是将复杂问题降解成若干个子问题,依次降解,求出低阶规模的解,代入 高阶问题中,直至求出原问题的解; B.  递推是构造低阶的问题,并求出解,依次推导出高阶的问题以及解,直至求出 问题的解; C.  数学上的递推关系可以通过递归的方法来实现; D.  递归算法代码简洁,运行速度比递推快,因此应该尽量采用递归的方法; 试题编号:20210206-xm-024 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:D.递归的运行开销大。 7. 运行以下代码,输出结果正确的是?( ) a=1 b=c=[] def fun(a,c):     a=2     c.append(a) fun(a,c) print(a,b,c)   A.  2 [2] [2] B.  1 [] [2] C.  1 [2] [2] D.  2 [] [2] 试题编号:20210129-TR-011 试题类型:单选题 标准答案:C 试题难度:较难 试题解析:函数体内变量a的值为2,添加到了列表c中,b和c指向同一个列表地址 ,因此列表b也随之改变 8. 关于Turtle库的表述中,错误的是?( )   A.  Turtle库是Python语言中一个很流行的绘制图像的函数库。 B.  画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。 C.  turtle.circle( )是只能画一个指定半径为r的圆。 D.  turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数, 数字越大越快。 试题编号:20210128-ph-018 试题类型:单选题 标准答案:C 试题难度:一般 试题解析:turtle.circle( )是turtle中的常用命令,基本语法是circle(radius,e) ,即画一个指定半径为r,角度e的圆或弧 9. 有100枚金币,其中有1枚轻1克的假金币,现在要找出这枚假金币,但身边只有1个 没有刻度的天秤。小明先是将金币分成50枚一堆,共两堆称重,在轻的那一堆中又分 成两堆,接着在轻的25枚中分成12,12,1三堆称重,若两堆12枚的重量相同,则假币 为单独剩下的那一枚,否则在轻的那一堆中继续按照之前的办法称下去,直到找到假金 币。请问小明采用的办法与哪个算法有着相似之处?( )   A.  递归 B.  分治 C.  枚举 D.  贪心 试题编号:20210130-lfy-029 试题类型:单选题 标准答案:B 试题难度:容易 试题解析:分治算法就是对一个问题采取各个击破的方法,将一个规模为N的问题分 解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。只要求出子问 题的解,就可得到原问题的解。 10. 运行以下代码,正确的打印结果是?( ) def f(s):     t=0     max=0     for i in s:         if i>="0" and i<="9":             t=t+1         else:             if t>max:                 max=t             t=0     print(max) list="123ab45cd6d" f(list)   A.  0 B.  1 C.  2 D.  3 试题编号:20210206-lfy-007 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:本段代码中,函数f()的作用是求最长的连续数字字符串的长度。 11. 下列关于函数的描述正确的是?( )   A.  函数是可重复使用的,用来实现单一,或相关联功能的代码段 B.  函数中必须return语句 C.  函数好处是模块性,但不能提高代码的利用率 D.  函数内容以冒号起始,可以不缩进 试题编号:20210203-fcl-02 试题类型:单选题 标准答案:A 试题难度:一般 试题解析: 12. 调用以下函数时,语句“s=s+i”被执行的次数是?( ) def f():     s=0     i=1     while i<10:         if i%3==0 or s%2==1:             s=s+i         i=i+1     print(s)   A.  3 B.  4 C.  5 D.  6 试题编号:20210206-lfy-015 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 13. 已知有n本按照书名拼音排序好的图书,使用对分查找法搜索其中任何一本书,最多 查找次数为6次,则n的值可能为?( )   A.  20 B.  50 C.  80 D.  110 试题编号:20210129-lfy-027 试题类型:单选题 标准答案:B 试题难度:一般 试题解析:对规模为n的数据进行对分查找时,无论是否查找到,至多进 行 |log2n|+1次(|log2n|表示小于等于log2n的最大整数),因此25≤n<26, 即32≤n<64。 14. 某程序代码设计如下,若输入整数5,则最终输出的结果为?( ) def fact(x):     if x==1:         s=1     else:         s=fact(x-1)*x     return s n=int(input("请输入一个大于1的整数:")) print(fact(n)+fact(n-1))   A.  120 B.  24120 C.  144 D.  12024 试题编号:20210205-lfy-023 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:由于fact(5)=fact(4)*5, fact(4)=fact(3)*4, fact(3)=fact(2)*3, fact(2)=fact(1)*2, fact(1)=1,所以fact(5)+fact(4)=120+24=144。 15. 用匿名函数方式求两个数中较大的数,下列定义语句格式正确的是?( )   A.  result = lambda 'x,y': y if x> y else x B.  result= lambda x,y: y if x> y else x C.  result= lambda 'x,y': x if x> y else y D.  result= lam
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > IT计算机/网络 > Python


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号