P2-2203 青少年软件编程(Python)等级考试试卷(二级)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

P2-2203 青少年软件编程(Python)等级考试试卷(二级)
分数:100 题数:37
一、单选题(共25题,共50分)
1.关于Python中的列表,下列描述错误的是?( ) [单选题] *
A.列表是Python中内置可变序列,是若干元素的有序集合;
B.列表中的每一个数据称为“元素”;
C.在Python中,一个列表中的数据类型可以各不相同;
D.可以使用s[1]来获取列表s的第一个元素。

(正确答案)
2.已知列表a=[1,3,5,7],下列语句无法将a变成a=[1,3,5,7,9]的是?( ) [单选题] *
A.a.append(9)
B.a=[1,3,5,7,9]
C.a.insert(4,9)
D.a[4]=9(正确答案)
3.关于以下代码段的说法错误的是?( )
a = [1, 2, 5, 4, 3]
a.sort(reverse=True)
print(a) [单选题] *
A.a.sort(reverse=True)语句中的reverse默认值为False。

B.省略a.sort(reverse=True)语句中的reverse=True,代码运行结果不变。

(正确答案)
C.将以上代码的a.sort(reverse=True)改为a=sorted(a,reverse=True),代码运行结果和原题的结果一样。

D.以上代码运行结果为:[5, 4, 3, 2, 1]。

4.下面程序的运行结果是?( )
a=80
b=70
if a>b:
a,b=b,a
print(a,b) [单选题] *
A.70 70
B.80 70
C.70 80(正确答案)
D.80 80
答案解析:条件语句的运用,代码的意思是当a>b时,ab两个数互换,然后输出新的值。

80>70,所以新输出的a为70,b为80,选择C
5.以下关于元组的描述正确的是?( ) [单选题] *
A.元组和列表相似,所有能对列表进行的操作都可以对元组进行
B.创建元组时,若元组中仅包含一个元素,在这个元素后可以不添加逗号
C.元组中的元素不能被修改(正确答案)
D.多个元组不能进行连接
6.以下程序的输出结果是?( )
tuple1 = (1,2,3)
tuple2 = (2)
print(tuple1*tuple2) [单选题] *
A.(1,2,3)
B.(1,2,3,1,2,3)(正确答案)
C.(2,4,6)
D.报错
答案解析:tuple2的定义不是元组,其实就是一个整数2
7.以下代码的输出结果是?( )
ls = []
for m in '想念':
for n in '家人':
ls.append(m+n)
print(ls) [单选题] *
A.["想念","家人"]
B.["想想","念念","家人"]
C.["想家想","人念家","念人"]
D.["想家", "想人", "念家", "念人"](正确答案)
8.以下程序的输出结果是?( )
lt = ['绿茶','乌龙茶','红茶','白茶','黑茶']
ls = lt
ls.clear()
print(lt) [单选题] *
A.[](正确答案)
B.变量未定义的错误
C.['绿茶','乌龙茶','红茶','白茶','黑茶']
D.'绿茶','乌龙茶','红茶','白茶','黑茶'
9.下面代码的输出结果是?( )
list1 = [1,2,3]
list2 = [4,5,6]
print(list1+list2) [单选题] *
A.[4,5,6]
B.[1, 2, 3, 4, 5, 6](正确答案)
C.[1,2,3]
D.[5,7,9]
10.字符串str="maixnm"包含"min"和"max"两个单词,下面哪个操作不能将"min"从中找出来?( ) [单选题] *
A.str1=str[0]+str[2]+str[4]
B.str1=str[0:-1:2]
C.str1=str[::2]
D.str1=str[0:4:2] (正确答案)
答案解析:本题考点是字符串的通用操作,根据访问指定索引范围,我们应该得到答案为D
11.cat=['fat','black','cloud'],则cat.index('black')的值为?( ) [单选题] *
A.1(正确答案)
B.2
C.3
D.0
12.3年级2班的学生花名册被存储在一个列表name中,如何快速得到该班级学生的总人数?( ) [单选题] *
A.print(sum(name))
B.print(len(name)) (正确答案)
C.print(min(name))
D.print(max(name))
答案解析:获取序列长度len(s)、获取最值max(s) min(s)、统计总和sum(s).根据题意,我们是要获取列表的长度,所以print(len(name)).
13.小张的爸爸每个月都有绩效工资,绩效工资根据业绩被分为1200、1400和1600三个等级,小张把爸爸每个月的绩效工资都记录在了一个money的列表中,如何能快速得到小张爸爸得到1600元绩效的次数?( ) [单选题] *
A.money.index(1600)
B.money.count(1600) (正确答案)
C.money.remove(1600)
D.money.insert(0,1600)
答案解析:检索某个元素第一次出现元素下标s.index(x)、统计元素出现的次数s.count(x),s.remove(x)删除第一个匹配值,插入元素s.insert(i,x)。

