第2单元 编程计算 2024-2025学年高中信息技术教科版(2019) 必修1

2024-08-06
| 14页
| 28人阅读
| 0人下载

内容正文:

第2单元 编程计算 一、选择题 1.若用整型变量xq表示某天是星期几,例如:xq=1表示该天是星期一,xq=2表示该天是星期二,……,xq=7表示该天是星期日,则表示当前xq的前一天是星期几的Python语句是(    ) A.(xq-1)%7 B.xq%7 C.xq%7+1 D.(xq+5)%7+1 2.写出“韩信点兵”问题的求解步骤属于( ) A.分析问题 B.设计算法 C.编写程序 D.设计运行 3.Python表达式“abs(3-5%3**2)//2”的值是(   ) A.1 B.2 C.4 D.5 4.下列Python表达式中值最小的是(   ) A.2**2+5%13//9 B.3*7//2-8 C.len("abed1234") D.abs(-5) 5.某算法的部分流程图如图所示,执行完这部分流程后,变量 i,s 的值分别是(    ) A.3,9 B.4,18 C.5,18 D.6,43 6.计算机的应用渗透到社会各行各业,其中天气预报体现了计算机在(   )方面的应用。 A.过程控制 B.科学计算 C.人工智能 D.信息处理 7.执行以下python程序,若输入的值是2,则输出的结果是(    ) a=int(input(    )) a=a**3 print(a) A.2 B.4 C.6 D.8 8.有如下Python程序段: a=[6,-9,-6,8,7,4,-3,-1] n=len(a) for i in range(n-1): for j in range(n-1,i,-1):     if a[j]>a[j-1]:         a[j],a[j-1]=a[j-1],a[i]     if a[i]<0:         break 执行该程序段后,下面说法正确的是(   ) A.a[0]到a[n-1]升序排序 B.a[0]到a[n-1]降序排序 C.方框里的语句总共执行了4次 D.变量i的值为4 9.已知x=20,y=21,以下表达式的计算结果为True的是(   ) A.x>=y-1 or (x+1)!=y B.not (x<=y) C.x<y-1 and x-1==y D.x>y-2 and x! =y-1 10.有如下程序段: s = "aabbbccdd" n = len(s); i = 3 while i < len(s):     if s[i] == s[i - 1] and s[i-2] == s[i - 3]:        s = s[:i] + s[i + 1:]     else:        i += 1 执行该程序段后,变量s的值是(   ) A."abcd" B."aabbcd" C."aabcd" D."aabccd" 11.以下不属于算术运算符的是(   ) A.** B.% C.!= D./ 12.以下代码可实现把多个升序链表合并成一个升序链表 class ListNode:     def __init__(self, val=0, next=None):         self.val = val         self.next = next def mergeTwoLists(list1, list2):     if (1) or (2) :         list1, list2 = list2, list1     if (3) :         list1.next =(4)     return list1 def mergeKLists(list1):     if (5) :     return None     if len(list1) == 1:         return list1[0]     mid = len(list1) // 2     left, right = mergeKLists(list1[:mid]), mergeKLists(list1[mid:])     return mergeTwoLists(left, right) 划线处(1)(2)(3)(4)(5)应填入的正确代码有 ①(list2 and list1.val > list2.val)    ②(list1 and list2.val > list1.val)    ③list1,list2=list2,list1 ④mergeTwoLists(list1.next, list2)  ⑤mergeTwoLists(list1, list2.next)  ⑥not list1  ⑦not list2 ⑧list1   ⑨list2 则正确代码的顺序是(   ) A.⑥①⑧④⑥ B.⑦②⑥④⑥ C.⑥①⑨④⑥ D.⑦②⑨④⑥ 13.有如下程序段,该程序段运行后,变量x的值为(   ) x = 3 if x >= 1:     x *= 4 else:     x += 8 x /= 2 print(x) A.12 B.6 C.0 D.10 14.在 Python程序设计语言中,if语句属于(  ) A.顺序结构 B.分支结构 C.循环结构 D.流程结构 15.执行下面的Python程序段后,変量i的值为(   ) for i in range(6): print (i) A.6 B.1,2,3,4,5,6 C.0,1,2,3,4,5 D.0,1,2,3,4,5,6 16.有如下Python函数: def trans(num,n):     s="0123456789ABCDEF"     if num<n:         return s[num]     else:         return trans(num//n,n)+s[num%n] print(trans(394,16)) 执行语句a=trans(394,16)后,a的值为(   ) A.19A B.1810 C.180 D.18A 17.判断整数x是否奇偶的部分Python 程序段如下:   if x%2==0:        y="even"    else:        y="odd" 下列选项中与上述语句块功能相同的是() A. B. C. D. 18.如图所示代码,当输入23时,输出结果为:(   ) s= int( input("请输入:") ) if s<5: print("小了") elif s<15: print("还是有点小了") elif s<25: print("差不多") else: print("很好") A.小了 B.很好 C.差不多 D.还是有点小了 二、填空题 19.在Python中,使用 可以快速生成一个特定范围内的数列。 20.执行如下程序,写出运行结果。 a=input() b=input() c=int(a+b) d=int(a)+int(b) print(c,d) 键盘依次输入33和44,则输出结果为 。 21.在Python中,range()函数可以生成一个整数序列,但是它生成的序列不包含序列的上限值,即range(10)会生成从0到 的序列。 22.Python表达式125//3的运算结果是( ) 23.阅读下列程序,写出运行结果 sum=0 for k in range(1,11):     if k%2==0: sum=sum+k print(sum) 程序运行后输出结果是: 。 24.当飞船速度“v>=7.91”时,输出“飞船成功飞行!”,否则输出“飞船不能升空!”。 v=input(“请输入速度(千米/秒):”)    第1行 if v>=7.91:                            第2行        print("飞船成功飞行!")        第3行 else                                    第4行       print("飞船不能升空!")        第5行 (1)第 行,改正后的语句 。 (2)第 行,改正后的语句 。 三、判断题 25.已知列表x = [1, 2],执行语句y = x后,表达式id(x) == id(y)的值为True。( ) 26.在Python 3中,使用内置函数input()接收用户输入时,不论用户输入什么格式的内容,一律按字符串进行返回。( ) 27.下列程序段中,赋值语句s=s+i被重复执行了10次。( ) s=0 for i in range(10):     s=s+i 28.读下面的python程序,在划线处填写上“a<b”,则程序的输出结果是True。( ) a=5 b=8 if :     print("True") else:     print("Flase") 29.利用编程解决问题的第一步是设计算法。( ) 30.for循环与while循环任何时候都不可以相互替换。( ) 四、操作题 31.密码系统包括明文、密文、密钥和密码算法四个方面。原有的信息称为明文,明文经加密变换后的形式称为密文;由明文变为密文的过程称为加密,通常由加密算法实现;由密文还原为明文的过程称为解密;通常由解密算法实现。现某明文字符串由大小写字母和数字组成,其加密算法描述如下①将明文中的大写小写字母相互转换,数字字符不变;②将转换后的字符串字符按ASCII码值后移t位;③将新字符串倒序输出。 例如,当明文为“1Az8bK”,密钥t=3时,加密过程如图所示 (1)若明文为“b9XY2e”,t-4,则密文是 (2)实现解密的Python程序如下,请在划线处填入合适的代码 def yw(s,k):    #将字符串中字符按ASCI码值前移k位     s1=“”     for i in s:         ch=i         if "0"<=ch<="9":             ch=str((int(ch)-k+10)%10)         elif "A"<=ch<="Z":             ch=         else:             "将字符串中的小写字符前移k位并存在变量ch中,代码略"         s1=s1+ch     return sl def hw(s): #将字符串中大写小写字母相互转换             temp=s[i]         if not "0"<=temp<="9":             if "A"<=temp<="Z"                 temp=temp.lower()                 #将字符串中大写字母转换为小写字母else:             else:                 temp=temp.upper()                 #将字符串中小写字母转换为大写字母         s=     return s def dx(s):  #将字符串倒序输出     return s[::-1] miw=input("请输入密文:") t=int(input("t=")) miw=hw(miw) mingw= print(mingw) (3)程序加框处代码有错,请改正 32.设计程序,输入一个字符串,编程将字符串中的字符依次输出,最后计算输出此字符串的长度。 zfc =① ("请输入一个字符串:") count = 0 for i in ② :     count +=③     print(i) print("您输入的字符串长度是:",count) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.D 【详解】本题考查Python基础。 xq%7的值范围是[0,6],该范围与实际值有偏差,需调整为(xq-1)%7+1。求前一天变量,xq需要减1,即(xq-2)%7+1,因为xq-2可能会出现负值,不利于结果处理,而增加7的整数倍不会影响结果,因此为(xq-2+7)%7+1。故正确答案为:选项D。 2.B 【详解】本题考查计算机解决问题相关内容。解决问题的步骤:分析问题→设计算法→编写程序→运行程序验证结果。写出“韩信点兵”问题的求解步骤属于设计算法,故本题答案是B选项。 3.A 【详解】本题考查Python基础。 3的平方为9,5取余9为5,3-5=-2,-2的绝对值为2,2//2=1。故正确答案为:选项A。 4.B 【详解】本题考查Python基础。 选项A中,5%13//9的结果为0。故2**2+5%13//9的结果是4。选项B中,3*7//2结果为10减去8的结果是2。选项C的结果是字符的长度,为8。选项D的结果为-5的绝对值是5。最小的是2。故正确答案为:选项B。 5.B 【详解】本题考查程序分析。 初始化:s=0,i=1。变量s累加3的倍数,先累加,变量i后加1。当s>15时,退出循环。当s=3+6+9=18,此时i=4,故退出循环。故正确答案为:选项B。 6.B 【详解】本题考查计算机的应用。气象台的计算机将收集到的数据进行处理和运算,主要体现了计算机在科学计算方面的应用。故选B。 7.D 【详解】本题考查Python程序。程序中的关键点是对输入值进行立方运算,然后输出结果。根据题目的设定,如果输入的值是2,那么程序执行的具体步骤如下:用户输入一个整数,假设输入为2。 程序将输入的值2进行立方运算:23=8。最后输出结果,即打印变量a的值,结果为8。故答案为:D。 8.D 【详解】本题考查程序分析。该程序是个排序程序,当a[i]<0时候,停止排序。故不可能排列全部元素。排除选项A、B。方框里的语句执行了5次,故选项C错误。故选择D。 9.A 【详解】本题考查Python运算符与表达式相关内容。已知x=20,y=21,x>=y-1成立、 (x+1)!=y不成立,or表示只有一个表达式成立则结果为真,选项A结果为True;not (x<=y)表示不是20小于等于21,选项B结果为False;and表示左右两边的表达式都成立结果才为真,x<y-1不成立,选项C结果为False; x! =y-1不成立,选项D结果为False。故选:A。 10.D 【详解】本题考查Python程序设计相关内容。分析程序段,其运行过程如图所示: 故本题答案是D选项。 11.C 【详解】本题考查Python运算符相关内容。“**”为算术运算符中的乘方运算;“%”为算术运算符中的取余运算;“/”为算术运算符中的除法运算;“!=”为关系运算符中的不等于运算。故本题答案是C选项。 12.A 【详解】本题考查链表。(1)如果第一个链表为空,则直接返回第二个链表,故选⑥。(2)如果第二个链表不为空且第一个链表的值大于第二个链表的值,则交换两个链表,使得较小的值在前。故选①。(3)在递归合并两个链表时,将当前较小值的节点作为合并结果的头节点。故选⑧。(4)递归地合并剩余的链表部分。故选④。(5)如果链表数组为空,则返回None。故选⑥。故答案为:A。 13.B 【详解】本题主要考查Python程序的执行。3>1则执行x=3*4=12,再执行x=x/2=12/2=6。故本题应选B。 14.B 【详解】本题主要考查条件语句。if语句属于分支语句 ,for、while属于循环结构,故本题选B选项。 15.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(6)生成序列数:0,1,2,3,4,5。故本题应选C。 16.D 【详解】本题考查Python递归函数相关内容。当num<n时,返回:s[num],否则返回:trans(num//n,n)+s[num%n]。执行a=trans(394,16),过程为:trans(394,16)-->trans(24,16)+s[10]-->trans(1,16)+s[8]+s[10]-->s[1]+s[8]+s[10],结束递归。最终输出结果为“18A”。故本题答案是D选项。 17.C 【详解】本题考查的是Python选择语句。选项A在x为偶数y="old",与题干给的程序不符;选项B语句格式不对,else后不用写条件表达式;选项Dx为偶数y="old",奇数y="even",与题干给的程序不符。故本题应选C。 18.C 【详解】本题主要考查Python多分支结构的应用。s=23,满足第三个分支判断条件s<25,输出结果为:差不多,故本题选C选项。 19.range() 【详解】本题考查Python函数。在Python中,range()函数可以快速生成一个特定范围内的数列。通过指定起始值、终止值和步长等参数,range()函数能够灵活地创建符合需求的数字序列。例如,range(5)会生成包含0到4的数列;故答案为:range()。 20.3344  77 【详解】本题考查Python基础。input函数接收字符型数据,故a+b的结果是拼接字符串。如果数值型相加,故先转换成整型数据。键盘依次输入33和44,故结果为3344和77。 21.9 【详解】本题考查Python函数。range()函数用于生成一个整数序列,但生成的序列不包含上限值。具体来说,range(10)会生成从0到9的整数序列,即包含起始值0但不包含上限值10。因此,range(10)会生成从0到9的序列。故答案为:9。 22.41 【详解】本题考查Python表达式的运算。//是整除运算符,因此125//3=41。 23.30 【详解】本题考查的是Python循环语句。sum=0,变量i的范围是1~10,如果是偶数,则执行sum=sum+i,故程序执行完,sum=sum+i=0+2+4+6+8+10=30。 24. 1 v = float(input("请输入速度(千米/秒):")) 4 else: 【详解】本题考查分支语句。 (1)第1行,改正后的语句:v = float(input("请输入速度(千米/秒):")。input 函数返回的值是字符串,但你希望将输入的速度转化为浮点数以便与 7.91 进行比较。因此,需要使用 float() 函数将输入的字符串转换为浮点数。故答案为:1、v = float(input("请输入速度(千米/秒):")。 (2)第4行,改正后的语句:else:。在 Python 中,条件语句中的else后面要接冒号。故答案为:4、else:。 25.正确 【详解】本题考查Python基础。 在Python中,当你执行 y = x 这样的语句时,你实际上并没有创建 x 的一个新副本,而是让变量 y 指向了 x 指向的同一个对象。这意味着 x 和 y 都引用了内存中的同一个列表对象,即内存地址相等,故表达式id(x) == id(y)的值为True。故正确。 26.正确 【详解】本题考查Python基础。 在Python 3中,使用内置函数input()接收用户输入时,不论用户输入什么格式的内容(包括数字、字符、特殊符号等),该函数一律将输入内容作为字符串(str)返回。故正确。 27.正确 【详解】本题考查Python基础。 range函数参数为10,则生成0到9的序列,执行10次赋值给变量i,并累加i到s。故正确。 28.正确 【详解】本题考查Python基础。 a=5,b=8,a<b返回逻辑真。故输出True。故正确。 29.错误 【详解】本题考查利用编程解决问题的步骤相关内容。利用编程解决问题的一般过程为:分析问题、设计算法、编写程序、调试运行,故本题答案是:错误。 30.错误 【详解】本题考查循环。for 循环和 while 循环是两种不同类型的循环结构,它们用于不同的情况,但它们通常可以相互替换。for 循环通常用于已知循环次数的情况,例如遍历一个列表或迭代器中的元素。while 循环通常用于未知循环次数的情况,即当某个条件为真时继续执行循环。在某些情况下,可以使用 for 循环来模拟 while 循环,反之亦然,但这通常需要额外的控制语句。故说法错误。 31. I6cb3F chr((ord(ch)-ord("A")- k+26)%26+ord("A")) s[:i]+temp+s[i+1:] dx(yw(miw,t)或yw(dx(miw),t) for i in range(len(s)) 【详解】本题考查程序分析。(1)①若明文为:b9XY2e,t=4。先倒序为e2YX9b。字母大小写转换为:E2yx9B。字母向后移动4位。最后结果为:I6cb3F。(2)②揭秘算法向前移动k位,if语句对大写字母解码,先将密文字符转换成ASCII码与字符A的ASCII码作减法运算,算出与A的偏移量,然后减去k,目的向前移动k位,然后加上26取余数26,原因是26个字母要循环移位,算出与字符A的偏移,加上A的ASCII码,转换成字符。故填写chr((ord(ch)-ord("A")- k+26)%26+ord("A"))。③hw函数需要累加转换后的字符,故可以对索引位置i上的字符切片,每次空出i位置。故填写s[:i]+temp+s[i+1:]。④调用移位函数,然后调用倒序输出函数或先调用倒序输出然后移位,得到明文。故填写dx(yw(miw,t)或yw(dx(miw),t)。(3)⑤程序中i是切片索引号,故需要取出字符s的长度,range函数生成索引。故填写for i in range(len(s))。 32. input zfc 1 【详解】本题考查Python程序设计相关内容。分析题目内容及程序段,可知:①处,通过输入函数输入一个字符串,赋值给zfc,完成后续操作,故此处应填写:input。②③处,利用for循环读取字符串内容并统计字符个数:每读入一个,计数一个,故②处应填写:zfc。③处应填写:1。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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