资源简介 3.3简单算法及其程序实现一、选择题1.以下程序段运行结果是( )s = 0for i in range(11):if i % 2==0:s = s + ielse:s = s - iprint(s)A.55 B.-5 C.5 D.-552.经过中国国家登山队的测量,2020年12月8日,中尼两国共同宣布了珠穆朗玛峰的最新高度为海拔8848.86米。现有一张白纸的厚度大约是0.08毫米,对折一次,厚度变0.16毫米,再对折一次,厚度变为0.32毫米,……,每对折一次,其厚度均变为对折前的两倍,假设这张纸足够大,可以对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度?以下是求解以上问题的程序片段,请你补全代码:请选择适当的代码填入程序①处。( )A.while B.for C.output D.input3.运行Python程序的过程中出现了如下图错误提示,原因是()。A.变量名51study太长B.应该写成"chinese" =51studyC.“chinese”应该写成“china s”D.变量名51study不符合python语言规范,变量名不能以数字开头4.下列与数学表达式对应的python表达式,正确的是( )。A.( - b + math. sqrt (b * b – 4 * a * c)) /a * aB.- b + math. sqrt (b * b – 4 * a * c) /2*aC.( -b + math. sqrt (b * 2 – 4 * a * c)) /(2 * a)D.( -b + math. sqrt ( b * b – 4 * a * c)) / (2 * a)5.在编写python程序时缩进的作用是()。A.让程序更美观 B.只在for循环中使用C.只在if语句中使用 D.用来界定代码块6.计算机在执行高级语言程序时,逐条语句翻译成机器语言并立即执行的程序是( )A.解释程序 B.编译程序 C.高级程序 D.汇编程序7.已知有这样一种对冒泡排序的优化方法:在每一遍“加工”过程中,记录在这遍“加工”中是否进行过数据交换。若在一遍“加工”过程中没有进行过数据交换,则数据已经有序,可以直接退出循环结束排序。则下列说法错误的是 ( )A.对有n个数据的数组进行优化后的冒泡排序,最小比较次数为n-1。B.对有n个数据的数组进行冒泡排序,无论是否优化,最大比较次数相同。C.对冒泡排序算法进行优化,能够较大提高其效率,符合算法设计的一般原则。D.若待排序数组中的数据依次为23,17,46,58,34,11,对其使用优化后的冒泡排序进行升序排序,比较次数为9。8.某对分查找算法的VB程序段如下:i=1:j=7f=Falsekey=Val(Text1. Text)Do While i<=j And Not fm=(i+j)\2If a(m)=key Then f=TrueIf a(m)>key Then i=m-1 Else i=m+1LoopList1. AddItem Str(i)+Str(j)+Str(m)数组元素a(1)到a(7)的值依次为"23,42,58,66,77,83,98",运行上述程序段后,列表框List1中显示的结果为"5 4 5",则文本框Text1中输入值的范围是( )A.[66,77] B.[66,77) C.(66,77] D.(66,77)9.下列赋值语句正确的是( )A.x+1=x B.x=x+1 C.x=+1 D.x,y,z=1,210.(必修)下列说法中,正确的是( )。A.程序设计语言中的汇编语言包含C语言B.机器语言不是程序设计语言C.程序实际上是一组操作的指令或语句的序列,是计算机执行算法的操作步骤D.程序设计和程序设计语言是同一概念11.下列程序运行后,在键盘输入100,则程序的运行结果是( )。 x=input("Please input x:")if x<0 or x>=20: print(x//10) elif 0<=x<5: print(x) elif 5<=x<10: print(3*x-5) elif 10<=x<20: print(0.5*x-2)A.10 B.100 C.295 D.4812.下面if语句统计满足“性别 (gender) 为男、职称(rank) 为副教授、年龄(age)小于40岁”条件的人数,正确的语句为( )。A.if(gender=="男" or age<40 and rank=="副教授"): n+=1B.if(gender=="男" and age<40 and rank=="副教授"): n+=1C.if(gender=="男" and age<40 or rank=="副教授"): n+=1D.if(gender=="男" or age<40 or rank=="副教授"): n+=113.程序如下a=int(input())b=int(input ())c=a+bprint(a,’+’,b,’=’,c)通过键盘分别输入23和3,运算结果是( )A.26B.23+3=26C.’23’+”3”=26D.24+4=2814.城市出租车按里程收费,小明绘制了收费价格程序的流程图,如下所示,要测试所有程序分支是否正确,以下测试数据中,最恰当的一组是( )A.2,10,12 B.10,2,6 C.-1,6,10 D.3,11,10015.下面说法正确的是( )A.算法+数据结构=程序 B.算法就是程序C.数据结构就是程序 D.算法包括数据结构16.某算法的部分流程图如图所示。执行这部分流程,输入变量n的值为5,则下列说法正确的是( )A.语句“c<=n?”共执行了4次 B.循环结束后,变量a的值为3C.循环结束后,变量b的值为5 D.循环结束后,程序输出的值为617.某算法的部分流程图如图所示,执行这部分流程后,输出s的值为64,则①处应填入( )A.i \ 4 = 2B.Sqr(i) = Int(Sqr(i))C.i Mod 2 = 1D.i Mod 2 = 018.有如下 VB 程序段Dim conn As New ADODB.ConnectionDim rs As New ADODB.Recordsetconn.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & App.Path & “\词库.accdb”conn.OpenSet rs.ActiveConnection = connrs.Open “SELECT * FROM words”n = 0Do While Not rs.EOFn = n + 1en(n) = rs.Fields(1)ch(n) = rs.Fields(2)rs.MoveNextLooprs.Closeconn.Close下列说法中正确的是( )①连接的数据库文件名是“\词库.accdb” ②程序运行后,变量n 的值表示该数据表中记录的总数 ③数组 en(n)所存储的是数据表第 2 个字段的字段值 ④“ConnectionString”是 conn 对象的属性值⑤查询的数据表名称是“words” ⑥省略语句“rs.MoveNext”,程序也可以正常运行A.①④⑤ B.③④⑥ C.②③⑤ D.②③④19.某算法的流程图如图所示。执行这部分流程,输入41,则输出的值是( )A.0 B.19 C.22 D.3220.下列选项中,属于计算机程序设计语言的是( )A.汇编语言 B.高级语言 C.自然语言 D.机器语言二、简答题21.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。提示:考虑使用range(#begin,#end)22.利用for循环,分别计算1--100中奇数的和、偶数的和。sum1=0sum2=0for i in range(1,100):if i%2==0:sum1+=ielse:sum2+=iprint(sum1,sum2)三、操作题23.小球从5米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时,共经过多少米?程序代码如下:h=5s =5for i in range(2,11):#第1次已经计算在内,从第2次开始计算s = ______________h = h/2print(s)请补全程序:__________24.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个:第二天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个,到第10天早上想再吃时,只剩下一个桃子了。问第一天共摘了多少桃子?(算法分析)逆向思维:猴子原有一个桃子,先借来一个桃子,觉得不够又借来了与手上等量的桃子。一共借了9天。根据以上算法分析,补全以下程序代码:peach = 1for i in range(9):peach= (__________)*2print (peach)请补全程序:___________________25.阅读下列程序,写出运行结果。n= int(input("n="))cnt = 0while n > 1:cnt = cnt + 1if n % 2 == 0:n = n / 2else:n = 3 * n + 1print(cnt)程序运行后,输入:8运行结果是:_____________26.阅读下列程序,写出运行结果。x = int(input("请输入一个整数:")for i in range(1,x):if x % i == 0:print(i,end=" ")#end=" "表示输出当前行的所有内容后输出一个空格,且不换行程序运行后,输入:8运行输出结果是:_____________27.某装修公司承接了一项装修任务,其中一墙面的装饰条需要相同花纹200组,花纹由特殊环保材料拼接而成,每组花纹由三个三角形组成。三个三角形边长分别为a1、bl、c1,a2、b2、c2,a3、b3、c3,从节约用材降低成本的角度考虑,该公司至少需要多大面积的特殊材料?Python自定义函数的语法def函数名(参数列表)函数体return返回值注:参数列表是程序调用该函数时传递给它的值,可以有0个、1个或多个参数,当传递多个参数时,各参数之间用逗号分隔。函数可以没有 return语句。函数定义完成后,程序可以根据需要调用函数。程序部分代码如下:def ______________:p=(x+y+z)/2s= (p * (p-x) * (p-y) * (p-z)) ** 0.5return stotal = 200 * (Area (al,b1,c1) + Area (a2,b2,c2) + Area(a3,b3,c3))请补全程序:________________28.编程实现一个“猜数游戏”。要求:由计算机随机生成一个100以内的正整数,用户有5次猜数机会,如果猜中提示“恭喜你,猜对了!”:否则,提示“偏大”或“偏小”,然后继续猜数。如果5次都未猜中,计算机公布答案,并提示“5次都没有猜中,游戏结束!”补全以下程序代码:import randomnum = random. randint(1,100)flag Truen = 5flag = Truewhile _____________:guess = int(input("请输入猜测的数:"))if guess < num:print("偏小")n = n - 1elif guess > numprint("偏大")n = n - 1else:print("恭喜你,猜对了!")flag = Falseberak #跳出当前循环,执行循环后的语句if flag:print("答案是:"+str(num)+" 5次都没有猜中,游戏结束!")请补全程序___________________29.阅读下列程序,写出运行结果n= int(input("n="))s=0while n>0:x = n % 10s = s + xn = n //10print(s)程序运行时,输入685:______30.某快递公司为计算快递运费编写了Python程序,当用户输入快递重量(单位是千克)后,根据快递公司的收费标准,计算出快递运费。快递公司的具体收费标准如下表所示:某快递公司收费标准表快递重量(千克) 快递运费1千克以下(包含1千克) 9元1千克以上3千克以下(包含3千克) 11元3千克以上5千克以下(包含5千克) 14元5千克以上 超过5千克部分,每千克加收2元,不足1千克按1千克计算该Python程序代码如下所示,请完善程序实现计算快递运费的功能。#计算快递运费import mathweight= float(input"请输入快递重量(kg):"))#输入的值须大于零if weight<=l:money=9elif_______:money=11elif _______:money=14else:money=14+math.ceil(weight-5)print("你需支付的快递运费是:",money,"元")(1)程序第3行中float函数的功能是_________。(2)程序中第6行下划线处应填入__________。(3)程序中第8行下划线处应填入___________。31.编写一个程序,判定用户输入的两个数 a和 b,如果用户输入的第一个数大,则两数互换,否则原样输出。32.以下是计算s = 1+6+11+...+ 101的程序代码,请补全程序。s=0for i in range(1,102, ):s= print( s)请补充完成上述程序①_________ ②_________四、判断题33.下列程序段中,赋值语句s=s+i被重复执行了4次。s=0For i in range(3,10,2):s=s+i (_____)34.编程也属于编码,是运用程序设计语言实现人机交互提高计算机应用效率,为实现操作程序化要求所进行的编码。(_____)35.用自然语言来描述算法,比用流程图来描述算法更清晰、简洁。(_______)五、填空题36.阅读下列程序,写出运行结果a,b = 1,1n = int(input("请输入一个大于等于3的正整数n:"))for i in range(n-2):c = a + ba = bb = cprint(c)程序运行后,输入:6运行输出结果是:___________37.阅读下列程序,写出运行结果。m = int(input("请输入一个正整数:"))x = my = mfor i in range (9):n = int(input("请输入一个正整数:"))if n运行结果是:_____________38.阅读下列程序,写出运行结果i = 0sum = 0t = 1while sum < 10:i = i+ 1t=t*isum = sum + tprint(sum)运行输出结果是:_______________39.阅读下列程序,写出运行结果。m = 9n = 6c= m - nwhile c! = n:m = nn = cif m < n:m , n= n, mc = m - nprint(c)运行结果是:_________40.阅读下列程序,写出运行结果s = 1for i in range(1,10,3):s = s *iprint(s)运行输出结果是:__________________41.下面的程序段运行后的结果为__________s=0for i in range(1,8,3):s=s+iprint(s)42.s=int(input(“请输入一个两位数:”))s=s//6print(s)程序运行后,键盘输入31,其输出结果为 ____________43.程序中的变量是计算过程中要用的数据的 。参考答案1.C【详解】本题考查的是Python循环及选择语句。range(11)是生成[0,1,2,3,4,5,6,7,8,9,10]的列表,结合if语句可知,当i为偶数用加,为奇数时则用减。故s=0-1+2-3+4-5+6-7+8-9+10=5。故本题应选C。2.A【详解】本题考查的是Python的while循环。while语句格式:当表达式的值为真时,执行循环体语句;当表达式值为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。当高度h小于珠穆朗玛峰的高度height,则继续对折,故本题应选A。3.D【详解】本题考查的是程序调试。报错内容是“语法错误:无效语法”,变量名51study,数字不能作为变量名的开头,故D项正确。4.D【详解】本题考查的是Python表达式。sqrt()求平方根,乘法运算符为“*”,除法为“/”,嵌套函数均使用小括号。表示为( -b + math. sqrt ( b * b – 4 * a * c)) / (2 * a)。5.D【详解】本题考查的是Python语句格式。在编写python程序时,缩进可以使得代码非常整齐规范,赏心悦目,提高可读性,因此作用是用来界定代码块。故本题应选D。6.A【详解】本题主要考查程序执行。解释程序的一般结构可以分为解释模块和运行模块两个主要模块。前者的职能是按源程序动态执行顺序逐个输入语句,并对单个语句进行分析和解释,包括语法和语义的正确性检验、生成等价的中间代码或机器语言代码,以及错误信息提供等处理。后者的职能是运行语句的翻译代码,并输出中间结果或最终结果,故本题选A选项。7.D【详解】本题考查对冒泡排序的理解。根据题干描述,对于数据23,17,46,58,34,11,进行7次比较即可确定排序顺序。故选项D符合题意。8.D【详解】本题考查对分查找算法。题目中要求文本框Text1中输入值后,列表框List1中显示的结果为“5 4 5”,在key值没有给定的情况下,可以利用二叉树来解决问题,二叉树如下图所示:由图可知key值应该是大于66小于77的数,如果包括66,列表框List1中显示的结果为“59.B【详解】本题主要考查赋值语句知识点。赋值是把右边的内容赋值到左边,A选项x是不能赋值给左边表达式,C选项正确写法x+=1同x=x+1。D选项三个变量在赋值时少赋了一个值,故本题选B选项。10.C【详解】本题主要考查程序设计知识点。C语言是高级语言,不属于汇编语言,选项A说法错误;机器语言是程序设计语言,选项B说法错误;程序实际上是一组操作的指令或语句的序列,是计算机执行算法的操作步骤,故本题选C选项;程序设计和程序设计语言不是同一概念,选项D说法错误。11.A【详解】本题主要考查多分支条件结构。因为x=100大于20,所以执行x//10=100//10=10,故程序的运行结果是10,故本题选A选项。12.B【详解】本题主要考查if条件分支。题目中的条件都是与的关系,所以要用and连接,故本题选B选项。13.B【详解】本题考查Python程序执行a=23,b=3,c=23+3=26,最后输出23+3=26,故本题选B选项14.A【详解】本题考查流程图相关知识。要测试所有程序分支是否正确,则需要将所有分支都判断一遍。测试的三组数据应该是小于等于3,大于3并且小于等于10以及大于10。故本题最恰当的一组数据是选项A的数据。故本题选A。15.A【详解】本题考查的是程序。程序就是遵循一定规则完成指定工作的代码。程序=算法+数据结构故选项A正确。16.D【详解】本题考查流程图。a 1 1 2 3 5b 1 2 3 5 8c 1 2 3 5 8i 2 3 4 5 6故说法正确的是选项D。17.D【详解】本题考查流程图。可以代入选项,当选项D代入时,流程如下。i 0 1 2 3 4 5 6 7 8 9 10 11s 2 2 4 4 8 8 16 16 32 32 64 64故本题选D。18.C【详解】本题考查程序连接数据库相关知识。连接的数据库文件名是词库.accdb,①错“ConnectionString”是conn对象的属性名,④错。省略语句“rs.MoveNext”,数据库指针无法移动,循环无法结束,⑥错。②③⑤的说法正确,故本题选C。19.B【详解】x 41 20 10 5 2 1 0s 1 -1 -5 3 -13 19k 2 4 8 16 32 64最后可得s值19,故本题选B。20.ABD【详解】本题考查的是计算机程序语言。计算机程序设计语言可以分为:机器语言、汇编语言、高级语言。故本题应选ABD。【点睛】21.l=[]for i in range(2000,3201):if (i%7==0)and (i%5!=0):l.append(str(i))print (','.join(1))【详解】本题考查的编写程序。程序的编写难度较大,使用range( )定义i的取值范围,然后利用if判断语句可被7整除,但不是5的倍数,最后利用join函数打印出结果即可。22.代码解析注释如下:sum1=0#定义sum1存储偶数和,并赋值sum1=0sum2=0#定义sum2存储偶数和,并赋值sum2=0for i in range(1,100):#通过遍历1至100的所有整数,分别计算1至100中的偶数和、奇数和if i%2==0:#若i是偶数,则把偶数加到sum1中sum1+=ielse:#若i是奇数,则把奇数加到sum2中sum2+=iprint(sum1,sum2)#输出结果,偶数和sum1的值为2550,奇数和sum2的值为2500【详解】本题主要考查Python的循环结构和判断结构。程序算法用自然语言可以表示为:定义两个变量并赋值sum1,sum2;遍历1-100的所以整数:如果遍历的数为偶数,则将该偶数添累加到sum1中,如果遍历的数为奇数,则将该奇数累加到sum2中;遍历完成之后,最后输出1--100偶数的和sum1,1--100中奇数的和sum2。23.s+h【详解】本题考查的是Python循环语句。每次落地后反弹回原高度的一半,再落下,即从上一次落地开始到下一次落地经过的路程刚好是上一次的高度h,共经的路程为:前面经过的路程+本次经过的路程。故横线上代码应为:s+h。24.peach+1【详解】本题考查的是Python循环语句。由逆向思维:先借来一个桃子,觉得不够又借来了与手上等量的桃子。可知横线上的代码应为:peach+125.3【详解】本题考查的是Python循环及选择语句。输入n=8后:n>1成立,cnt=cnt+1=1,n%2==0成立,执行n=n/2=4;n>1成立,cnt=cnt+1=2,n%2==0成立,执行n=n/2=2;n>1成立,cnt=cnt+1=3,n%2==0成立,执行n=n/2=1;n>1不成立,输出cnt值为3。26.1 2 4【详解】本题考查的是Python循环语句。 range(1,x)是生成[1,x)的整数列表,x % i == 0是判断x是否能被i整除。输入8,8能被1、2、4整除。故运行输出结果是1 2 4。27.Area(x,y,z)【详解】本题考查的是Python自定义函数。def后面跟着是函数名,由Area (al,b1,c1)可知函数名为Area ,带有3个参数;由p=(x+y+z)/2可知自定义函数的三个参数名称为:x,y,z。故横线上的代码为:Area(x,y,z)。28.n>=1或n>0【详解】本题考查的是Python循环语句。最多猜测5次,阅读程序,可知n初始值为5,每猜一次减1,故循环的条件为:n>=1或n>0。29.19【详解】本题考查的是Python循环语句。输入685,初始值:n=685,s=0。n>0成立,x=n%10=5,s=s+x=5,n=n//10=68。n>0成立,x=n%10=8,s=s+x=13,n=n//10=6。n>0成立,x=n%10=6,s=s+x=19,n=n//10=0。n>0不成立,输出s值为19。30.将输入的快递重量转换为浮点型。 weight<=3 weight<=5【详解】本题考查的是Python的选择语句。(1)float()函数用于将整数和字符串转换成浮点数。(2)由money=11可知,第6行下划线处应填入weight<=3。(3)由money=14可知,第6行下划线处应填入weight<=5。31.a=int(input(" 请输入数 a:"))b=int(input(" 请输入数 b:"))if a>b:t=aa=bb=tprint("用户输入的数按小到大排序结果是: ", a, b)else :print("原样输出 ",a,b)【详解】本题主要考查Python程序设计。使用input函数接收两个数a和b,用if条件分支结构判断a和b的大小,如果a大于b,则交换,否则原样输出,具体代码如下:a=int(input(" 请输入数 a:"))b=int(input(" 请输入数 b:"))if a>b:t=aa=bb=tprint("用户输入的数按小到大排序结果是: ", a, b)else :print("原样输出 ",a,b)32.5 s+i【详解】本题主要考查Python循环结构。题目要求计算1、6、11.. 101等差数列之和,其中公差为5,因此①为5;s变量用于记录等差数列之和,需进行累加计算,因此②为s+i。【点睛】33.正确【详解】本题考查的是Python的range函数。range(start, stop [,step]) ;start 指的是计数起始值,默认是 0;stop 指的是计数结束值,但不包括 stop ;step 是步长,默认为 1,不可以为 0 。range() 方法生成一段左闭右开的整数范围。range(3,10,2)生成的列表为[3,5,7,9],故题干中的说法正确。34.正确【详解】本题主要考查程序编写。编程也属于编码,是运用程序设计语言实现人机交互提高计算机应用效率,为实现操作程序化要求所进行的编码,表述正确。35.错【详解】本题考查的是算法描述。流程图是一种传统的算法表示法,它用一些图框来代表各种不同性质的操作,用流程线来指示算法的执行方向。由于它直观形象,易于理解,所以应用广泛,特别是在语言发展的早期阶段,只有通过流程图才能简明地表述算法。故题干中的说法是错误的。36.8【详解】本题考查的是Python循环语句。输入6,初始值a=1,b=1,n=6。range(4)生成0到3的整数列表。当i=0,c=a+b=2,a=b=1,b=c=2。当i=1,c=a+b=3,a=b=2,b=c=3。当i=2,c=a+b=5,a=b=3,b=c=5。当i=3,c=a+b=8,a=b=5,b=c=8。输出c值为837.9 9【详解】本题考查的是Python循环及选择语句。由if语句可知x和y存储的是最小的数。故程序运行后,依次输入:12 35 9 11 23 88 13 19 29 55,最小值是9,最后输出的是9 9。38.33【详解】本题考查的是Python循环语句。阅读程序可知,计算的是:sum=1+1*2+1*2*3+……,当sum值大于等于10时停止。sum值为:1,3,,9,33……。故运行结果为33。39.【详解】本题考查的是Python循环及选择语句。初始值m=9,n=6,c=m-n=3。3!=6成立,m=n=6,n=c=3,6<3不成立,c=m-n=3。3!=3不成立,输出c的值为3。40.28【详解】本题考查的是Python循环语句及range函数。range()函数格式:range(起始值,结束值,步长)。注意:结束值不包含;步长可省略,默认为1。range(1,10,3)生成的是列表[1,4,7]。故s=1*1*4*7=28。41.12【详解】本题考查的知识点是Python的循环函数。range()函数可创建一个整数列表,一般用在 for 循环中。range(1,8,3)等同于整数列表[1,4,7],故该程序结果为=0+1+4+7=12。42.5【详解】本题主要考查程序的运行。s=31,s=s//6=31//6=5(“//”表示取整),故输出结果为5。43.存储单元【详解】本题主要考查程序的变量。程序中的变量是计算过程中要用的数据的存储单元。 展开更多...... 收起↑ 资源预览