内容正文:
第2章 算法与程序实现
一、选择题
1.下列哪个属于非数值型数据?( )
A.整数 B.实数 C.分数 D.文本
2.在Python中,以下哪个关键字用于实现单分支选择结构( )
A.if-else B.switch-case C.if D.select
3.编程输出1到100之间所有的偶数,下列算法最合适的是( )
A.穷举法 B.冒泡排序法 C.二分查找法 D.插入排序法
4.下列表达式中,其结果为真的是( )
A.4>=3 B.4<=3 C.4==3 D.4<3
5.计算机程序设计的一般过程中,检查程序能否按预想的效果执行,这一步骤属于( )
A.设计算法 B.编写程序 C.分析问题 D.调试运行
6.已知Python列表a=['W','o','r','d'],依次执行a.pop()、a.append(1)、a.append(d)操作,列表a的值为( )
A.['W','o','r','d']
B.['W','o','r','1','d']
C.['o','r','d','1','d']
D.['1','d','o','r','d']
7.下面代码执行时,当输入8.9,输出结果是()
v=float(input("请输入速度(千米/秒):"))
if v>=7.91:
print("飞船成功飞行! ")
else:
print("飞船不能升空! ")
A.True" B.False C."飞船成功飞行!" D."飞船不能升空!"
8.用计算机程序解决问题的的基本过程是( )
A.明确任务→建立表格→分析数据→形成报告
B.确定主题→收集与选择素材→规划与设计→制作集成→评价修改
C.需求分析→规划与设计→素材的采集与加工→作品集成→发布与评价
D.分析问题→设计算法→编写程序→调试运行→检测结果
9.下列关于算法描述错误的是( )
A.一个有效的算法必须要有输入 B.算法必须在有限时间和有限步骤内完成
C.算法是解决问题的方法和步骤 D.可用自然语言、伪代码、流程图等不同的方法来描述算法
10.某算法的部分流程图如图所示。执行这部分流程,若输入 a 的值为 365,则输出 b
的值为
A.365 B.555 C.563 D.365563
11.小张使用基于Python的Flask Web框架编写网络系统,下列关于Flask的描述正确的是( )
A.Flask 模块可直接使用,无须导入
B.Flask框架中Web服务器不是自带的,需要另外安装 Web服务器
C.Python的 Web框架只有 Flask 框架
D.Flask的App程序默认端口号是5000
12.以下哪个Python代码片段正确实现了一个累加器模式( )
A.total = 0; for i in range(5): total += i B.total = 1; for i in range(5): total *= i
C.total = 0; for i in range(5, 0, -1): total -= i D.total = 1; for i in range(5): total /= i
13.在Python中,已知x=2021,y=2022,z=2023,下列表达式结果为False的是( )
A.x//1000==x%100//10 B.x%4==0 or x%100!=0
C.str(y+z)=='20222023' D.x<=y<=z
二、判断题
14.在伪代码中,通常不需要指定变量的类型。( )
15.使用内置函数open()且以“w”模式打开的文件,文件指针默认指向文件尾。( )
16.在赋值语句中:〈变量名〉=〈表达式〉,“=”叫做赋值符号,表示先计算右侧的表达式的值,再把结果向左侧赋值。( )
17.在Python3.x语言中,input()函数的返回值类型是字符串。( )
18.“num”和“NUM”会被Python解释器视为相同的变量。( )
三、填空题
19.在设计算法时,除了考虑问题的逻辑结构,还需考虑算法的 和 。
20.测试程序的主要目的是 和 。
21.结构化程序设计的基本原则包括 、 和 。
22.在设计算法时,常用的技术包括分治法、 、贪心算法和动态规划等。
23.在算法执行过程中,用于跳过当前循环并继续执行下一次循环的语句是 。
24.在算法中,用于控制程序执行流程的结构包括顺序结构、选择结构和 结构。
25.模块化设计的目的是将程序分解为多个 ,每个模块完成特定的 。
四、操作题
26.小张使用Python的Flask Web框架编写“校友查询系统”。用户使用浏览器输入http:/192.168.10.88:8000进入系统,在校友姓名处输入校友的姓名,点击“查询”按钮,将从数据库中获取该校友相关信息。查询界面如下图所示:
代码如下:
from flask import Flask,render_template # 导入 Flask 库
app=①
@app.route('/')
def index():
# 显示系统主页相关信息,代码略
@app.route('/cx',method=咱'GET','POST'暂)
def cx():
# 根据输入的校友姓名查询相关信息,代码略
return render_template('xyinfo.html',txt=data)
if __name__=='__main__':
app. run(② ,③ )
(1)为实现上述功能,请完善画线处的代码。
①
②
③
(2)下列有关该系统的描述,正确的是( )
A.将客户端输入的校友姓名传递给服务器,本系统中只采用POST方式
B.查询校友信息的页面的URL地址未知
C.无法通过程序修改该网络应用程序的端口号
D.显示校友信息的模板是xyinfo.html
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查的是数据类型。整数、实数、分数是数值型数据,文本是非数值型数据。故本题应选D。
2.C
【详解】本题考查Python基础。
if-else 是用于实现双分支选择结构的组合关键字。switch-case 和 select 都不是Python中的关键字或用于实现选择结构的标准方式。故正确答案为:选项C。
3.A
【详解】本题考查算法相关内容。穷举法是指在算法中采用搜索的方法,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的结果,保留那些符合要求的结果。冒泡算法是通过对待排序的序列从前向后依次比较相邻元素的值,如果发现逆序则交换。二分查找法是一种在有序数组中查找某一特定元素的搜索算法。插入排序法的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。分析题意,穷举法可以解决该问题。故本题答案是A选项。
4.A
【详解】本题主要考查Python表达式的运算。4>=3值为True,4<=3、4==3、4<3值均为False,故本题选A选项。
5.D
【详解】本题考查的是计算机解决问题的一般过程。计算机解决问题的一般过程:(1)分析问题(2)设计算法,根据分析,找出解决问题的方法和步骤。(3)编写程序,选择一种程序设计语言来编写程序,实现算法。(4)调试运行,检查程序能否按预想的效果执行。故选D。
6.B
【详解】本题主要考查Python列表的操作。已知Python列表a=['W','o','r','d'],依次执行a.pop()、a.append(1)、a.append(d)操作,即先删除最后一个元素'd',再添加元素'1'和'd',此时列表a的值为['W','o','r','1','d'],故本题选B选项。
7.C
【详解】本题主要考查Python程序的执行。输入8.9,满足if条件,故输出结果是"飞船成功飞行!",故本题选C选项。
8.D
【详解】本题考查的是计算机解决问题的一般过程。用计算机程序解决问题的的基本过程:分析问题→设计算法→编写程序→调试运行→检测结果。故本题应选D。
9.A
【详解】本题考查算法相关内容。算法就是解决问题的方法和步骤的描述,可以用自然语言、伪代码、流程图等多种不同的方法来描述,必须在有限步骤内实现,有零个或多个输入,至少一个或多个输出。故本题答案是A选项。
10.C
【详解】本题主要考查算法流程图的执行。b=0,a=365,第一遍循环,满足a>0,k=a mod 10=5,b=b*10+k=5,a=a\10=36;第二遍循环,满足a>0,k=a mod 10=6,b=b*10+k=56,a=a\10=3;第三遍循环,满足a>0,k=a mod 10=3,b=b*10+k=563,a=a\10=0;第四遍循环,不满足a>0,故本题选C选项。
11.D
【详解】本题考查Python程序设计相关内容。Flask是第三方库,使用之前,必须导入该模块;Flask自带Web服务器;Python的Web框架除了Flask,还有Django等;在Flask中,应用程序默认的端口号是5000,如果没有显式指定端口号,Flask应用程序将在5000端口上运行。故本题答案是D选项。
12.A
【详解】本题考查Python代码。累加器模式是通过循环不断地将新的值加到一个总和变量上。选项A中,首先将total初始化为0,然后通过for循环遍历range(5)生成的0到4的数字序列,每次循环将当前的i值加到total上,实现了累加的功能。选项B是累乘,且初始值为1,但由于从0开始乘会导致结果为0。选项C是递减操作,不符合累加的要求。选项D是除法操作,也不符合累加的概念。故答案为:A。
13.C
【详解】本题考查Python表达式相关内容。A选项,x//1000-->2,x%100//10-->21//10-->2,x//1000==x%100//10-->True。B选项,x%4==0-->False,x%100!=0-->True,x%4==0 or x%100!=0-->True。C选项,str(y+z)-->str(4045)-->"4045",str(y+z)=='20222023'-->"4045"=='20222023'-->False。D选项,x<=y<=z-->True。故本题答案是C选项。
14.正确
【详解】本题考查伪代码。伪代码的主要目的是清晰地表达算法的逻辑和步骤,重点在于算法的思路和结构,而不是严格遵循编程语言中对变量类型的明确指定。它更侧重于以一种简洁和易懂的方式描述算法,让读者能够快速理解算法的核心内容。故说法正确。
15.错误
【详解】本题考查Python基础。
这个说法错误。当你使用内置函数open()以“w”模式打开一个文件时,文件指针默认是指向文件的开头,而不是指向文件尾。
16.正确
【详解】本题考查赋值表达式相关内容。由赋值运算符(“=”)与赋值运算对象组成的式子称为赋值运算表达式。赋值表达式是一个简单的语句,用于将一个值分配给一个变量。基本格式:〈变量名〉=〈表达式〉,示先计算右侧的表达式的值,再把结果向左侧赋值。故本题答案是:正确。
17.正确
【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。
18.错误
【详解】本题考查变量。Python中的变量严格区分大小写。num和NUM不是相同变量,故错误。
19. 可读性 健壮性
【详解】本题考查设计算法。在设计算法时,问题的逻辑结构是基础,但同时也要关注算法的可读性和健壮性。可读性指算法是否容易被理解和阅读,清晰的算法有助于其他人理解和维护。健壮性则表示算法在面对异常输入或错误情况时的处理能力,一个健壮的算法能够有效地应对各种可能的错误情况,而不会轻易崩溃或产生错误结果,从而保证算法在不同场景下的稳定性和可靠性。可读性、健壮性。
20. 发现错误 验证正确性
【详解】本题考查测试程序。测试程序主要是为了发现程序中存在的错误,包括逻辑错误、语法错误、运行时错误等各种可能的问题。同时,通过将实际运行结果与预期结果进行对比,来验证程序的正确性,确保程序能够按照设计的要求准确地执行功能,输出正确的结果。故答案为:发现错误、验证正确性。
21. 顺序结构 选择结构 循环结构
【详解】本题考查结构化程序设计。结构化程序设计的基本原则是通过有限的几种控制结构来构建程序,以确保程序的清晰性、可读性和可维护性。其中,顺序结构按照语句的先后顺序依次执行;选择结构根据条件判断选择不同的执行路径;循环结构在一定条件下重复执行一段代码。这三种结构能够覆盖大多数程序的逻辑需求,使得程序的逻辑清晰、易于理解和调试。故答案为:顺序结构、选择结构、循环结构。
22.回溯法
【详解】本题考查算法相关内容。回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。故本题答案是:回溯法。
23.continue语句
【详解】本题考查循环结构。在循环结构中,当需要跳过当前循环的剩余部分,直接开始下一次循环时,使用的语句是continue语句。它能够让程序在当前循环中不再执行后续的代码,直接进行条件判断,决定是否开始下一次循环。故答案为:continue语句。
24.循环结构
【详解】本题考查算法的控制结构。顺序结构按照代码顺序执行,选择结构根据条件选择执行不同的代码块,循环结构用于重复执行某段代码。故答案为:循环结构。
25. 模块 功能
【详解】本题考查结构化程序设计。模块化设计的目的是将程序分解为多个模块,每个模块完成特定的功能。这样可以提高程序的可维护性、可读性和可重用性。
26. Flask(__name__) host='172.168.10.88' port=8000 D
【详解】本题考查Python程序设计相关内容。
(1)①处代码是创建一个Flask应用程序实例,并将其名称设置为当前模块的名称或包的名称,在Flask中,_name_是一个特殊的内置变量,代表当前模块的名称或包的名称,通过将_name_作为参数传递给Flask类,可以确定应用程序的根目录,从而找到静态文件夹和模板文件夹等资源。故此处答案是:Flask(_name_)。由“用户使用浏览器输入http:/192.168.10.88:8000进入系统”知,host='172.168.10.88',port=8000,故②处答案是:host='172.168.10.88',③处答案是:port=8000。
(2)本系统表单通过POST或GET将数据传送给服务器;根据程序可知,校友查询信息页面的URL是http:/192.168.10.88:8000/cx,地址已知;可以通过修改run方法中的port参数值修改默认的Web应用程序的端口号;render_template方法的第一个参数就是网页的模板文件:xyinfo.html。故本题答案是:D。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$