内容正文:
第四章程序设计基础2024—2025学年高中信息技术粤教版(2019)必修1
一、选择题
1.以下是小红编写的根据身高计算票价的程序。运行程序,输入1.2后,程序报错(报错提示如下),出错的原因是( )
Traceback(mostrecentcalllast):
File"C:\Usersi*****。py",line8,in
<module>
print("你的票价是:"+money+"元。")
TypeError:canonlyconcatenatestr
(not"int")tostr
1 height=float(input("请输入身高:"))
2 if height<=1.2:
3 money=0
4 elif height<1.5:
5 money=20
6 else:
7 money=40
8 print("你的票价是:"+money+"元。")
A.用height直接和1.2比较
B.第8行代码中使用了中文
C.字符串类型不能直接和整型进行“+”运算,应把第8行中的money改为str(money)
D.程序中使用了运算符“+”,应该把“+”改为“&”
2.若字符串s的值为"abcde",执行如下程序段后,变量res的值不可能是( )
from random import randint
res =""
i, j = 0, len(s)-1
while i < len(s)and j >= i:
if randint(0,1)==0: #randint(0,1)随机生成0或1
res+= s[i]
i +=1
else:
res += s[j]
j-=1
A."abced" B."aecbd" C."aedbc" D."edcba"
3.下列Python表达式中值最小的是( )
A.6//2*8/3 B.len(range(0,12))/4
C.int('3'+'2')//abs(-6) D.3**2-7%5//7
4.将整数转换为小数的函数是( )
A.float() B.round() C.int() D.str()
5.在Python中,下列能正确表示”a≤5而且a≥3”的逻辑是( )
A.a<=3 or a>=3 B.a<=5 and a>=3 C.a<=5 or a >=3 D.3<=a<=5
6.有如下 Python 程序段:
def fac(n):
if n==0: #①
s=1
else:
s=n*fac(n-1)
return s
print(fac(3))
下列说法不正确的是
A.该程序应用了递归算法 B.程序运行后,fac()函数被调用 3 次
C.若问题规模为 n,该程序段的时间复杂度为 O(n) D.将①处代码改为“n==1”,该程序功能不变
7.在Python中,下列表示“比较对象是否相等”的运算符是( )
A.<> B.= C.!= D.==
8.有如下程序段:
s=1
a=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for j in range(3):
if i==j:
s*=a[i][j]
则执行程序段后,变量s的值为( )
A.28 B.6 C.45 D.15
9.运行下列程序后,函数f(4)的值为( )
def f(n):
if n==1:
return 1
else:
return n+f(n-1)
A.10 B.1 C.3 D.6
10.以下Python程序, 输出结果是( )
x=int(3.0)
x=x+2
print(x**2)
A.25 B.10 C.25.0 D.10.0
11.Python语言中的“ord”是将字符转换为对应存储编码的函数,编码值以十进制数形式显示,例如>>>ord(‘a’) ,输出的结果是:97,则>>>ord(d)输出结果为( )
A.102 B.100 C.98 D.110
12.有如下Python程序段:
a=[[1,1],[2,2],[3,3],[4,-1]]
head=0
cur=a[head][1]
a[head][1]=-1
while cur!=-1:
p=a[cur][1]
a[cur][1]=head
head,cur=cur,p
则程序运行后,a的值为( )
A.[[1,1],[2,2],[3,3],[4,-1]] B.[[1,-1],[2,0],[3,1],[4,2]]
C.[[4,1],[3,2],[2,3],[1,-1]] D.[[4,-1],[3,0],[2,1],[1,2]]
13.在Python中,下列选项为整数的是( )
A.int("123") B.'123' C.123 D."123"
14.有如下Python程序段:
s=0
for i in range(1,10):
if i%3==0:
continue
s=s+i
print(s,i)
程序段执行后,变量 s和i的值分别是( )
A.55 11 B.37 10 C.27 10 D.27 9
15.有如下Python程序段:
import random
n=6;a=[0]*n;i=0
while i<n:
k=random.randint(1,10)
if k%2==0:
i=i-1
elif k%3==0:
a[n-1]=k
n=n-1
else:
a[i]=k
i=i+1
执行该程序段后,列表a中的各元素可能的是( )
A.[0,0,3,3,6,9] B.[1,1,0,3,7,9] C.[5,0,0,5,7,3] D.[0,0,5,3,3,9]
16.有如下Python程序段:
# 输入3个整数分别存储到变量a、b、c中,代码略
if a > b and a > c:
maxn = a
elif b > a and b > c:
maxn = b
elif c > a and c > b:
maxn = c
print("a,b,c的最大值为:", maxn)
执行该程序段,输入下列4组测试数据,无法正确输出a、b、c的最大值的是( )
A.10,20,30 B.20,30,10 C.30,10,10 D.10,10,10
17.以下对于逻辑表达式“a or b”的描述,错误的是( )
A.若a=True,b=True,则a or b=True B.若a=True,b=Fa1se,则a or b=True
C.若a=True,b=True,则a or b=False D.若a=False,b=False,则a or b=False
18.下列表达式中,值为True的是( )
A."chat" not in "chatGPT" B.int (max("3","22","111"))!=abs(int(-3.9))
C."a3b"[0:2]<="a3B" D.18//3**3==2
19.列表是Python中常用的序列类型,和变量样是可变的。以下关于列表的描述正确的是( )
A.列表中的元素索引不能为负值 B.列表中元素的值可以修改
C.列表中的元素不能是列表类型 D.列表中元素的数据类型必须是一样的
20.在Python中,属于正确变量名的是( )
A.88abe B.abc_88 C.abc@88 D.for
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题主要考查Python程序的调试。分析程序可知,出错的原因是字符串类型不能直接和整型进行“+”运算,应把第8行中的money改为str(money),故本题选C选项。
2.B
【详解】本题考查Python程序设计相关内容。分析程序段,可知:
A选项,第一次循环,若randint(0,1)==0成立,将s[0](即字符'a')添加到res中,则res=“a”;第二次循环,若randint(0,1)==0成立,将s[1](即字符'b')添加到res中,则res=“ab”;第三次循环,若randint(0,1)==0成立,将s[2](即字符'c')添加到res中,则res=“abc”;第四次循环,若randint(0,1)==1成立,将s[4](即字符'e')添加到res中,则res=“abce”;第五次循环,若randint(0,1)==1成立,将s[3](即字符'd')添加到res中,则res=“abced”,选项正确。
B选项,第一次循环,若randint(0,1)==0成立,将s[0](即字符'a')添加到res中,则res=“a”;第二次循环,若randint(0,1)==1成立,将s[4](即字符'e')添加到res中,则res=“ae”;第三次循环,若randint(0,1)==0成立,将s[1](即字符'b')添加到res中,则res=“aeb”;第三次循环,若randint(0,1)==1成立,将s[3](即字符'd')添加到res中,则res=“aed”;由此推出,无论第三次循环产生的随机数是0还是1,都不会出现“aec”,继而推出选项错误。
C选项,第一次循环,若randint(0,1)==0成立,将s[0](即字符'a')添加到res中,则res=“a”;第二次循环,若randint(0,1)==1成立,将s[4](即字符'e')添加到res中,则res=“ae”;第三次循环,若randint(0,1)==1成立,将s[3](即字符'd')添加到res中,则res=“aed”;第四次循环,若randint(0,1)==0成立,将s[1](即字符'b')添加到res中,则res=“aedb”;第五次循环,若randint(0,1)==0或randint(0,1)==1成立,都会将s[2](即字符'c')添加到res中,则res=“aedbc”,选项正确。
D选项,第一次循环,若randint(0,1)==1成立,将s[4](即字符'e')添加到res中,则res=“e”;第二次循环,若randint(0,1)==1成立,将s[3](即字符'd')添加到res中,则res=“ed”;第三次循环,若randint(0,1)==1成立,将s[2](即字符'c')添加到res中,则res=“edc”;第四次循环,若randint(0,1)==1成立,将s[1](即字符'b')添加到res中,则res=“edcb”;第五次循环,若randint(0,1)==1成立,将s[0](即字符'a')添加到res中,则res=“edcba”,选项正确。
故本题答案是B选项。
3.B
【详解】本题考查Python运算符与表达式相关内容。A选项,6//2*8/3-->3*8/3-->24/3-->8.0;B选项,len(range(0,12))/4-->12/4-->3.0;C选项,int('3'+'2')//abs(-6)-->32//6-->5;D选项,3**2-7%5//7-->9-7%5//7-->9-2//7-->9-0-->9。B选项值最小。故本题答案是B选项。
4.A
【详解】本题考查Python函数应用。将整数转换为小数的函数是 float()。round() 函数用于对浮点数进行四舍五入,它不会将整数转换为小数。int() 函数用于将一个数(浮点数或字符串表示的数字)转换为整数,它会去掉小数部分。str() 函数用于将其他数据类型转换为字符串形式。故答案为A选项。
5.B
【详解】本题考查Python运算符与表达式相关内容。and运算符用于连接两个或多个条件表达式,当且仅当所有条件表达式都为True时,整个逻辑表达式的结果才为True。 or运算符作用是判断两个条件中的至少一个是否为真,如果至少一个条件为真,则整个表达式返回True;否则,返回False。能正确表示”a≤5而且a≥3”的逻辑是:a<=5 and a>=3,故本题答案是B选项。
6.B
【详解】本题考查Python程序。程序运行后,fac()函数被调用了4次,包括初始调用和三次递归调用。当fac(3)被调用时,实际上还会调用fac(2)、fac(1)和fac(0),因此总共调用了4次。故答案为:B。
7.D
【详解】本题主要考查Python运算符。=是赋值运算符,!=是表示“比较对象是否不相等”,==表示“比较对象是否相等”,故本题选D选项。
8.C
【详解】本题考查Python程序。根据程序可知,当i与j相等时,即矩阵中的对角线,即a[0][0],a[1][1],a[2][2]进行相乘,最终计算结果为s=1*1*5*9=45。故答案为:C。
9.A
【详解】本题主要考查Python程序的执行。分析程序可知,f(4)=4+f(3)=4+3+f(2)+4+3+2+f(1)=4+3+2+1=10,故本题选A选项。
10.A
【详解】本题考查的是Python程序基础。int转换为整型,x=int(3.0)=3,x=x+2=3+2=5,x**2=5**2=25。故选A。
11.B
【详解】本题主要考查Python函数的应用。Python语言中的“ord”是将字符转换为对应存储编码的函数,编码值以十进制数形式显示,例如>>>ord(‘a’) ,输出的结果是:97,则>>>ord(d)输出结果为97+3=100,故本题选B选项。
12.B
【详解】本题考查Python程序设计相关内容。分析程序段可知:head=0,cur=a[head][1]=a[0][1]=1,a[0][1]=-1,a=[[1,-1],[2,2],[3,3],[4,-1]],循环各变量如下:
程序运行后,a的值为[[1,-1],[2,0],[3,1],[4,2]],故本题答案是B选项。
13.C
【详解】本题考查的是数据类型。int( )用于将一个字符串或数字转换为整型,字符串用英文单引号或双引号表示。故本题应选C。
14.D
【详解】本题考查的是python程序。本题的功能是求区间[1,9]中不是3的倍数的数之和,即s=1+2+4+5+7+8=27,i最后的值为9,故答案为D。
15.D
【详解】本题考查Python程序设计相关内容。random.randint(1,10)生成1~10的随机整数。通过分析代码段,可知:当k=2、4、6、8、10时,a列表元素值不会出现2、4、6、8、10,A选项错误;当k=3、9时,列表最后元素aa[5]元素值为对应的3、9;若3、9同时出现,则两值之间不应该出现3、9之外的数值,B选项错误;当列表元素前有两个0(未被修改)出现时,其列表最后的两个元素值应该是3、9中的一个,C选项错误。故本题答案是D选项。
16.D
【详解】本题考查的是Python程序调试。阅读程序,可知当a、b、c三个数相等的时候,三个判断条件都不满足,找不到最大值,故本题应选D。
17.C
【详解】本题主要考查Python逻辑表达式。若a=True,b=True,则a or b=True,故本题选C选项。
18.C
【详解】本题考查Python表达式的运算。"chat" not in "chatGPT"值为False;int (max("3","22","111"))=abs(int(-3.9))=3,因此表达式int (max("3","22","111"))!=abs(int(-3.9))值为False;"a3b"[0:2]="a3",因此表达式"a3b"[0:2]<="a3B"值为True;18//3**3=18//27=0,因此表达式18//3**3==2值为False。故选C。
19.B
【详解】本题考查的是列表相关知识。列表中的元素索引可以为负值,负值表示从末尾开始的位置,故选项A说法错误;列表中元素的值可以修改,选项B说法正确;列表中的元素可以是列表类型,选项C说法错误;列表中元素的数据类型可以不一样的,故选项D说法错误。
20.B
【详解】本题考查变量名。变量名不能以数字开头,关键字不能作为变量名,字符@符号不能出现在变量名中。故选择B。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$