内容正文:
第三章 算法的程序实现
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.递归算法的基本思想是( )
A.将问题分解为更小的子问题 B.将问题直接解决
C.重复执行相同的操作 D.避免使用循环结构
2.Python程序中以下变量名正确的是( )
A.a* B.age C.#b D.print
3.某算法的部分流程图如图所示,执行完这部分流程后,变量 i,s 的值分别是( )
A.3,9 B.4,18 C.5,18 D.6,43
4.在Python中定义变量i=15,将i以浮点数形式输出用到的语句是( )
A.int (i) B.bin (i) C.float (i) D.str(i)
5.在 Python 中,快速创建GUI应用程序以实现图形用户界面的模块是( )
A.tkinter B.math C.time D.pygame
6.有一堆桃子,猴子第一天吃掉其中的一半,并再多吃一个。之后每天猴子都吃掉剩余桃子的一半,再多吃一个。假设到第十天时,猴子发现只剩下了一个桃子,问原来这堆桃子最初有多少个。实现上述问题的两段Python程序如下,下列说法不正确的是( )
#程序1
def eat _peach (day):
s=1
for i in range (9,day-1,-1):
s=(s+1)*2
return s
print (eat _peach (1))
#程序2
def eat _peach (day):
if day==10:
return 1
else:
return (eat _peach (day+1)+1)*2
print (eat _peach (1))
A.程序1和程序2的输出结果相同,均为第1天的桃子数量
B.程序2使用递归算法,函数eat _peach的调用次数为10次
C.将程序1的划线语句修改为range (day,10),输出结果发生改变
D.将程序2的划线语句修改为print (eat _peach (8)),输出的结果为10
7.以下程序段语句执行后,y的值是( )
x=16
if x< 0:
y =abs(x)
else:
y =math. sqrt(x)
print(y)
A.256.0 B.16.0 C.4.0 D.-16.0
8.有如下Python程序段:
s=input()
t = ""
for i in range(len(s)):
a=s[i]
if a>="0" and a<="9":
t=t+a
elif a=="!":
t=""
elif a!="" and t!="":
print(t)
执行该程序段时,输入“12+34=46!=789ok”(不包括双引号),则程序执行后输出的结果是( )
A
B
C
D
12
12
12
12
1234
34
1234
1234
123446
46
789
123446
123446789
789
789
789
A.A B.B C.C D.D
9.Python中的数据类型int表示( )
A.布尔型 B.长整型 C.整型 D.字符串型
10.有Python程序段如下:
s="I2024!";s1=""
for i in range(len(s)):
c=s[i]
if "A"<=c<="Z":
c=chr(ord(c)-ord("A")+ord("a"))
elif "a"<=c<"2":
c=chr(ord(c)-ord("a")+ord("A"))
sl=c+sl
print(sl)
程序运行后,输出的值是( )
A.!4202Ti B.It2024! C.iT2024! D.4202Ti
11.下列程序采用的是哪种算法结构( )
a=3
b=5
s=a+b
print(s)
A.循环结构 B.关系结构 C.顺序结构 D.分支结构
12.小美制作了一个简单的Flask程序,其中编写路由和视图的函数如下所示:
@app.route(‘/user/<name>’) #动态路由
def user(name):
return render_template(‘user.html’,name=name)
其中网页文件user.html的部分代码如下:
<body>
{%if name == ‘admin’%}
<hl>Hello,Boss!</hl>
{%else%}
<hl>Hello,{{name|capitalize}}!</hl>
{%endif%}
</body>
运行程序后,在浏览器输入如下网址:http://127.0.0.1:5000/user/admin,则网页显示的内容是( )
A.Hello,admin! B.Hello,Boss! C.Hello,Admin! D.Hello,boss!
13.下列程序中有一处错误,请选出在哪一行( )
l a=int(input())
2 b=int(input())
3 if a=b:
4 print('两数一样大')
5 elif a>b:
6 print('a数大')
7 else:
8 print('b数大')
A.2 B.4 C.7 D.3
14.如下程序是求两个整数的最大公约数。这个程序使用的算法思想是( )
a=int(input())
b=int(input())
c=a
while a%c>0 or b%c>0:
c=c-1
print(“最大公约数:”,c)
A.解析法 B.枚举法 C.递归法 D.递推法
15.数学式子a÷2b-c,对应的Python表达式是( )
A.a/b2-c B.a/(2*b-c) C.a/(2*b)-c D.a/2*b-c
16.>>>"23"+"4"*3输出结果是( ).
A.'23444' B.'234' C.'2344' D.'234444'
17.在下图中,<3>处应该填入的正确代码是( )
A.i B.s C.s+i D.不用填
18.有如下Python程序段:
def trans(m,n):
if m!=0 or n!=0:
r=(m%2+n%2)%2
return trans(m//2,n//2)+str(r)
else:
return "0"
a=int(input("a="));b=int(input("b="))
print(trans(a,b))
执行该程序段,依次输入10和7,则输出的结果是( )
A.10110 B.01011 C.01101 D.11010
19.在Python中,下列程序运行共执行( )次,执行完程序之后结果是( )
A.3,1056 B.4,1056 C.3,66 D.4,66
20.以下选项中,可以让pygame程序每次更新窗口内容后延时800毫秒的是? ( )
A.pygame.time.delay(0.08) B.pygame.time.delay(800)
C.pygame.time.delay(0.8) D.pygame.time.delay(800ms)
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查算法相关内容。递归算法是指一种通过重复将问题分解为同类的子问题而解决问题的方法。故本题答案是A选项。
2.B
【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故正确的变量名是age,故本题选B选项。
3.B
【详解】本题考查程序分析。
初始化:s=0,i=1。变量s累加3的倍数,先累加,变量i后加1。当s>15时,退出循环。当s=3+6+9=18,此时i=4,故退出循环。故正确答案为:选项B。
4.C
【详解】本题考查的是Python函数。int转整型,bin转二进制数,float转浮点型,str转字符串。故本题应选C。
5.A
【详解】本题考查Python程序设计相关内容。Tkinter是Python的标准GUI库,它提供了创建窗口、按钮、文本框和其他GUI组件的工具。math模块提供了很多数学运算的函数和常量,可以通过导入math模块来使用其中的函数和常量。time库是一个用于处理时间相关操作的标准库。Pygame是一个用于开发视频游戏的Python库,它提供了丰富的功能和工具,使得开发者能够轻松地创建游戏窗口。故本题答案是A选项。
6.C
【详解】本题主要考查递归算法及Python程序实现。分析程序可知,程序1和程序2的输出结果相同,均为第1天的桃子数量,数量是1534;程序2使用递归算法,函数eat _peach的调用次数为10次;将程序1的划线语句修改为range (day,10),输出结果不变,仍是第一天桃子数量;将程序2的划线语句修改为print (eat_peach (8)),输出的结果为((1+1)*2+1)*2=10,故本题选C选项。
7.C
【详解】本题考查的是python程序。abs(x)的含义是求x的绝对值,sqrt(x)是对x开方。程序语句执行的是开方的分支语句,答案为4.0。故选项C正确。
8.C
【详解】本题考查Python基础。
本题程序的功能是将字符串中的数字拼接在t中,若遇到字符“!”,则清空字符串t,若遇到其他字符且a、t均不为空时,则输出字符串t的内容,因此正确答案为:选项C。
9.C
【详解】本题考查的是Python数据类型。Python中的数据类型有:布尔型bool,整型int,字符串str,列表list,元组tuple,字典dict。故本题应选C。
10.A
【详解】本题考查字符串处理及选择语句应用知识。由代码可知,将大写字母转化为相应的小写字母,而将小写字母转换为相应的大写字母,然后按照逆序进行连接。故可以排除C、D。由于最后的字符“!”未经if语句处理,但该字符也会被逆序连接到sl中。故选A。
11.C
【详解】本题主要考查Python顺序结构。分析程序,该程序采用的是顺序结构,故本题选C选项。
12.B
【详解】本题主要考查Python网络编程。由程序代码可知,在浏览器输入如下网址:http://127.0.0.1:5000/user/admin,满足if条件,故网页显示的内容是Hello,Boss!,故本题选B选项。
13.D
【详解】本题主要考查Python程序的调试。Python关系运算符中,等于运算符是“==”,故第3行代码应改为“if a==b:”,故本题选D选项。
14.B
【详解】本题主要考查Python程序及枚举算法。分析程序可知,通过枚举所有可能找出a和b的最大公约数,故本题选B选项。
15.C
【详解】本题考查Python表达式。数学表达式"a÷2b-c"中,除法运算符是"/",减法运算符是"-"。根据数学运算法则,先进行乘除法运算,再进行加减法运算。因此,在Python表达式中,需要使用括号来确保正确的运算顺序。正确的Python表达式应该是"a/(2*b)-c",因为它将除法运算放在括号中,确保了先执行乘除法运算,然后再执行减法运算。故答案为:C。
16.A
【详解】本题主要考查Python字符串运算。"4"*3="444",故"23"+"444"="23444",故本题选A选项。
17.A
【详解】本题主要考查Python程序的调试。该程序通过for循环实现求3~200所有能被3整除个数,其中变量s统计满足数的和,即s=s+i,故<3>处应该填入的正确代码是i,故本题选A选项。
18.C
【详解】本题主要考查Python程序的执行。依次输入10和7,即m=10,n=7,trans(10,7)=trans(5,3)+"1"=trans(2,1)+"01"=trans(1,0)+"101"=trans(0,0)+"1101"="01101",故本题选C选项。
19.B
【详解】本题主要考查Python程序的执行。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。变量i依次取1、6、11、16,因此共循环4次,product=1*1*6*11*16=1056,程序执行后的结果是1056,故本题选B选项。
20.B
【详解】本题考查Python基础。
在pygame中,要让程序每次更新窗口内容后延时800毫秒,应该使用pygame.time.delay(800)。这个函数接受一个整数参数,表示要延迟的毫秒数。故正确答案为:选项B。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$