第三章算法的程序实现同步作业2024—2025学年高中信息技术浙教版(2019)必修1

2024-08-10
| 12页
| 35人阅读
| 0人下载

内容正文:

第三章算法的程序实现同步作业2024—2025学年高中信息技术 浙教版(2019)必修1 一、选择题 1.在Python中,要定义一个函数,可以使用以下哪个关键字?(     ) A.function B.subroutine C.procedure D.def 2.在编程中,复用代码的主要好处是(   ) A.增加代码量 B.提高程序执行速度 C.减少代码冗余 D.增加程序复杂性 3.字典 data 中存储了如下数据: {"课程":["舞蹈" ,"Python","数学"],"地点":[" 舞蹈房","计算机房","教室"], "时长":["60 分钟","40 分钟","90 分钟"]},若将"数学"课的时长调整为"70 分钟",以下操作可行的是(  ) A.data[2][2]= "70 分钟" B.data["时长"][-1]= "70 分钟" C.data[-1][2]= "70 分钟" D.data["时长"][3]= "70 分钟" 4.变量是在程序运行过程中值允许改变的量。下列选项中,可以用作Python变量名的是(  ) A.3Dmax B.if C._a#123 D.Teacher3 5.如下Python程序段 a=5 if a > 5 :     b = a ** 2 else:     b = a ** 3 + 1 print(b) 运行结果是(   ) A.126 B.25 C.10 D.5 6.面额为10元、20元和50元的纸币各有10张,求总额恰好为380元取法方案的算法是:设10元取a张、20元取b张、50元取c张,a、b、c都取0到10之间的整数,将a、b、c取值的所有可能组合逐一代入表达式10 * a+20 * b+50 * c =380,判断是否成立,若成立,则输出这一方案。此算法属于(   ) A.查找算法 B.枚举算法 C.递归算法 D.排序算法 7.由一些助记符组成,每条汇编指令与一条机器指令相对应的程序设计语言是(   ) A.机器语言 B.汇编语言 C.高级语言 D.逻辑语言 8.函数 range(10)包含的元素个数是(    ) A.8 B.9 C.10 D.11 9.某Python程序段的功能是:输入一个十进制数,将其转换成十六进制数并输出。 n=int(input("请输入一个十进制数:")) t=0 c="" while n!=0: t=n%16 n=① if t<10:    c=str(t)+c else:        c=② print("转换后的十六进制数为"+c+"H") 代码中①、②处的语句分别是(   ) A.①n//16  ②chr(ord("A")+t-10) B.①n//16  ②ord(chr("A")+t-10) C.①n/16   ②chr(ord("A")+t-10) D.①n/16   ②ord(chr("A")+t-10) 10.在Python中,判断a不等于0且b不等于0的条件表达式是(   ) A.not a == 0 or not b == 0 B.not (a == 0 or  b == 0) C.not(a == 0 and b == 0) D.a != 0 or b != 0 11.在Python语言中,若要记录学习用品名称,应使用的数据类型是(   ) A.整型 B.浮点型 C.字符串型 D.布尔型 12.下列选项中,flag的值与其他三项不同的是(   ) A. B. C. D.flag=a>b>c 13.现有18枚硬币,18枚硬币中有一个是伪造的,并且那个伪造的硬币比真的硬币要轻。有一台用来比较两组硬币重量的仪器,使用递归及分治法设计一个算法,找出那枚伪造的硬币。阅读下列程序代码。 def check3(a,right,left):     b=(left-right+1)//3     if right==left:         index=right+1         return index     elif right+1==left:         if a[right] < a[left]:             index=right+1             return index         else:             index=left+1             return index     else:                 if sum(a[right:right+b]) == sum(a[right+b:right+2*b]):             return check3(a,right+2*b,left)                                elif sum(a[right:right+b]) > sum(a[right+b:right+2*b]):                 return check3(a,right+b,right+2*b-1)                          else:             return check3(a,right,right+b-1)                     a = [1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1] index1=0 right0 = 0 index1= check3(a,right0,len(a)) print("你要找的假币在第",index1,"个位置") input("运行完毕,请按回车键退出...") 假设列表a中,0表示伪造的硬币,下列说法正确的是(  ) A.此程序递归部分为三分法递归查找伪造的硬币 B.sum(a[right:right+b])==sum(a[right+b:right+2*b])表示第二组的重量与第三组重量相同 C.此程序递归部分为二分法递归查找伪造的硬币 D.以上都不对 14.用Python程序计算100以内所有奇数的和,代码如图,该程序使用了顺序结构和(    ) 1 s=0 2 for a in range( ): 3    s=s+a 4 print(s) A.选择结构 B.循环结构 C.分支结构 D.拓扑结构 15.费马平方和定理:质数能表示为两个平方数之和的充分必要条件是该质数被4除余1,如13=22+32。现通过编程来验证3-99之间所有质数是否符合费马平方和定理。 实现该功能的Python程序如下,运行结果如图所示,划线处的代码可以是(    )    from math import sqrt    def prime(n):       # prime(n)判断n是否为质数,返回True/False,代码略    for n in range(3, 101, 2):       if prime(n):          a=1; flag=True          while a < sqrt(n) and flag:             b= ①             if int(b)==b:                print(str(n)+“=”+str(a)+“**2+”+str(int(b))+“**2”)                flag=False              a=a+1          if ②             print(n,“无法用两个平方数之和表示”) A.① b=sqrt(n-a**2)            ②flag B.①b=sqrt(n-a*a)            ②not flag C.① b=sqrt(n-a*a)            ②n%4!=1 D.① b=sqrt(n-a**2)            ②b==int(b) 16.已知字典dic={"姓名":"小明","语文":115,"数学":120,"英语":108},下列说法不正确的是(    ) A.dic["语文"]+dic["数学"]+dic["英语"]的值是343 B.若要将学生姓名更改为"小华",可执行语句dic["姓名"]="小华" C.若要添加该同学的技术成绩为75,可执行语句dic["技术"]=75 D.dic["英语"] in dic的值为True 17.在BXY中编辑有这样一段程序: from microbit import * while True:     if button_a.is_pressed():         display.show(Image.HAPPY)     elif button_b.is_pressed():         break     else:         display.show(Image.SAD)     sleep(1000) 在micro:bit硬件支持下,以下说法正确的是 (    ) A.开始运行,不按开发板上的任何按钮,开发板显示“笑脸” B.开始运行,按开发板上的B按钮后,开发板上的LED灯全部关闭 C.开始运行,不按开发板上的任何按钮,开发板进入死循环,无法正常运行 D.开始运行,按开发板上的A按钮后,开发板显示“笑脸”,一秒钟后显示“哭脸” 18.下列python表达式的值为False的是:(    ) A.2**4>=4**2 B.3 in ["3","6"] C.1en(str(1)+"3") D.3*4//5%2+4==4 19.有如下python程序段: def ds (s, i): if "a" <=s[i]<="z" : s=s[:i]+s[i+1:] elif "0" <=s[i]<="9" : s=s[:i]+str((int(s[i])+6)%10)+s[i+1:] return s s="Yy23mm4";i=0 while i<len(s): s=ds(s, i) i+=1 print(s) 执行上述程序段后,s的值为(    ) A."89mm0" B."Y89m0" C."Y29m0" D."y23m4" 20.在一个单向链表(如图)中,若在尾指针tail所指节点之后插入新节点(r所指节点),则执行的操作是(  ) A.tail所指节点的data3值赋为r所指节点的data4值 B.r所指节点的next值赋为tail C.r所指节点的next值赋为-l D.tail所指节点的next赋为r,r所指节点的next值赋为-l 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.D 【详解】本题考查Python关键字。def是Python中用于定义函数的关键字。通过使用def关键字,可以定义一个函数,指定函数的名称、参数和函数体。故答案为:D。 2.C 【详解】本题考查编程的描述。复用代码的主要好处是减少代码冗余。通过复用代码,可以避免重复编写相同的代码,从而减少代码量,提高代码的可维护性和可读性。选项A和D都是不正确的,因为复用代码不会增加代码量或程序复杂性。选项B虽然有时复用代码可以间接提高程序执行速度,但这不是复用代码的主要目的。故选C。 3.B 【详解】本题主要考查字典数据类型。字典是按key取值,字典[键名] ,返回键名对应的值;当查找的key不在字典内,会报错。若将"数学"课的时长调整为"70 分钟",表达式可以是data["时长"][-1]= "70 分钟" 或data["时长"][2]= "70 分钟",故本题选B选项。 4.D 【详解】本题考查Python变量相关内容。Python变量命名规则是:变量名只能包含字母、数字和下划线。变量名可以以字母或下划线开头,但不能以数字开头。变量名不能包含空格,但可以使用下划线来分隔其中的单词。不要使用Python关键字和函数名作为变量名。AC选项,不符合变量命名规则。B选项是关键字,不能用作变量名。D选项符合变量命名规则,可以使用。故本题答案是D选项。 5.A 【详解】本题考查Python分支结构的应用。a=5,满足else条件,执行b=a**3+1=5**3+1=126。故选A。 6.B 【详解】本题考查算法。此算法是将a、b、c取值的所有可能组合逐一进行尝试,判断是否满足条件,这种将所有可能的情况一一列举出来进行判断的算法属于枚举算法。查找算法是在一组数据中查找特定元素;递归算法是函数在其定义中直接或间接调用自身;排序算法是对一组数据按照特定规则进行排序。而本题是逐个列举所有可能的取值组合,所以是枚举算法。故答案为:B。 7.B 【详解】本题考查编程语言。由一些助记符组成,每条汇编指令与一条机器指令相对应的程序设计语言是:汇编语言。汇编语言是一种符号化的机器语言,它使用助记符来表示机器指令的操作码和操作数,使得编程更加容易理解和记忆。故答案为B选项。 8.C 【详解】本题考查Python函数相关内容。range(start, stop, [step]),start:计数从 start 开始,默认是从 0 开始。例如range(5)等价于range(0, 5);stop:计数到 stop 结束,但不包括 stop,例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1,例如:range(0, 5) 等价于 range(0, 5, 1)。函数range(10)包含的元素是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],共10个元素。故本题答案是C选项。 9.A 【详解】本题主要考查Python程序的综合应用。十进制数转换为十六进制数的方法是:除权取余、逆序排列。①处更新n的值,即n=n//16。②处当t大于10,转换为字母A~F,即c=chr(ord("A")+t-10),故本题选A选项。 10.B 【详解】本题考查Python运算符与表达式相关内容。A选项,not a == 0 or not b == 0即为:a!=0 or b!=0,不符合题意;B选项,not (a == 0 or   b == 0)即为a!=0 and b!=0,符合题意;C选项,not(a == 0 and b == 0)即为:a!=0 or b!=0,不符合题意;D选项,a != 0 or b != 0不符合题意。故本题答案是B选项。 11.C 【详解】本题考查的是Python数据类型。整型存放整数,浮点型存放小数,字符串型可以存放文字、数字、字母等,布尔型存放逻辑值。若要记录学习用品名称,应使用的数据类型是字符串型。故本题应选C。 12.A 【详解】本题考查Python关系运算相关内容。以a=3,b=2,c=4为例,比较4个选项结果。A选项,结果为True;B选项,结果为False;C选项,结果为False;D选项,结果为False。A选项与BCD选项不同。故本题答案是A选项。 13.A 【详解】本题主要考查递归及分治算法。分析程序可知, b=(left-right+1)//3,此程序递归部分为三分法递归查找伪造的硬币;sum(a[right:right+b])==sum(a[right+b:right+2*b])表示第一组的重量与第二组重量相同,故本题选A选项。 14.B 【详解】本题主要考查Python循环结构的应用。分析程序可知,该程序使用了顺序结构和for循环结构,故本题选B选项。 15.AC 【详解】本题主要考查Python程序的执行与调试。四个选项中第一问都正确,它们的含义相同,即 a**2等效于 a*a 。重点在第二问。代码 if int(b)==b的含义是b如果正好是整数而不是浮点数说明 n 是由两个整数的平方和组成。条件成立就输出n由那两个整数的平方和组成,这两个整数分别是a和b。 flag=false代码说明不用再循环已经找到满足两个数的平方和等于n的变量a和b。flag为false时表示n可以有两个数的平方和组成,flag为true时表示没有两个整数的平方和是n。A选项符合题意,B选项错误。题干中“质数能表示为两个平方数之和的充分必要条件是该质数被4除余1”,故C选项也正确。b==int(b)成立时flag值为false,n是可以有两个整数的平方和组成,D选项错误。故本题选AC选项。 16.D 【详解】本题主要考查字典数据类型。dic["语文"]+dic["数学"]+dic["英语"]=115+120+108=343;若要将学生姓名更改为"小华",可执行语句dic["姓名"]="小华";若要添加该同学的技术成绩为75,可执行语句dic["技术"]=75;dic["英语"] in dic的值为False,故本题选D选项。 17.D 【详解】本题主要考查Python程序的执行与调试。开始运行,不按开发板上的任何按钮,开发板显示“哭脸”;开始运行,按开发板上的B按钮后,跳出循环;开始运行,按开发板上的A按钮后,开发板显示“笑脸”,一秒钟后显示“哭脸”,故本题选D选项。 18.B 【详解】本题考查的是Python表达式。2**4>=4**2值为True。表达式中3 in ["3","6"]的3一个为数值类型,一个位字符类型,故其值为False。len(str(1)+"3")=2。3*4//5%2+4==4值为True。故本题应选B。 19.C 【详解】本题考查Python程序的执行。分析程序,ds函数中,当字符s[i]是小写字母时,则在字符串s中跳过该字母,即删除该字符;当s[i]是数字时,该数字变为int(s[i])+6)%10,即循环后移6个单位。s="Yy23mm4",当i=0时,s=ds(s, i)="Yy23mm4";当i=1时,s=ds(s, i)="Y23mm4";当i=2时,s=ds(s, i)="Y29mm4";当i=3时,s=ds(s, i)="Y23m4";当i=4时,s=ds(s, i)="Y23m0",循环结束。因此执行上述程序段后,s的值为"Y29m0"。故选C。 20.D 【详解】本题主要考查链表的操作。链表中尾结点的next指针为-1,若在尾指针tail所指节点之后插入新节点(r所指节点),则执行的操作是:tail所指节点的next赋为r,r所指节点的next值赋为-l,故本题选D选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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