第2单元 编程计算
一、选择题
1.用计算机解决问题的一般经历下面几个过程:①设计算法,②编写程序,③调试运行,④抽象建模。下面排序正确的是( )
A.④①③② B.①②③④ C.③④①② D.④①②③
2.某算法的部分流程图如图所示。执行这部分流程后,s的值应为( )
A.-21 B.11 C.-5 D.1
3.求解方程ax2+bx+c=0(a≠0),如果用计算机编程去实现这样的过程,用到的主要算法结构是( )
A.分支结构 B.嵌套结构 C.循环结构 D.顺序结构
4.有如下Python程序段:
import random
c=0
s=0
for i in range(0,10):
n=random. randint(1,101)
if n%2==0 :
s+=i
c+=l
该程序段被执行后,下列说法不正确的是:( )
A.把程序s+=i改为s=s+i后,得到的结果是一样的。
B.i=10
C.语句c+=1可能执行了10次
D.变量s中存储的生成的10个随机数中偶数对应i相加的和
5.阅读下列用python解一元二次方程的程序代码。
import ①
a=float(input("请输入方程系数a(!=0):"))
b=float(input("请输入方程系数b:"))
c=float(input("请输入方程系数c:"))
d=b*b-4*a*c
if d>0:
x1=(-b+②)/(2*a)
x2=(-b-②)/(2*a)
print("方程有两个不同的解",x1,x2)
elif ③:
x1=-b/(2*a)
print("方程有两个相同的解",x1)
else:
print("方程无解")
下列选择错误的是( )
A.①填写math B.②填写math.sqrt(d)
C.③填写d==0 D.以上都不对
6.下列关于python分支结构的说法错误的是( )
A.分支结构使用保留字if、elif、else来实现,每个if后面必须有elif或者else
B.if-else结构可以嵌套
C.if语句会判断if后面的逻辑变大时,当表达式的结果为真时,执行if后面的语句块
D.缩进是分支结果的语法部分,缩进不正确影响分支功能
7.通过算法让计算机解决问题时,算法的要素包括( ) 。
A.信息、运算、控制转移 B.数据、运算、控制转移
C.信息、数据、运算 D.信息、数据、控制转移
8.在Python程序中,要求s=3+6+9+…+300的值,可以采用如下代码,下列选项中的说法不正确的是( )。
A.for循环语句中步长为3 B.语句s=0应改为s=1
C.语句s=s+i共循环执行了100次 D.程序使用了循环结构
二、简答题
9.定义函数的基本格式是: ______。
10.编写程序。一辆动车即将穿越隧道,已知隧道全长a米,动车车长为300米,动车的速度为b米/秒。请编写一个程序,根据用户输入的数值,计算并输出动车完全通过隧道需要花费的时间。
要求:屏幕提示用户输入隧道长度和动车的行驶速度(输入时大于0 的浮点数),输出火车完全通过隧道需要花费的时间。 提示:时间=(隧道长度+动车长度) 动车速度,单位为秒。
三、操作题
11.完善程序实现以下功能并保存。
输入一元二次方程的系数a,b,c的值,求解一元二次方程 ax2+bx+c=0(a≠0)
#请不要更改源程序的结构,删除原题里的①、②。填写正确的代码,使程序完善
import math
a=float(input("请输入方程系数a(!=0):"))
b=float(input("请输入方程系数b:"))
c=float(input("请输入方程系数c:"))
delta=b*b-4*a*c
if delta>________:
x1=(-b+math.sqrt(delta))/(2*a)
x2=(-b-math.sqrt(delta))/(2*a)
print("方程有两个不同的解",x1,x2)
elif delta==0:
x1=________
print("方程有两个相同的解",x1)
else:
print("方程无解")
input("运行完毕,请按回车键退出...")
四、判断题
12.分析问题就是从具体的问题中,明确条件和需求,找出条件和需求之间的关系,并尽量用数学的语言加以描述。(_____)
13.屏幕保护程序的主要作用是保护用户的眼睛。(____)
14.U 盘中删除的文件可从“回收站”中找回来。(______)
15.While循环语句的循环体中必须有改变条件表达式值的语句,否则会形成死循环。 (_____)
16.王军同学编写程序解决“韩信点兵”问题后,总结出计算机解决问题的过程分为分析问题-设计算法-编写程序-调试运行程序等步骤。 (_____)
17.def块中的代码不是主程序的一部分,会跳过该段代码.(____)
五、填空题
18.阅读下列程序,写出运行结果
i = 0 sum = 0 t = 1 while sum < 10: i = i+ 1 t=t*i sum = sum + t print(sum)
运行输出结果是:_______________
19.计算机中,一个字节由______位二进制位组成。
20.random模块是一个________。random.randint(1,10)语句作用 ___________。
21.项目学习:解密盛唐时期诗人关系
(项目情境)
唐代诗人史传有名有姓者不下千余人,他们组成了大大小小不同的朋友圈。有的因为诗风接近,如李白代表的浪漫主义、杜甫代表的现实主义、王维代表的田园山水、芩参代表的边塞诗风;有的因为年龄大体相近,如盛唐时期的李白、杜甫、贺知章等;有的因为政见相近,如韩愈作为古文运动的领袖级人物,当时很多文人墨客以进入他的朋友圈为荣。在盛唐时期有这样一个朋友圈,他们的友谊跨越数十年,诗人之间通过互动诗歌,表达抒发情感,是他们朋友圈的一种表现方式,用计算机来分析这个时代的唐诗,就会发现诗人之间有着你意想不到的千丝万缕的关系。学校某研究性学习小组利用大数据分析技术,通过对诗词分析,绘制盛唐时期几位诗人(杜甫、李白、王维、孟浩然……)之间的社交关系网络图,试图推测哪位诗人是同时代诗人的核心,哪位诗人的影响最大,从而更好地学习、理解唐诗。
(项目准备)为完成项目,需要确定主题、目标、制订规划等各项工作。在此不一一展示。明确的主题—盛唐时期的诗人及诗词分析和诗人社交关系网络图
(项目实施)项目研究主要以诗人诗作为依据。具体实施过程如下:
(一)明确需要采集的数据选择合适的采集途径、工具和方法。全唐诗一共四万多首,分析采集相关数据的条件:①盛唐时期;②诗人、诗人之间经常称呼对方的别名;③考虑到同名同姓的问题,因此还需要诗人的生卒年的信息。
根据要求,完成答题。
(1)全唐诗数量较多,一共四万多首,来源分散,存储在互联网不同的服务器与各客户终端。从大数据存储与计算的角度来看,由此可知大数据具有____________的特征。(单选)
A.精确让位于模糊B.价值密度低C.分布式存储D.变化速度快
(2)网络上如此海量的关于唐诗的数据,有文字、图片、视频、音频等。这些数据种类和格式也不一致,表明各种____________数据共存于网络中。(多选)
A.结构化B.半结构化C.非结构化D.网状结构
(3)面对繁杂的数据,学习小组决定研究解密盛唐时期诗人关系,并利用计算机程序从网络中采集诗人、别名等相关的文本数据,并以一定的数据结构存储形成盛唐诗库。存储数据主要有两种方式,一种是____________,一种是数据云存储。你建议学习小组采用____________数据存储方式,理由是___________________。
(二)利用 Python程序采集、整理、分析数据。第一步,从互联网中筛选出符合条件的诗人及诗作等文本,整理并形成盛唐诗库;第二步,确定人物关系分析策略,即从唐诗库中搜索、统计诗人或别名的引用次数,确定二人之间的疏密关系,规则是诗的标题和正文中只要提到过对方,那么两者之间的引用关系加1,若一首诗中提到多次对方,只算一次引用;第三步,编写程序并调试验证。用爬虫程序段(如下图所示)采集数据。根据要求,完成答题。
base_url=’http://www./shici/lis\ t?cate=%E5%94%90%E8%AF%97%E4%B8%89%E7%99%BE%E9%A6%96&p=’ import requests import parsel import re headers={ ‘User-Agent:’Mozilla/5.0(Windows NT 10.0;WOW64)AppleWebKit/537.36(KHTML, like Gecko) } for i in range(1,3): the_ url=base _url+str(i) response=requests get (the _url, headers=headers) html_ str=response. text html= parsel. Selector(html_str) title_url= html. xpath(’//div[@class="poem_ content"]’).extract() f=open("poet. txt","a" ) for poet in title_url: the_peom=urls=re findall(<div class="poem_content">(.* ?)
’, poet) f write(str(the_ peom[0])) f. write("\n") f.close()
(4)使用爬虫程序获取文本数据并形成唐诗库文件,所使用的数据采集方法为____________(选填:系统日志采集法、网络数据采集法其他数据采集方法)。阅读程序可知每首诗存放于列表poem[]中(以唐诗“春晓”为例如下表),采集后的数据保存在poet.txt文件中,该文件是一个_________________(选填:数据库文件、文档文件、图像文件、网页文件)。该数据采集方法可以将非结构化数据从网页中抽取出来,将其存储为统一的数据文件,并以_______________________的方式存储(选填:结构化、半结构化)
Poem[0] Poem[1] Poem[2] Poem[3]
“春晓” “唐” “孟浩然” “春眠不觉晓,……,花落知多少”
。
(5)以诗人甲、乙为例解密二人关系,完成答题。数据处理过程中要运用一定的分析方法对大量无序的数据进行整理、分析挖掘数据内在的结构和规律,从而提取有价值的、有意义的数据。数据分析一般包括特征探索、关联分析、聚类与分类等。让计算机搜索遍历唐诗库中有关甲、乙两位诗人的诗文,统计两位诗人或别名相互的引用次数,找寻二人之间的关联。这是运用了__________________(选填:特征探索、关联分析、聚类与分类)方法进行数据分析,也是__________________(选填:枚举、二分查找、排序)算法思想去求解这一问题的体现。
(6)编制计算机程序解决问题的过程中,__________________是编程的核心,是解决问题的方法和步骤。选用Python程序设计语言编写程序,Python属于__________________(选填:分析问题、设计算法、编写程序、调试运行、机器语言、汇编语言、高级语言)。图a示意,使用__________________(选填:自然语言、流程图、伪代码)进行算法描述,且运用循环控制结构嵌套了__________________控制结构,如果要跳出本次循环体的执行,应使用__________________语句实现跳转。
(7)阅读程序(图b示意),程序中以“#”开头的语句,其作用是_______________,程序调试完成,通过“另存为”保存文件,文件后缀名为_____________。
图a import gushi #从txt文档中读取古诗 poems=gushi. readDatat()#用poems存储所有的唐诗jia=input("请输入诗人甲:") yi=input("请输入诗人乙:") gx=0 for poem in poems:#逐一列举:poem代表其中一首古诗 if jia in poem[2]and(yi in poem[0]or yi in poem[3]): gx=gx+1 #问题的解 print(jia,'"写给",yi,"的古诗共",gx,"首") 图b
(三)分析数据进行可视化表达并推测盛唐时期诗人关系。
(8)解密盛唐时期诗人关系。数据的可视化以易于理解的方式展示和诠释数据之间的关系、趋势与规律等,使人们更好地理解数据。从常用和实用的维度,数据可视化的呈现类型主要分为探索型和解释型,其中_________型可以帮助人们发现数据背后的价值,_________型则把数据简单明了地解释给人们(选填:探索、解释)。数据分析类型不同可视化呈现方式也不同,如关于趋势的分析,可用_________类型的图表呈现,关于比例的分析,可用_________类型的图表呈现关于关系的分析,可用_________类型的图表呈现。
(9)解密盛唐时期诗人关系。学习小组选择用网络关系图呈现盛唐时期诗人社会网络关系(如图所示)。图中箭头表示诗人之间的引用关系,如李白引用了贺知章,那么就有李白指向贺知章箭头;箭头的粗细程度则表示了诗人之间引用关系的强弱,如李白引用孟浩然的数量达4次,箭头就要粗一些。________
(10)解密盛唐时期诗人关系。观察图示,从绘制的盛唐的诗人社交关系网络图,尝试推测哪位诗人是盛唐诗人的核心,哪位诗人的影响最大,请简要阐述。(要求100字左右)________
22.阅读下列程序,写出运行结果
s = 1 for i in range(1,10,3): s = s *i print(s)
运行输出结果是:__________________
23.阅读程序,写出运行结果
a=[0,0,0,0,0,0,0]
a[1]= 1
a[2]= 1
for i in range(3,7):
a[i]=a[i-1]+a[i-2]
print (a[6])
上述程序运行后,输出a[6]的值是______
试卷第2页,共3页
参考答案
1.D
2.B
3.A
4.B
5.D
6.A
7.B
8.B
9.def 函数名(参数):
#函数说明
语句或语句组
return 返回值
10.a=float(input("请输入隧道长度(米):"))
b=float(input("请输入动车速度(米/秒):"))
if a>0 and b>0:
c=(300+a)/b
print("火车完全通过隧道需要的时间为",c,"秒")
11.0 -b/(2*a)
12.对
13.错误
14.错
15.正确
16.对
17.对
18.33
19.8
20.随机库 在1到10中随机生成一个数字。
21.C ABC 数据本地存储 云存储 方便文件共享,只需联网就可读取文件,可以脱离本地计算机保存文件。 网络数据采集法 文档文件 结构化 关联分析 排序 设计算法 高级语言 流程图 判断循环 break 解释、注释 .py 探索 解释 折线图、柱形图、柱线混合图
饼状图、堆叠面截图、百分比圆环图、圈图 散点图、雷达图、网络关系图、词云图、数据地图、动态势力图、3D动态显示图 如局部图b所示。由引用次数可知,从社交关系从深至浅来说,杜甫的好友依次是李白、孟浩然、王维;李白的好友是孟浩然、杜甫、贺知章;贺知章没有好友;王维的好友只有孟浩然;孟浩然的好友只有王维。 如局部图b所示。由被引用次数可知,李白的被引用次数是12,孟浩然的被引用次数是8,杜甫的被引用次数是3,王维的被引用次数是2,贺知章的被引用次数是2。故李白是是盛唐诗人的核心;从引用别人的次数来看,杜甫的引用别人的次数是15,李白的引用别人的次数是9,维的引用别人的次数是2,孟浩然的引用别人的次数是1,王贺知章的引用别人的次数是0。故杜甫的影响最大。
22.28
23.8
答案第1页,共2页
答案第1页,共2页