青少年软件编程(Python四级)等级考试试卷(2020年12月)

2023年05月27日

选择题

第 1 题 单选题

以下有关算法的表述中正确的是?( )

A.描述算法可以有不同的方式,可用自然语言也可用流程图等

B.算法可以看成按照要求设计好的有限的确切的步骤解决问题,并且这样的步骤只能解决当前问题

C.算法需要一步一步执行,每一步执行的操作必须明确,不能含混不清,而且经过有限步或无限步后能得出结果

D.算法要求按部就班地执行相应的步骤,每一步可以有不同的结果

第 2 题 单选题

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

A.writelines

B.write

C.write 和 seek

D.writetext

第 3 题 单选题

以下选项中,哪一个不属于函数的作用?( )

A.提高代码的执行速度

B.提高代码的重复利用率

C.增强代码的可读性

D.降低编程的复杂度

第 4 题 单选题

关于计算圆面积的匿名函数的定义,以下哪一个语法格式是正确的?( )

A.lambda r:3.1415926rr

B.result=lambda r:3.1415926rr

C.lambda r,3.1415926rr

D.result=lambda r,3.1415926rr

第 5 题 单选题

运行以下程序输出的结果是?( )

x=1
def demo(): 
	global x 
	x=2 
	print(x) 
demo() 
print(x)

A.

1 
1

B.

2 
1

C.

1 
2

D.

2 
2

第 6 题 单选题

关于以下程序,下列表述中错误的一项是?( )

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内置函数

第 7 题 单选题

以下哪一个函数是指直接或间接调用函数本身的函数?( )

A.map函数

B.zip函数

C.匿名函数

D.递归函数

第 8 题 单选题

关于以下程序,运行程序输出结果正确的是?( )

def demo(x): 
	return x*2; 
print(demo(demo(demo(1))))

A.1

B.2

C.4

D.8

第 9 题 单选题

用于安装Python第三方库的工具是?( )

A.Install

B.pip

C.Wheel

D.Setup

第 10 题 单选题

分治,"分而治之"。从字面上理解就是分---治,把大的问题分成小问题,解决一个一个小问题,之后把问题的答案合并起来,就得到大问题的结果。历史上也有很多故事属于分治思想,以下属于分治思想的是?( )

A.三国时,曹操带兵长途行军,士兵们都很口喝,曹操便说:“前面就是一大片梅林,结了许多梅子,又甜又酸,可以解渴。” 士兵们听了,嘴里都流口水,一时也就不渴了。

B.战国时期,秦国通过远交近攻的策略,逐个击破,最后统一六国。

C.汉末刘备三次到诸葛亮住的茅屋去邀请他出来帮助自己打天下,最后诸葛亮才答应出来。

D.三个臭皮匠顶个诸葛亮是一个文化术语。指的是三个副将的智慧能顶一个诸葛亮。

第 11 题 单选题

运行以下函数,正确的打印是?( )

def domain2(a,b):
	a = a+b
	return a
a = 2
print(domain2(2,a))

A.4

B.2

C.1

D.7

第 12 题 单选题

以下选项中关于递归算法的描述,错误的是?( )

A.书写简单

B.一定要有基例(指不需要递归就能求解的解)

C.递归算法都可以用非递归的方法实现

D.执行效率高

第 13 题 单选题

以下用于绘制弧形的函数是?( )

A.turtle.seth( )

B.turtle.right( )

C.turtle.circle( )

D.turtle.fd( )

第 14 题 单选题

Python中函数不包括以下哪一个?( )

A.参数函数

B.标准函数

C.内建函数

D.第三方库函数

第 15 题 单选题

运行以下函数,正确的打印是?( )

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 s
print(function(6))

A.21

B.36

C.59

D.46

第 16 题 单选题

运行以下函数,正确的打印是?( )

def test(num):
		print("the number is %"%(num))
test(888)

A.the number is %

B.the number is 888.

C.the number is %888

D.the number is 888.888

第 17 题 单选题

下列哪个关键词可用来表示返回值?( )

A.back

B.return

C.ret

D.ok

第 18 题 单选题

对元素规模为n的列表进行对分查找时,无论是否找到,至多进行()次查找?

A.n

B.(n+1)/2

C.n-1

D.log2n+1

第 19 题 单选题

代码:

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.编译错误,程序无法运行。

第 20 题 单选题

运行以下代码,若d的值为17,则return后面应该填?( )

def function(a,b):
	c = a+b
	return _______
a,b = 3,2
d = function(a,b)

A.c+a+b

B.c-a*b

C.c+a*b

D.c*a+b

第 21 题 单选题

以下函数要计算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

第 22 题 单选题

以下不可以使用分治法求解的是?( )

A.棋盘覆盖问题

B.选择问题

C.归并排序

D.0/1背包问题

第 23 题 单选题

下面的故事与哪一个算法有着异曲同工之妙?( )

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事……

A.穷举

B.递归

C.贪心

D.分治

第 24 题 单选题

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

A.5

B.6

C.7

D.8

第 25 题 单选题

运行以下函数,正确的打印结果是?( )

def sub(a,b):
	return a-b
a,b = 5,3
c = sub(b,a)
print(c)

A.2

B.-2

C.1

D.-1

判断题

第 26 题 判断题

调用函数print_info("李华","16","男")输出的结果是:“姓名:李华,年龄:16,性别:男”

def print_info(name,age,sex);
	str = "姓名:"+name+",年龄:"+age+",性别:"+sex
	print(str)

A.正确 B.错误

第 27 题 判断题

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)

A.正确 B.错误

第 28 题 判断题

执行以下代码:

n=5
def fun():
	x=n+1
	print (x)
fun()

程序输出的结果为:6

A.正确 B.错误

第 29 题 判断题

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

A.正确 B.错误

第 30 题 判断题

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

A.正确 B.错误

第 31 题 判断题

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

A.正确 B.错误

第 32 题 判断题

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

 def outer():
	 x = "local"
	 def inner():
		 x = 'nonlocal' 
		 print("inner:", x)
	 inner()
	 print("outer:", x)

A.正确 B.错误

第 33 题 判断题

执行以下代码:

def sum_n(n):
	if n==1:
		return 2
	t = sum_n(n - 2)
	return n + t
result = sum_n(5)
print(result)

程序输出的结果为:10

A.正确 B.错误

第 34 题 判断题

函数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

A.正确 B.错误

第 35 题 判断题

新型冠状病毒感染的肺炎是一种全新的冠状病毒肺炎,该病毒具有人群易感性,预防病毒我们要做到勤洗手、戴口罩,多通风。假设新型冠状病毒每轮会传染给x人,则经过n轮传染后,有n*x个人感染。

A.正确 B.错误

编程题

第 1 题 问答题

要求:设计一个算法,如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如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

第 2 题 问答题

任务:利用分治思想,在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)

第 3 题 问答题

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

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

函数名: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)