2022年12月电子学会Python等级考试试卷(三级)答案解析
创始人
2024-05-25 12:56:50

目录

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

二、判断题(共10题,共20分)

三、编程题(共3题,共30分)


青少年软件编程(Python)等级考试试卷(三级)

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

1.

列表L1中全是整数,小明想将其中所有奇数都增加1,偶数不变,于是编写了如下图所示的代码。
请问,图中红线处,代码应该是?( )

A. 

x || 2

B. 

x ^ 2

C. 

x && 2

D. 

x % 2

试题编号:20220425-ll-016

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:本题代码中,for x in L1 是在L1列表中循环,每次取出的值x交给if语句进行判断,如果除以2的余数不等于0,就是奇数,则x+1,若等于0则x值不变。取余数的运算符是%,所以正确答案就是D。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

2.

小明为了学习选择排序的算法,编写了下面的代码。针对代码中红色文字所示的一、二、三处,

下面说法正确的是?( )

a = [8,4,11,3,9]
count = len(a)
for i in range(count-1):
    mi = i
    for j in range(i+1,count):
         if a[mi] > a[j]:   #代码一
              mi = j   #代码二
     if i!=mi:

        a[mi],a[i] = a[i],a[mi]   #代码三

print(a)

A. 

如果找到更大的元素,则记录它的索引号。

B. 

如果找到更小的元素,则记录它的索引号。

C. 

在一趟选择排序后,不管是否找到更小的元素,mi所在元素都得与i所在的元素发生交换。

D. 

代码三所在的行必然要运行。

试题编号:20220425-ll-024

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

3.

小明编写了一段演示插入排序的代码,代码如下。请问红色“缺失代码”处,应该填写哪段代码?( )

a = [8,4,11,3,9]
count = len(a)
for i in range(1, count):
    j = i
    b = a[i]
    while j>0 and b         a[j] = a[j-1]
        缺失代码
        a[j] = b
print(a)

A. 

j=j-1

B. 

j=j+1

C. 

j=i+1

D. 

j=i-1

试题编号:20220425-ll-025

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:本题考查学生对插入排序算法的理解。当前位置数字需要通过循环,逐个与之前位置的数字进行比较,所以正确答案是A,j=j-1,用于下一次循环时,获取前一个数字。

考生答案:B

考生得分:0

是否评分:已评分

评价描述:

4.

在计算机中,信息都是采用什么进行存储?( )

A. 

二进制数

B. 

八进制数

C. 

十进制数

D. 

十六进制数

试题编号:20220503-ppz-001

试题类型:单选题

标准答案:A

试题难度:容易

试题解析:信息的二进制存储。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

5.

十进制数(100)10,转化为二进制数为( )2?

A. 

0010011

B. 

1010001

C. 

1100100

D. 

0101100

试题编号:20220503-ppz-002

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:十进制与二进制转化问题。

考生答案:A

考生得分:0

是否评分:已评分

评价描述:

6.

十六进制数每一位至多可以表示几位二进制位?( )

A. 

2

B. 

3

C. 

4

D. 

16

试题编号:20220503-ppz-003

试题类型:单选题

标准答案:C

试题难度:容易

试题解析:十六进制数与二进制数的关系。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

7.

八进制数(35)8,转化为十进制数为( ) 10?

A. 

100011

B. 

11000

C. 

23

D. 

29

试题编号:20220503-ppz-004

试题类型:单选题

标准答案:D

试题难度:较难

试题解析:A是二进制数;B是二进制数,没有倒排;C是十进制数,展开的权错了;D正确。

考生答案:C

考生得分:0

是否评分:已评分

评价描述:

8.

执行代码a=min(3,2,4.3),变量a的值是?( )

A. 

3

B. 

2

C. 

4.3

D. 

试题编号:20220510-xb-11

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:min(3,2,4.3)中最小值为2,赋值给a

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

9.

print(max('python+'))的运行结果是?( )

A. 

'p'

 

B. 

p

C. 

'y'

D. 

y

试题编号:20220510-xb-12

试题类型:单选题

标准答案:D

试题难度:容易

试题解析:max('python+'),字母中’y’最大,print(‘y’)的结果为y。

考生答案:C

考生得分:0

是否评分:已评分

评价描述:

10.

a=5.12596 

print(round(a,2))运行结果是?( )

A. 

5

b 5.1

C. 

5.12

D. 

5.13

试题编号:20220510-xb-15

试题类型:单选题

标准答案:D

试题难度:较难

