青少年软件编程(Python)等级考试试卷(四级)
分数:100.00 题数:38

一、单选题(共25题,每题2分,共50分)

  1. 以下有关算法的表述中正确的是?( )
    A、描述算法可以有不同的方式,可用自然语言也可用流程图等
    B、算法可以看成按照要求设计好的有限的确切的步骤解决问题,并且这样的步骤只能解决当前问题
    C、算法需要一步一步执行,每一步执行的操作必须明确,不能含混不清,而且经过有限步或无限步后能得出结果
    D、算法要求按部就班地执行相应的步骤,每一步可以有不同的结果
    试题编号:20200404-xc-012
    题型:单选题
    答案:A
    难度:一般
    试题解析:算法可以看成按照要求设计好的有限的确切的步骤,并且这样的步骤能解决一类问题,故B不正确;算法是有限步,结果明确性;算法的每一步操作必须是明确的,不能有歧义或模糊是正确的,故D不正确。

  2. 以下选项中不是Python对文件的写操作方法的是?( )

A、writelines
B、write
C、write 和 seek
D、writetext
试题编号:20200325-ysy-001
题型:单选题
答案:D
难度:一般
试题解析:

python文件对象提供了两个“写”方法: write() 和 writelines()。write()方法和read()、readline()方法对应,是将字符串写入到文件中。writelines()方法和readlines()方法对应,也是针对列表的操作。它接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。
  1. 以下选项中,哪一个不属于函数的作用?( )
    A、提高代码的执行速度
    B、提高代码的重复利用率
    C、增强代码的可读性
    D、降低编程的复杂度
    试题编号:20200402-xc-023
    题型:单选题
    答案:A
    难度:一般
    试题解析:函数能够提高代码的重复利用率,增强代码的可读性,降低编程的复杂度,但高代码的执行速度不是它的特点。

  2. 关于计算圆面积的匿名函数的定义,以下哪一个语法格式是正确的?( )
    A、lambda r:3.1415926rr
    B、result=lambda r:3.1415926rr
    C、lambda r,3.1415926rr
    D、result=lambda r,3.1415926rr
    试题编号:20200402-xc-005
    题型:单选题
    答案:B
    难度:一般
    试题解析:关键字lambda表示匿名函数,冒号之前的表示它们是这个函数的参数,匿名函数不需要return来返回值,表达式本身结果就是返回值。在定义匿名函数时,需要将它直接赋值给一个变量,然后再像一般函数调用。

运行以下程序输出的结果是?( )x=1def demo():     global x     x=2     print(x) demo() print(x)

A、

1 1

B、

2 1

C、

1 2

D、

2 2

试题编号:20200402-xc-006
题型:单选题
答案:D
难度:较难
试题解析:Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global以改变它的值。

关于以下程序,下列表述中错误的一项是?( )def demo(n):     s=1     for i in range(1,n):         s*=i     return s

A、demo(n)函数的功能是求n的阶乘
B、s是局部变量
C、n是形式参数
D、range()函数是Python内置函数
试题编号:20200402-xc-025
题型:单选题
答案:A
难度:一般
试题解析:demo(n)函数的功能是求阶乘,range(1,n)是从1循环到n-1。

  1. 以下哪一个函数是指直接或间接调用函数本身的函数?( )
    A、map函数
    B、zip函数
    C、匿名函数
    D、递归函数
    试题编号:20200402-xc-031
    题型:单选题
    答案:D
    难度:容易
    试题解析:递归函数是指直接或间接调用函数本身的函数。

关于以下程序,运行程序输出结果正确的是?( )def demo(x):     return x*2; print(demo(demo(demo(1))))

