2021NOC全国模拟考A卷解析(中学Python)
1.以下选项中不符合 Python 语⾔变量命名规则的是 () ?
A.LL 、
B.3_1
C._AI
D.TempStr
解析: Python的变量命名不可以使⽤数字开头, 因此B选项不符合命令规则。
2.在使⽤Python *** 作⽂件时, 哪个选项可以打开⽂件“codemao.txt”并写⼊内容 ( ) ?
A.f = open('codemao.txt', 'r')
B 、f = open('codemao.txt', 'w')
C 、f = open('codemao.txt', 'rb')
D 、f.close()
解析: Python的file⽅法,‘r’以只读⽅式打开⽂件 。⽂件的指针将会放在⽂件的开头;'w'打开⼀ 个⽂件⽤于写⼊ 。如果该⽂件不存在, 创建新⽂件 。 'rb'以⼆进制格式打开⼀ 个⽂件⽤于只读。 ⽂件指针将会放在⽂件的开头 。 因此正确答案为B。
3.下⾯代码的输出结果是 () ?
x = 123.45
pring(type(x))
A.
B.
C.
D.
解析: 123.45为浮点数, 返回float, 因此正确答案为B。
4.当⽤户输⼊ace时, 下⾯代码的输出结果是:
try:
a = 0
b = input("请输入一个整数:")
def X(a):
return a**10
except:
print("出现错误")
A.输出: 0
B.输出: 出现错误
C.没有任何输出
D.输出: ace
解析: try语句在执⾏时没有发⽣异常, 不会执⾏except语句, 因此正确答案是C。
5.运⾏下列代码, 输出结果是 ()
x = [[1,2,3],[4,5,6],[7,8,9]]
y = 0
for i in x:
for j in range(3):
y += i[j]
print(y)
A 、0
B 、 25
C 、45
D 、 以上结果均不对
解析: 程序为嵌套循环, 为列表a的累加, 值为45, 因此答案为C。
6.运⾏以下程序的结果是 ( ) 。
l1 = [1, 3, 4, 5, 7, 8]
l2 = [1, 4, 5, 6, 7, 9]
temp = []
for i in l2:
if (i not in l1):
l1.append(i)
l2.append(i)
else:
temp.append((i ** 2))
A.[1, 4, 5, 6, 7, 9]
B.[1, 16, 25, 36, 49, 81]
C.[1, 3, 4, 5, 7, 8]
D.[1, 16, 25, 49, 36, 81]
解析: 程序先使⽤i遍历l2的值, 如果i的值不存在与l1中, 把该值添加在l1和l2的末尾, 其中6 、 9添加在l2列表的末尾 。在temp列表中依次增加i**2的值, 因此结果为[1, 16, 25, 49, 36, 81], 正确答案是D。
7.下⾯可以通过int()或float()转换的选项是 ( ) ?
A.'NO.1'
B.(1 、 2 、3 、4 、5)
C.'123.45'
D.[1, 2, 3, 4, 5]
解析: 字符串'123.45'可以通过float()函数转化为浮点数, 因此正确答案是C。
8、阅读下⾯程序, 补充在空位①, ②数字, 输出结果为2的选项 () 。
A. 12, 6
B. 9, 5
C. 10, 7
D.11, 4
解析: 在func()函数的参数为12,6时, 程序会从2到12迭代, 在循环体内, s的值为s+m取余i, 将取余的值赋值给s,在最后⼀ 次循环中s+m 的值为14, i 的值为12, 14%12的值为2, 因此答案 为A。
9.运⾏下⾯代码, 显示的结果是 ( ) ?
import turtle as t
t.right(120)
t.forward(100)
t.right(120)
t.forward(100)
t.right(120)
t.done()
解析: 程序执⾏3次向右旋转120度,两次向前进100步,绘制出两条线,因此答案是B
10.运⾏以下程序, 变量'i'的值为 () ?
A. 93
B. 95
C. 70
D. 75
解析: 变量a在循环体内每次增加7, 在a⼩于等于100的情况下, 变量i每次增加5, 在第15次循 环时变量a⼤于100, 变量i 的值为5*15=75, 因此答案是D。
二 多选项题
11.下⾯哪些表达式的结果为数字类型 ( ) ?
A.3 / 1
B.3 // 1
C.3 % 1
D.'1' * 3
解析: 前三项计算下来都是数字类型 。 最后⼀ 个会输出字符串类型。
12.元组是⼀ 种常⻅的数据类型, 下⾯哪些选项是元组的特点? ( )
A 、有序
B 、可以遍历
C 、可变
D 、不可变
解析: 元组基本概念
13.下⾯代码的输出结果不会是 ()
d = {"苹果":'红色',"梨":'黄色 ',"可乐":'黑色'}
print(d["梨"],d.get('可乐 ','红色'))
A 、 ⿊⾊ ⻩⾊
B 、⻩⾊ ⿊⾊
C 、 ⿊⾊ 红⾊
D 、红⾊ ⻩⾊
解析: 这个是字典的应⽤, print函数中第⼀ 个项是要输出‘梨’这个键对应的值, 及‘⻩⾊’。
第⼆个项⽤的是字典的get () 是返回指定键的值, 也就是‘可乐’的值‘⿊⾊’。所以正确的是B, ACD错误。
14.要想绘制出如下图形, 代码① 、②处应填写为 () 。
A 、36
B 、 10
C 、t.sunflower()
D 、sunflower()
解析: 第⼀ 个空会影响图形尖刺个数, 显然图形中尖刺个数远多于10个, 所以第⼀ 个空选A 。第 ⼆个空是引⽤函数, sunflower () 函数是我们⾃⼰定义的函数, 不是turtle库中的函数, 所以选 D。
15、运⾏以下程序, 不会出现哪些结果 () ?
A.3 、 7
B.7 、 7
C.1 、8
D.2 、3
解析:
4到8⾏的程序逻辑是: 对两个列表中的元素分别进⾏穷举相加, 第六⾏的判断如果为真, 则运 ⾏pass, 其实和判断为假是⼀ 样的效果, 所以最终运⾏的i会遍历lst1, j最终的值就是lst2中的 最后⼀ 项7, 所以CD是不会出现的。
三、填空题
16、转换为⼆进制是__________。
解析: 28转化为⼆进制位11100
17、以下程序的运⾏结果为____9______。
解析: sum () 函数的基本⽤法, 上述代码是对range(5)进⾏求和之后再减去1。
所以是0+1+2+3+4-1=9
18执⾏下⾯的程序, 最终“i”的值为_____8_____。
解析: 对i的值的计算, 顺序执⾏之后答案为8
19、 使⽤random库中的__________函数可以打乱列表。
解析: random库中的shuffle函数可以打乱列表。
20、下列代码的输出是__________。
解析:
主要考察正则表达式, 依据正则表达式的规则, 答案为Cats。
21、补充代码①, 完成以下程序运⾏效果 。创建3x3矩阵, 矩阵元素均为0-10之间的随机整数
__________。
注意答案之间不加空格, 使⽤英⽂输⼊法。
解析:
randint(a,b,(x,y)),'a
22、以下程序输出到⽂件text.txt⾥的结果是__________。
(注意: 使⽤英⽂输⼊法, 答案之间不加空格 。)
解析:
23、 下⾯代码的运⾏结果是__________。
解析:
这是⼀ 个利⽤递归来计算阶乘的程序。
第6⾏给函数factorial赋值为5, 注意看第四⾏的代码运⾏之后其实是构成了⼀ 个5*4*3*2*1的 算式, 所以最终的结果即为这个算式的解——120
24、以下是选择排序的代码, 要想实现如下所示程序运⾏效果, 应在代码①处补充__________。
注意: 答案之间不留空格, 使⽤英⽂输⼊法。
解析:
这个是冒泡排序算法, 由运⾏结果看是要进⾏从⼩到⼤进⾏排序, 注意看第五⾏是对⽐i项是否 ⼤于j项, 如果⼤于, 需要将i项与j项交换位置。
所以第6⾏是执⾏交换这个动作, 所以对应填⼊的应该是nums[j],nums[i] 。
25、阅读下⾯的程序, 写出程序运⾏输出的结果________。
注: 仅填写数字, 勿填写汉字或其他字符
解析:
n=7,前三项均不符合;
计算出t3=2 。 (‘//’为整除)
7-2*3 == 1 成⽴ 。
所以计算 t3=2-1=1;t2=(7-1*3)//2 =2
所以最后返回 (3**1) * (2**2) =12. ('**'是阶乘的意思)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)