内容正文:
第二节 程序设计语言基础知识
一、选择题
1.以下Python表达式运算结果为True的是( )
A.30//4<5 B.1.5+2.5==4.0 C.[2]in[1,2,3] D.3>5<=7
2.定义如下函数:
def f(s,n):
print(s[n-1],end=' ')
if n==1:
return
else:
return f(s,n-1)
s='abcd'
f(s,4)
程序运行结果是( )
A.a b c B.a b c d C.d c b D.d c b a
3.使用列表Ink模拟链表结构,head为头指针,每个节点包括性别、身高和后续指针。原链表按先男生再女生升序排列(如图a所示),现要修改各节点的链接关系,使得链表按先女生再男生升序排列(如图b所示),实现该功能的代码如下:
图a
图b
Ink=["男",178,1],["男",180,2],["男",185,3],["女",160,4],["女",172,5],["女",174,-1]]
head=0
t=head
pre=cur=Ink[head][2]
while Ink[cur][2]!=-1:
if Ink[cur][0]=="男":
pre=cur
cur=Ink[cur][2]
Ink[cur][2]=t
方框处应填入正确的代码为( )
A.
elif t==head:
head=cur
Ink[pre][2]=-1
break
B.
elif t==head:
head=pre
1nk[cur][2]=-1
break
C.
elif t==head:
head=cur
Ink[pre][2]=-1
else:
cur=Ink[cur][2]
D.
elif t==head:
head=pre
Ink[cur][2]=-1
else:
p=Ink[pre][2]
A.A B.B C.C D.D
4.有如下Python程序段:
import random
a=[0]*7
flag=[0]*10
a[0]=random. randint(1,9) #随机生成1~9之间的整数
if a[0]%2==0:
flag[a[0]]=1
i=1
while i<=6:
a[i]=random. randint(1,9)
if flag[a[i-1]]==1 or a[i]>=a[i-1]:
flag[a[i]]=1
i=i+1
若该程序段运行后a为[9,9,8,3,2,6,2],则flag的值为( )
A.[0,0,1,1,0,0,1,0,1,1] B.[0,0,1,0,0,0,1,0,0,0] C.[0,0,0,0,0,0,1,0,0,1] D.[0,1,0,0,0,0,1,0,0,0]
5.已知 x="书本,50",y=["书本",50],z={"书本":50},下列 python表达式的值为 True,正确的是( )
A.x[-4::-1]==y[0] B.x[3:5]==y[1] C.y[1] in z D.z[y[0]]==50
6.有如下python程序段:
s = "a5bc23d26t"; t = 0; res = ""
for i in range(len(s)):
if "0" <= s[i] <= "9":
t=t * 10 + int(s[i])
else:
t = (t + i) % len(s)
res = s[t] + res
程序运行后,变量res的值是( )
A."3ta2a" B."3dbct" C."a6d2t" D."3tb2a"
7.在Python编程语言中,以下哪个函数用于获取用户输入( )
A.input() B.output() C.read() D.write()
8.在Python中,优先级最高的算术运算符是( )
A.** B.% C.// D.*
9.运行以下代码后,输出的结果是( )
list=[1,25,2,50,75]
print(max(list),min(list))
A.1 75 B.75 1 C.1 2 D.50 75
10.有如下Python程序:
score=int(input())
if score>=90:
grade='A'
elif score>=60:
grade='B'
else:
grade='C'
print(score,grade)
运行程序,输入“78”后回车,程序的输出结果是( )
A.78 B B.78 A C.B 78 D.78 C
11.在Python中,函数int(-3.8)返回值是( )
A.-3 B.3.8 C.-4 D.3
12.数组元素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]
13.小明要编写一个程序,能实现对用户输入的数据,判断其为奇数还是偶数,请你帮他完成以下代码:在“if( )”处补充代码( )
n=int(input("请输入一个数: "))
if( ):
print("这是一个偶数")else:
print("这是一个奇数")
A.n/2==0 B.n//2==0 C.n%2==0 D.n%10==0
14.lst1和lst2都是升序排序的列表,执行如下Python程序段:
result=[]
i=0#用于遍历1st1
j=0#用于遍历1st2
while i<len(lst1) and j<len(lst2):#①
if lst1[i]<lst2[j]:
result.append(lst1[i])
i+=1
else:
result.append(lst2[j])
j+=1
while i<len(lst1):
result.append(lst1[i])#②
i+=1
while j<len(lst2):
result.append(lst2[j])#③
j+=1
下列说法不正确的是( )
A.程序段①执行后,result可能与lst1相同 B.程序段①执行后,result可能与lst2相同
C.在一次程序运行中,②处代码和③处代码可能都被执行 D.程序执行后,列表result中的元素升序排序
15.有如下Python程序段:
a=b=""
k=0
s=input().strip()
for i in range(len(s)):
if "0"<=s[i]<="9":
k+=1
else:
b=s[i-k:i]
if a < b:
a=b
k=0
print(a)
运行后若输入“3.803.93.520.888”(不包括引号),则输出的结果是( )
A.803 B.93 C.520 D.888
16.某客户购买的新能源汽车价格为t万元,可享受当地政府购车补贴,补贴标准如下:价格20万元(不含)以下,补贴0.25万元;价格20万元(含)至30万元(不含),补贴0.5万元;价格30万元(含)以上,补贴1万元。在下列选项中,计算实际购车价格p的程序代码正确的是( )
A.
p=t-0.25
if t>=20:
p=t-0.5
elif t>=30:
p=t-1
B.
p=t-1
if t<20:
p=t-0.25
elif t<30:
p=t-0.5
C.
p=t-0.25
if t>=30:
p=t-1
if t>=20:
p=t-0.5
D.
p=t-1
if t>=20:
p=t-0.5
else:
p=t-0.25
A.A B.B C.C D.D
17.关于队列,下列说法错误的是( )
A.队列是先进先出(FIFO)表,它的数据元素只能在一端依次添加(进队),在另一端依次删除(出队)
B.pop()方法可以删除列表的首元素(相当于队列的“出队”操作)
C.pop(0)方法可以删除列表的首元素(相当于队列的“出队”操作)
D.append方法可以在列表尾部添加一个数据元素(相当于队列的“入队”操作)
18.以下哪个Python代码片段正确实现了一个循环,当条件满足时退出循环( )
A.while condition: action() break
B.while condition: action() if condition == False: break
C.while condition: action() if condition: break
D.while condition: action() if not condition: break
二、填空题
19.写出下列Python程序运行结果。
def factorial(n):
#求n!
s=1
for i in range(2,n+1):
s=s*i
return s
total=factorial(4) #调用factorial函数
print(total)
运行结果为: 。
20.在Python中,使用 可以快速生成一个特定范围内的数列。
21.在程序的开始位置输入语句 numpy,即可导入Numpy模块。
22.某 Python 程序如下:
n = int (input ())
sum = a = 3
res = 0
i=1
while i <= n:
res = res + sum
sum = sum * 10 + a
i = i + 1
print (res)
当输入n值为3时,程序输出结果是 。
23.input( )函数的返回值的类型是 。
24.以下表达式int(-3.5)<abs(-3.1) and math.sqrt(4)>=int(3.5)的值是 。
三、判断题
25.Python中提供了三种除法运算,分别是:/、//、%,他们在解决实际问题中各自发挥着不同的作用。判断整数s的奇偶性时,通常看其能否被2整除,可用表达式s//2的结果进行判断。( )
26.汇编语言是面向机器的语言,其可读性相对较好,容易被移植。( )
27.在使用Python语言编写程序时,注释不会影响程序结果,所以没有必要写。( )
28.编译程序是指计算机把高级语言程序的每一条语句都编译成机器语言,并保存二进制文件后才能运行的程序。( )
四、操作题
29.编程实现以下功能,从键盘输入一个正整数,拆解这个正整数,把组成这个数的各位数通过列表的方式反转显示出来。请在序号处填写正确的代码,且不改变原程序的结构。
def qiugeweishu (num):
list=[ ] #定义一个空列表,放截取的数字
while ① :
② #取出正整数的个位数
list. append (x) #把截取出来的数字加入列表
③ #生成新的正整数
return list
num=int (input ( "输入大于0的整数"))
weishu=④ (num)
print (⑤ )
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查Python运算符与表达式相关内容。A选项,30//4<5-->7<5-->False。B选项,1.5+2.5==4.0-->4.0==4.0-->True。C选项,[2] in [1,2,3]-->False。D选项,3>5<=7-->False。故本题答案是B选项。
2.D
【详解】本题考查Python基础。
调用f(s,4),故先输出s[3],故字符d;调用f(s,3),故输出s[2],故字符c;调用f(s,2),故输出s[1],故输出字符b;调用f(s,1),故输出s[0],故字符a;故正确答案为:选项D。
3.C
【详解】本题考查程序分析。该程序需要更改女生最后元素的下一个指针到男生的第一个元素的指针,还需要更新头节点为女生的第一个元素。更新男生最后一个元素的下一个节点指针为-1,表示最后一个节点。选项A,错误。并不能正确更新女生最后元素的下一个指针到男生的第一个元素的指针。选项B,错误。应该更新cur指针到头节点。pre此时指向的是男生。选项D的错误与选项B类似,pre此时指向的是男生,头节点要更新到女生位置上。故正确答案为:选项C。
4.A
【详解】本题考查Python程序。程序首先生成一个1到9之间的随机整数作为a[0],并根据a[0]是否为偶数更新flag数组。然后通过while循环生成a[1]到a[6],每次生成新的随机数a[i],并根据前一个数a[i-1]的flag值或当前数a[i]是否大于等于前一个数a[i-1]来更新flag数组。当a为[9,9,8,3,2,6,2]时,根据以上步骤执行程序可知flag的值为[0,0,1,1,0,0,1,0,1,1]。故答案为:A。
5.D
【详解】本题考查Python程序设计相关内容。本题涉及到字符串、列表、字典相关知识。A选项,x[-4::-1]-->“本书”,y[0]-->“书本”,x[-4::-1]==y[0]-->“本书”==“书本”-->False,不符合题意。B选项,x[3:5]-->“50”,y[1]-->50,x[3:5]==y[1]-->“50”==50-->False,不符合题意。C选项,y[1]-->50,y[1] in z-->50 in z-->False,不符合题意。D选项,z[y[0]]==50-->50==50-->True,符合题意。故本题答案是D选项。
6.A
【详解】本题考查程序设计相同内容。分析程序段,其运行过程如图所示:
变量res的值是"3ta2a"。故本题答案是A选项。
7.A
【详解】本题考查Python函数的应用。在Python编程语言中,input()函数用于获取用户输入。output()、read()和write()函数并不用于直接获取用户输入。output()并不是Python中的标准函数,read()通常用于从文件中读取数据,write()通常用于向文件中写入数据。故选A。
8.A
【详解】本题考查Python运算符。在Python中,优先级最高的算术运算符是幂运算符**。故答案为:A。
9.B
【详解】本题考查的是Python函数。max是返回最大值,min是返回最小值,list=[1,25,2,50,75],max(list)=75,min(list)=1,故输出的结果为:75 1,选B。
10.A
【详解】本题主要考查Python多分支结构。输入78后回车,满足elif score>=60部分grade='B',故程序的输出结果是78 B。选A。
11.A
【详解】本题考查的是Python函数。int() 函数用于将一个字符串或数字转换为整型。int(-3.8)的返回值是-3。故选A。
12.D
【详解】本题考查程序分析。需要指定range的参数,确定遍历的下标。range的参数可是使用负数索引,故从x-n到-1。每次遍历后一个数覆盖前一个数,实现删除,故a[i]=a[i+1]。正确答案为选项D。
13.C
【详解】本题考查Python分支结构。在这段程序中,我们需要判断输入的正整数x是否为偶数。根据整数的奇偶性质,一个整数除以2的余数为0时,它就是偶数。因此,我们可以使用取余运算符(%)来判断x是否能被2整除,如果余数为0,则x是偶数,否则是奇数。C选项正确。
14.C
【详解】本题考查Python程序设计相关内容。分析题意可知,该代码段是连接两个升序列表lst1和lst2,使之成为一个新的升序列表result,D选项正确;有可能lst1中元素都比lst2中元素小,则执行完①后,result与lst1相同,A选项正确;同样道理,执行完①后,result与lst2也可能相同,B选项正确;选项C结论与lst1和lst2各自长度相关,两者有可能长度相等,此时执行完①后不再执行②③,有可能一长一短,要么执行②,要么执行③,该选项错误;故本题答案是C选项。
15.B
【详解】本题考查Python程序执行与调试。变量k统计了数字字符的个数,变量b保存了点号间的整个数字字符串,各字符串比较大小,将更大的字符串b保存于变量a中。因此输出结果是93。故选B。
16.B
【详解】本题考查的是Python多分支语句。选项A中,如果价格30万元(含)以上,满足if语句,不会执行elif语句,补贴0.5万元,不符合题意;选项C中,如果价格30万元(含)以上,也满足第二个if语句,补贴0.5万元,不符合题意;选项D中,如果价格30万元(含)以上,满足if语句,补贴0.5万元,不符合题意。故选B。
17.B
【详解】本题考查数据结构。pop()方法是删除列表的最后一个元素,而不是首元素,这是错误的。其它选项正确。故正确答案为选项B。
18.D
【详解】本题考查Python循环结构。选项D的代码片段在每次循环中执行action(),然后检查condition是否为False,如果是,则使用break退出循环。这是正确的实现方式。选项A在第一次循环中就会退出,选项B和C的条件检查不正确。故选D。
19.24
【详解】本题考查Python函数相关内容。该函数功能是计算阶乘(n!)。由s=s*i及range(2,n+1)可知返回值是s=1*2*3*……n,factorial(4)=1*2*3*4=24。故本题答案是:24。
20.range()
【详解】本题考查Python函数。在Python中,range()函数可以快速生成一个特定范围内的数列。通过指定起始值、终止值和步长等参数,range()函数能够灵活地创建符合需求的数字序列。例如,range(5)会生成包含0到4的数列;故答案为:range()。
21.import
【详解】本题考查模块。在Python中,要使用某个模块,需要使用import语句来导入。Numpy是Python中的一个重要的科学计算库,要使用它,就在程序开始位置输入import numpy来导入。故答案为:import。
22.369
【详解】本题考查的是Python循环语句。初始i=1,sum = a = 3,当输入n值为3时。
i<=3成立,res = res+sum=3, sum=sum*10+a=30+3=33,i=i+1=2;
i<=3成立,res = res+sum=36, sum=sum*10+a=330+3=333,i=i+1=3;
i<=3成立,res = res+sum=369, sum=sum*10+a=3330+3=3333,i=i+1=4;
i<=3不成立,故输出res为369。
23.字符串型
【详解】本题考查输入函数相关知识。input()函数是输入函数,用于接受一个标准输入数据,函数返回值是“字符串”类型。故本题答案是:字符串型
24.False
【详解】本题考查Python表达式。首先计算各个部分的值:int(-3.5)将-3.5转换为整数,结果为-3。abs(-3.1)计算-3.1的绝对值,结果为3.1。math.sqrt(4)计算4的平方根,结果为2.0。int(3.5)将3.5转换为整数,结果为3。接下来进行比较:比较int(-3.5)<abs(-3.1),即-3<3.1,结果为True。比较math.sqrt(4)>=int(3.5),即2.0>=3,结果为False。最后将两个结果用and连接:True and False的结果为False。故答案为:False。
25.错误
【详解】本题考查Python运算符相关内容。在Python中,提供了三种不同的除法运算:/ 运算符用于执行普通的除法运算,返回浮点数结果。// 运算符执行整数除法,返回不大于结果的最大整数。% 运算符执行取模运算,返回除法的余数。判断整数s的奇偶性时,通常看其能否被2整除。可以使用表达式s%2来判断s的奇偶性,如果结果为0,则s为偶数,否则为奇数。另外,也可以使用s//2来获得整数除法的结果,但这并不能直接用于判断奇偶性。故本题答案为:错误。
26.错误
【详解】本题考查汇编语言的描述。汇编语言是面向机器的语言,其可读性相对较好,但不容易被移植,开发难度大。故表述错误。
27.错误
【详解】本题主要考查Python注释语句。在Python程序中,注释语句可以增强程序的可读性,写注释非常有必要。题干说法错误。
28.正确
【详解】本题主要考查程序编译。编译程序是指计算机把高级语言程序的每一条语句都编译成机器语言,并保存二进制文件后才能运行的程序,故表述正确。
29. num>0 x=num%10 x=num//10 qiugeweishu weishu
【详解】本题考查Python程序设计相关内容。结合题目内容分析程序段,推知:若要实现功能要求,可以重复采用取余运算获得当前数值的个位数,采用整除运算获取除个位数外的数值,直到该数变为0结束,每获取一个个位数,就将其加入列表list。①处为循环条件,由分析可知,当num>0时重复执行操作,故此处答案为:num>0。②处,采用取余运算获得当前数值的个位数,故此处答案为:x=num%10。③处,采用整除运算获取除个位数外的数值,故此处答案为:x=num//10。④处,通过调用函数产生列表list的值并赋值给weishu,故此处答案为:qiugeweishu。⑤处,print函数作用是输出列表内容,故此处答案为:weishu。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$