内容正文:
4.1 程序设计语言的基础知识
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.在Python语言中,已知a=5,b=6,下列运行结果为False的是( )
A.a<b+2 B.a==b C.a+2>=b D.a<=b
2.有如下Python程序,若要测试该程序各分支代码是否正确,下列测试数据中最恰当的是( )
1 x=int(input("请输入一个数:"))
2 if x<=9:
3 x+= 1
4 else:
5 x=-x
6 print(x)
A.-9,0 B.10,11 C.9,10 D.8,10
3.以下运算优先级从高到低,排列正确的是( )
A.算术运算符>关系运算符>逻辑运算符 B.逻辑运算符>关系运算符>算术运算符
C.关系运算符>算术运算符>逻辑运算符 D.算术运算符>逻辑运算符>关系运算符
4.使用Python自带的队列模块queue可以更便捷地实现队列的操作,代码如下:
import queue
q=queue.Queue(5)
q.put("A") #字符A入队
q.put("B")
q.put("C")
已知get函数可以按照队列特性出队,若要使字符“C”从队列q中出队,正确的方法是( )
A.直接使用语句q.get("C") B.直接使用语句q.get()
C.使用两次语句q.get() D.使用三次语句q.get()
5.下列Python逻辑表达式中,值为True的是( )。
A.3/2!=1 B.′D′<′A′ C.5%3!=2 D.′G′==′g′
6.小明用python语言中对大小为100*100像素的图像“上.jpg”(如图所示)进行简单处理,部分代码如图:
程序执行后的图像效果是( )
A. B. C. D.
7.下面代码的执行结果是( )
object =["石榴",1,"香蕉","橙子","梨子"]
object .append("猕猴桃")
print (object)
A.["石榴",1,"香蕉","橙子","梨子"]
B.["石榴",1,"香蕉","橙子","梨子","猕猴桃"]
C.["猕猴桃","石榴",1,"香蕉","橙子","梨子"]
D.[1,"香蕉","橙子","梨子"]
8.下面Python程序段运行后输出( )
a=87
b=12
print(a,"-",b,"=",a-b)
A.a-b=75 B.a-b=a-b C.87-12=75 D.75
9.以下文本框内是一段用Python程序设计语言编写的源代码,功能是解决鸡兔同笼问题。这段源代码属于_______。
ji tu = int (input(’请输入鸡兔总数:’))
tui = int (input(’请输入腿的总数:’))
tu = (tui-ji tu*2)/2
if int (tu) = tu:
print (’鸡:’,ji tu-tu, ’ 兔:’,tu)
else:
print (’数据输入不正确’)
A.软件 B.程序 C.命令 D.指令
10.以下是实现正整数序列arr升序排列的程序代码段,则画线部分代码正确的是( )
arr=[7,4,2,13,6,5,3,6,17,1]
for i in range(1,len(arr)):
key=arr[i]
j=i
while :
arr[j]=arr[j-1]
j-=1
①j>0 and key<arr[j-1] ②j>=0 and key<arr[j-1] ③arr[j]=key ④arr[j-1]=key
A.①③ B.①④ C.②③ D.②④
11.汉诺塔游戏中,如果有n个木盘,第n个木盘是最大的木盘,用递归的方法求解,将n个木盘从A杆移动到C杆,需要借助中间的B杆。只要超过一个木盘,在移动过程中,总会存在起始杆、过渡杆及目标杆的问题。因此,定义函数时,用到了4个参数: hanoi(n,s,m,t), n表示需要移动的盘子数量,s表示盘子的起始杆,m表示中间过渡杆,t表示目标杆,如图4.3.4所示。
阅读下列程序。
def hanno(n,s,m,t):
if n==1:
print(s,'-->',t)
else:
hanno(n-1,s,t,m)
print(s,'-->',t)
hanno(n-1,m,s,t)
#主程序
n=int(input('请输入汉诺塔的层数:'))
hanno(n,'A','B','C')
input("运行完毕,请按回车键退出...")
下列说法错误的是( )
A.此递归没有终止结束条件
B.print(s,'-->',t)表示A杆上当前最后木盘移动到C杆上
C.hanno(n-1,s,t,m)表示A杆有n个盘子现将前n-1个盘子从A杆移动到B杆上
D.hanno(n-1,m,s,t)表示将B杆上的n-1个盘子移动到C杆上
12.在Python当中运行以下程序时,按提示输入密码为“123456”,则得到的运行结果是( )
psw=input('请输入您的密码:')
if psw=='000000':
print('欢迎您')
A.请输入您的密码 B.000000 C.欢迎您 D.无结果显示
13.某Python程序如下:
d={"A":1,"B":2,"C":3,"D":4,"E":5}
a=d["E"]
b=d["D"]
c=d["B"]
s=a+b+c
print(s)
程序运行后,输出的结果是( )
A.8 B.9 C.10 D.11
14.有如下Python程序:
1 import numpy as np
2 from matplotlib import pyplot as plt
3 x=np. arange(-5,5,0.1)
4 y=np. sin(x)
5 plt. plot(x,y)
程序运行后,不显示运行结果,原因是( )
A.代码编写错误
B.X的范围超出边界
C.Y的范围超出边界
D.缺少语句show( )
15.有如下Python程序段:
import pandas as pd
PM25= [98, 45, 120]
weekday=["星期一", "星期二", "星期三"]
s=pd.Series(PM25, index=weekday) #创建Series对象时指定索引
print(s)
该程序段运行后的输出结果是( )
A.[98 45 120] B.["星期一","星期二","星期三"叮]
C. D.
16.用python程序对分辨率为500*500的白色背景图像文件white.jpg(如图所示)进行处理,代码如下:
from PIL import Image
im = Image.open("white.jpg")
pix = im.load()
width = im.size[0] #获取图像宽度值
height = im.size[1] #获取图像高度值
for x in range(width):
for y in range(height):
if x<=width//2 and y<=height//2:
if x%50==0 or y%50==0 :
pix[x,y]=(0,0,0)
elif y>height//2:
if x==y or width-x==y :
pix[x,y]=(0,0,0)
im.show ()
white.jpg
程序执行后的图像效果是( )
A. B.
C. D.
17.在下面程序中,分别输入两个数2和3,运行的结果是( )
A.‘222’ B.6 C.3 D.2
18.有如下Python程序段:
a=[5,14,3,12,6,7,3,9,20,1]
l=min(a);r=max(a)
#min 取列表最小值,max 取列表最大值
maxi=3
while l<=r:
mid=(l+r)//2
cnt=0
for i in a:
if mid < i:
cnt+=1
if cnt < maxi:
r=mid-1
else:
l=mid+1
上述程序段执行结束,下列说法正确的是:( )
A.a列表中第3大的数r B.cnt的值为2
C.l的值为12 D.mid=(l+r)//2代码执行3次
19.有如下Python程序段:
def sym(d1, d2):
s1 = d1.split(",") # 以“,”将字符串分割成列表
s2 = d2.split(",")
if len(s1) != len(s2):
return False
stk = [];
i = 0
j = 0
while i < len(s1):
stk.append(s1[i])
i += 1
while stk != [] and stk[-1] == s2[j]:
stk.pop() #删除列表stk中的最后一个元素
j += 1
return stk == [] and i == j
L1 = "@,a,b,3,c,d"
L2 = input()
print(sym(L1, L2))
执行该程序段后,若输出结果为True,则L2输入的值可能是( )
A.a,b,c,d,3 B.c,d,3,b,@,a C.b,a,@,3,d,c D.d,c,3,@,a,b
20.已知a="python",则a[1]的值为( )
A."p" B."py" C."python" D."y"
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题主要考查Python表达式的运算。a=5,b=6,显然表达式a==b的值为False,故本题选B选项。
2.C
【详解】本题主要考查Python分支结构的应用。当x<=9时,执行x=x+1,反之执行x=-x,显然当x=9时,输出值x=x+1=10,故本题选C选项。
3.A
【详解】本题考查Python运算符优先级相关内容。算术运算符>关系运算符>赋值运算符>逻辑运算符。故选A。
4.D
【详解】本题考查队列的知识。根据题意可知,Queue属于是先进先出型队列,‘A’‘B’‘C’依次入队,那么‘C’要出队,‘A’‘B’必须要先出去,所以需要使用三次语句q.get()故答案为:D。
5.A
【详解】本题考查逻辑表达式。3/2 表示的是浮点数1.5,而不等于1,因此条件为True。A选项正确。字符串比较是按照ASCII码进行的,'D'的ASCII码大于'A',因此条件为False。B选项错误。5 % 3 的余数是2,等于2,因此条件为False。C选项错误。字符串比较区分大小写,'G'与'g'不相等,因此条件为False。D选项错误。故答案为:A。
6.D
【详解】本题主要考查Python程序的执行。阅读程序,转换为数字矩阵可排除选项B和选项C,用变量i来表示行,j表示列,内层循环执行完1次,即处理1列的信息,可以排除选项A。 故本题选D选项。
7.B
【详解】本题考查的是Python列表。append函数会在列表后加上相应的元素,故程序执行的结果是:["石榴",1,"香蕉","橙子","梨子","猕猴桃"]。选项B正确。
8.C
【详解】本题主要考查Python程序的执行。分析程序可知,程序段运行后输出87-12=75 ,故本题选C选项。
9.B
【详解】本题主要考查Python程序设计语言。代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。根据题意,文本框内是一段用Python程序设计语言编写的源代码,这段源代码属于源程序,故本题选B选项。
10.A
【详解】本题主要考查Python程序的调试。分析程序可知,while程序实现将key,即索引i处的数字与之前的数进行比较,依次后移将key放到合适的位置,以使i及之前的整数呈升序排序,故第一空填j>0 and key<arr[j-1]。while循环结束后将key放到索引j处,故第二空填arr[j]=key,故本题选A选项。
11.A
【详解】本题主要考查递归算法及Python程序实现。此递归终止结束条件是当n=1时,执行 print(s,'-->',t) ;print(s,'-->',t)表示A杆上当前最后木盘移动到C杆上;hanno(n-1,s,t,m)表示A杆有n个盘子现将前n-1个盘子从A杆移动到B杆上;hanno(n-1,m,s,t)表示将B杆上的n-1个盘子移动到C杆上,故本题选A选项。
12.D
【详解】本题考查Python分支结构的应用。当输入密码psw是000000时,才输出欢迎您。输入其他密码均无结果显示。故选D。
【点睛】
13.D
【详解】本题考查Python输出结果。这个程序创建了一个字典d,然后使用字典中的值进行一系列操作。对程序逐步分析:字典d包含了5个键值对,其中键(Key)是字母,值(Value)是整数。a=d["E"],这里将字典d中键为"E"的值(5)赋给了变量a。b=d["D"],这里将字典d中键为"D"的值(4)赋给了变量b。c=d["B"],这里将字典d中键为"B"的值(2)赋给了变量c。s=a+b+c,将变量a、b和c的值相加,得到s的值。a的值是5。b的值是4。c的值是2。所以,s=5+4+2=11。故答案为D选项。
14.D
【详解】本题主要考查Python程序调试。plt.show()用于显示所绘制的图像。程序运行后,不显示运行结果,原因是缺少语句show( ),故本题选D选项。
15.C
【详解】本题主要考查Python程序的执行。由代码“s=pd.Series(PM25, index=weekday)”可知这是一个一维数组结构,索引是weekday,故输出的结果是,故本题选C选项
16.B
【详解】本题主要考查Python程序处理图像。分析程序可知,当满足if分支,即x<=width//2 and y<=height//2,即处理图像的第二象限,每隔50像素画一条线。当满足elif分支,即y>height//2时,即处理图像的第三、四象限,当满足y=x或y=width-x时,画一条线,选项B符合,故选B。
17.A
【详解】本题考查的是Python输入输出语句。input接收的是字符数据,int是转换为整数。分别输入两个数2和3,则a*b表示连续输出3个a里面的字符,即‘222’,选项A正确。
18.C
【详解】本题主要考查Python程序的执行与调试。l=1,r=20,maxi=3
第一遍循环,mid=10,cnt=3,l=mid+1=11;
第二遍循环,mid=15,cnt=1,r=mid-1=14;
第三遍循环,mid=12,cnt=2,r=mid-1=11;
第四遍循环,mid=11,cnt=3,l=mid+1=12,循环结束,故l的值为12,故本题选C选项。
19.C
【详解】本题考查栈结构。这段代码定义了一个名为 sym 的函数,它接受两个字符串参数 d1 和 d2。d1是进栈序列,d2是出栈序列,其目的是用于检测d2是否是d1的出栈的结果。首先,函数使用 split 方法将两个字符串以逗号为分隔符分割成列表 s1 和 s2。然后检查两个列表的长度是否相等,如果不相等则返回 False。接下来,函数创建一个空栈 stk 和两个索引变量 i 和 j。在一个循环中,函数遍历列表 s1 的每个元素,并将其添加到栈中。然后在一个内部循环中,如果栈不为空且栈顶元素等于列表 s2 中的当前元素,则弹出栈顶元素并增加索引变量 j。最后,函数检查栈是否为空且索引变量 i 和 j 是否相等。如果都满足,则返回 True,否则返回 False。经检验可知,仅有C选项符合条件。故答案为:C。
20.D
【详解】本题主要考查Python字符串操作。Python字符串的索引从0开始,a="python",则a[1]的值为"y",故本题选D选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$