万卷网> 电子学会考级 >Python等级考试 > 2020年12月电子学会青少年软件编程(Python四级)等级考试试卷

2020年12月电子学会青少年软件编程(Python四级)等级考试试卷
操作/编程 四级 2020 2022-10-29 16:29:15 52

一、编程题

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.

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

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

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

3.

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

公众号
客服 反馈
顶部