A、1
B、2
C、4
D、8
试题编号:20200402-xc-026
题型:单选题
答案:D
难度:一般
试题解析:调用三次,1乘以三次2,因此结果为8。

  1. 用于安装Python第三方库的工具是?( )
    A、Install
    B、pip
    C、Wheel
    D、Setup
    试题编号:20200315-ysy-004
    题型:单选题
    答案:B
    难度:一般
    试题解析:用于安装Python第三方库的工具可以用pip install 第三方库名。

  2. 分治,“分而治之”。从字面上理解就是分—治,把大的问题分成小问题,解决一个一个小问题,之后把问题的答案合并起来,就得到大问题的结果。历史上也有很多故事属于分治思想,以下属于分治思想的是?( )
    A、三国时,曹操带兵长途行军,士兵们都很口喝,曹操便说:“前面就是一大片梅林,结了许多梅子,又甜又酸,可以解渴。” 士兵们听了,嘴里都流口水,一时也就不渴了。
    B、战国时期,秦国通过远交近攻的策略,逐个击破,最后统一六国。
    C、汉末刘备三次到诸葛亮住的茅屋去邀请他出来帮助自己打天下,最后诸葛亮才答应出来。
    D、三个臭皮匠顶个诸葛亮是一个文化术语。指的是三个副将的智慧能顶一个诸葛亮。
    试题编号:20200404-xc-009
    题型:单选题
    答案:B
    难度:较难
    试题解析:B体现分治思想

运行以下函数,正确的打印是?( )def domain2(a,b):    a = a+b    return aa = 2print(domain2(2,a))

A、4
B、2
C、1
D、7
试题编号:20200413-zwy-023
题型:单选题
答案:A
难度:容易
试题解析:知识点:自定义函数的创建与调用

  1. 以下选项中关于递归算法的描述,错误的是?( )
    A、书写简单
    B、一定要有基例(指不需要递归就能求解的解)
    C、递归算法都可以用非递归的方法实现
    D、执行效率高
    试题编号:20200413-zwy-030
    题型:单选题
    答案:D
    难度:容易
    试题解析:知识点:递归与递推

  2. 以下用于绘制弧形的函数是?( )
    A、turtle.seth( )
    B、turtle.right( )
    C、turtle.circle( )
    D、turtle.fd( )
    试题编号:20200316-ysy-006
    题型:单选题
    答案:C
    难度:一般
    试题解析:

  3. Python中函数不包括以下哪一个?( )
    A、参数函数
    B、标准函数
    C、内建函数
    D、第三方库函数
    试题编号:20200408-xc-006
    题型:单选题
    答案:A
    难度:一般
    试题解析:Python中函数包括标准函数、内建函数、第三方库函数等

运行以下函数,正确的打印是?( )def function(a):    s = 0    while(a>0):        if(a%2 == 0):            s += a*(a-1)        else:            s += a+(a-1)        a = a-1    return sprint(function(6))

A、21
B、36
C、59
D、46
试题编号:20200413-zwy-026
题型:单选题
答案:C
难度:一般
试题解析:知识点:递归与递推

运行以下函数,正确的打印是?( ) def test(num):        print("the number is %d."%(num)) test(888)

A、the number is %d.
B、the number is 888.
C、the number is %d.888
D、the number is 888.888
试题编号:20200413-zwy-021
题型:单选题
答案:B
难度:容易
试题解析:知识点:自定义函数的创建与调用

  1. 下列哪个关键词可用来表示返回值?( )
    A、back
    B、return
    C、ret
    D、ok
    试题编号:20200413-zwy-004
    题型:单选题
    答案:B
    难度:容易
    试题解析:知识点:函数的相关概念

  2. 对元素规模为n的列表进行对分查找时,无论是否找到,至多进行()次查找?
    A、n
    B、(n+1)/2
    C、n-1
    D、log2n+1
    试题编号:20201122-ssn-003
    题型:单选题
    答案:D
    难度:一般
    试题解析:对元素规模为n的列表进行对分查找时,无论是否找到,至多进行 log2n+1( log2n+1表示大于或等于 log2n的最小整数)次查找就能得到结果。

代码: def sum(num1,num2):     num1=num1+1     num2=num2+2     result=num1+num2     return result a=3 b=4 c=sum(a,b) print("a=",a,"b=",b,"c=",c) 以下说法正确的是?( )

