内容正文:
第2章 算法与程序实现
一、选择题
1.小明要把x个苹果平均分给n个同学,最后余下y个。以下Python表达式正确的是( )
A.y=x//n B.y=x%n C.x=y+n D.y=x/n
2.以下文本框内是一段用Python程序设计语言编写的源代码,功能是两数求和。这段源代码属于( )
a=int(input(‘请输入第1个数:’))
b=int(input(‘请输入第2个数:’))
print(a+b)
A.指令 B.程序 C.软件 D.命令
3.下列关于算法要素的说法正确的是( )
A.用计算机解决问题的本质是“控制转移”
B.各种运算的顺序不同,需要借助“数据运算”来调控运算顺序
C.“初始数据”在运算时产生,“结果数据”代表着问题解决
D.根据运算结果的特点进行不同处理时,需用“控制转移”执行不同操作
4.如何在Python中检查字符串是否包含子字符串“world”( )
A."hello world".find("world") != -1 B."hello world".count("world") > 0
C."world" in "hello world" D.all of the above
5.在Python中,如果a=100,b=200,c=300,d=400,x=240,那么print(not x>a and x<d or x<b)的运行结果是( )。
A.200 B.300 C.False D.True
6.小王同学写了Python程序,来判断一行诗是否为回文诗句,代码如下:
s=input("请输入一句古诗:")
if :
print(s,"是回文诗!")
else:
print(s,"不是回文诗!")
加框处代码可替换为以下哪个选项,以实现相同功能( )
A.s==s[len(s)-1:0:-1] B.s==s[-1:-len(s)+1:-1]
C.s[:len(s)//2]==s[-1:(len(s)-1)//2] D.s[:len(s)//2]==s[-1:-(len(s)//2)-1:-1]
7.在Python中,以下语句不合法的是( )
A.x=y=10 B.x=(y=10) C.x+=x+y D.x.y=y,x
8.在Python中执行下列代码后,输出的结果是( )
A.[1,3,5,7,9] B.[1,6,3,7,9] C.[1,3,5,9] D.[1,3,6,7,9]
9.下列Python 表达式的结果值最小的是( )
A.len("Python")*3 B.ord("A")-48 C.int("5"+"5")//3 D.abs(-14)+1**2
10.下列表达式的值为True的是( )
A.3> 2> 2 B.2!=5 or 0 C.5<5 D.1 and 5==0
11.某算法的部分流程图如图所示,执行这部分流程图,依次输入12,20,-15,45,9,则输出b的值是( )
A.12 B.-15 C.45 D.9
12.所谓“水仙花数”是指这样一个三位数,其各位数字的三次方之和等于该数本身。例如:153=13+53+33,故153是水仙花数。下面的Python 程序用于输出100到999之间的水仙花数,程序中第5行下划线处应填写的代码是( )
1 for i in range(100,100):
2 b = i// 100 #百位
3 s = i // 10 % 10 #十位
4 g = i % 10 #个位
5 if :
6 print(i)
A.i==b**3+s**3+g**3 B.i==b**2+s**2+g**2 C.i==b*3+s*3+g*3 D.i==b*2+s*2+g*2
13.某算法的部分流程图如图所示,执行这部分流程,输入变量n的值为7,则以下错误的是( )
A.该流程执行后,变量a的值为5 B.该流程执行后,变量b的值为8
C.该流程执行后,程序输出的值为6 D.语句c<=n?共执行了4次
14.有如下Python函数mydel,功能是在非空列表lst中找第一个数据x并删除,划线处的正确代码为( )
def mydel(lst, x):
for i in range(len(lst)):
if lst[i]==x:
break
else:
return("找不到想删除的数据")
for j in range(① ):
lst[j]=lst[j+1]
lst.pop() #pop()方法的功能是删除列表最后一个数据
A.i, len(lst)-1 B.i, len(lst)-2 C.len(lst)-1, i, -1 D.len(lst)-2, i-1, -1
15.有如下程序段:
以上程序运行后,列表 a 的值可能是( )
A.[2,5,10,10,10,9] B.[3,8,7,13,3,9]
C.[8, 12, 3, 5, 3, 11] D.[6,10,9,7,10,8]
二、填空题
16.角谷猜想。角谷猜想是指一个正整数y,如果y是奇数,则将其乘以3,然后再加1;如果是偶数,则将其除以2。这样经过若干次运算后,总可以得到自然数1。
小明根据角谷猜想进行了算法设计,并用如下流程图来描述该算法。
请回答下列问题:
(1)根据本题算法的流程图所示,则流程图中①②处应填写的内容分别是:① ;② 。
(2)若输入y的值为10,则输出的运算次数为 。(填数字)
17.小申同学得到的关于共享单车使用情况的数据文件中,发现有如下图中方框中的数据属于 ① 值,可以对此类数据进行处理可用pandas库中的 ② 函数。其语句可以为:df.②(subset=[‘bike_id’,’datetime’],keep=’first’,inplace= ③ )。图中圈出数据记录中有 ④ 值,识别该值的方法是使用 ⑤ 函数,若返回值是Tru13÷500e,则说明此处有缺失值,若要删除缺失值记录可采用的方法是 ⑥ 函数。
A.drop_ duplicates ( ) B.dropna ( ) C.isnull( ) D.notnull ( )E.重复值 F.缺失值 G.异常值 H.True I.False
18.函数执行完成后,由 将表达式的值返回给调用者,结束函数。
19.在编制计算机程序解决问题的过程中,学习小组经历了(1) 、(2) 、(3)编写程序 、 (4)分析问题 这些过程,请你为这些过程进行正确的排序 (提示:写出序号即可)。
20.下图所示的算法流程图:
执行情况如下:
当输入a、b的值分别为3、8时,输出结果为5
当输入a、b的值分别为11、7时,输出结果为4
问题一:下列流程图填入虚线框中,符合条件的是 。
A B C
问题二:依据问题一所选流程图,当输入a、b的值分别为9、6时,输出结果为 。
21.阅读下列程序,写出运行结果
s = 1
for i in range(1,10,3):
s = s *iprint(s)
运行输出结果是:
三、判断题
22.当作为条件表达式时,空值、空字符串、空列表、空元组、空字典、空集合以及任意形式的数字0都等价于False。( )
23.网络爬虫是种程序或脚本,通过它可以将非结构化数据从网页中抽取出来,并以结构化的方式存储为本地数据文件。( )
24.Python语言的变量名要区分英文字母的大小写。( )
25.算法有至少有一个输入,不一定有输出。 ( )
四、操作题
26.学生通过实验得到了以下实验数据:
欧姆定律实验观察数据
电阻R/Ω
5
10
15
20
25
30
电流I/mA
586
291
198
143
101
98
import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize
x=[5,10,15,20,25,30]
y=[586,291,198,143,101,98]
plt.title("欧姆定律")
plt.xlabel("R/Ω")
plt.ylabel("I/mA")
plt.show()
(1)以上python程序当中,变量x的数据类型是 。
(2)以上python程序中,下划线处应填入 。
(3)pyplot库常用来绘图,该库是 的子库。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题主要考查Python表达式。把x个苹果平均分给n个同学,最后余下y个。可以把x看作被除数,n看作除数,y看作余数,可得表达式为:y=x%n,故本题选B选项。
2.B
【详解】本题主要考查Python程序。分析可知,这段源代码属于程序,故本题选B选项。
3.D
【详解】本题考查算法相关内容。A选项,用计算机解决问题的本质是“数据运算”,选项错误。B选项,各种运算的顺序不同,需用“控制转移”调控运算顺序,选项错误。C选项,在运算时产生的是“中间数据”,选项错误。D选项,根据运算结果的特点进行不同处理时,需用“控制转移”执行不同操作,选项正确。故本题答案是D选项。
4.C
【详解】本题考查Python字符串。"world" in "hello world"是检查字符串是否包含子字符串的一种简洁方法,返回True或False。故答案为:C。
5.C
【详解】本题主要考查Python表达式的运算。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。优先级关系or<and<not,a=100,b=200,c=300,d=400,x=240,故表达式not x>a and x<d or x<b)值为False,故本题选C选项。
6.D
【详解】本题考查Python程序。要判断一个字符串是否为回文,需要比较字符串的前半部分和后半部分的逆序是否相等。我们分析各选项的含义:s==s[len(s)-1:0:-1]:这段代码从倒数第二个字符开始逆序到第一个字符,少比较了第一个字符和最后一个字符,错误。s==s[-1:-len(s)+1:-1]:这段代码从最后一个字符逆序到第二个字符,少比较了第一个字符,错误。s[:len(s)//2]==s[-1:(len(s)-1)//2]:这段代码将字符串前半部分和后半部分进行比较,但后半部分的索引不正确,错误。s[:len(s)//2]==s[-1:-(len(s)//2)-1:-1]:这段代码将字符串前半部分与后半部分的逆序进行比较,正确。因此,加框处代码可替换为D选项。故答案为:D。
7.B
【详解】本题考查Python语句。在Python中,赋值操作不能出现在表达式内部,不能将赋值语句作为另一个赋值语句的一部分,因此x=(y=10)语句不合法。故答案为:B。
8.D
【详解】本题主要考查Python程序的执行。s.insert(2,6)表示在索引2处插入元素6,此时s=[1, 3, 6, 5, 7, 9],del s[3]表示删除索引为3的元素,即删除5,此时s=[1, 3, 6, 7, 9],故本题选D选项。
9.D
【详解】本题考查的是Python表达式。len("Python")*3=18,ord("A")-48=17,int("5"+"5")//3=18,abs(-14)+1**2=15,故本题应选D。
10.B
【详解】本题考查的是Python表达式。3> 2> 2、5<5、1 and 5==0值均为False,2!=5 or 0值为True。故本题应选B。
11.C
【详解】本题主要考查算法流程图。输入b=12,i=1,i<=4,a=20,满足a>b,b=a=20,i=i+1=2,满足i<=4,输入a=-15,不满足a>b,i=i+1=3,满足i<=4,输入a=45,满足a>b,b=a=45,i=i+1=4,满足i<=4,输入a=9,不满足a>b,i=i+1=5,退出循环,输出b=45,故本题选C选项。
12.A
【详解】本题主要考查Python程序的调试。所谓“水仙花数”是指这样一个三位数,其各位数字的三次方之和等于该数本身。Python程序中,幂运算符是“**”,故此处填i==b**3+s**3+ g**3,故本题选A选项。
13.D
【详解】本题考查流程图。执行过程各变量的值变化如下:
a
1
1
2
3
5
b
1
2
3
5
8
c
1
2
3
5
8
i
2
3
4
5
6
语句c<=n?共执行了5次,故本题应选D。
14.A
【详解】本题考查的是Python循环语句。第一个循环跳出时,找到第一个数据x的索引号i, 由lst[j]=lst[j+1],可知删除的时候从i开始后面数据往前移,直到最后一个数据(索引号为:len(lst)-1)。故选A。
15.C
【详解】本题主要考查Python程序的执行与调试。分析程序,a[i]=random. randint(1,5)*2+1,第一个for循环执行完a[0]~a[6]随机生成3、5、7、9、11之间的数,第二个while循环中,前5个元素参与运算,如果相邻元素呈降序,则交换,否则a[i]递增1。选项A中a[0]不可能为2,选项B中a[3]不可能为13,选项D中a[0]不可能为6,故以上程序运行后,列表a的值可能是:[8,12,3,5,3,11],故本题选C选项。
16. y==1?或y<=1?或y等于1吗? y←3y+1或y←3*y+1或y←3×y+1,←改为等号也算对 6
【详解】本题考查算法设计。
(1)根据题目描述可知,①处条件为“y等于1吗?”,也可表示为“y==1?”或“y<=1?”;②处表示y为奇数时的情况,根据题意可得y←3*y+1,也可以表示为y←3y+1;(2)y为10时,运算过程为:10→5→16→8→4→2→1,共运算6次。
17. E A H F C B
【详解】本题主要考查Python程序设计。下图中方框中的数据属于重复值,可以对此类数据进行处理可用pandas库中的drop_ duplicates ( ) 函数(去重函数)。其语句可以为:df.drop_ duplicates ( )(subset=[‘bike_id’,’datetime’],keep=’first’,inplace=False )。图中圈出数据记录中有缺失值,识别该值的方法是使用isnull( )函数(判断是否为空函数),若返回值是Tru13÷500e,则说明此处有缺失值,若要删除缺失值记录可采用的方法是dropna ( )函数。
18.return语句
【详解】本题考查的是Python函数。函数执行完成后,由return语句将表达式的值返回给调用者,结束函数。
19. 设计算法 调试运行程序 (4)(1)(3)(2)
【详解】本题考查计算机编程解决问题相关内容。利用计算机程序解决问题的一般过程是:分析问题、设计算法、编写程序、运行调试。题目内容中正确的顺序是(4)(1)(3)(2)。
20. C 3
【详解】本题考查的是流程图识读。(1)依据执行情况,可知输出的c值是大的数减小的数,故列流程图填入虚线框中,符合条件的是C选项。(2)依据问题一所选流程图,当输入a、b的值分别为9、6时,输出结果为:9-6=3。
21.28
【详解】本题考查的是Python循环语句及range函数。range()函数格式:range(起始值,结束值,步长)。注意:结束值不包含;步长可省略,默认为1。range(1,10,3)生成的是列表[1,4,7]。故s=1*1*4*7=28。
22.正确
【详解】本题考查Python基础。
空值 (None):这是Python中的一个特殊类型,用于表示“无”或“空”的概念。在布尔上下文中,它被视为False。
空字符串 ('' 或 ""):无论是单引号还是双引号定义的空字符串,在布尔上下文中都被视为False。
空列表 ([]):一个不包含任何元素的列表,在布尔上下文中被视为False。
空元组 (()):一个不包含任何元素的元组,在布尔上下文中也被视为False。
空字典 ({}):一个不包含任何键值对的字典,在布尔上下文中被视为False。
空集合 (set()):一个不包含任何元素的集合,在布尔上下文中被视为False。
任意形式的数字0,在Python中,整数0、浮点数0.0等,在布尔上下文中都被视为False。
故正确。
23.正确
【详解】本题考查网络爬虫。网络爬虫就是一种能够按照一定的规则,自动地抓取万维网信息的程序或者脚本。它能够从网页中提取出所需的非结构化数据,并将其整理成结构化的形式,存储为本地的数据文件,以便后续的分析和处理。故说法正确。
24.正确
【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。
25.错
【详解】本题考查的是算法特征。算法的五大特征:有穷性、确定性、能行性(可行性)、有 0 个或多个输入、有一个或多个输出。故题干中的说法是错误的。
26. 列表 plt.scatter(x,y) matplotlib
【详解】本题考查的是Python综合应用。
(1)在 Python 中,列表用方括号编写。x=[5,10,15,20,25,30],故变量x的数据类型是列表。
(2)由图中可知画的是散点图。scatter函数用于创建散点图,故划线处应为: plt.scatter(x,y)。
(3)pyplot库常用来绘图,该库是matplotlib的子库。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$