根据题意,需要知道1600在列表中出现的次数即money.count(1600)。

=('Jerry',),则name的数据类型是?( ) [单选题] *
A.字符串
B.元组(正确答案)
C.列表
D.其他类型
答案解析:本题需要特别注意的就是name=('Jerry',),如果没有这个“,”,那么就是str类型,但是有“,”,就是tuple类型。

15.
d1={'学科':'语文','班级':'2班','最高分':99}
d2={'学科':'数学','班级':'2班','最高分':100}
d1.update(d2)
print(d1)
以上代码的运行结果为?( ) [单选题] *
A.{'学科':'语文','班级':'2班','最高分':99}
B.{'学科':'语文','班级':'2班','最高分':100}
C.{'学科':'数学','班级':'2班','最高分':100}(正确答案)
D.{'学科':'数学','班级':'2班','最高分':99}
答案解析:字典(Dictionary) update() 函数把字典 dict2 的键/值对更新到 dict 里。

语法:dict.update(dict2) 根据题意d2更新到了d1里,所以答案为{'学科':'数学','班级':'2班','最高分':100}。

16.小明用一个字典d={'语文':88,'数学':92,'英语':'96'}来储存他的期末考试成绩。

则小明的总分是?( ) [单选题] *
A.(正确答案)
s=0
for i in d.values():
s=s+int(i)
print(s)
B.
s=0
s=sum((d.values())
print(s)
C.
s=0
while i:
s=s+int(d.values())
print(s)
D.
s=0
for i in d():
s=s+int(i.values())
print(s)
答案解析:根据题意,我们需要遍历字典中左右的值,然后进行累加计算。

所以s=0 for i in d.values():#遍历字典中的值s=s+int(i)#转换成int类型并进行累加 print (s)其他答案:s=sum((d.values())#sum()不支持d.values类型,而且还少了一个后括号。

while i: for i in d():#遍历字典的方式不对
17.如果要计算1*2*3*4*5*6*7*8*9则下列程序代码正确的是?( ) [单选题] *
A.
s=0
for i in range(1,10):
s=s*i
print(s)
B.
s=0
for i in range(1,9):
s=s*i
print(s)
C.(正确答案)
s=1
for i in range(1,10):
s=s*i
print(s)
D.
s=1
for i in range(1,9):
s=s*i
print(s)
答案解析:根据题意,我们可以通过for循环实现累乘。

正确答案:s=1 for i in range(1,10): s=s*i print(s) 注意:1、因为是累乘,所以s的初值不能为0,否则0乘以任何数都是0,最终结果也是0. 2、range(start, stop[, step]),计数到stop结束,但是不包括stop。

所以range(1,10)包含了从1到9这九个数。

18.执行下列代码后,运行结果是?( )
d={'1':1,'2':2,'3':3,'4':4}
b=d
b['2']=5
print(d['2']+b['2']) [单选题] *
A.4
B.5
C.7
D.10(正确答案)
19.若dic_color={'red':'红色','green':'绿色','gold':'金色','brown':'棕色','purple':'紫色'},以下选项中能够输出'金色'的是?( ) [单选题] *
A.print(dic_color['gold']) (正确答案)
B.print(dic_color['金色'])
C.print(dic_color[2])
D.print(dic_color.values[2])
20.以下程序执行的结果是?( )
a=0
b=5
Sum=0
for i in range(3):
if a>0:
Sum+=a
a+=1
elif b>1:
Sum+=b
a+=1
b+=1
print(Sum) [单选题] *
A.7
B.9(正确答案)
C.11
D.12
21.想得到的输出为"My name is Kevin and I am 10 years old."以下选项正确的是?( ) [单选题] *
A.print('My name is %s and I am %d years old.',%('Kevin',10))
B.print('My name is %s and I am %d years old.'%('Kevin',10))(正确答案)
C.print('My name is %c and I am %d years old.'%('Kevin',10))
D.print('My name is %s and I am %d years old.'%',Kevin',%10))
22.编写一段猜密码程序,只允许猜三次,当猜中密码时,提示“密码正确”,程序退出。

当输入密码错误时,提示“密码错误”,并提示剩余次数。

