内容正文:
第四章 程序设计基础
一、选择题
1.列表a中有10个数据,用如下程序段找出大于60的数的个数,画线处可以填( )
a=[35,23,98,43,86,31,29,57,62,78]
n=θ
m=6θ
for i in a:
if :
n+= 1
print("个数: ",n)
A.a[i]>m B.i>m C.a>m D.a(i)>m
2.以下哪个Python代码片段正确地实现了一个双分支选择结构( )
A.if x > 10: print("x is big")
B.if x > 10: print("x is big") else: print("x is small")
C.if x > 10 print("x is big"):
D.if x > 10: then print("x is big")
3.在编程中,分支结构的主要作用是( )
A.重复执行代码 B.按顺序执行代码
C.根据不同条件执行不同代码 D.同时执行多段代码
4.设 str ='python',想把字符串的第一个字母大写,其他字母还是小写,正确的选项是( )
A.print(str[0].upper()+str[1:]) B.print(str[1].upper()+str[-1:1])
C.print(str[0].upper()+str[1:-1]) D.print(str[1].upper()+str[2:])
5.以下关于字符串类型的操作的描述,错误的是( )
A.str.replace(x,y)方法把字符串str中所有的x子串都替换成y
B.想把一个字符串str所有的字符都大写,用str.upper()
C.想获取字符串str的长度,用字符串处理函数 str.len()
D.设 x = 'aa' ,则执行x*3的结果是'aaaaaa'
6.有如下Python程序段:
a=int(input("请输入正整数:"))
sum=s=0
while a>0:
sum+=a%10
a∥=10
s=s+1
if s*sum==36:
print("通过检验!")
else:
print("不通过!")
如果该程序段执行后输出的结果是“通过检验!”,则输入的整数n可能是( )
A.146 B.2040 C.1323 D.29
7.Excel文件cj.xlsx中的数据包含“准考证号”、“姓名”、“学号”、“班级”等字段,以及若干个数据行。则下列程序段执行后对象df中的数据将( )
import pandas as pd
df=pd.read_excel("cj.xls")
df.drop("学号",axis=1)
df.insert(3, '团员', '是')
df.sort_values("班级")
A.与Excel文件中的数据保持一致 B.减少“学号”数据列
C.按照“班级”升序排序 D.增加了“团员”列,该列的数据为“是”
8.在Python语言中,下面程序段运行结果是( )
p=1
for i in range(1,5):
p=p*i
print(p)
A.1 B.6 C.24 D.120
9.有如下Python程序段:
x=3
if x>=1:
x*=4
else:
x+=7
x/=2
print(x)
该程序段运行后,输出的结果为( )
A.12 B.10 C.6.0 D.5.0
10.有如下 Python 程序段:
s=0
n=1
while s<n*2:
s=s+n
n=n+1
print(s,n)
执行程序后,输出结果是( )
A.6 4 B.9 4 C.10 5 D.15 6
11.小赵收集了上周技术学科期中考试成绩的数据,如下图所示。
为了分析每个班级信息和通用的平均分,设计了如下Python程序。
import pandas as pd
df=pd.read_excel("技术成绩.xlsx")
df1=
print(df1)
划线处的代码应为( )
A.df.groupby("平均分").mean() B.df.groupby("班级").mean()
C.df["班级"].mean() D.df["班级"].groupby("平均分").mean()
12.有如下Python程序,程序执行,输入数据k之后输出的结果不正确的是( )
L=[8,10,9,14,13,4,9,13,10]
k=int(input('请输入k值:'))
j=0
for i in range(9):
if L[i]<=k:
L[j]=L[i]
j=j+1
print(L[:j])
A.k=8输出:[8,4] B.k=9 输出:[8,9,4,9]
C.k=10输出:[8,10,9,4,9,10] D.k=13输出:[8,10,9,13,4,9,13]
13.在Python中,执行以下语句后,显示的结果是( )
>>>x=3;y=12
>>>x+=1
>>>y//=x
>>>x+y
A.7 B.15 C.6 D.4
14.在Python中,运行以下代码后,变量i的值是( )
i=6
while i>=1:
print(i)
i=i-1
A.1 B.0 C.6 D.5
15.执行如下Python代码后,结果为( )
a=3
b=a*4
#b=b/6
print(b)
A.12 B.3 C.2 D.0.5
16.已知如下Python函数:
def f(x, n):
if n==1:
return x
else:
return x*f(x-1, n-1)
下面表达式值最大的为( )
A.f(5,6) B.f(5,7) C.f(-5,6) D.f(-5,7)
17.数组元素a[0]至 a[n-1]依次存放着n个数据,现需要将下标为 x(0≤x≤n-1)元素在逻辑上删除,例如:n为5,数组a为[1,3,5,7,9] ,x为2,删除操作后输出[1,3,7,9]。实现该功能的程序段如下,横线中应填入的正确代码为( )
a=[1,3,5,7,9]
n=len(a)
x=2
for i in range(① ):
②
print(a[:-1])
A.①x,n ②a[i-1]=a[i] B.①n-x ②a[i-1]=a[i] C.①x,n ②a[i]=a[i+1] D.①x-n,-1 ②a[i]=a[i+1]
二、填空题
18.在Python中, 可以用来实现代码的复用。
19.在Python中,range()函数可以生成一个整数序列,但是它生成的序列不包含序列的上限值,即range(10)会生成从0到 的序列。
20.编程语言中的 是一种数据类型,它允许存储一个范围的数值。
21.Python版“石头剪刀布”人机对战小游戏的代码运行结果及部分代码如下(不考虑输入有效性判断等)。
import random
hand=["石头","剪刀","布"]
s=input("请出拳:")
p=hand.index(s) #取s在列表hand中对应元素的序号
c=random.randint(0,2) #随机生成0,1,2三个数代表计算机出拳
print("人-"+s+",机-"+________)
if p-c in[-1,2]:
print("赢")
elif p-c==0:
print("平")
else:
print("输")
请根据程序运行结果补全代码: 。
22.写出运行结果。
a=int(input("请输入一个自然数:"))
b=int(input("请输入另一个自然数:"))
c=int(a/b)
print(c)
假如输入5和3
结果:
23.Python语言,在循环体中可以使用break语句和continue 语句控制程序的流程。 语句用于终止某个循环,使程序跳到循环体以外的第一个可执行语句。
三、判断题
24.使用内置函数open()且以“w”模式打开的文件,文件指针默认指向文件尾。( )
25.Python语言用于实现循环结构的语句有for语句和while语句。( )
26.执行语句x=y= z="pumpkin"后,变量x,y,z的值都是字符串“pumpkin”。( )
27.不论是选择结构还是循环结构,所有语句严格遵循缩进要求。( )
28.range(1,5)生成包含1到5的5个连续整数的序列。( )
29.在Python中,(1,2,3,4,5)属于列表类型。( )
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查Python程序。在这个程序段中,我们遍历列表a中的每个元素。for i in a这里的i依次表示列表a中的每个元素值。要找出大于60的数的个数,应该判断i是否大于60,即i>m。故答案为:B。
2.B
【详解】本题考查Python基础。
单分支要想实现双分支,需要编写else结构。选项A、C、D缺少else分支,其中选项C缺少冒号,选项D结构错误,多了then,故正确答案为:选项B。
3.C
【详解】本题考查分支结构的描述。分支结构的主要作用是根据不同的条件执行不同的代码。选项A描述的是循环结构的作用,选项B描述的是顺序结构的作用,选项D描述的是并行执行的情况。只有选项C正确描述了分支结构的作用。故选C。
4.A
【详解】本题考查Python基础。
字符串的第一个字符索引是0,故排除选项B、D。选项C,str[1:-1]的终止索引为-1,会缺少最后一个字符。故正确答案为:选项A。
5.C
【详解】本题考查Python基础。
选项C的正确的做法是使用 len(str) 而不是 str.len()。在Python中,len() 是一个内置函数,用于获取对象的长度(比如字符串、列表、元组等的长度),而不是字符串对象的方法。因此,应该使用 len(str) 来获取字符串 str 的长度。故正确答案为:选项C。
6.C
【详解】本题考查Python基础。
本题程序的功能是判断整数a的各位数字之和与整数a的位数的乘积是否为36,若乘积为36,则输出信息“通过检验!”,否则输出信息“不通过!”,整数1323的各位数字之和为1+3+2+3=9,位数为4,它们的乘积为36,因此答案为C。
7.D
【详解】本题考查Python基础。
drop函数、sort_values函数均不改变原有df对象中的数据,一般通过返回另一个DataFrame对象来存放改变后的数据,df.insert(3, '团员', '是')的功能是在第3列插入“团员”列,列数据为“是”,因此答案为D。
8.C
【详解】本题考查Python基础。
该程序功能:累乘range(1,5)生成的序列到变量p。循环遍历range(1,5)生成的序列,序列为初始值为1,终止值为5(不包括5)的序列,故为1、2、3、4。故正确答案为:选项C。
9.C
【详解】本题考查Python程序。x的初值为3,满足条件x>=1,因此先乘4,再除以2,除运算后产生实数值为6.0。故答案为:C。
10.C
【详解】本题考查程序分析。
初始化s=0,n=1。每次循环n累加1,s累加n。当累加n到s结果为10时,故s=1+2+3+4,此时n为5,退出循环。故正确答案为:选项C。
11.B
【详解】本题考查程序分析。
df.groupby("平均分").mean():这是不正确的,题目要求按照班级分组,而不是平均值。
df.groupby("班级").mean():这是正确的,因为它按“班级”列进行分组,并对每个班级的所有成绩(假设DataFrame中包含成绩列)计算平均值。
df["班级"].mean():这是不正确的,因为 df["班级"] 是一个Series对象,包含班级名称,而班级名称不是数值,因此不能计算平均值。
df["班级"].groupby("平均分").mean():这是语法错误的,因为 groupby 方法应该应用于DataFrame,而不是Series,且Series对象df["班级"] 不能基于另一个列(如“平均分”)进行分组。
故正确答案为:选项B。
12.D
【详解】本题考查程序分析。该程序功能,当输入值k大于等于当前遍历的L[i]值,将L[j]=L[i]。索引值j初始化为0,满足条件后j=j+1更新。当k=13时,输出结果为[8,10,9,13,4,9,13,10],故选项D不正确。故正确答案为:选项D。
13.A
【详解】本题考查Python基础。x+=1,则x=4。y//=x,则y=3。x+y结果为7。故选择A。
14.B
【详解】本题主要考查Python循环语句。变量i的初值是6,循环条件是i>=1,每次i递减1,当i=0时,循环结束,故本题选B选项。
15.A
【详解】本题考查Python程序。a=3将变量a赋值为3。b=a*4将a的值乘以4并赋值给b,所以b的值为12。#b=b/6这一行被注释掉了,因此不会执行,b的值保持为12。print(b)打印出b的值,即12。故答案为:A。
16.C
【详解】本题考查程序分析。程序为递归算法。故可知f(5,6)=0,f(5,7)=0,f(-5,6)=151200,f(-5,7)=-1663200。故选择C选项。
17.D
【详解】本题考查程序分析。需要指定range的参数,确定遍历的下标。range的参数可是使用负数索引,故从x-n到-1。每次遍历后一个数覆盖前一个数,实现删除,故a[i]=a[i+1]。正确答案为选项D。
18.函数和模块
【详解】本题考查Python函数的描述。在Python中,函数和模块是实现代码复用的主要方式。函数通过定义可重复使用的代码块来实现复用,而模块通过将相关的函数、类和变量组织在一起,方便在不同的程序中导入和使用。
19.9
【详解】本题考查Python函数。range()函数用于生成一个整数序列,但生成的序列不包含上限值。具体来说,range(10)会生成从0到9的整数序列,即包含起始值0但不包含上限值10。因此,range(10)会生成从0到9的序列。故答案为:9。
20.枚举(Enum)
【详解】本题考查数据类型。在编程语言中,枚举(Enum)是一种特殊的数据类型。它允许定义一组具有名称的相关常量值,这些常量值形成一个特定的范围。通过枚举,可以清晰地表达一组具有明确意义和范围的数值,增强代码的可读性和可维护性。例如,定义一周的天数为枚举类型,可以明确表示只能是周一到周日这几种取值,避免使用不明确的整数来表示。故答案为:枚举(Enum)。
21.hand[c]
【详解】本题考查Python程序设计相关内容。print是输出,这里要输出人和机器分别出什么。c是机器出的手势在列表hand中对应元素的序号,其手势开始表示为:hand[c],故此处答案为:hand[c]。
22.1
【详解】本题考查Python语句执行。 int() 函数用于将一个字符串或数字转换为整型。a=5,b=3,c=int(a/b)=int(5/3)=1,故输出结果是1。
23.break
【详解】本题主要考查循环语句的描述。Python语言,在循环体中可以使用break语句和continue 语句控制程序的流程。break语句用于终止某个循环,使程序跳到循环体以外的第一个可执行语句。continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
24.错误
【详解】本题考查Python基础。
这个说法错误。当你使用内置函数open()以“w”模式打开一个文件时,文件指针默认是指向文件的开头,而不是指向文件尾。
25.正确
【详解】本题考查Python程序设计相关内容。在Python中,循环结构允许多次执行相同的代码块,而不必手动重复代码。Python提供了两种主要的循环类型:for循环和while循环。故本题答案是:正确。
26.正确
【详解】本题考查Python程序设计相关内容。“=”是Python中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量。Python可以进行连续赋值,可以使用连续赋值方式将多个变量设置为相同的值。故本题答案是:正确。
27.正确
【详解】本题考查程序结构相关内容。不管是选择结构,还是循环结构,在写“语句块”的时候,务必注意代码缩进,且同一个代码块必须保证相同的缩进量。故本题答案是:正确。
28.错误
【详解】本题主要考查Python函数的描述。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(1, 5) 是[1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(1, 5) 等价于 range(1, 5, 1)。故表述错误。
29.错误
【详解】本题主要考查Python列表数据类型。Python中用[]方括号来表示列表,并用逗号分隔其中的元素,故表述错误。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$