内容正文:
第三章 算法的程序实现
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.在Python中要交换变量x和y中的值,无法实现的语句组是( )
A.z=x;x=y;y=z B.x=y;y=x
C.х,у=у,x D.x=x+y;y=x-y;x=x-y
2.已知x=”HELLO”和和y=”WORLD”,则x+y=( )
A.WORLD B.HELLO C.HELLOWORLD D.HD
3.有如下Python程序段:
import random
q = [0] * 5
head = tail = 0
for i in range(5):
if random.randint(0,1)== 0:
q[tail] = random.randint(1,9)
tail += 1
elif head != tail and q[tail - 1] < q[head]:
q[tail] = q[head]
head += 1
tail += 1
执行该程序段后,q的值不可能是( )
A.[0, 0, 0, 0, 0] B.[5, 4, 3, 2, 1]
C.[5, 8, 3, 0, 0] D.[0, 5, 6, 0, 0]
4.一个3位正整数,每位上的数字的3次幂之和等于它本身,这类数称为水仙花数。小芸编写Python程序输出100至999之间的所有水仙花数,代码如下
1 for i in range(100,1000):
2 s=str(i)
3 bai=s[0]
4 shi=s[1]
5 ge=s[2]
6 if int(s)==bai**3+shi**3+ge**3:
7 print(i,"是水仙花数")
程序调试时报错,请分析程序出错的原因( )
>>>%Run‘水仙花数.py'
Traceback(most recent call last):
File"D:\KINGSTON\123\水仙花数.py",line 6,in<module>
If int(s)==bai**3+shi**3+ge**3:
TypeError:unsupported operand type(s) for** or pow():'str' and 'int’
A.第2行不能使用str()函数把变量i的值转换为字符串类型
B.第6行的幂运算不能使用**运算符,应该使用*运算符
C.第6行的bai、shi、ge三个变量是字符串类型,不能进行幂运算
D.第7行输出格式错误,应该使用双引号
5.在Python语言中,执行“f1oat(5)”函数后的结果是( )
A.‘5’ B.5 C.5.0 D.“5”
6.在下面Python程序代码中,①和②处应该填的代码是( )
sc=float(input("请输入期末考成绩sc="))
if sc>=90:
print("优秀")
① sc>=80:
print("良好")
elif sc>=60:
print("合格")
②:
print("不合格")
A.if else B.else elif C.elif else D.elif elif
7.能够被计算机直接接受和执行的语言是( )
A.汇编语言 B.自然语言 C.机器语言 D.高级语言
8.对于不等于0的整数a和b,若表达式a%b==1成立,则表明( )
A.a与b一定相等 B.a总比b大1
C.a不是负数,b肯定也不是负数 D.a比b的整数倍多1
9.某二分查找算法的 python 程序段如下, 运行该段代码后, 输出的结果不可能是( )
import random
a = [10,20,30,40,50,60,70,80]
key = random.choice(a); i,j = 0,len(a)-1 ; s = ""
while i<=j:
m = (i+j)//2
if key == a[m]:
s = s+"M"; break
elif key < a[m]:
j = m-1; s = s+"L"
else:
i = m+1; s = s+"R"
print(s)
A.LLM B.LRM C.RRRM D.RRLM
10.已知字典dict1={"01":"Jan","02":"Feb","03":"March","04":"April","05":"May"},现要在字典dict1中增加一个键为"06"值为"June"的元素,下列语句能实现的是( )
A.dict1[06]="June" B.dict1["06"]=["06":"June"]
C.dict1["06"]={"June"} D.dict1["06"]= "June"
11.在Python语言中,下列选项中能实现输入数据的函数是( )
A.input() B.print() C.show() D.abs()
12.下列选项中,可以实现导入Python语言的非内置模块功能的是( )
A.add turtle B.input pygame C.def sys D.import math
13.已知a、b为整型变量,下列表达式的值一定为True的是( )
A.a!=b B.a>=b and b>=a C.a>=b or b>=a D.a<=b
14.小曲使用Python 编写了一个计算某月天数的程序,她先将十二个月的天数存储到列表中,程序会根据用户输入的月份,输出该月份有多少天。程序第3行划线处应填写的代码是( )
1 m=int(input("请输入月份(1~12):"))
2 d=[31,28,31,30,31,30,31,31,30,31,30,31]
3
4 print(n)
A.n=d[m] B.n=d[0] C.n=d[m+1] D.n=d[m-1]
15.下列Python表达式值为6有哪几项。( )
A.19//3 B.19/3 C.2**3 D.2*3
16.模拟微信抢红包功能的Python程序代码如下,程序运行结果如图所示。
import random
n=int(input(“输入红包总数(个):”))
m=int(input(“输入红包金额(元):”))*100-n
#金额以“分”为单位并保证每个人至少抢到一分钱
for i in range(__________,1):
if i==n:
x=m
else:
x=random. randint(0,int(m/(n-i+1)*2))
#random. Randint(a,b):随机生成一个[a,b]范围内的整数
m=m-x
print(”第”i,”个红包金额为:”(x+1)/100,”元”)
上述程序段中划线处应该填入的代码是( )
A.1,n+1 B.1,n C.0,n D.0,n+1
17.Python语言自带的IDLE环境的退出命令是( )
A.Esc B.close C.回车键 D.exit
18.Python中,L=['a', 'b', 'c', 'd', 'e', 'f', 'g'],L[3:5]的值是( )
A.['c','d'] B.['c','d','e'] C.['d','e'] D.['d','e','f']
19.在Python中,已知a=-25,则print(abs(a))输出结果是( )
A.-5 B.5 C.-25 D.25
20.以下Python程序, 输出结果是( )
x=int(3.0)
x=x+2
print(x**2)
A.25 B.10 C.25.0 D.10.0
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题主要考查Python赋值语句。语句x=y;y=x执行后x和y的值相等均为y的值。其余选项均可以完成x和y交换,故本题选B选项。
2.C
【详解】本题主要考查Python字符串操作。已知x=”HELLO”和和y=”WORLD”,则x+y=”HELLOWORLD”,故本题选C选项。
3.D
【详解】本题考查Python程序设计相关内容。这段代码初始化了一个长度为5的列表q,并将所有元素设置为0。然后使用for循环遍历5的范围,并检查在0和1之间随机生成的整数是否等于0。如果等于0,则生成另一个1到9之间的随机整数,并将其分配给列表q的索引tail处的元素。如果不等于0,则检查列表q的索引tail-1处的元素是否小于列表q的索引head处的元素。如果小于索引头处的元素,则将列表q的索引头处的元素分配给列表q的索引尾处的元素,将头部增加1并将尾部增加1。列表q的最终值取决于随机生成的整数,但是其第一项一定会执行一次进队,所以D选项的第一项的值为0是不可能的。故本题答案是D选项。
4.C
【详解】本题考查的是Python程序调试与运行。应为 s=str(i),s是字符串,故bai、shi、ge三个变量是字符串类型,不能进行幂运算。故本题应选C。
5.C
【详解】本题主要考查Python函数的应用。 float() 函数用于将整数和字符串转换成浮点数。 执行“f1oat(5)”函数后的结果是5.0,故本题选C选项。
6.C
【详解】本题考查Python基础。第二个条件语句sc>=80前面缺少elif关键字,应该加上elif。最后一个条件语句没有对应的print语句的关键字,应该添加上else。故选择C。
7.C
【详解】本题考查的是计算机语言。使用机器语言编写的程序可以直接被计算机识别并执行,汇编指令需要汇编程序转换成机器指令后计算机才能执,高级语言编写的程序只能通过编译器编译后才能被计算机执行。故选C。
8.C
【详解】本题考查Python表达式的运算。若a和b相等,则a%b=0,选项A错误。若a=1,b=2,则a%b=1,排除BD选项。若a=1,b=-2,则a%b=-1,因此a不是负数,b肯定也不是负数。故选C。
9.D
【详解】本题主要考查二分查找及Python程序实现。random.choice()方法用于返回一个列表、元组或字符串中的随机项。该二叉树如下图,分析程序可知,当遍历左子树执行,s = s+"L";当遍历右子树执行,s = s+"R";当查找到该树时,执行s = s+"M",并退出循环。由图可知,70节点没有左子树,故输出的结果不可能是RRLM,故本题选D选项。
10.D
【详解】本题主要考查Python字典数据类型。字典是通过键key插入数据,格式是:字典[key]=value,故现要在字典dict1中增加一个键为"06"值为"June"的元素,可以通过语句dict1["06"]= "June"实现,故本题选D选项。
11.A
【详解】本题考查Python函数相关内容。input()是一个内置函数,接受一个标准输入数据,返回为string类型。print()用来输出指定的字符串或数值到标准输出装置的函数。show()是一个用于显示图形的函数,可以在Python程序中直接调用。abs()接受一个数字作为参数,并返回该数字的绝对值。故本题答案是A选项。
12.D
【详解】本题主要考查Python模块导入。Python导入非内置模块的关键字是import,故本题选D选项。
13.C
【详解】本题考查Python基础。
a和b的关系为有三种可能即大于、小于或等于,选项C表达了这三种关系,故正确答案为:选项C。
14.D
【详解】本题主要考查Python程序的执行。Python中,列表的索引从0开始,因此程序第3行划线处应填写的代码是n=d[m-1],故本题选D选项。
15.AD
【详解】本题主要考查Python表达式的运算。19//3=6,19/3=6.334,2**3=8,2*3=6,故本题选AD选项。
16.A
【详解】本题主要考查Python程序调试。一共有n个红包,故变量i的范围是从1~n,每次递增1,range(1,n+1,1)表示从1~n+1(但不包括n+1),故划线处应该填入的代码是1,n+1,故本题选A选项。
17.D
【详解】本题主要考查Python基本知识。Python程序设计语言默认安装时,会有一个自带的集成开发环境IDLE。要创建Python程序文件,可以利用IDLE中的“文件“菜单。可使用exit()或quit()退出Python,因此D选项正确。
【点睛】
18.C
【详解】本题主要考查Python列表切片操作。列表的索引从0开始。切片操作基本表达式:object[start_index:end_index:step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。故L[3:5]=['d','e'],选项C正确。
19.D
【详解】本题主要考查Python表达式的运算。abs是求绝对值函数,已知a=-25,abs(a)=25,故本题选D选项。
20.A
【详解】本题考查的是Python程序基础。int转换为整型,x=int(3.0)=3,x=x+2=3+2=5,x**2=5**2=25。故选A。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$