2020年12月青少年软件编程Python等级考试(四级)试卷
剩余时间 --:--:--
单选题 共 25 题
1.

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

2.

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

3.

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

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

4.

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

5.

以下函数要计算x的n次方,则应补充选项为?( )   

      def power(x, n):  
          s = 1  
          while n >0:  
              _________  
              s = s * x  
          return s
6.

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

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

代码:   

   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)

      以下说法正确的是?( ) 

8.

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

9.

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

10.

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

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

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

      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))
12.

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

13.

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

14.

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

15.

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

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

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

17.

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

18.

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

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

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

20.

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

      def demo(n):   
          s=1   
          for i in range(1,n):   
              s*=i   
          return s
21.

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

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

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

23.

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

24.

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

25.

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

      def sub(a,b):  
          return a-b  
      a,b = 5,3 
      c = sub(b,a)  
      print(c)
判断题 共 10 题
1.

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

2.

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)
3.

执行以下代码:

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

 程序输出的结果为:6

4.

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

5.

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

6.

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

7.

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

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

执行以下代码:

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

 程序输出的结果为:10

9.

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

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

 def print_info(name,age,sex);
     str = "姓名:"+name+",年龄:"+age+",性别:"+sex
     print(str)
问答题 共 3 题
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)
C++ 编辑器
输入
输出