第二章 算法与程序实现 2024-2025学年高中信息技术华东师大版(2020) 必修1

2024-08-15
| 16页
| 70人阅读
| 1人下载

内容正文:

第二章 算法与程序实现 一、选择题 1.算法是解决问题的方法,以下不属于算法的描述方法的是(  ) A.自然语言 B.流程图 C.结构图 D.伪代码 2.定义变量tries 为整数,以下哪个命令的作用是把整数tries转变成字符(   ) A.float(tries) B.str(tries) C.int(tries) D.以上都不对 3.某算法的部分流程图如图所示,执行这部分流程,若输入x 的值为60,下列说法正确的是(    ) A.该流程图中包含两个循环结构 B.语句i←i+1执行了4次 C.将语句x←x/i修改为x←x//i,程序运行结果与修改前不同 D.输出m的值是4 4.有如下 Python程序: import random lst=[0]*8 i=0 while i < 8: if i%2==0: lst[i]=random.randint(1,5)*2 elif i%3==0: lst[i]=random.randint(6,10)*2+1 else: lst[i]=lst[i-1]//2 i+=1 print(lst) 执行该程序段后,输出结果可能是(   ) A.[8, 3, 10, 19, 4, 2, 2, 1] B.[10, 5, 6, 13, 10, 5, 10, 5] C.[6, 3, 4, 23, 4, 2, 10, 5] D.[4, 2, 2, 17, 2, 1, 15, 7] 5.有如下Python程序段: import pandas as pd data={"姓名":["小芳","小唐","小王","小明"],"性别":["女","男","女","男"],"剩余积分":[16,12,13,10]} df1=pd.DataFrame(data,columns=["姓名","性别","剩余积分"]) df2=df1.head(2) df3=df1.tail(2) a=df2["剩余积分"].sum() b=df3["剩余积分"].sum() print(round(b/a,2)) 执行程序后,输出的结果是(    ) A.0.10 B.0.28 C.0.61 D.0.82 6.某算法的流程图如图所示,下列说法不正确的是(   ) A.执行该流程后,i的值是 15 B.执行该流程后,输出 s的结果是 33 C.执行该流程后,“i←i+2”共执行 3次 D.交换“s←s+i”和“i←i+2”的位置不会影响输出结果 7.有如下Python程序段: p=[0,0,0,0,0,0] for i in range(6):     k=0     for j in range(1,6):         if not f[j]:             if a[j] < a[k] or f[k]:             k=j     p[i]=k+1     f[k]=True 若列表元素f[0]到f[5]的初始值均为False,列表元素a[0]到a[5]的初始值依次是3,6,4,1,2,5,执行该程序段后,列表元素p[0]到p[5]的值依次是(    ) A.4,5,1,3,6,2 B.4,5,6,1,2,3 C.1,2,3,4,5,6 D.2,6,3,1,5,4 8.有两个自定义函数如下: 下列说法不正确的是(   ) A.p2(2,3)的返回值为8 B.函数p2的时间复杂度是O(n) C.函数p1和函数p2均采用了递归算法 D.计算p1(2,3),函数p1的调用次数为4 9.以下属于算法三种基本结构的是(  ) A.递归结构 B.循环结构 C.顺序结构 D.选择结构 10.下列关于程序设计语言的说法正确的是(  ) A.低级语言编写的程序都可以直接被计算机识别和执行 B.高级语言不需要被编译或翻译,就可以直接被计算机识别和执行 C.机器语言可以被计算机直接识别和执行 D.高级语言要被计算机识别和执行,只能通过编译一种方式 11.下列关于Python 注释的叙述,不正确的是(  ) A.Python语言的多行注释以三个单引号"'开头和结尾 B.Python语言的单行注释以# 开头 C.Python 语言有两种注释方式:单行注释和多行注释 D.Python语言的单行注释以单引号'开头 12.小明要编写一个程序,能实现对用户输入的数据,判断其为奇数还是偶数,请你帮他完成以下代码:在“if( )”处补充代码(  ) n=int(input("请输入一个数: ")) if( ): print("这是一个偶数")else: print("这是一个奇数") A.n/2==0 B.n//2==0 C.n%2==0 D.n%10==0 13.在Python语言中,正确调用numpy模块的语句是(    ) A.read numpy B.open numpy C.return numpy D.import numpy 14.为完善班级功能建设,班长设计并搭建了班级网站,(网站为:http://mo17733146-7.icoc.bz/),网站拥有成绩查询系统,同学们在登入网站后,输入自己的账号和密码就可以查询自己的成绩。 查询成绩信息的部分代码如下: @app.route("/col") def chengji_list():     conn=sqlite3.connect("cj.db")     cur=conn.cursor()     cur.execute("select*from cjcx")     jieguo=cur.fetchall()     cur.close()     conn.close()     return render_template("list.html",jieguo=jieguo) 下列选项中说法正确的是(   ) A.查询的数据表名为cj.db B.连接的数据库文件名是cjcx C.当前视图函数是chengji_list() D.查询成绩信息时URL的地址为http://mo17733146-7.icoc.bz/ 15.某算法的部分流程图如图所示,执行这部分流程,若输入的x依次为4,5,9,14,0,则输出n的值是(   ) A.1 B.2 C.3 D.4 16.某Python程序的部分代码如下: x=[8,9,7,3,2,7,1,4,2] a=[0]*10 s="" for i in x: a[i]+=1 for i in range(10): for j in range(a[i]): s=str(i)+s 则执行该程序段后,变量s的值是(    ) A.“1234789” B.“122347789” C.“9874321” D.“987743221” 17.某二分查找算法的Python程序段如下: import random key=random. randint(1,4)*2 a=[2,3,4,4,4,6,7,10] ans=0;i=0;j=len(a)-1 while i<=j: m=(i+j)//2 if key>=a[m]: i=m+1 else: j=m-1 ans+=a[m] print(ans) 执行该程序段后,ans的值不可能是(   ) A.27 B.14 C.11 D.9 二、填空题 18.如图所示算法,输出结果是 。 19.在Python中, 函数可以用来实现循环的延迟执行。 20.有如下Python 程序段: k=[29,38,78,17] m=0 for i in range(1, len(k)): if k[i]>k[m]: m=i if m!=0: k[0],k[m]=k[m],k[0] print(k) 该程序段执行后,输出结果为 。 21.有Python程序代码如下: n=int(input("请输入一个整数n:")) if n < 0 :     s = 0 elif n < 16 :     s = n ** 3 else :     s = n * n ** 2 print(s) 若要测试所有分支程序代码是否正确,请列举一组合适的数据 22.某 Python 程序如下: n = int (input ()) sum = a = 3 res = 0 i=1 while i <= n:     res = res  + sum     sum = sum * 10 + a     i = i + 1 print (res) 当输入n值为3时,程序输出结果是 。 23.流程图描述的算法执行结果是 。 三、判断题 24.早期的程序设计语言是由二进制代码指令组表示的,这样的语言能被计算机直接接收和执行,这种语言被称为“汇编语言”。( ) 25.表示算法的方法通常可以是流程图、伪代码和高级语言。( ) 26.在编写程序时,要养成添加注释的良好习惯,以提高程序的可读性。( ) 27.在Python3.x语言中,input()函数的返回值类型是字符串。( ) 四、操作题 28.如果将5万元存入银行,选择一年定期自动转存的存款方式,假设5年内利率没有发生变化,均为1.25%,问:5年后到期存款总额为多少?打开“考生文件夹\Python \02.py”,请在序号处填写正确的代码,且在不改变原程序结构的情况下删除序号,调试完成后保存文件。 rate=0.0125    #给利率变量赋值 money=50000    #给存款总额变量赋初值(单位:元) for year in range(1,① ):     money=② *(l+rate)#计算每年新的存款总额 print("五年后的存款总额为:",③ ,"元")输出结果 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查算法的描述方法。常见的算法描述方法有:自然语言、流程图、伪代码。结构图不属于算法描述方法,故选C。 2.B 【详解】本题考查Python基础。str函数功能可以将整数转换成字符。故选择B。 3.D 【详解】本题考查算法流程图相关内容。A选项,该流程图中包含一个循环结构,选项错误。B选项,语句i←i+1执行了3次,其终值为5,选项错误。C选项,将语句x←x/i修改为x←x//i,程序运行结果并未发生变化,选项错误。D选项,输出m的值是4,选项正确。故本题答案是D选项。 4.B 【详解】本题考查Python程序设计相关内容。结合randint函数特点,分析程序段,其运行过程如下: (1)i=0, i%2==0成立,lst[0]的值是[1,2,3,4,5] *2,即[2,4,6,8,10]中的一个。 (2)i=1, i%2==0不成立,i%3==0不成立,lst[1]的值是lst[0]//2,即其值由lst[0]的值决定,A选项错误。 (3)i=2, i%2==0成立,lst[2]的值是[1,2,3,4,5] *2,即[2,4,6,8,10]中的一个。 (4)i=3, i%2==0不成立,i%3==0成立,lst[3]的值是[6,7,8,9,10]*2+1,即[13,15,17,19,21]中的一个,C选项错误。 (5)i=4, i%2==0成立,lst[4]的值是[1,2,3,4,5] *2,即[2,4,6,8,10]中的一个。 (6)i=5, i%2==0不成立,i%3==0不成立,lst[5]的值是lst[4]//2,即其值由lst[4]的值决定。 (7)i=6, i%2==0成立,lst[6]的值是[1,2,3,4,5] *2,即[2,4,6,8,10]中的一个,D选项错误。 (8)i=7, i%2==0不成立,i%3==0不成立,lst[7]的值是lst[6]//2,即其值由lst[6]的值决定。 故本题答案是B选项。 5.D 【详解】本题考查Python程序。DataFrame对象df2为对象df1的前两行数据,对象df3为对象df1最后两行数据,求出对象df2中剩余积分的总和并赋值给a,求出对象df3中剩余积分的总和并赋值给b,最后求出round(b/a,2)的值,输出结果为0.82。故答案为:D。 6.D 【详解】本题考查流程图分析。D选项,按照流程图运行后s为33,交换“s←s+i”和“i←i+2”的位置s为39。影响输出结果。故正确答案为选项D。 7.A 【详解】本题考查Python程序设计相关内容。分析程序段,推知: i=0时,列表p值为[4, 0, 0, 0, 0, 0];i=1时,列表p值为[4, 5, 0, 0, 0, 0];i=2时,列表p值为[4, 5, 1, 0, 0, 0];i=3时,列表p值为[4, 5, 1, 3, 0, 0];i=4时,列表p值为[4, 5, 1, 3, 6, 0];i=5时,列表p值为[4, 5, 1, 3, 6, 2]。所以执行该程序段后,列表元素p[0]到p[5]的值依次是4,5,1,3,6,2。故本题答案是A选项。 8.D 【详解】本题考查Python程序设计相关内容。本题涉及到递归的应用、时间复杂度的计算。 A选项,p2(2,3)=2*p2(2,2)=2*(2*p(2,1))=2*(2*(2*p(2,0)))=2*(2*(2*1)))=8,选项正确; B选项,函数p2每调用一次,b的值减小1,故b的值为n时,需要调用n+1次函数p2,而p2的时间复杂度为O(1),故p2函数复杂度为(n+1)*O(1)=O(n),选项正确; C选项,函数p1和p2在执行过程中都会自己调用自己,采用了递归的算法,选项正确; D选项,p1(2,3)=2*p1(2,2)=2*p1(2,1)*p1(2,1)=2*(2*p1(2,0))*(2*p1(2,0)),调用次数为6,选项错误。 故本题答案是D选项。 9.BCD 【详解】本题考查的是算法基本结构。算法常见的三种基本结构是:顺序结构、选择结构、循环结构。故本题应选BCD。 10.C 【详解】本题主要考查程序设计语言的描述。用高级语言编写的程序,不能直接被计算机所识别和执行,必须经过编译程序或解释程序将其翻译成机器语言,使用机器语言编写的程序可以直接被计算机识别并执行、汇编语言需要汇编程序转换成机器指令后计算机才能执行,而机器语言和汇编语言都属于低级语言。故C说法正确 11.D 【详解】本题考查的是Python注释语句。在Python中单行注释用#,三个单引号'''是多行注释符号。故本题应选D。 12.C 【详解】本题考查Python分支结构。在这段程序中,我们需要判断输入的正整数x是否为偶数。根据整数的奇偶性质,一个整数除以2的余数为0时,它就是偶数。因此,我们可以使用取余运算符(%)来判断x是否能被2整除,如果余数为0,则x是偶数,否则是奇数。C选项正确。 13.D 【详解】本题考查的是Python库相关知识。Python调用第三方库格式:import 库名。故本题应选D。 14.C 【详解】本题考查程序分析。A选项错误,数据表名为cjcx。B选项错误,连接的数据库文件名是cj.db。D选项错误,http://mo17733146-7.icoc.bz/为网站地址,非查询成绩信息时URL的地址。故正确答案为C选项。 15.B 【详解】本题考查流程图。使用元素跟踪法可得下表: x=4 x=5 x=9 x=14 x=0 x!=0 x!=0 x!=0 x!=0 x==0退出 c=0,b=0,a=4 c=0,b=4,a=5 c=4,b=5,a=9 c=5,b=9,a=14 a!=0+0 5!=0+4 9==4+5 14==5+9 n=1 n=2 因此,最后输出的n的值为2。故答案为:B。 16.D 【详解】本题考查Python程序设计相关内容。分析程序段可知,该程序运行过程如下:经过第一个for循环后,列表a的值为:[0,1,2,1,1,0,0,2,1,1],第二个双重for循环的作用是:当列表元素值非0时,将其索引号转换为字符并连接在s的前面,连接次数由列表中对应元素值决定(元素值为1时,将该元素索引号进行1次转换为字符后连接在s的前面;元素值为2时,将该元素索引号进行2次转换,每次转换为字符后都连接在s的前面)。经过相关操作后,s的值为:“987743221”。故本题答案是D选项。 17.C 【详解】本题考查Python程序设计相关内容。key由随机数函数产生,采用二分查找算法求ans的值,其运行过程如图所示:ans的可能值有4个:9、14、17、27。不可能取得11。故本题答案是C选项。 18.21 【详解】本题考查算法分析。初始化A=0,B=1。运行过程为: A=1,B=2。 A=3,B=5。 A=8,B=13。 A=21,B=34。 故正确答案为:21。 19.time.sleep() 【详解】本题考查Python函数的描述。Python中,time.sleep()函数可以用来实现循环的延迟执行。 20.[78,38,29,17] 【详解】本题考查Python程序设计相关内容。分析程序段,其功能是先找出列表元素最大值,然后将其与列表首元素交换位置。列表k中,最大值是78,将其与29交换位置,形成新列表[78,38,29,17]。故本题答案是:[78,38,29,17]。 21. -1,15,16  或其他等价答案 【详解】本题考查的是Python多分支语句。阅读程序可知,程序由三个分支:小于0、大于等于0小于16、大于等于16。故测试数据可以是:-1,15,16 或其他等价答案。 22.369 【详解】本题考查的是Python循环语句。初始i=1,sum = a = 3,当输入n值为3时。 i<=3成立,res = res+sum=3, sum=sum*10+a=30+3=33,i=i+1=2; i<=3成立,res = res+sum=36, sum=sum*10+a=330+3=333,i=i+1=3; i<=3成立,res = res+sum=369, sum=sum*10+a=3330+3=3333,i=i+1=4; i<=3不成立,故输出res为369。 23.16 【详解】本题考查的是流程图的识读。阅读流程图可知,计算的是1+3+5+7的值,故填16。 24.错误 【详解】本题主要考查程序设计语言的描述。早期的程序设计语言是由二进制代码指令组表示的,这样的语言能被计算机直接接收和执行,这种语言被称为“机器语言”,故表述错误。 25.正确 【详解】本题考查算法的表示。表示算法的方法有多种,常见的包括流程图,它通过图形符号直观地展示算法步骤和逻辑流程;伪代码,是一种类似编程语言但更简洁易懂的方式来描述算法逻辑;高级语言,如 C、C++、Java等可以直接编写代码来实现算法。故说法正确。 26.正确 【详解】本题考查程序设计注释相关内容。注释的作用是为了让自己或他人更快地了解程序作者的思路和意图,提高代码的可读性,同时在多人协同开发时,也可以提高开发效率。说法正确。 27.正确 【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。 28. 6 money money 【详解】本题考查Python程序。 (1)因为要计算5年的存款总额,所以循环次数应该是5次,range(1,6)可以产生1到5的整数序列,满足5次循环的需求。故答案为:6。 (2)每年的新存款总额是基于上一年的存款总额计算的,所以这里应该是money。故答案为:money。 (3)最后要输出的是5年后的存款总额,即循环结束后计算得到的money的值。故答案为:money。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

第二章 算法与程序实现 2024-2025学年高中信息技术华东师大版(2020) 必修1
1
第二章 算法与程序实现 2024-2025学年高中信息技术华东师大版(2020) 必修1
2
第二章 算法与程序实现 2024-2025学年高中信息技术华东师大版(2020) 必修1
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。