程序空白处应填写
的条件是?( )
[单选题] *
A.abc>0(正确答案)
B.abc>=0
D.abc!=3
23.已知a=list(range(10)),执行以下指令后,a的值会变成?( )
a[:2]=[5]
a.pop(5)
a.remove(5) [单选题] *
A.[2, 3, 4, 5, 7, 8, 9](正确答案)
B.[2, 3, 4, 7, 8, 9]
C.[2, 3, 4, 6, 7, 8, 9]
D.[5, 2, 3, 4, 5, 7, 8, 9]
答案解析:本题是列表通用操作的综合运用,第一条指令是将前两个元素替换成一个5,变成[5, 2, 3, 4, 5, 6, 7, 8, 9],a.pop(5)是删除第6个元素6,最后一条指令是删除第一个5,所以选择A
24.以下选项中,不能用于表示分支结构的python函数是?( ) [单选题] *
A.if
B.else
C.in(正确答案)
D.elif
答案解析:ABD都是分支结构保留字,只有C不是
25.执行以下程序
a=range(1,10)
for i in a:
if i%2 == 0:
print(i)
运行结果为?( ) [单选题] *
A.1 3 5 7 9
B.1 4 7
C.2 4 6 8(正确答案)
答案解析:for循环和分支结构的综合应用,根据题意,依次输出1-9中是2的倍数的数字,所以选择C
二、判断题(共10题,每题2分,共20分)
26.已知Money=8.6675 , print("工资{0:.2f}".format(Money)),结果是:"工资8.67".( ) [单选题] *
正确(正确答案)
错误
27.在使用format()函数对字符串进行格式化时,参数索引从1开始.( ) [单选题] *正确
错误(正确答案)
28.while语句只能用于未知次数的循环,for语句只能用于循环次数己知的循环.( ) [单选题] *
正确
错误(正确答案)
29.t=(1,2,3,4,2),则print(t.index(2))的运行结果为1.( ) [单选题] *
正确(正确答案)
错误
答案解析:检索某个元素第一次出现元素下标t.index(x) 元组的索引号从0开始,所以元素2的索引号为1.
30.若s=(1,2,3,4,5),则执行s.remove(5)语句后,s的值是(1,2,3,4).( ) [单选题] *
正确
错误(正确答案)
答案解析:s是元组,元组一旦创建不能被修改删除
31.Python语言用缩进来标识语句块,同一级语句块中的语句具有相同的缩进量.( ) [单选题] *
正确(正确答案)
错误
答案解析:知道语句块缩进
32.表达式[3] in [1,2,3]的值为True.( ) [单选题] *
正确
错误(正确答案)
答案解析:理解in运算符的作用
33.break语句执行后,将跳出程序所有的循环,程序结束.( ) [单选题] *
正确
错误(正确答案)
答案解析:break语句只跳出本层循环。

34.字典中的键和值必须用冒号隔开,同一个字典中的所有键都必须是唯一的.( ) [单选题] *
正确(正确答案)
错误
35.以下程序的运行结果为 5
a=6
b=5
if a>b:
print(a)
else:
print(b) [单选题] *
正确
错误(正确答案)
答案解析:运行结果为6
三、编程题(30分)
36.
实现统计字符串中的单词和单词出现的次数:
要求如下:
(1)统计的语句为:to be or not to be that is a question
(2)要求统计该句中出现的所有单词和其出现次数。

(3)使用字典进行输出,格式如下(注意:排列顺序可以不一致,但是统计的次数要正确):
{'to': 2, 'be': 2, 'or': 1, 'not': 1, 'is': 1, 'a': 1, 'question': 1, 'that': 1} [填空题]
答案解析:参考程序:
string = "to be or not to be that is a question"#定义变量存储字符串
lis=string.split(" ")#使用分割函数将字符串转为列表
count={}#定义一个空字典
for x in lis:#遍历列表
if x not in count:#判断列表元素是否在字典中
count[x]=1
else:
count[x]+=1
print(count)#打印字典
37.
可以对任何一个自然数进行若干次运算,最终都可以变为1。

运算规则如下:
(1)若该数是偶数,则变为原数的一半;
(2)若该数是奇数,则变为原数的3倍加1;
(3)重复(1)(2),直到该数变为1。

编写程序实现如下功能:输入一个大于1的自然数,计算按照上述方法最终变换为1共经过的变换次数,并输出变换次数。

(输出格式为:直接输出次数即可)
示例1:若输入自然数8,则输出结果为:3。

示例2:若输入自然数5,则输出结果为:5。

[填空题]
答案解析:x=int(input("请输入自然数:"))
count=0
while x!=1:
if x%2==0:
x=x//2
else:
x=3*x+1
count=count+1
print(count)。

相关文档
最新文档