内容正文:
第三章算法的程序实现同步作业 2023—2024学年高中信息技术浙教版(2019)必修1
一、选择题
1.下列python表达式结果最小的是( )
A.2**3//3+8%2*3 B.5**2%3+7%2**2 C.1314//100%10 D.int("1"+"5")//3
2.如图所示的代码,当输入23时,输出结果为( )
1 S=int(input('请输入')
2 if S <5:
3 print('小了')
4 elif S<15:
5 print('还是有点小了')
6 elif S<25:
7 print('差不多')
8 elif S>=25:
9 print(‘很好')
10 else:
11 print('这不是数字‘)
A.小了 B.很好 C.差不多 D.这不是数字
3.有如下 Python 程序段:
import random
a=[0,0,0,0,0]
flag= 1
i=0
while i<5:
b=random.randint(1, 100)
if flag>0 or b>50:
a[i]=flag*b
i+=1
flag=-flag
print(a)
执行程序后,输出的列表 a 可能是( )
A.[5, -53, 23, -65, 38] B.[-67, 64, -91, 78, -31] C.[4, -69, 0, -84, 34] D.[60, -30, 71, -29, 88]
4.为了对某信息系统中的字符串数据进行加密,小蓝同学设计了加密函数secret(s,k),其中s为明文,k为正整数密钥,函数的返回值为密文。secret()函数的Python代码如下:
def secret(s, k):
a = [i for i in s]
a.append('*')
n = len(s) + 1
ans = ""
t = 0
head, tail = 0, n - 1
while
t = t + 1
if t == k:
ans += a[head]
t = 0
else:
a[tail] = a[head]
tail = (tail + 1) % n
head = (head + 1) % n
return ans
下列有关该加密过程的说法错误的是( )
A.该加密过程用到的数据结构为队列
B.该加密过程属于对称加密中的替代加密法
C.若原文s为python,密钥k=3,则加密得到的密文为tnhyop
D.将方框处代码改为head<tail可能会影响最终的加密结果
5.函数如下
打印结果哪项是正确的( )。
A.changeInt: number2= 3 number: 3
B.changeInt: number2= 3 number: 2
C.number: 2 changeInt: number2= 2
D.number: 2 changeInt: number2= 3
6.执行下列代码,说法错误的是?( )
import sqlite3
db = sqlite3.connect('data.db')
cur = db.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS list(id INTEGER PRIMARY KEY autoincrement, name text)")
db.commit()
cur.execute("SELECT COUNT(*) FROM list")
if cur.fetchall()[0][0] == 0:
cur.execute('INSERT INTO list(id,name) VALUES(1,"lilei")')
db.commit()
A.data.db文件中有一张名为list的数据表
B.list数据表中有两个字段id和name
C.list数据表中没有记录
D.去掉最后一行的db.commit(),对程序有影响
7.用Python表达式表示数轴上x的取值范围,以下书写正确的是( )
A.x> =5 or x <8 and x=9 B.x > =5 and x < 8 or x ==9
C.x> =5 and x <8 and x ==9 D.x >=5 or x < 8 or x <9
8.购买地铁车票:乘1-4站3元/人;5-9站4元/人;9站以上5元/人。根据输入的站数N,输出应付款M,如需将算法补充完整,最适合的选项是( )
A.N>9 B.N<=9
C.5<=N<=9 D.N>=5 and N<=9
9.表达式3*4**2//8%5的计算结果是( )
A.1 B.2 C.4 D.6
10.有如下Python程序段:
n=int(input())
a=1;q=[0]*100;two=three=rear=0;q[0]=a
while rear!=n:
if(2*q[two]+1>3*q[three]+1):
rear+=1
q[rear]=3*q[three]+1
three+=1
elif(2*q[two]+1<3*q[three]+1):
rear+=1
q[rear]=2*q[two]+1
two+=1
else:
rear+=1
q[rear]=3*q[three]+1
two+=1;three+=1
运行上述程序段后,如果输入10,则q[n]的值是( )
A.15 B.22 C.27 D.31
11.以下是小红编写的根据身高计算票价的程序。运行程序,输入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.程序中使用了运算符“+”,应该把“+”改为“&”
12.在Python中,下面语句不正确的是( )
A.x=y+10 B.x=y=Z=100 C.x,y,z=1,2,3 D.f(x)=x**2+1
13.下面的程序段,通过键盘输入5,则运算结果是( )
A=input()
print(A * 5)
A.3125 B.25 C.5*5 D.55555
14.下列Python程序段执行后,语句s=s+i执行的次数是( )
s=0
i=1
while i<5:
s=s+i
i=i+1
print(s)
A.2次 B.3次 C.4次 D.5次
15.已知列表a1=[1,2,3,4],执行语句a1[0]=5后,列表a1中的内容为( )
A.[1,2,3,4] B.[5,2,3,4] C.[5,1,2,3,4] D.[1,2,3,4,5]
16.在Python中,以下表达式的计算结果不为0的是( )
A.3//5 B.21%7 C.2/4 D.10*0
17.有如下程序,输入1101110后的运行结果为( )
s1=input(“请输入一串01组合”)
s2=len(s1)
s=0
for i in range(s2):
a=int(s1[i])
s=s*2+a
print(s)
A.110 B.111 C.220 D.110111
18.判断a是否能被b整除,以下语句正确的是( )
A.if a/b=0: B.if a//b=0: C.if a%b= =0: D.if a//b= =0:
19.小明学习了Python后,定义了一个列表:list1=[7,-15,32,-10,90],则 Python表达式min(list1)+abs(list1[3])的值为( )
A.-25 B.-5 C.0 D.17
20.下列Python数据不属于列表的是( )
A.{24,56,7,89,4} B.[24,56,7,89,4]
C.[24,56,’a’,’猕猴桃’] D.[’A’,’B’ ’C’, ’D’]
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题主要考查Python表达式的运算。2**3//3+8%2*3=8//3+0*3=2,5**2%3+7%2**2=25%3+7%4=1+3=4,1314//100%10=13%10=3,int("1"+"5")//3=5,故本题选A选项。
2.C
【详解】本题主要考查Python程序的执行。当输入23时,执行elif S<25: print('差不多'),输出结果为:差不多。故本题选C选项。
3.A
【详解】本题主要考查Python程序的执行与调试。random.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。b=random.randint(1, 100),即b是随机生成[1,100]之间的整数,a[i]=flag*b,每次循环后flag取相反数,flag初值为1,故列表a索引为偶数项的值为正数,索引为奇数项的数为负数,排除B、C选项。由if判断条件可知当flag为-1时,b必须大于50才能进入if结构否则重新生成b,排除选项D,故执行程序后,输出的列表 a 可能是[5, -53, 23, -65, 38],选A选项。
4.B
【详解】本题考查Python程序。根据secret函数的代码,使用队列把明文按照一定规则从新排列得到密码,A选项正确。该算法思想应为简单加密算法中的换位密码法,B选项错误。把s=”python”,k=3代入函数,会得到密文tnhyop。每3个字符处对一个,拼接到密码中,不到3时进入队尾。C选项正确。若把head!=tail改为head<tail,会出现错误,因为根据首尾指针的变化可以判断这是一个循环队列,循环队列中head会大于tail,但此时队列中还有元素,不能结束,若修改会导致循环提前结束,造成错误,D选项正确。故答案为:B。
5.B
【详解】本题主要考查Python程序的执行。number1=2,执行语句chanageInt(number1),输出changeInt: number2= 3,接着执行print("number:",number1),输出number: 2,故本题选B选项。
6.C
【详解】本题考查程序设计相关内容。A选项,由“cur.execute("SELECT COUNT(*) FROM list")”知,data.db文件中有一张名为list的数据表,选项说法正确。B选项,由“cur.execute("CREATE TABLE IF NOT EXISTS list(id INTEGER PRIMARY KEY autoincrement, name text)")”知,list数据表中有两个字段id和name,选项说法正确。C选项,由“ cur.execute('INSERT INTO list(id,name) VALUES(1,"lilei")')”知,list数据表中有记录,选项说法错误。D选项,db.commit()是用于提交事务的方法,在Python中,当你对数据库进行了插入、更新或删除等操作时,这些操作将默认处于一个事务中,为了将这些操作永久保存到数据库中,你需要显式地调用commit()方法来提交事务,只有在调用commit()方法后,对数据库的更改才会生效,所以去掉最后一行的db.commit(),对程序有影响,选项说法正确。故本题答案是C选项。
7.B
【详解】本题考查Python运算符与表达式相关内容。由图中可知x的取值是[5,8)和9。结合关系、逻辑运算符,其表达式为:x>=5 and x< 8 or x == 9。故本题答案是B选项。
8.B
【详解】本题考查条件语句。根据题目要求,购买地铁车票:乘1-4站3元/人;5-9站4元/人;9站以上5元/人。故N<=9满足5-9站4元/人,最适合,因此选项B正确。
9.A
【详解】本题主要考查Python表达式的运算。3*4**2//8%5=3*16//8%5=48//8%5=6%5=1,故本题选A选项。
10.B
【详解】本题考查Python程序的执行。这段程序使用了一个队列(q)来存储数字序列。首先,将数字1放入队列,然后根据一定规则生成后续数字。规则为:如果2*q[two]+1大于3*q[three]+1,则将3*q[three]+1放入队列,并递增three;如果2*q[two]+1小于3*q[three]+1,则将2*q[two]+1放入队列,并递增two;如果两者相等,则将3*q[three]+1放入队列,并递增two和three。程序运行过程如下:初始化a=1,将1放入队列。通过比较规则不断生成后续数字,直到队列中有n个数字。输入n=10,执行10次生成,得到队列q,有效部分为:[1、3、4、7、9、10、13、15、19、21、22]。故q[n]的值为22,因此答案是B。因此,答案为B。
11.C
【详解】本题主要考查Python程序的调试。分析程序可知,出错的原因是字符串类型不能直接和整型进行“+”运算,应把第8行中的money改为str(money),故本题选C选项。
12.D
【详解】本题主要考查Python赋值语句。Python赋值语句是将右边的表达式赋给左边的变量,不可以直接将表达式赋给函数,故本题选D选项。
13.D
【详解】本题主要考查程序的运行。input输入的是字符,字符*5,就会显示5倍的字符来。通过键盘输入5,则运算结果是55555,故本题选D选项。
14.C
【详解】本题考查Python程序调试。变量i初值是1,循环条件是i<5,因此i取1、2、3、4,即循环4次。故选C。
15.B
【详解】本题考查Python列表操作。列表索引从0开始,已知列表a1=[1,2,3,4],执行语句a1[0]=5后,列表a1中的内容为[5,2,3,4],故选B。
16.C
【详解】本题考查Python运算符与表达式相关内容。A选项,3//5-->0。B选项,21%7-->0。C选项,2/4-->0.5。D选项,10*0-->0。故本题答案是C选项。
17.A
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现将二进制数1101110通过“按权展开、逐项相加”的方法转换为十进制数110,故本题选A选项。
18.C
【详解】本题考查的是Python表达式。判断a是否能被b整除,只要判断a除以b的余数是否为0,在Python中用==表示相等。故本题应选C。
19.B
【详解】本题主要考查Python列表的操作。min返回列表对象的最小值,abs求绝对值函数,因此list1=[7,-15,32,-10,90],则 Python表达式min(list1)+abs(list1[3])的值为-15+10=-5,故本题选B选项。
20.A
【详解】本题考查Python语句。列表是Python中的一种数据类型,是用[]括起来的一组有顺序的数据。选选项B,C,D都属于列表,选项A不属于列表,故本题选A。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$