A、程序的运行结果为:a= 3 b= 4 c= 10
B、程序的运行结果为:a= 4 b= 6 c= 10
C、程序的运行结果为:a= 4 b= 6 c= 7
D、编译错误,程序无法运行。
试题编号:20200308-ysy-005
题型:单选题
答案:A
难度:较难
试题解析:

运行以下代码,若d的值为17,则return后面应该填?( ) def function(a,b):    c = a+b    return _______a,b = 3,2d = function(a,b)

A、c+a+b
B、c-ab
C、c+a
b
D、c*a+b
试题编号:20200413-zwy-009
题型:单选题
答案:D
难度:容易
试题解析:知识点:函数的返回值

以下函数要计算x的n次方,则应补充选项为?( ) def power(x, n):    s = 1    while n > 0:        _________        s = s * x    return s

A、n = n
B、n = n+1
C、n = n-2
D、n = n-1
试题编号:20200413-zwy-031
题型:单选题
答案:D
难度:容易
试题解析:知识点:递归与递推

  1. 以下不可以使用分治法求解的是?( )
    A、棋盘覆盖问题
    B、选择问题
    C、归并排序
    D、0/1背包问题
    试题编号:20200414-ysy-009
    题型:单选题
    答案:D
    难度:较难
    试题解析:

    可使用分治法求解的一些经典问题

    (1)二分搜索

    (2)大整数乘法

    (3)Strassen矩阵乘法

    (4)棋盘覆盖

    (5)合并排序

    (6)快速排序

    (7)线性时间选择

    (8)最接近点对问题

    (9)循环赛日程表

    (10)汉诺塔

下面的故事与哪一个算法有着异曲同工之妙?( )从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事……

A、穷举
B、递归
C、贪心
D、分治
试题编号:20200404-xc-001
题型:单选题
答案:B
难度:一般
试题解析:递归函数是指直接或间接调用函数本身的函数。

有 2*n的一个长方形方格,用一个1*2的骨牌铺满方格,当n=5时,铺法总数为多少?( )

A、5
B、6
C、7
D、8
试题编号:20200408-xc-004
题型:单选题
答案:D
难度:较难
试题解析:

对一般的n,要求xn可以这样来考虑,若第一个骨牌是竖排列放置,剩下有n-1个骨牌需要排列,这时排列方法数为xn-1;若第一个骨牌是横排列,整个方格至少有2个骨牌是横排列(1*2骨牌),因此剩下n-2个骨牌需要排列,这是骨牌排列方法数为xn-2。从第一骨牌排列方法考虑,只有这两种可能,所以有:  xn=xn-1+xn-2 (n>2)  x1=1  x2=2  xn=xn-1+xn-2就是问题求解的递推公式,任给n都可以从中获得解答。例如n=5,  x3=x2+x1=3  x4=x3+x2=5  x5=x4+x3=8
运行以下函数,正确的打印结果是?( ) def sub(a,b):    return a-ba,b = 5,3c = sub(b,a)print(c)

A、2
B、-2
C、1
D、-1
试题编号:20200413-zwy-012
题型:单选题
答案:B
难度:一般
试题解析:知识点:函数的参数

二、判断题(共10题,每题2分,共20分)
26. 调用函数print_info(“李华”,“16”,“男”)输出的结果是:“姓名:李华,年龄:16,性别:男”

def print_info(name,age,sex);

str = “姓名:”+name+“,年龄:”+age+“,性别:”+sex

print(str)

试题编号:20200320-wc-012
题型:判断题
答案:正确
难度:容易
试题解析:调用函数print_info(“李华”,“16”,“男”)时,参数"李华",“16”,"男"分别被赋值给形参name,age,sex,并将参数合并为一个字符串str,输出字符串str时就能够输出结果:“姓名:李华,年龄:16,性别:男”。

  1. power(x,n)函数是计算x的n次幂的函数,power(x,n)函数运用了分治算法的思想,调用power(3,3)函数的计算结果是:27

