内容正文:
第2章 算法与程序实现
一、选择题
1.以下哪个选项正确描述了算法的可行性( )
A.算法可以在无限时间内完成 B.算法可以在有限时间内完成
C.算法可以在任何计算机上执行 D.算法可以解决所有问题
2.在Python中,break关键字的作用是( )
A.继续执行下一次循环 B.终止当前循环体
C.跳过当前循环的剩余部分 D.无作用
3.有如下 Python 程序段:
p="Tel-321"
c=""
for ch in p:
if ch>="0" and ch<="9":
c+=str(9-int(ch))
elif ch>="a" and ch<="z":
c+=chr(ord(ch)-ord("a")+ord("A"))
else:
c+=ch
print(c)
程序段运行后,输出的结果是( )
A.tEL-678 B.TEL-678 C.TEL-321 D.tEL-321
4.有如下 Python 程序段:
money=float(input("购物总额:"))
if money >1000:
pay=(money-1000)*0.9+950
else:
pay=money*0.95
print('应付款:',pay)
若要测试所有分支结构的程序代码是否正确,下列测试数据中最恰当的是( )
A.500,800 B.800,1000 C.1000,1200 D.1200,1500
5.执行如下Python程序后,f2的值为( )
f1=f2=1
for i in range(3):
f1,f2=f2,f1+f2
A.3 B.4 C.5 D.6
6.某市规定,用电峰时段为8:00到22:00;谷时段为22:00到次日的8:00。第一档用户峰时段电价是0.568元/千瓦时,谷时段电价是0.288元/千瓦时。用Python代码判断峰谷电电价,变量time和price分别表示时段和电价,正确的是( )
A.
if time>=8 and time<=22:
price=0.568
else:
price=0.288
B.
if time<8 and time>22:
price=0.288
else:
price=0.568
C.
if time>=8 or time<=22:
price=0.568
else:
price=0.288
D.
if 8<=time<=22:
price=0.288
else:
price=0.56
A.A B.B C.C D.D
7.能够被计算机直接接受和执行的语言是( )
A.汇编语言 B.自然语言 C.机器语言 D.高级语言
8.某算法的部分流程图如右图所示,执行这部分流程,输出的s值为( )
A.28 B.162 C.280 D.945
9.下面是利用计算机编程解决“鸡兔同笼”问题的几个步骤;①构建数学模型,设计算法;②编写Python程序,用计算机实现;③分析问题,确定计算机解决的问题是鸡和兔子的只数。正确的顺序是( )
A.①②③ B.①③② C.③①② D.②③①
10.在Python运行如下图所示代码,当通过键盘输入6时,输出结果为( )
A.False B.1 C.True D.0
11.算法的“有穷性”是指( )
A.算法必须是可以实现的 B.算法执行的任何计算都是有效的
C.解决问题的用时越少越好 D.算法执行有限步后必须能结束
12.已知 x="hello,world",若要使下列 python表达式输出的值为world ,正确的是( )
A.print(x[6,11]) B.print(x[6:11]) C.print(x[7,11]) D.print(x[7,11])
13.下列关于算法描述错误的是( )
A.一个有效的算法必须要有输入 B.算法必须在有限时间和有限步骤内完成
C.算法是解决问题的方法和步骤 D.可用自然语言、伪代码、流程图等不同的方法来描述算法
14.用计算机解决问题时,首先应该确定程序“做什么”,然后再确定程序“怎么做”。因此“怎么做”是属于用计算机解决问题的步骤( )
A.分析问题 B.设计算法 C.编写程序 D.调试程序
15.以下流程图描述的算法执行结果是( )
A.1 B.2 C.3 D.6
16.算法的基本结构不包括( )
A.顺序结构 B.分支结构 C.逻辑结构 D.循环结构
二、填空题
17.算法的三种基本结构是: 、 、和 。
18.python中,表达式5//2 = 。
19.Python逻辑表达式5<3 and 3==10%7的运算结果是( )
20.哥德巴赫猜想提出,任何一个不小于6的偶数都可以表示成两个素数之和,请编写程序,输入任意一个大于等于6的偶数,输出所有其等于两个素数之和的式子。例如: 6=3+3; 18=5+13, 18=7+11。
将24拆解成两个素数之和,可以有几种拆解方法? 种
21.Python 表达式int (2.5)的值为 。
三、判断题
22.Python语言是高级语言,需要经过翻译才能被计算机执行。( )
23.算法在程序设计中可有可无,它不会影响程序设计的效率。( )
24.常量是指在程序运行过程当中其值始终不发生变化的量。( )
25.高级语言的翻译程序有两种类型:解释程序和编译程序。( )
26.程序实际上是一组机器操作的指令或语句的序列,程序有三种基本控制结构:顺序结构、选择结构和循环结构。( )
四、操作题
27.某校进行学生评教活动,共有10个题目,每题共有4个选项(ABCD),选择不同选项将得到不同的分值,各选项及其对应的分值情况如表所示:
选项
A
B
C
D
分值
5
4
2
1
请输入学科1老师的评教结果:AAAABBABAB
评教成绩为:46
图a
s=① (“请输入学科1老师的评教结果:”)
n=0
score=②
for ch in s:
if ch==“A”:
score+=5
elif ③ :
score+=4
elif ch==“C”
④
elif ch==“D”:
score+=1
else:
n+=1
if n>0:print(“你的评教无效”)
else:print(“评教成绩为:”,⑤ )
图b
请编写Python程序,实现评教成绩的计算,若输入的评教结果中出现ABCD以外的字符,则该生的评教无效。执行该程序的结果如图a所示:
(1)若输入的评教结果为:ABABAACABD,则评教成绩为 。
(2)实现上述功能的Python程序如图b所示,请在划线处填入合适的代码。 、 、 、 、 。
(3)上述Python程序采用的算法是 (单选,填字母:A.解析算法B.枚举算法)。
28.人的身高一般是脚长的七倍左右。所以在知道一个人的身高后,便能大致推出他的脚长,进而推算出他鞋的码数。脚长与码数的关系如下:
程序代码如下,请回答下面问题:
height=float(input('请输入身高(cm):'))
①
if 21.5<=long<=22.0:
num=0 # num为区间标记号,从0开始递推1
#此处省略判断鞋码区间
else:
num=7
size=[34,35,36,37,38,39,40,41]
②
print('根据您的身高,推断您鞋的码数为:',size_h)
(1)请在横线处填入合适的代码。
(2)如果需要对算出的脚长保留一位小数(四舍五入),表达式为( )
A.int(long*10+0.5) B.int(long*10+0.5)/10 C.int(long*100+0.5)/10 D.int(long*100+0.5)/100
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查算法相关内容。一个算法应该具有五个重要的特征:(1)有穷性: 一个算法必须保证执行有限步之后结束;(2)确切性:算法的每一步骤必须有确切的定义;(3)输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定义了初始条件;(4)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;(5)可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。故本题答案是B选项。
2.B
【详解】本题考查Python基本概念。在Python中,break关键字用于终止当前循环体,不再执行循环中的剩余部分,并且直接跳出循环。选项A描述的是continue关键字的作用,选项C的描述不准确,选项D显然是错误的。因此,正确答案是B。
3.B
【详解】本题考查程序分析。读程序可知,在遍历字符串的过程中若遇到数字 0~9,加密变成 9 减该数;若遇到字母a~z,加密变成大写字母;若遇到其他字符,则直接连接。故正确答案为:选项B。
4.C
【详解】本题考查Python程序设计相关内容。若要测试所有分支结构的程序代码是否正确,则应在两个范围内分别取值,即大于1000的值和小于等于1000的值,四个选项中,只有C选项(1000,1200)符合要求。故本题答案是C选项。
5.C
【详解】本题考查程序分析。
在这个Python程序中,f1 和 f2 最初都被设置为1。然后,通过一个循环三次执行赋值操作,每次迭代都交换f1和f2的值,并且更新f2为原来f2的值加上f1的当前值。
让我们逐步分析每次迭代后f1和f2的值:
初始状态:f1 = 1, f2 = 1
第一次迭代 (i = 0):
f1, f2 = f2, f1 + f2 执行前:f1 = 1, f2 = 1
执行后:f1 = 1, f2 = 1 + 1 = 2
第二次迭代 (i = 1):
f1, f2 = f2, f1 + f2 执行前:f1 = 1, f2 = 2
执行后:f1 = 2, f2 = 1 + 2 = 3
第三次迭代 (i = 2):
f1, f2 = f2, f1 + f2 执行前:f1 = 2, f2 = 3
执行后:f1 = 3, f2 = 2 + 3 = 5
因此,程序执行完成后,f2的值为5。
故正确答案为:选项C。
6.A
【详解】本题考查Python程序。根据题目描述,峰时段为8:00到22:00,电价为0.568元/千瓦时;谷时段为22:00到次日8:00,电价为0.288元/千瓦时。因此,正确的逻辑判断应该能够准确区分这两个时段。从给出的选项中,选项A使用了逻辑与操作符and来判断是否在峰时段(8到22点),如果是,则电价为0.568;否则,电价为0.288。这符合题目描述的要求。故答案为:A。
7.C
【详解】本题考查的是计算机语言。使用机器语言编写的程序可以直接被计算机识别并执行,汇编指令需要汇编程序转换成机器指令后计算机才能执,高级语言编写的程序只能通过编译器编译后才能被计算机执行。故选C。
8.C
【详解】本题考查的是流程图识读。阅读流程图可知计算的是s=1*4*7*10=280,故选C。
9.C
【详解】本题考查的是计算机解决问题过程。计算机解决问题的基本过程是:分析问题→构建数学模型→设计算法→编写程序→调试程序,故本题应选C。
10.A
【详解】本题考查Python程序设计相关内容。分析程序,程序第一行通过int(input())输入6,第2行代码涉及到关系运算符和逻辑运算符的优选级。因为表达式中含有括号,先计算括号内容,又x=6,即6>=3为True ,6<8为True ,所以(6>=3 and 6<8)为True。not(6>=3 and 6<8)为False。故本题答案是A选项。
11.D
【详解】本题考查算法的特征。算法的有穷性是指一个算法必须保证执行有限步之后结束。故答案为:D。
12.B
【详解】本题考查Python程序设计相关内容。本题涉及到字符串、列表、字典相关知识。字符串索引从0开始取,则hello,world对应的索引依次是从0到10。world对应的索引是从6到10。根据书上原话:“若要访问的不是单个元素,而是一定范围内的多个元素,可以通过冒号“:”间隔的两个索引参数(开始元素序号、结束元素序号的后一个序号)来实现。”则表示为print(x[6:11])。故本题应选B。
13.A
【详解】本题考查算法相关内容。算法就是解决问题的方法和步骤的描述,可以用自然语言、伪代码、流程图等多种不同的方法来描述,必须在有限步骤内实现,有零个或多个输入,至少一个或多个输出。故本题答案是A选项。
14.B
【详解】本题考查计算机解决问题相关内容。用计算机解决问题的四大步骤是:(1)分析问题,用电脑来解决问题时,首先要对问题进行定性、定量的分析,然后才能设计算法。(2)设计算法,算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。(3)编写程序,设计完算法后,就要使用某种程序设计语言编写程序代码,并最终得到相应结果。(4)调试运行程序,对程序进行调试,以便发现错误并进行修正。“怎么做”是属于用计算机解决问题的“设计算法”步骤。故本题答案是B选项。
15.D
【详解】本题考查流程图。分析流程图可知,初始状态下,x=1。顺序执行:(1)x=x+2=1+2=3;(2)x=x+3=3+3=6;输出x=6。故答案为D选项。
16.C
【详解】本题考查算法结构。算法的基本结构有:顺序结构、分支结构、循环结构,逻辑结构不是算法基本结构,故答案为C选项。
17. 顺序结构 选择结构 循环结构
【详解】本题考查算法。算法的三种基本结构是顺序结构、选择结构、循环结构。顺序结构是算法中最基本的结构,它按照程序中的语句顺序,从上到下,依次执行。选择结构是根据给定的条件来决定是否执行某一部分的语句块。循环结构是算法中重复执行某一部分语句块的结构。
18.2
【详解】本题考查Python基础。表达式 5 // 2 使用了整数除法运算符 //,故为2。
19.False
【详解】本题考查Python表达式的运算。逻辑运算符and两边值均为真时值才为真,否则值为假。5<3→False,10%7=3,因此逻辑表达式5<3 and 3==10%7的运算结果是False。
20.3或三
【详解】本题考查算法程序设计相关内容。把24拆成两个素数的和有3种拆法:5和19、7和17、11和13。故本题答案是:3或三。
21.2
【详解】本题考查表达式。int() 函数用于将括号内的值转换为整数。在这个例子中,2.5 是一个浮点数,int(2.5) 将它转换为整数,去掉小数部分,所以结果是 2。故答案为:2。
22.正确
【详解】本题考查Python。Python语言是高级编程语言,它不能被计算机直接识别和执行,需要通过解释器或编译器将其翻译成计算机能够理解的机器语言后才能执行。故说法正确。
23.错误
【详解】本题考查算法相关内容。算法就是用计算机求解某一问题的方法是能被机械地执行的动作或指令的有穷集合。算法是程序的灵魂,它独立于任何一种程序设计语言,一个算法可以用多种程序设计语言来实现。良好的算法设计,不仅可以提高程序的执行效率,起到事半功倍的效果,而且可以以算法设计为基础,通过寻求不同问题存在的相互联系,从计算机角度对不同问题的共性进行算法设计,实现程序编写的举一反三。算法设计是整个程序设计的核心。故本题答案是:错误。
24.正确
【详解】本题考查常量的描述。常量是指在程序运行过程当中其值始终不发生变化的量。表述正确。
【点睛】
25.正确
【详解】本题主要主要考查程序的描述。高级语言的翻译程序是编译程序和解释程序。故本题正确。
26.正确
【详解】本题主要考查程序基本控制结构。程序实际上是一组机器操作的指令或语句的序列,程序有三种基本控制结构:顺序结构、选择结构和循环结构,表述正确。
27. 40 input 0 ch=='B' score+=2 score A
【详解】本题考查程序设计。
(1)5个A为25分。3个B为12分。1个C为2分。1个D为1分。共计40分,故正确答案为:40。
(2)①调用input函数输入评教结果到变量s。故正确答案为:input。②初始化评教累加总分变量score为0。故正确答案为:0。③当评教等级为B时,执行score+=4。elif条件判断为是否为等级B。故正确答案为:ch=='B'。④当评教等级为C时,总分累加变量加上对应的分数,故正确答案为:score+=2。⑤输出评教总分变量score。故正确答案为:score。
(3)解析算法是指对输入的数据进行解析,然后根据解析的结果进行一系列的计算或处理,最终得到所需的结果。在这个问题中,程序首先接收用户输入的评教结果字符串,然后逐个字符解析,根据字符的不同(A、B、C、D或其他)进行不同的处理(加分或标记无效),最后输出评教成绩或无效提示。这个过程是典型的解析算法的应用。故正确答案为:选项A。
28. long=height/7 size_h=size[num] B
【详解】本题考查程序分析。
(1)①题目中表示人的身高一般是脚长的七倍左右。故身高变量height/7为脚长。故①long=height/7。②程序代码目的为通过脚长取出对应的鞋码,鞋码列表为size,索引值为num变量。由于输出size_h变量。故可知②size_h=size[num]。
(2)A.int(long*10+0.5):这个表达式只是将long乘以10后四舍五入到整数,但没有再除以10,所以结果是一个整数,不符合要求。
B.int(long*10+0.5)/10:这个表达式首先将long乘以10后四舍五入到整数,然后再除以10,结果是保留了一位小数的浮点数,符合要求。
C.int(long*100+0.5)/10:这个表达式将long乘以100后四舍五入到整数,然后再除以10,结果是保留了十位小数的浮点数,不符合要求。
D.int(long*100+0.5)/100:这个表达式将long乘以100后四舍五入到整数,然后再除以100,结果是保留了两位小数的浮点数,不符合要求。
故正确答案为:选项B。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$