内容正文:
第三章 算法的程序实现
一、选择题
1.在Python 语言中,下列表达式中不是关系表达式的是( )
A.m<=n B.n>=n C.m or n D.m!=n
2.表达式 3 ** 2 的值为( )
A.7 B.8 C.9 D.10
3.回文数是从前往后读和从后往前读都一样的数,例如:123454321为回文数。若将任意一个三位数存储到字符串变量a中,下列语句不能实现回文的是( )
A.new=a+a[2]+a[1]+a[0] B.new=a+a[::-1]
C.new=a+a[-3]+a[-2]+a[-1] D.new=a+a[-1::-1]
4.张三同学的个人信息和期末成绩以列表的形式,按照学号、姓名、性别、语文、数学、外语、信息技术的顺序存储:stu=[“20221535”,“张三”,“男”,75,92,86]。将信息技术学科成绩95添加到列表合适位置,以下Python语句中正确的是( )
①append(stu,95) ②stu.append(95) ③insert(stu[7],95) ④stu.insert(6,95)
A.①③ B.②③ C.①④ D.②④
5.有如下Python程序:
def hill(n):
if n==1 or n==2:
return 1
elif n==3:
return 2
else:
return hill(n-1)+hill(n-3)
x=int(input())
print(hill(x))
执行该程序,若输入的值为7,输出的结果是( )
A.7 B.8 C.9 D.10
6.在Python中,以下选项中可以作为变量名的是( )
A.1A B.for C.X_2 D.A+B
7.8//3**2+15%4的结果是( )
A.39 B.15 C.5 D.3
8.有如下Python程序段:
a=[1,20,15,6,9,12,30,8,7,5]
n=len(a)
sumx=0
for i in range(n):
if a[i]%3==2:
sumx=sumx+a[i]
print(sumx)
该程序段执行后,输出的结果为( )
A.25 B.28 C.33 D.72
9.有如下Python程序段:
a=int(input("请输入一个数:"))
if a>0:
a=a%10
elif a==0:
a=a+1
else:
a=a**2
a=a+10
print(a)
输入a值为20,执行该程序段后,输出的结果是( )
A.14 B.11 C.10 D.1
10.已知x="123",y="456",则表达式x+y 的值为( )
A."123456" B."567" C."123"+"456" D."579"
11.在Python语言中,运行以下程序,输入6, 显示的运行结果是( )
a=int(input()) # 输入一个数给变量a
if a>0:
print("正数")
else:
print("不是正数")
A.6 B.不是正数 C.a D.正数
12.下面哪个是python中的注释符( )
A.& B.# C.* D.@
13.某两段Python程序分别如图所示:
n=int(input("n="))
s=0
for i in range(1,n+1,2):
s+=i
print(s)
n=int(input("n="))
s,i=0,1
while i<=n:
s+=i
i+=2
print(s)
当n的值为10时,关于该两段程序,下列说法不正确的是 ( )
A.两段程序中i的初值相同 B.两段程序都采用了循环结构
C.两段程序的运算结果不相同 D.左边程序实现了“1+3+5+7+9”和的运算
14.在下列语句中,若要交换a、b变量的值,正确的语句是( )
A.a,b=a,b B.a,b=b,a C.a=b;b=a D.b=a;a=b
15.利用冗余压缩的方法对字符串进行压缩,例如字符串“aabbbcccd”,压缩后为“a2b3c3d1”。实现上述压缩功能的Python程序如下:
s=input("请输入长度大于1的待压缩字符串:")
ys=s[0]; k=1
for i in range(1,len(s)):
print("压缩后的结果为:",ys)
在程序方框处应填入的代码是( )
A. B. C. D.
A.A B.B C.C D.D
16.用Python程序随机生成100个[0,20]之间的随机数,统计0~9及9以上每个数字出现的次数并输出结果:
import random
1ist=[0]*100
count=[0]*11
for i in range(0,100):
num=random. randint(0,20)
list[i]=num
if __________:
num=10
count [num]+=1
print('0~9及9以上依次出现的次数为:',count)
程序某次运行的结果如下:
0~9及9以上依次出现的次数为:[3,5,4,6,5,5,2,5,9,4,52]
则划线处的代码为:( )
A.num>i B.list[i]>num C.num>9 D.count[i]>9
二、填空题
17.有如下Python程序段:
a=[3,2,1,1,5,6,-1,7]
c=0
for i in range(2,len(a)):
if a[i-2]-a[i-1]==a[i]:
c+=1
print(c)
程序段执行后,输出的结果为 。
18.下列程序段运行后的结果是
19.在Python中通常用 来表示常量。
20. 循环是通过计数器来控制循环次数的循环结构。
21.pygame模块提供了 、 等函数;random模块用于产生 ;sys模块包含了跟Python 相关的函数。
三、判断题
22.Python语言和Basic语言均属于高级语言。( )
23.“num”和“NUM”会被Python解释器视为相同的变量。( )
24.在程序中,x=y与y=x是不一样的。( )
25.下列Python程序段运行结束后,赋值语句sum=sum+i共被执行了9次。( )
四、操作题
26.编写程序,根据输入的符号对两个数求和或者求差。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查Python表达式相关内容。关系表达方式是用关系运算符(>、>=、<、<=、==、!=)连接起来的表达式。逻辑表达方式是用逻辑运算符(and、or、not)连接起来的表达式。ABD选项是关系表达式,C选项是逻辑表达式。故本题答案是C选项。
2.C
【详解】本题主要考查Python表达式的运算。**表示幂运算, 3 ** 2 =9,故本题选C选项。
3.C
【详解】本题考查Python基础。
若a="123",a+a[-3]+a[-2]+a[-1]取到的结果是拼接字符变量a和变量a的倒数第三个字符、倒数第二个字符、倒数第一字符。则选项C得到的是new="123123"。故正确答案为:选项C。
4.D
【详解】本题主要考查Python列表的操作。将信息技术学科成绩95添加到列表合适位置,可以使用追加函数append,直接追加到尾部,即stu.append(95) 。也可以使用插入函数insert,在索引6的位置插入,即stu.insert(6,95),故本题选D选项。
5.C
【详解】本题考查Python函数相关内容。分析程序可知,该函数调用为递归调用。x值为7,则hill(7)=hill(6)+hill(4),分别计算:(1)hill(6)=hill(5)+hill(3)=hill(4)+hill(2)+hill(3)=hill(3)+hill(2)+hill(2)+hill(3)=2+1+1+2=6。(2)hill(4)=hill(3)+hill(1)=2+1=3。所以hill(7)=6+3=9。故本题答案是C选项。
6.C
【详解】本题考查Python变量相关内容。变量的命名要符合标识符规定,即:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。A选项, 以数字开头,错误;B选项,for为关键字,错误;C选项,符合标识符规定,正确;D选项,含有“+”,错误。故本题答案是C选项。
7.D
【详解】本题主要考查Python表达式的运算。8//3**2+15%4=8//9+3=0+3=3,故本题选D选项。
8.C
【详解】本题考查Python程序设计相关内容。程序段功能是求数组a中的除3余2的元素之和,除3余2的数据有:20、8、5,因此sumx=20+8+5=33,故本题答案为C选项。
9.C
【详解】本题考查的是Python多选择结构。输入a值为20,满足 a>0,执行 a=a%10=0,a=a+10=10,故本题应选C。
10.A
【详解】本题考查的知识点是表达式的相关知识。题干中x和y被赋的值都是字符串,表达式x+y 中的“+”表示将x和y两个字符连接起来即"123456",故答案为A选项。
11.D
【详解】本题考查的知识点是Python分支语句应用。输入6,即a=6,满足条件a>=0,所以输出正数。故答案为D选项。
12.B
【详解】本题考查的是Python注释符。python中的注释分为单行注释和多行注释。单行注释,使用单行注释就是用#标注就行;多行注释,多行注释需要使用到到三对引号,这里的引号单引号和双引号都行。故本题应选B。
13.C
【详解】本题考查的是Python循环语句。图中可以看出i的初始值都为1;右边采用了while循环,左边采用了for循环;两段程序都实现了1+3+5+7+9的操作。故本题应选C。
14.B
【详解】本题主要考查Python语句。若要交换a、b两个变量的值,正确的语句是a,b=b,a,故本题选B选项。
15.B
【详解】本题考查Python程序设计相关内容。结合题目要求,分析给定4个程序段,可知:B选项能够实现功能要求,正确。A选项,错误之处在于将条件判断(i==len(s)-1)放在了else语句内,无法实现功能要求。CD选项,无法实现功能要求:判条件判断(i!=len(s)-1)与条件判断(s[i]==s[i-1])并无相关性,只有判断完字符是否冗余并执行相应操作后才需要去判断是否到字符串末尾。故本题答案是B选项。
16.C
【详解】本题考查的是Python循环语句。阅读程序,可知count是用来统计0~9及9以上每个数字出现的次数,索引为0则统计0的个数,索引为10则统计9以上的个数,生成的随机数存放在num(同时也当做count的索引)中,如果生成的随机数大于9,则把索引置为10。故划线处的代码为:num>9。选项C正确。
17.4
【详解】本题考查程序分析。
本程序的功能是从索引值为2的元素开始,统计当前元素是它前两个元素之差的情况数。当i分别为2、3、6、7时满足条件,因此答案为4。
18.12
【详解】本题主要考查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、4、7,故运行后的结果s=s+i=0+1+4+7=12。
19.大写字母
【详解】本题考查Python程序的描述。在Python中我们常常使用大写字母的标识符来表示常量,如PI等。
20.for
【详解】本题考查的是循环语句。for循环通过初始化计数器、设置循环条件和更新计数器的步骤来控制循环次数。
21. 图像 声音 随机数 环境
【详解】本题考查的是Python的pygame模块。pygame模块提供了图像、声音等函数;random模块用于产生随机数;sys模块包含了跟Python环境相关的函数。
22.正确
【详解】本题主要考查程序设计语言。高级语言:更简单,符合人们的习惯,也更容易理解和修改,高级语言经过编译器编译之后可以得到目标程序(如:C++、JAVA等) 。Python语言和Basic语言均属于高级语言,表述正确。
23.错误
【详解】本题考查变量。Python中的变量严格区分大小写。num和NUM不是相同变量,故错误。
24.正确
【详解】本题考查程序设计中赋值语句的理解。在Python程序中,x=y是将y的值赋给x,y=x是将x的值赋给y,因此,x=y与y=x是不一样的。故正确。
25.正确
【详解】本题考查的是Python循环与选择语句。range(1,20)生成1~19的整数,阅读程序可知,只有i为1~19的偶数,才执行赋值语句sum=sum+i。故一共被执行了9次。题干中说法正确。
【点睛】
26.a=float(input("请输入一个数:"))
b=float(input("请输入另一个数:"))
c=input("请输入运算符+/-:")
if c=="+":
print("两个数的和为:",a+b)
elif c=="-":
print("两个数的和为:",a-b)
else:
print("请重新输入运算符!")
print("程序运行结束")
【详解】本题考查Python程序综合应用。该程序可以采用多分支条件结构实现,具体代码如答案所示。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$