def power(x,n):

if n == 2:

return x

if n%2 == 0:

return power(x,n//2) * power(x,n//2)

else:

return power(x,(n+1)//2) * power(x,(n-1)//2)

试题编号:20200330-wc-032
题型:判断题
答案:错误
难度:一般
试题解析:函数的递归条件是:n == 1。因为当n为奇数时,n//2或(n-1)//2或(n+1)//2的最小值是1,

  1. 执行以下代码:

n=5

def fun():

x=n+1

print (x)

fun()

程序输出的结果为:6

试题编号:20200407-zpf-009
题型:判断题
答案:正确
难度:较难
试题解析:

运行如下图的代码,变量m无论取值是多少,print打印出的值都不可能大于30。

试题编号:20200319-LL-011
题型:判断题
答案:错误
难度:一般
试题解析:m的值如果是31,打印出的就是31,本题考查学生对函数体之中语句的理解

  1. 使用pip install-upgrade numpy命令能够升级numpy科学计算扩展库。

试题编号:20200330-wc-038
题型:判断题
答案:正确
难度:一般
试题解析:使用“pip install-upgrade 包名”命令能够升级已安装的第三方库

  1. type(str)函数的返回值是参数str的数据类型。

试题编号:20200320-wc-006
题型:判断题
答案:正确
难度:容易
试题解析:type()函数是Python内置的计算参数类型的函数

  1. 调用嵌套函数outer(),两次输出变量x的值是不一样的。

def outer():

x = “local”

def inner():

x = ‘nonlocal’

print(“inner:”, x)

inner()

print(“outer:”, x)

试题编号:20200320-wc-018
题型:判断题
答案:正确
难度:一般
试题解析:在嵌套函数中,嵌套函数内部与嵌套函数外部相同名称的变量是互不影响的,所以两次输出变量x的值是不一样的。

  1. 执行以下代码:

def sum_n(n):

if n==1:

return 2

t = sum_n(n - 2)

return n + t

result = sum_n(5)

print(result)

程序输出的结果为:10

试题编号:20200407-zpf-022
题型:判断题
答案:正确
难度:一般
试题解析:

  1. 函数factorialrecursive(n)与factorial cycle(n)分别是运用递归和循环计算n的阶乘的函数,因为两个函数都能够计算n的阶乘,所以递归和循环的时间复杂度是一样的。

def factorialrecursive(n):

if n == 1:

return 1

return n*factorial(n-1)

def factorial cycle(n):

result = 1

while(n>1):

result = result * n

n = n-1

return result

试题编号:20200330-wc-036
题型:判断题
答案:错误
难度:一般
试题解析:递归与循环所执行的时间是不一样的,所以递归与循环的时间复杂度是不一样的。

  1. 新型冠状病毒感染的肺炎是一种全新的冠状病毒肺炎,该病毒具有人群易感性,预防病毒我们要做到勤洗手、戴口罩,多通风。假设新型冠状病毒每轮会传染给x人,则经过n轮传染后,有n*x个人感染。
    试题编号:20200407-zpf-025
    题型:判断题
    答案:错误
    难度:一般
    试题解析:

三、编程题(共3题,共30分)
36. 要求:设计一个算法,如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如9889就是一个回文数,求对于用户输入的一个非零正整数判断是否为回文数。

根据上述算法思想,补全下列代码。

示例:输入9889,返回9889是回文数;输入34542,返回34542不是回文数。

i=input(“请输入一个非零正整数:”)

n=len(i)

if   ①    :

for j in range(int((n+1)/2)):

if   ②    :

if n==2*j+1:

print(“{}是回文数”.format(i))

else:

print(“{}不是回文数”.format(i))

break

else:

for j in   ③    :

if i[j]==i[n-j-1]:

if   ④    :

print(“{}是回文数”.format(i))

else:

print(“{}不是回文数”.format(i))

break

试题编号:20200330-ph-008
题型:编程题
答案:

参考答案:

① n%2!=0: 或等效答案;(3分)

② i[j]==i[n-j-1]: 或等效答案;(3分)

③ range(int(n/2)) 或等效答案;(2分)

④ n==2*(j+1) 或等效答案;(2分)

难度:一般
试题解析:

参考答案:

i=input(“请输入一个非零正整数:”)

n=len(i)

if n%2!=0:

for j in range(int((n+1)/2)):

if i[j]==i[n-j-1]:

if n==2*j+1:

print(“{}是回文数”.format(i))

else:

print(“{}不是回文数”.format(i))

break

else:

for j in range(int(n/2)):

if i[j]==i[n-j-1]:

if n==2*(j+1):

print(“{}是回文数”.format(i))

else:

print(“{}不是回文数”.format(i))

break

  1. 任务:利用分治思想,在50个同学成绩(成绩不重复)中查找指定成绩的同学的编号,学生成绩存储在列表cj中;待查找的成绩由键盘输入到变量key中。根据上述算法思想,编写自定义函数完成程序功能,完善空白处代码。

“”"

函数名def search(lft,rgt,key)

参数表:整数lft,rgt表示待查找列表的左右边界,key是待查找的成绩

返回值:找到返回key所在编号,否则返回-1.

“”"

def search(lft,rgt,key):

if lft>rgt:

return -1

mid = ①

if cj[mid] == key:

return mid

elif ② :

lft = mid + 1

else:

rgt = mid - 1

import random

cj = [random.randint(1,100) for i in range(50)]

cj.sort()

key = int(input(“输入待查找的成绩”))

pos = search(0,49,key)

print(pos)

试题编号:20200330-fcl-010
题型:编程题
答案:

评分标准:

① (lft+rgt)//2    (2分)

② cj[mid] < key    (3分)

③ return search(lft,rgt,key)   (3分)

难度:一般
试题解析:

参考答案:

def search(lft,rgt,key):

if lft>rgt:

return -1

mid = (lft+rgt)//2

print(data[mid])

if data[mid] == key:

return mid

elif data[mid] < key:

lft = mid + 1

else:

rgt = mid - 1

return search(lft,rgt,key)

import random

data = [random.randint(1,100) for i in range(50)]

data.sort()

key = int(input(“输入待查找的成绩”))

pos = search(0,49,key)

print(pos)

  1. 要求:设计一个算法,对于给定两个正整数,求它们的最大公约数。

根据上述算法思想,补全下列代码。

函数名:gcd(x,y)

参数表:x-- 整数x,y-- 整数y。

返回值:它们的最大公约数。

示例:当x=6,y=9时,返回3。

def gcd(x,y):

if   ①    :

return y

else:

return   ②

sums = 0

m = int(input('请输入第一个正整数m = '))

n = int(input('请输入第二个正整数n = '))

sums=  ③

print(“m和n两个正整数的最大公约数是:%d”% sums)

试题编号:20200330-ph-005
题型:编程题
答案:

评分标准:① x%y== 0或等效答案;(4分)

② gcd(y,x%y) 或等效答案;(4分)

③ gcd(m,n) 或等效答案;(4分)

难度:容易
试题解析:

参考答案:def gcd(x,y):

if x%y== 0:

return y

else:

return gcd(y,x%y)

sums = 0

m = int(input('请输入第一个正整数m = '))

n = int(input('请输入第二个正整数n = '))

sums=gcd(m,n)

print(“m和n两个正整数的最大公约数是:%d”% sums)

2020年9月电子学会Python等级考试试卷(四级)考题解析相关推荐

  1. 2020年9月电子学会Python等级考试试卷(三级)考题解析

    青少年软件编程(Python)等级考试试卷(三级A卷) 分数:100.00            题数:39 一.单选题(共25题,每题2分,共50分) 1. 下列程序运行结果是?( ) a=12 b ...

  2. 2020年12月电子学会Python等级考试试卷(一级)考题解析

    青少年软件编程(Python)等级考试试卷(一级) 分数:100.00 题数:37 一.单选题(共25题,每题2分,共50分) 执行语句print(10==10.0)的结果为?( ) A.10 B.1 ...

  3. 2020年6月电子学会Python等级考试试卷(一级)考题解析

    青少年软件编程(Python)等级考试试卷(一级A卷) 分数:100.00            题数:38 一.单选题(共25题,每题2分,共50分) 1. 以下哪种输入结果不可能得到以下反馈: 重 ...

  4. 2020年12月电子学会Python等级考试试卷(三级)考题解析

    青少年软件编程(Python)等级考试试卷(三级) 分数:100.00 题数:38 一.单选题(共25题,每题2分,共50分) 要对二维列表所有的数据进行格式化输出,打印成表格形状,程序段如下: ls ...

  5. 2021年12月电子学会Python等级考试试卷(二级)答案解析

    需要所有考级相关的资料可以添加我的微信:15570666506 青少年软件编程(Python)等级考试试卷(二级) 一.单选题(共25题,共50分) 1. 执行以下程序 a=[33,55,22,77] ...

  6. 2022年9月电子学会Python等级考试试卷(五级)答案解析

    目录 一.单选题(共25题,共50分) 二.判断题(共10题,共20分) 三.编程题(共3题,共30分) 答案如下 2022-09-17青少年软件编程(Python)等级考试试卷(五级) 一.单选题( ...

  7. 2022年9月电子学会Python等级考试试卷(一级)答案解析

    青少年软件编程(Python)等级考试试卷(一级) 分数:100  题数:37 一.单选题(共25题,共50分) 1. 表达式len("学史明理增信 ,读史终生受益") > ...

  8. 2022年9月电子学会Python等级考试试卷(二级)答案解析

    目录 一.单选题(共25题,共50分) 二.判断题(共10题,共20分) 三.编程题(共2题,共30分) 参考答案: 2022-09-17青少年软件编程(Python)等级考试试卷(二级) 一.单选题 ...

  9. 2021年12月电子学会Python等级考试试卷(三级)答案解析

    青少年软件编程(Python)等级考试试卷(三级) 分数:100  题数:38 总体情况 一.单选题(共25题,共50分) 1. 小明在学习计算机时,学习到了一个十六进制数101,这个十六进制数对应的 ...

最新文章

  1. Java 类和对象的内存分配机制
  2. Visual Studio Code Go 插件文档翻译
  3. php约瑟夫问题,php 解决约瑟夫问题实现方法
  4. 【转】推荐给初级Java程序员的3本进阶书
  5. 安卓四大组件之Activity
  6. 把技术卖给不懂技术的人
  7. NSObject协议中方法:description 和 debugDescription
  8. PHP企业级开发环境配置全攻略-IDE+SVN++(转)
  9. 转贴:Icon Design Guidelines, Android 2.0
  10. 第一次用联接查询语句,豁然开朗!!
  11. error: binding reference of type int to const int discards qualifiers
  12. 景观设计名字主题_园林景观好听的名字
  13. git将一个分支的提交合并到另一个分支
  14. js中易错难点集合(1)
  15. 测试人员如何提高API功能测试效率?
  16. 刷脸支付行业代理的几个坑,你踩了吗?
  17. matlab 反激实例(S440_Flyback.slx)
  18. [转载]zz傅里叶变换,拉普拉斯变换和Z变换的意义
  19. USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系
  20. 打领带的方法,心学!

热门文章

  1. ActivityManagerService之进程管理(四)
  2. 用html制作百度地图,canvas实现百度地图个性化底图绘制
  3. flink学习笔记(五)
  4. Cocos2d-x 中文内容设置
  5. centos7下详细搭建Mongodb集群
  6. 成就亿万富翁的10条规则
  7. system/bt目录内容解析
  8. SVN上传不了.so .a库可尝试的解决方法
  9. 操作系统常见面试题整理
  10. angular学习6之路由可选参数和必选参数