内容正文:
第四章 程序设计基础
一、选择题
1.在Python中想要输出“Hello World”,用到的函数是( )
A.print() B.input () C.Hello World() D.math ()
2.在EPython 语言中,表示“a小于-2或者a大于2”的正确表达式是( )
A.a<-2 or a>2 B.-2>a>2
C.a>-2 or a<2 D.a<-2 and a>2
3.某自定义函数如下:
def func(x):
i=0;s="";num=0
while i < len(x):
if x[i] in "0123456789":
s+=x[i]
else:
num+=int(s)
s=""
i+=1
return num
调用自定义函数func("12a34t56")执行后输出的结果是( )
A.12 B.34 C.46 D.102
4.小明去网吧上网,普通包间3元一小时,高级包间4元一小时,豪华包间6元一小时,他决定用函数计算上网费用,如下:函效中的两个参数分别对应的是 、 ,豪华包间上网2小时的费用是 元。( )
A.上网时长 包间类型 12
B.包间类型 上网时长 12
C.上网时长 包间类型 8
D.包间类型 上网时长 8
5.以下关于变量的说法中不正确的是( )
A.变量是指在程序运行过程中取值可以改变的量
B.变量表示的是内存中的一个存储单元,一旦赋了值,其值就不能再改变
C.变量一旦赋了值,其值是取之不尽的,只有重新赋值,其值才会改变
D.变量一般要先赋值,然后才能通过调用变量名来使用变量的值
6.以下代码,可以输出A,B,C,的选项是( )
A.for i in range(3):
print(ord(65+i),end=",")
B.for i in [1,2,3]:
print(chr(65+i),end=",")
C.i = 0
while i < 3:
print(chr(i+65),end= “,”)
i += 1
continue
D.i = 0
while i < 3:
print(ord(i+65),end= “,”)
i += 1
7.输入三角形的三边长分别为5,6,7,下列赋值方法中有误的是( )
A.a=5;b=6;c=7 B.[a,b,c]=[5,6,7] C.a=5,b=6,c=7 D.a,b,c=5,6,7
8.已经L=[5,4,3,22,11],则print( len(L) )的执行结果是( )
A.7 B.6 C.5 D.4
9.有如下Python程序段:
s="BCAABB"
a=[i for i in range(6)]
for i in range(5):
for j in range(5-i):
if s[a[j]] < s[a[j+1]]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
执行该程序段后,输出的结果是( )
A.[2,4,3,0,5,1]
B.[2,3,0,4,5,1]
C.[1,0,4,5,2,3]
D.[1,0,5,4,3,2]
10.有如下Python程序段:
a={'<':0, '()':1, '[': 2, '{':3, '>': 4, ') ':5, '] ':6, '} ':7}
s1=input()
s=[8,0,0,0,0,0,0,0,0]
top=0; flag=True
for x in s1:
k=a[x]
if k<4:
if s[top]!=k:
flag=False
break
top+=1
s[top] =k
else:
if s[top]!=k-4:
flag=False
break
top-=1
if flag and top==0:
print ("YES")
else:
print ("NO")
若输出结果为“NO”,则s1输入的值是( )
A.{} []() <> B.[()]{<>} C.{[<()>]} D.{()[<>]}
11.在Python中,小明想编写程序实现交换变量a和b的值,第4行下划线处应该填写( )
1 a=12
2 B=24
3 pring(a,b)
4
5 pring(a,b)
A.a==b B.a,b=b,a C.a=b,b=a D.b<=>a
12.下列Python表达式的值等于2的是( )
A.2%5 B.2//5 C.(3>4)*2 D.4-3%5**2
13.有如下Python程序段:
lst = [5,9,2,6,4,7,3,0]
que = [0] * len(lst)
head = tail = 0
i = 0
while i < len(lst):
if lst[i] % 2 == 0:
que[tail] = lst.pop(i)
#lst.pop(i)删除列表lst中索引为i的元素,返回删除的元素
tail += 1
else:
i += 1
while head != tail:
lst.append(que[head])
head += 1
执行该程序段后,lst的值为( )
A.[5, 9, 7, 3, 2, 6, 4, 0] B.[5, 9, 7, 3, 0, 4, 6, 2]
C.[2, 6, 4, 0, 5, 9, 7, 3] D.[3, 7, 9, 5, 0, 4, 6, 2]
14.有如下Python程序段,若输入的数据为“321AqC56”,则输出的内容为( )
s=input("请输入要处理的数据:")
t=0;sum=0
for i in s:
if "0"<=i<="9":
t=t*10+int(i)
elif "A"<=i<="Z":
sum+=t
else:
t=0
print(sum)
A.642 B.321 C.698 D.377
15.某Python程序如下:
n=0
for i in range(32):
m=i;x=0
while m>0:
x+=m%2
m//=2
if x==3:
n+=1
print(n)
程序运行后,输出的结果是( )
A.3 B.5 C.10 D.32
16.有两个降序序列的链表a,b。现将链表b中的数据合并到链表a,形成一个新的降序序列存于链表a,实现数据合并的代码段如下:
a = [[98,1],[96,2],[95,3],[93,4],[90,-1]];b = [[99,1],[97,2],[94,3],[93,4],[92,-1]]
head_a = head_b = 0
pre = p = head_a;q = head_b
while q!=-1:
if p!=-1 and (1) :
pre=p
p=a[p][1]
else:
a.append( (2) )
if p==head_a:
pre=head_a=len(a)-1
else:
a[pre][1]= (3)
pre=len(a)-1
q=b[q][1]
上述程序段中可选填的语句为:
①a[p][0]>= b[q][0] ② a[p][0]<= b[q][0] ③q
④len(a)-1 ⑤[b[p][0],q] ⑥[b[q][0],p]
则划线处填写的语句依次为:( )
A.①⑥④ B.①⑤④ C.①⑥③ D.②⑥③
二、填空题
17."sun"in "sunday "的值为 。
18.Python 计算:
(1)Python 表达式4.5/2的值为 。
(2)Python表达式4.5//2的值为 。
(3)Python 表达式4.5%2的值为 。
(4)Python 表达式5%2的值为 。
(5)Python 表达式12/4-2+5*8/4%5/2的值为 。
19.为了便于游戏循环中反复调用,可以定义成一个函数 ,在绘制福字时,需要设置图像显示的位置,因此showfu中有两个参数,分别表示图像位置的 和 。
20.Python语言中,当a=4,b=2时,not(a==b)的值是 。
21.pygame模块提供了 、 等函数;random模块用于产生 ;sys模块包含了跟Python 相关的函数。
三、判断题
22.下列Python程序段运行结束后,赋值语句sum= sum+i 共被执行了9次。( )
sum=0
for i in range(1,20):
if i%2==0:
sum=sum+i
print(sum)
23.在Python语言中,student、_bmg、Teacher都是合法变量名。( )
24.常见的顺序结构语句有输入语句、输出语句和赋值语句。( )
25.Python语言具有面向对象、代码规范、函数库丰富、动态数据类型等特点。( )
四、操作题
26.输入一个正整数x,判断其奇偶性。
x = (input("请输入一个正整数:"))
if :
print(x, "是偶数。")
:
print(x, "是奇数。")
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查的是Python输出函数。在Python输出函数是print。故本题应选A。
2.A
【详解】题主要考查Python表达式的运算。and是“且”关系,or是“或”关系,故能正确表示条件“a小于-2或者a大于2”的表达式是a<-2 or a>2,故本题选A选项。
3.C
【详解】本题考查Python程序设计。程序遍历每个字符,如果为连续的数字字符,进行顺序连接,如检测到非数字字符,将之前的连续数字累加到num中,由于最后的数字“56”后面没有非数字字符,不能累加入num,因此最终结果是num=12+34=46。故选C。
4.A
【详解】本题主要考查Python条件分支结构。由代码可知,函效中的两个参数hour对应的是上网时长,style对应的是包间类型,豪华包间6元一小时,豪华包间上网2小时的费用是6*2=12,故本题选A选项。
5.B
【详解】本题考查的是变量相关知识。变量是指在程序运行过程中取值可以改变的量,变量一旦赋了值,其值是取之不尽的,只有重新赋值,其值才会改变,变量一般要先赋值,然后才能通过调用变量名来使用变量的值。故选项B说法不正确。
6.C
【详解】本题主要考查Python程序的执行。ord函数返回对应字符的 ASCII 数值,chr函数返回对应ASCII码对应的字符,故选项A、D无法输出A,B,C;选项B输出的是B,C,D,;选项C输出的是A,B,C,故本题选C选项。
7.C
【详解】本题考查Python表达式。在Python中,a=5,b=6,c=7这种写法是错误的,不能用逗号来同时给多个变量赋值。故答案为:C。
8.C
【详解】本题主要考查Python列表操作。已经L=[5,4,3,22,11],len(L)用于返回列表的长度为5,故本题选C选项。
9.C
【详解】本题主要考查Python程序的执行与调试。a=[i for i in range(6)]执行完,a=[0, 1, 2, 3, 4, 5]。第二个嵌套for循环,第一遍循环后,a=[1, 0, 2, 4, 5, 3];第二遍循环后,a=[1, 0, 4, 5, 2, 3];第三遍循环后,a=[1, 0, 4, 5, 2, 3];第四遍循环后,a=[1, 0, 4, 5, 2, 3];第五遍循环后,a=[1, 0, 4, 5, 2, 3],故本题选C选项。
10.ABCD
【详解】本题主要考查Python程序的执行与调试。若输出结果为“NO”,说明flag=False或top!=0,分析程序可知,选项ABCD,第一遍循环均满足k<4,且满足s[top]!=k,赋值flag=False,且退出循环,因此输出结果均是NO,故本题选ABCD选项。
11.B
【详解】本题考查的是Python赋值。实现交换变量a和b的值,可使用语句:a,b=b,a。故选项B正确。
12.A
【详解】本题考查的是Python表达式。%表示求余,//表示整除,**表示幂乘,*表示乘,2%5=2,2//5=0,(3>4)*2=0,4-3%5**2=1。故选A。
13.A
【详解】本题考查Python程序。这段代码的目的是将列表lst中的所有偶数移动到列表的末尾,同时保留它们的相对顺序。它通过以下步骤实现:首先,创建一个长度与lst相同的新列表que,并初始化头指针head和尾指针tail为0。然后,使用一个循环遍历列表lst中的每个元素。如果当前元素是偶数,则将其从lst中删除,并将其添加到que的末尾。同时,将尾指针tail加1。否则,将索引变量i加1以检查下一个元素。最后,使用另一个循环将que中的所有元素添加回lst的末尾。故lst中的数据是[5,9,7,3,2,6,4,0]。故答案为:A。
14.B
【详解】本题考查的是Python循环及选择语句。阅读程序可知,依次读取字符串s,如果是数字字符,则转换为数值,如果是大写字母,则将t累加到s中,其它字符则t置为0。若输入的数据为“321AqC56”,321转换为数值,下一个字符为A,故sum+=t后,sum=321,56后面没有大写字母,不累加到s中,故最后s的值为321,选项B正确。
15.C
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现统计0~31所有的整数转换为二进制中包含1的个数为3的数有多少个。满足的数有7、11、13、14、19、21、22、25、26、28,一共有10个,因此输出的结果是10,故本题选C选项。
16.A
【详解】本题主要考查Python程序的执行。
(1)由下面代码pre=p,p=a[p][1],即p指向了下一个节点,说明p节点的值大于q节点的值,故此处判断条件是a[p][0]>= b[q][0]。(2)如果不满足if判断条件,说明q节点的值比较大,将b[q][0]加入到列表a中,指针域是p,故填[b[q][0],p]。(3)如果p不等于head_a,此时 pre=head_a=len(a)-1,则更新pre节点的指针域为len(a)-1,q指向下一个节点,继续比较,故本题选A选项。
17.True
【详解】本题主要考查Python表达式。字符串sun是字符串sunday的字串,故"sun"in "sunday "的值为True。
18. 2.25 2.0 0.5 1 1.0
【详解】本题主要考查Python表达式的运算。“/”是除运算,“//”是整除运算,“%”是取余运算,故①4.5/2=2.25,②4.5//2=2.0,③4.5%2=0.5,④5%2=1,⑤12/4-2+5*8/4%5/2=3.0-2+0.0=1.0。
19. Showfu 横坐标 纵坐标
【详解】本题考查的是自定义函数。自定义函数是类似于过程的另一个程序模块,不同之处是函数执行完成后,函数的计算结果被送到函数的调用点上,供程序的后继部分继续进行处理。为了便于游戏循环中反复调用,可以定义成一个函数Showfu,在绘制福字时,需要设置图像显示的位置,因此showfu中有两个参数,分别表示图像位置的横坐标和纵坐标。
20.True
【详解】本题考查的是Python表达式。当a=4,b=2时,a==b值为:False,not取反,故not(a==b)的值是True。
21. 图像 声音 随机数 环境
【详解】本题考查的是Python的pygame模块。pygame模块提供了图像、声音等函数;random模块用于产生随机数;sys模块包含了跟Python环境相关的函数。
22.正确
【详解】本题考查Python程序设计相关内容。分析程序段,由条件判断语句i%2==0可知,只有当列表数值为偶数时才执行求和语句,而列表1-19之间的偶数有9个,那么赋值语句 sum= sum+i 共被执行了 9 次。故本题答案是:正确。
23.正确
【详解】本题考查Python变量命名规则。变量名称只能由数字,字母和下划线_组成,且不能以数字开头;变量名称区分大小写;不可以用python保留字(33个)命名,内置函数名虽然可以作为命名对象,但最好不要这样做,因为这样会覆盖其函数功能。故表述正确。
24.正确
【详解】本题考查的是顺序结构。常见的顺序结构语句有输入语句、输出语句和赋值语句。本题说法正确。
25.正确
【详解】本题考查的是Python。Python语言具有面向对象、代码规范、函数库丰富、动态数据类型等特点。说法正确。
26. int x%2==0 else
【详解】本题考查的是Python选择语句应用。input函数接收的是字符类型数据,要进行算术运算前必须转换为数值类型,故第一空应为:int;能被2整除就是偶数(除2余数等于0),故第二空应为:x%2==0;双分支选择语句格式:if……else……,故第三空应为:else。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$