内容正文:
第四章 程序设计基础
一、选择题
1.某DataFrame对象df,包含“学校”“考号”“姓名”“成绩”数据列,下列语句中,可以以学校为单位,只显示各校学生成绩平均值的是( )
A.df.groupby('学校').mean() B.df.groupby('成绩').mean()
C.df.groupby('学校').成绩.mean() D.df.groupby('学校').describe()
2.设a=8、b=6、c=5、d=3,表达式a==c and b!=c or c>d的值是( )
A.True B.1 C.False D.2
3.有如下Python程序段:
s=input("请输入一个仅由小写英文字母组成的字符串:")
st=[""]*len(s);top=-1
t=[-1]*26
for i in range(len(s)):
id=ord(s[i])-97
if t[id]==-1:
top+=1
st[top]=s[i]
t[id]=top
else:
first=t[id]
while top>=first and top!=-1:
num=ord(st[top])-97
t[num]=-1;top-=1
print(st[:top+1])
若从键盘输入的值为"hellopython",则输出的值为( )
A.['o','n'] B.['h','e','n']
C.['h','e','l','o','p','y','t','n'] D.['h','e','o','p','y','t','h','o','n']
4.以下关于变量的说法中不正确的是( )
A.变量是指在程序运行过程中取值可以改变的量
B.变量表示的是内存中的一个存储单元,一旦赋了值,其值就不能再改变
C.变量一旦赋了值,其值是取之不尽的,只有重新赋值,其值才会改变
D.变量一般要先赋值,然后才能通过调用变量名来使用变量的值
5.下列选项中不属于Python基本数据类型的是( )。
A.int B.float C.list D.bool
6.下列选项中,全部属于Python语言中的关系运算符的是( )
A.>、<、<> B.==、+=、-= C.>、<、= D.>=、<=、!=
7.s="中国女排精神"
t="女排精神"
下面python代码输出正确的是( )
A.print(s[2:4])和print(t[0:2])输出结果不相同
B.print(len(t))将输出数字4
C.print(s[2:4])将输出字符串"女"
D.print(t in s)将输出False
8.整型变量x存放了一个两位数,以下Python表达式中能正确求出x的数字之和的是( )。
A.(x%10)+x//10 B.(x%10)//10+x//10
C.(x/10)%10+x//10 D.(x%10)+x/10
9.在 Python 语言中,在 while 语句后面的条件不满足时就退出循环,但是,如果我们想在循环的过程中直接退出循环体,使用的命令是( )
A.len B.end C.break D.del
10.查找总分在600分以上并且性别为“男”的学生记录,其逻辑表达式为( )
A.‘总分’>600 OR 性别=‘男’ B.总分>600 AND 性别=男
C.‘总分’> 600 AND‘性别’=‘男’ D.总分>600 AND 性别=‘男’
11.有如下Python程序段:
import random
n = 8
a = [random,randint(0,9)for i in range(n)]
for t in range(2):
i=t+1
while i < n-1:
if t % 2 == 0:
if a[i-1] < a[i] and a[i] > a[i+1]:
i += 2
else:
a[i] += random. randint(0,9)
else:
if a[i-1] >a[i] and a[i] < a[i+1]:
i += 2
else:
a[i]-=random. randint(0,9)
运行后,数组 a 中的值可能是( )
A.[8,8,3,5,4,7,3,5] B.[5,11,10,18,8,9,0,2]
C.[1,2,1,4,0,10,-1,7] D.[7,12,5,17,9,19,-10,8]
12.下列程序段运行后,输出“*”的个数是( )
for i in range(2,11): print(“*”)
A.7 B.6 C.9 D.8
13.下面哪个不是Python合法的标识符( )
A.int_3 B.print
C.count D.__name__
14.已知变量a,b,c的值无序,下列程序段可以实现变量a,b,c按值非升序排列(即a>=b>=c)的是( )
A.
if a<b:
a,b=b,a
if a<c:
a,c=c,a
else:
b,c=c,b
print(a,b,c)
B.
if a<b:
a,b=b,a
elif b<c:
b,c=c,b
if a<c:
a,c=c,a
print(a,b,c)
C.
if a<b:
a,b=b,a
if a<c:
a,c=c,a
if b<c:
b,c=c,b
print(a,b,c)
D.
if a<b<c:
a,c=c,a
if b<c:
b,c=c,b
print(a,b,c)
A.A B.B C.C D.D
15.某算法的部分流程图如图所示。执行这部分流程后,s的值应为( )
A.-21 B.11 C.-5 D.1
16.某python程序如下,程序运行完后,输出s2的值是( )
s1="today"
s2=""
for c in s1:
s2=c+s2
print(s2)
A.today B.yadot C.odayt D.tdyoa
17.列表是Python中的序列类型,是可变的。以下关于列表的描述正确的是( )
A.列表中元素的数据类型必须是一样的 B.列表中的元素索引不能为负值
C.列表中的元素不能是列表类型 D.列表中元素的值可以修改
18.关于程序中的变量,以下说法中错误的是( )。
A.将数据存入某变量后,读取该变量中的值,不会改变该变量的值
B.将数据存入某变量以后就不能将新的数据存入该变量
C.将数据存入某变量以后可以将新的数据存入该变量
D.在一个问题的计算过程中,可能需要使用多个变量
19.在Python中,以下哪个关键字用于定义一个函数( )
A.function B.def C.define D.lambda
20.表达式 round(3. 7)的值为( )
A.3 B.4 C.3.7 D.3.0
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题主要考查DataFrame数据结构。AD选项按学校分组,显示所有数据的平均值;B选项按成绩分组;df.groupby('学校').成绩.mean()以学校为单位,只显示各校学生成绩平均值,故本题选C选项。
2.A
【详解】本题主要考查Python表达式的运算。设a=8、b=6、c=5、d=3,先运算表达式a==c and b!=c值为False,c>d值为True,因此表达式a==c and b!=c or c>d的值是True,故本题选A选项。
3.A
【详解】本题考查Python程序设计相关内容。分析程序可知,该程序功能是:若栈空,将当前元素入栈,列表t对应位置数值加1(计数),若top>=first and top!=-1,则将栈中元素全部出栈,列表t对应位置重置为-1。输入的值为"hellopython",“hel”均入栈,读取到第二个“l”时,将栈中元素全部出栈;“opyth”均入栈,读取到第二个“o”时,将栈中元素全部出栈;最终,st中仅存“on”。输出的值为“on”。故此处答案是A选项。
4.B
【详解】本题考查的是变量相关知识。变量是指在程序运行过程中取值可以改变的量,变量一旦赋了值,其值是取之不尽的,只有重新赋值,其值才会改变,变量一般要先赋值,然后才能通过调用变量名来使用变量的值。故选项B说法不正确。
5.C
【详解】本题主要考查Python数据类型。int、float、bool是Python基本数据类型,list是Python组合数据类型,故本题选C选项。
6.A
【详解】本题主要考查Python运算符。比较运算符也叫关系运算符,用于比较两者的关系。比较的结果返回True或False。运算符描述:大于表示为“>”、大于等于表示为“>=”、小于表示为“<”、小于等于表示为“<=”、等于表示为“==”、不等于表示为“!=”,故本题选A选项。
7.B
【详解】本题主要考查Python程序的执行。print(s[2:4])和print(t[0:2])输出结果相同,输出结果均是“女排”;print(len(t))将输出数字4;print(t in s)将输出True,故本题选B选项。
8.A
【详解】本题主要考查Python表达式的运算。“/”是除运算,“//”是整除,整型变量x存放了一个两位数,则个位数是x%10,十位数是x//10,则求出x的数字之和的是(x%10)+x//10,故本题选A选项。
9.C
【详解】本题考查的知识点是Python循环语句。在Python中,可以使用break语句退出循环。continue语句用于跳过当前循环的剩余部分并进入下一次循环,故本题应选C。
10.D
【详解】本题主要考查逻辑表达式。逻辑连接词“AND”表示两者同时满足,“or”表示满足其一即可,故查找总分在600分以上并且性别为“男”的学生记录,其逻辑表达式为:总分>600 AND 性别=‘男’,故本题选D选项。
11.C
【详解】本题考查Python程序。首先,通过import random导入了random模块。然后定义了变量n并赋值为8,表示生成列表的长度。利用列表解析生成了列表a,其中包含了n个随机生成的0到9之间的整数。使用了一个外层循环,循环次数为2,控制了整体的迭代次数。在内部循环中,定义了变量i,初始值为t+1,其中t是外层循环的迭代变量。内部循环的条件是i<n-1,保证不越界。在内部循环中,根据t的奇偶性分别进行不同的操作:当t为偶数时,判断a[i-1]<a[i] and a[i]>a[i+1]是否成立,如果成立,则将i增加2,否则将a[i]的值增加一个0到9之间的随机整数。当t为奇数时,判断a[i-1]>a[i] and a[i]<a[i+1]是否成立,如果成立,则将i增加2,否则将a[i]的值减少一个0到9之间的随机整数。最后输出列表a。A选项错误,a[1]=a[0],根据上述分析,必有a[1]>a[0]。B选项错误,a[2]=10,但整个程序只对a[2]的原始值做减法,因此a[2]的值小于等于9。D选项错误,a[5]-a[4]=10,然而在执行语句a[i] += random. Randint(0,9)时,增加的最大值为9。故答案为:C。
12.C
【详解】本题主要考查Python程序的执行。变量i的范围是2-10,故程序段运行后,输出“*”的个数是9,故本题选C选项。
13.B
【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。print是Python的关键字,不是合法的标识符,故本题选B选项。
14.C
【详解】本题考查分支结构程序实现。选项A两个if语句是分别独立的,所以第二个if语句的else表示只要a>=c一定交换b和c。选项B若a<b的情况下,并未比较b和c的大小。选项D若不满足a<b<c的情况下,并未比较a和c的大小关系。故选择C。
15.B
【详解】本题考查循环结构。初始化s=0,k=1,i=1,如果i<32不成立则输出s,否则s=s+k*i,k=-k,i=i*2,接着判断i<32是否成立,依次类推。详细步骤如下:
初始化s=0,k=1,i=1;
1<32成立,s=1,k=-1,i=2;
2<32成立,s=-1,k=1,i=4;
4<32成立,s=3,k=-1,i=8;
8<32成立,s=-5,k=1,i=16;
16<32成立,s=11,k=-1,i=32;
32<32不成立,输出s=11。
故选项B正确。
16.B
【详解】本题考查Python程序执行。分析程序可知,该程序实现将字符串s1逆序保存到s2中,s1="today",因此程序运行完后,输出s2的值是yadot,故选B。
17.D
【详解】本题考查的是Python列表。列表中元素的数据类型可以不一样;列表中索引号-1表示列表最后一个元;列表中的元素可以是列表类型;列表中元素的值可以修改。故本题应选D。
18.B
【详解】本题考查的是变量相关知识。变量是指在程序执行过程中其值可能随时发生改变的存储单元或数据。将数据存入某变量以后可以将新的数据存入该变量,故选项B错误。
19.B
【详解】本题考查Python函数相关内容。def是Python中用于定义函数的关键字。通过使用def关键字,可以定义一个函数,指定函数的名称、参数和函数体。故本题答案是B选项。
20.B
【详解】本题主要考查Python函数的应用。 round(3.7) 方法返回浮点数3.7的四舍五入值,即4,故本题选B选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$