试题解析:保留2位小数,四舍五入,所以结果是5.13。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

11.

type([{2.6}])运行的结果是?( )

A. 

float

B. 

dict

C. 

True

D. 

list

试题编号:20220510-xb-16

试题类型:单选题

标准答案:D

试题难度:容易

试题解析:type([{2.6}])运行的结果是list。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

12.

执行如下代码 

a=[1,2,3,4]

print(list(enumerate(a)))

运行结果是?( )

A. 

((0, 1), (1, 2), (2, 3), (3, 4))

B. 

[(0, 1), (1, 2), (2, 3), (3, 4)]

C. 

[1,2,3,4]

D. 

(1,2,3,4)

试题编号:20220510-xb-17

试题类型:单选题

标准答案:B

试题难度:较难

试题解析:enumerate() 函数用于将一个可遍历的数据对象

(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

13.

set('hello')运行结果是?( )

A. 

('h', 'e', 'l', 'l','o')

B. 

{'h', 'e', 'l', 'l','o'}

C. 

{'e', 'h', 'l', 'o'}

D. 

('e', 'h', 'l', 'o')

试题编号:20220510-xb-18

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:集合去重,所以结果为{'e', 'h', 'l', 'o'}。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

14.

print(sum([5,10,min(7,4,6)]))的运行结果是?( )

A. 

22

B. 

21

C. 

4

D. 

19

试题编号:20220510-xb-19

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:先求出min(7,4,6)中最小值4,再进行sum(5,10,4)求和,得出19。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

15.

divmod(100,3)的执行结果是?( )

A. 

(1, 33)

B. 

(33, 1)

c[33,1]

D. 

[1,33]

试题编号:20220510-xb-21

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:divmod(100,3)的运行结果为(33, 1)。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

16.

下列表达式结果是False的是?( )

A. 

all({})

B. 

all([10])

C. 

all(['1','2','3',''])

D. 

all(['1','2','3'])

试题编号:20220510-xb-22

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 True,如果是返回 True,否则返回 False。 元素除了是 0、空、None、False 外都算 True。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

17.

将字符串或数字转换为浮点数的函数是?( )

A. 

chr()

B. 

float()

C. 

int()

D. 

str()

试题编号:20220510-xb-23

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:float() 函数用于将整数和字符串转换成浮点数。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

18.

以下表达式的值为True是?( )

A. 

bool(2022)

B. 

bool(0)

C. 

bool()

D. 

bool({})

试题编号:20220510-xb-24

试题类型:单选题

标准答案:A

试题难度:容易

试题解析:bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。bool({2022})中间有元素,所以为True。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

19.

有这样一段程序:
a=[“香蕉“,”苹果”,”草莓”,“哈密瓜”]
fs=open(“fruits.csv”,”w”)
fs.write(“,”.join(a)+‘\n’)
fs.close()
该段程序执行后,该csv文件中的内容是?( )

A. 

香蕉 苹果 草莓 哈密瓜

B. 

香蕉,苹果,草莓,哈密瓜

C. 

香蕉苹果草莓哈密瓜

D. 

["香蕉","苹果","草莓","哈密瓜"]

试题编号:20220510-ylx-005

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:open("fruits.csv","w")表示打开CSV文件,

进行写入操作("w"表示可覆盖写入)。",".join(a)表示将a列表中的元素取出,

并用","连接成新的字符串,写入文件。

考生答案:A

考生得分:0

是否评分:已评分

评价描述:

20.

关于文件的读写操作,下列说法不正确的是?( )

A. 

read( )函数读取文件内容后,生成的是一个字符串 。

B. 

readline( )每次只读取文件中的一行,并返回字符串类型数据。

C. 

readlines( )函数每次按行读取整个文件的内容,并返回list类型数据。

D. 

读取文件内容只能用reader( )对象。

试题编号:20220510-ylx-006

试题类型:单选题

标准答案:D

试题难度:较难

试题解析:文件内容的读取可以视不同情况选择不同的函数,reader()也是其中之一。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

21.

关于下列列表,说法正确的是?( )
s=[ [“佩奇”,“100”,“86”,“85”,“90”],
[“苏西”,“78”,“88”,“98”,“89”],
[“佩德罗”,“80”,“66”,“80”,“92”]]

A. 

这是一组二维数据

B. 

这样的数据不能存储到CSV文件中

C. 

无法读取[“佩奇”,“100”,“86”,“85”,“90”]这条数据

D. 

必须手动写入到CSV文件中

试题编号:20220510-ylx-007

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:二维列表的每个元素本身也是列表。可通过循环读取元素并写入CSV文件。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

22.

有关于write()函数的说法正确的是?( )

A. 

write( )函数只能向文件中写入一行数据

B. 

write( )函数的参数不是字符串类型

C. 

write( )函数也可以向文件中写入多行数据

D. 

write( )函数和writelines( )函数完全相同

试题编号:20220510-ylx-008

试题类型:单选题

标准答案:C

试题难度:较难

试题解析:write()函数可向文件中写入一行或多行数据。

其参数必须为字符串,而writelines( )函数既可以传入字符串也可以传入一个字符序列,并写入文件。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

23.

对于在csv文件中追加数据,下列说法正确的是?( )

A. 

只能以单行方式追加数据

B. 

只能以多行方式追加数据

C. 

多行数据追加的函数是writerow( )

D. 

以单行方式或多行方式追加都可以

试题编号:20220510-ylx-009

试题类型:单选题

标准答案:D

试题难度:容易

试题解析:在CSV中追加数据可以用writerow( )函数进行一行一行写入,

也可以用writerows( )函数进行多行写入数据。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

24.

Python的异常处理try....except...else...finally机制中,以下哪部分语句一定能得到全部执行?( )

A. 

try子句

B. 

except子句

C. 

else子句

D. 

finally子句

试题编号:20220515-xm-15

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

25.

Python的异常处理机制中,以下表述哪项是错误的?( )

A. 

如果当try中的语句执行时发生异常,Python就执行匹配该异常的except子句。

B. 

如果当try中的语句执行时发生异常,try代码块的剩余语句将不会被执行。

C. 

如果在try子句执行时没有发生异常,Python将执行else语句后的语句。

D. 

异常处理结构能够发现程序段中的语法错误。

试题编号:20220515-xm-16

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

二、判断题(共10题,共20分)

26.

二进制数转化为十进制数的方法是:按权展开、逐项相加,如:(101)2=(10)10。( )

正确 

错误 

试题编号:20220503-ppz-006

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:末位的权应为0。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

27.

语句print(round(2.785, 2))运行后的结果是2.79。( )

正确 

错误 

试题编号:20220510-xb-10

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:round(2.785, 2)保留两位小数,运行后为2.79。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

28.

map() 不会根据提供的函数对指定序列做映射。( )

正确 

错误 

试题编号:20220510-xb-13

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

考生答案:正确

考生得分:0

是否评分:已评分

评价描述:

29.

语句print(tuple(range(5)))的输出结果是(0, 1, 2, 3, 4)。( )

正确 

错误 

试题编号:20220510-xb-14

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:语句tuple(range(5))的输出结果是(0, 1, 2, 3, 4)。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

30.

运行语句set('2022'),其输出结果是{'2','0','2','2'} ( )

正确 

错误 

试题编号:20220510-xb-20

试题类型:判断题

标准答案:错误

试题难度:容易

试题解析:运行语句set('2022'),其输出结果是{'0', '2'}。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

31.

f=open(‘ss.csv’,’r’)
n=f.read().strip(“\n”).split(“,”)
f.close()
这段代码的功能是读取文件中的数据到列表。( )

正确 

错误 

试题编号:20220510-ylx-028

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:考核read()函数的用法。

考生答案:错误

考生得分:0

是否评分:已评分

评价描述:

32.

一维数组可以用列表实现,二维数组则不能用列表实现。( )

正确 

错误 

试题编号:20220510-ylx-029

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:一维数组和二维数组都可以用列表实现。二维数组通过列表嵌套列表实现。

考生答案:正确

考生得分:0

是否评分:已评分

评价描述:

33.

用with open (‘fruits.csv’,’r’)as f 语句,打开fruits.csv文件,在处理结束后不会自动关闭被打开的文件,因此需要写上f.close( )语句。( )

正确 

错误 

试题编号:20220510-ylx-030

试题类型:判断题

标准答案:错误

试题难度:较难

试题解析:用with语句打开文件,处理结束后会自动关闭被打开的文件。

考生答案:正确

考生得分:0

是否评分:已评分

评价描述:

34.

异常处理结构中,finally程序段中的语句不一定都会得到执行。( )

正确 

错误 

试题编号:20220515-xm-17

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

35.

在计算机中,每一个二进制位可以表示0和1两种信息。( )

正确 

错误 

试题编号:20220503-ppz-005

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:二进制数的表示。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

三、编程题(共3题,共30分)

36.

下面程序实现对二维数据的处理,请你补全代码。

f=open('/data/score2.csv','r')

a=[]
for i in f:
    a.append(i.strip().split(','))
f.close()
                      
for i in a:
    s=''
    for j in i:
                            
    print(s)

程序执行结果为:

[['王鑫', '86', '90', '92', '99', '94', '95'], ['杨小虹', '93', '97', '95', '90', '86', '85'], ['李静', '89', '98', '99', '94', '90', '85']] 

王鑫       86    90    92    99    94    95   
杨小虹    93    97    95    90    86    85   
李静       89    98    99    94    90    8

试题编号:202212-P3-36

试题类型:编程题

标准答案:

参考程序:

f=open('/data/score2.csv','r')

a=[]
for i in f:
    a.append(i.strip().split(','))
f.close()
print(a,'\n')
for i in a:
    s=''
    for j in i:
        s=s+'{:6}\t'.format(j)
    print(s)

试题难度:较难

试题解析:

评分标准:

(1)print(a,'\n')或等效答案;(2分)
(2)s=s+'{:6}\t'.format(j)或等效答案。(2分)

考生答案:(此题已作答)

考生得分:0

是否评分:已评分

评价描述:

37.

在三位数的自然数中,找出至少有一位数字是5的,至少能被3整除的所有整数,并统计个数,具体代码如下:

count=0

lst=[]

for i in range(                      ):

    if i%3==0:

        a=i%10

        b=i//10%10

        c=                      

        if                       :

            count+=1

            lst.append(i)

print("这样的三位数有:",lst)

print("总数量有:",count)

试题编号:202212-P3-37

试题类型:编程题

标准答案:

参考程序:

count=0

lst=[]

for i in range(100,1000):

    if i%3==0:

        a=i%10

        b=i//10%10

        c=i//100

        if a==5 or b==5 or c==5:

            count+=1

            lst.append(i)

print("这样的三位数有:",lst)

print("总数量有:",count)

试题难度:较难

试题解析:

评分标准:

(1)100,1000 或者100,1000,1 ;(3分)

(2)i//100 ;(3分)

(3)a==5 or b==5 or c==5 。(4分)

考生答案:(此题已作答)

考生得分:0

是否评分:已评分

评价描述:

38.

输入一个正数,以下代码编程求出它的平方根。请你补全代码。

in_var = float(input("请输入一个需要开方的正数,可以使用2位小数:\n x = ")) 

if in_var < 0: 

    x = - in_var 

else: 

    x = in_var 

low = 0.0 

high = x 

s_root =                      

if x > 0 and x < 1: 

    high = 1.0 

    low = 0 

    s_root =                      

if x >= 0: 

    while abs(                      ) > 0.0001: 

         if x > 1.0: 

             if s_root ** 2 < x: 

                    low = s_root 

            else: 

                    high = s_root 

            s_root =           ④           

        if x == 1.0 and x == 0.0: 

            s_root = x 

        else: 

            if s_root ** 2 < x: 

                low = s_root 

            else: 

                high = s_root 

        s_root =                      

if in_var >= 0: 

    print("所求数的平方根为:s_root = %.1f"%(s_root))

试题编号:202212-P3-38

试题类型:编程题

标准答案:

参考程序:

in_var = float(input("请输入一个需要开方的正数,可以使用2位小数:\n x = ")) 

if in_var < 0: 

    x = - in_var 

else: 

    x = in_var 

low = 0.0 

high = x 

s_root =(low + high) / 2

if x > 0 and x < 1: 

    high = 1.0 

    low = 0 

    s_root =(low + high) / 2

if x >= 0: 

    while abs( s_root ** 2 - x) > 0.0001: 

         if x > 1.0: 

             if s_root ** 2 < x: 

                    low = s_root 

            else: 

                    high = s_root 

            s_root =(low + high) / 2 

        if x == 1.0 and x == 0.0: 

            s_root = x 

        else: 

            if s_root ** 2 < x: 

                low = s_root 

            else: 

                high = s_root 

        s_root =(low + high) / 2  

if in_var >= 0: 

    print("所求数的平方根为:s_root = %.1f"%(s_root))

试题难度:一般

试题解析:

评分标准:

(1)(low + high) / 2 ;   (2分)

(2)(low + high) / 2 ; (2分)
(3)s_root ** 2 - x ;  (4分)
(4)(low + high) / 2 ; (4分)
(5)(low + high) / 2。  (4分)

考生答案:(此题已作答)

考生得分:0

是否评分:已评分

评价描述:

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...