2.4 可以复用的代码 2024-2025学年高中信息技术教科版(2019) 必修1

2024-08-09
| 13页
| 104人阅读
| 0人下载

内容正文:

2.4 可以复用的代码 一、选择题 1.在Python程序中,执行print ("23"+"45") 语句的结果是(   ) A.68 B.False C.2345 D."23+45" 2.有如下Python程序段,下列选项中不可能为输出结果的是(   ) list1=[3,4,6,2,8,5] for i in range(1,6):     x=int(input("请输入一个整数:"))     if x>list1[i]:         continue     print(x) A.2 2 2 2 B.2 3 4 5 C.2 4 5 3 7 D.4 6 8 3.Python表达式len("Hello!")的值为(   ) A.5 B.6 C.7 D.8 4.在 Python 语言中,a=True,则a的数据类型是(   ) A.字符串 B.浮点型 C.整型 D.布尔型 5.十进制数n转换为二进制数s的伪代码如下所示: s←"" 输入正整数n while n≠0      输出s 方框中伪代码由以下三部分组成: ①s←r+s   ②n←n整除2的结果   ③r←n除2的余数 下列选项中,代码顺序正确的是(   ) A.③①② B.①③② C.①②③ D.②①③ 6.运行下列Python程序后,输入41,输出结果为(   ) f=float(input("请输入一个华氏温度:")) c=5*(f-32)/9 print(c) A.5 B.5.0 C.10 D.10.0 7.在Python中,运行下列代码后,输出的个数是(   ) >>>i=12 >>>while i>=3:         print("*")         i=i-3 A.5 B.4 C.3 D.12 8.下列Python表达式中,值为True的是(    ) A.2**4-64**0.5 B.len("Python")>6 C."Chat"in"chatGPT" D.ord("A")==65 9.有如下Python程序段: matrix=[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]] k=int(input()) tot=0 for i in range(4):     for j in range(4):         if i+j=k:             tot+=matrix[i][j] print(tot) 若输入2,则输出为(   ) A.12 B.10 C.8 D.6 10.在 Python 语言中,运行以下程序段后,输出的结果是(   ) L= [ 'a', 'b','c','d'] del (L [1]) print (L) A.['b','c','d'] B.['a','b','c'] C.['a', 'b','d'] D.['a','c','d'] 11.下列运算结果值最大的是(   ) A.len(“123”) B.2**3 C.int(7.8) D.3%7 12.在Python中,将一个字符串转换为一个整数的函数是(   ) A.int() B.float() C.str() D.range() 13.有如下Python程序段: text="Nol:X:123:Y:680:End" a=[0]*10; c=0 for i in range(len(text)):     s=text[i]     if s>='0' and s<='9':         a[c]=a[c]*10+int(s)     else:         if a[c]>0:             c=c+1 print(a[1]) 执行该程序段后,输出的结果是(   ) A.1 B.2 C.680 D.123 14.若字符串s的值为"3a2bcl",执行如下Python程序段后,输出变量str的值为(   ) m,str,tmp=0,"","" flag = False for ch in s:     if '0' <= ch <= '9':         if flag=True:             str =str + tmp * m             m,tmp=0,""             flag = False         m=m * 10+ int(ch)     else:         tmp=tmp + ch         flag = True str =str + tmp* m print(str) A.aaa B.aabc C.aaabcbc D.aaabcbcl 15.在Python中,导入matplotlib模块的正确语句是(   ) A.class matplotlib B.raise matplotlib C.import matplotlib D.break matplotlib 16.定义如下函数: def f(x):     if x==1:         return1     else:         return x*f(x-1) 执行语句k=f(6)后,k的值为(    ) A.6 B.24 C.120 D.720 17.下列程序代码执行后不可能的结果是(   ) import random a=[2,3,4,5,6,7] ; b=[0]*6 random.shuffle(a) i=0 while i<6:     if a[i]%3 == 0:         b[i]=a[i]*2     elif i%2 == 0:         b[i]=a[i]*2+1     i+=1 print(b) A.[12,0,9,6,11,0] B.[11,6,5,0,15,12] C.[15,6,5,0,9,12] D.[7,0,11,6,0,12] 二、填空题 18.运行以下Python程序,结果是 。 sum=0 for num in range(8):     sum=sum+num print(sum) 19.在Python中,使用 可以结束当前循环的执行,即使循环条件未满足。 20.Python语句list(range(1,10,3))执行结果为 。 21.用户自定义函数是用户自己写的一段程序。一般包括 、 、 和 等四部分。其中 和 是必不可少的, 和 可根据需要进行定义。 22.Python中读写文本文件的方法,其中打开用 把外存储器里的文本文件(.txt)打开;存储用 将内存中的数据存储到外存储器的文件中;关闭文件时一定要用 关闭文件。 三、判断题 23.在Python中,变量不直接存储值,而是存储值的引用,也就是值在内存中的地址。( ) 24.“num”和“NUM”会被Python解释器视为相同的变量。( ) 25.用户自定义函数是用户自己写的一段程序.一般包括函数名、参数、  返回值、函数体等四部分.其中,函数名和参数是必不可少的部分.( ) 26.Python语言的变量名要区分英文字母的大小写。( ) 27.在Python3.x语言中,input()函数的返回值类型是字符串。( ) 四、操作题 28.某数据序列data中的元素均为小于127的正整数。现在要对data进行加密,处理过程分“变换”和“重排”两步。“变换”处理方法是用指定的n组序列 、…依次对data进行变换。利用Ri对data进行变换的过程是:在data中查找所有与Ri相同的子序列,将找到的每个子序列中的元素值加上Ri的长度值Li,并在各子序列前插入一个标记元素(值为127+Li),这些子序列及标记元素不再参与后续的变换。 如data为[3,5,1,6,3,8,7,5,1,8,7],指定的两组序列为[5,1]、[3,8,7],“变换”处理后的data为[3,129,7,3,6,130,6,11,10,129,7,3,8,7]。对data“重排”处理通过给定的shuff函数实现。 请回答下列问题: (1)若data为[3,5,1,6,3,8,7,5,1,8,7],指定的两组序列为[5,1]、[8,7],经过“变换”处理后,data中插入的标记元素个数为 。 (2)“重排”处理的shuff函数如下: def shuff(data, c):        # 根据列表c对列表data进行重排 # 若列表data的长度不是列表c长度的整数倍,则用0补足,代码略 m = len(c) s = [0] * m k = 0 while k < len(data): for i in range(m): s[i] = data[k + i] for i in range(m): data[k + i] = s[c[i]] k += m 若data为[3,129,7,3,130,6,11,10],c为[1,3,0,2],调用shuff(data, c)后,data的最后一个元素值为 。 (3)实现加密功能的部分Python程序如下,请在划线处填入合适的代码。 def compare(data, i, r): # 函数功能:返回data从索引i位置、r从索引0位置开始的连续相等元素的个数 # 例如r为[7, 3, 6],data从索引i位置开始的元素依次为7, 6, 7, 3, …,函数返回1 j = 0 while j < len(r) and i + j < len(data): if① : break else: j += 1 return j def trans(data, r, segs): newsegs = [] for s in segs: if s[0] == 0: h = i = s[1] m = len(r) while i + m <= s[2] + 1: if compare(data, i, r) == m: if i > h: newsegs.append([0, h, i-l])        # 为newsegs追加一个元素 newsegs.append([m, i, i + m-1]) i += m ② else: i += 1 if h <= s[2]: newsegs.append([0, h, s[2]]) else: newsegs.append(s) return newsegs def update(data, segs): for s in segs: if s[0] != 0: data.append(0) p = len(data)-1 for i in range(len(segs)-1, -1,-1): for j in range(segs[i][2], segs[i][1]-1,-1): ③ p-= 1 if segs[i][0] > 0: data[p] = 127 + segs[i][0] p-= 1 # 读取待加密数据存入data,读取指定的若干组用于变换的序列存入rs,代码略 ''' 列表segs用于记录data的变换信息,segs[i]包含三个元素,segs[i][0]、segs[i][1]、segs[i][2]分别表示data中一个子序列的状态、起始位置和结束位置,如果segs[i][0]为0,则表示该子序列未经过变换。 ''' segs = [[0,0,len(data)-1]] for r in rs: segs = trans(data,r,segs)        # 根据r更新segs update(data, segs)                    # 利用segs完成对data的变换操作 c = [1,3,0,2] shuff(data, c) # 输出加密后的data序列,代码略 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查Python输出语句。字符串相加运算,即将两者拼接起来,因此"23"+"45"="2345",输出语句中字符串会原样显示,即输出结果是2345。故选C。 2.C 【详解】本题考查Python基础。 列表list1=[3,4,6,2,8,5],若输出的结果有5个元素,说明输入的5个整数均不大于对应列表元素的值,C选项中的3大于列表中对应元素list1[3](值为2),因此3不会输出,故正确答案为:选项C。 3.B 【详解】本题考查Python程序设计相关内容。len()是一个内置函数,用于返回一个对象的长度,即对象中元素的个数。字符串"Hello!"长度为6,故本题答案是B选项。 4.D 【详解】本题考查Python数据类型。在Python中,布尔型常量的值是True和False。故选D。 5.A 【详解】本题考查算法描述。十进制转换为二进制的方法是“除权取余、逆序排列”,因此第一步是r←n除2的余数。第二步是s←r+s。第三步是n←n整除2的结果。故选A。 6.B 【详解】本题考查Python程序执行。float ()函数是Python内置的一个函数,用于将其他数据类型转换为浮点数类型。输入41,则c=5*(f-32)/9=5*9.0/9=5.0。故选B。 7.B 【详解】本题考查程序分析。i的值分别为12、9、6、3时,进入循环输出4个。故选择B。 8.D 【详解】本题考查Python表达式。本题考查了Python表达式的计算及字符串操作。2**4表示2的4次方,即16;64**0.5表示64的平方根,即8;16-8等于8,不是True,A选项错误。len("Python")计算字符串"Python"的长度,为6;6>6为False,B选项错误。"Chat"和"chatGPT"大小写不同,"Chat"不在"chatGPT"中,结果为False,C选项错误。ord("A")返回字符"A"的ASCII码,为65;65==65为True,D选项正确。故答案为:D。 9.D 【详解】本题考查Python程序。程序的功能是计算二维列表matrix中满足条件i+j=k的元素之和,其中k是用户输入的整数。解析如下:给定二维列表matrix,每个子列表都包含相同的四个整数。用户输入一个整数k。初始化变量tot为0,用于累加满足条件的元素之和。使用嵌套循环遍历matrix的每个元素:外层循环i控制行索引。内层循环j控制列索引。判断条件i+j==k,如果成立,则将matrix[i][j]的值加到tot中。最后输出变量tot的值,即满足条件i+j=k的元素之和。若输入2,根据题目的计算,满足条件的元素有(0,2),(1,1),(2,0),它们分别对应的值是1,2,3,因此最终的输出是1+2+3=6。故答案为:D。 10.D 【详解】本题考查的是Python列表操作。列表索引号从0开始,del (L [1])表示删除索引号为0的元素。L= [ 'a', 'b','c','d'],del (L [1])将列表中'b'元素删除。最后L= [ 'a', 'c','d'],故选D。 11.B 【详解】本题考查的是Python表达式。len()返回字符串的长度,**表示幂乘,int()返回整数,%表示求余。len("123")=3,2**3=8,int(7.8)=7,3%7=3,故选B。 12.A 【详解】本题考查Python函数。在Python中,可以使用int()函数将一个字符串转换为一个整数。故答案为:A。 13.C 【详解】本题考查Python程序。程序的执行过程如下:首先,定义了字符串text="Nol:X:123:Y:680:End"和数组a=[0]*10,以及变量c=0。然后,程序遍历字符串text中的每个字符。对于每个字符s,检查它是否是数字(即在'0'到'9'之间):如果是数字,则将其转换为整数并添加到数组a的当前位置a[c]中。如果不是数字,检查当前位置a[c]是否大于0,如果是,则将索引c自增1。最后,输出数组a中索引为1的元素,即a[1]。根据给定的字符串text="Nol:X:123:Y:680:End",程序执行时提取了其中的数字部分,即123和680,分别存储在a[0]和a[1]中。因此,输出结果应为a[1]的值,即680。故答案为:C。 14.C 【详解】本题考查Python程序调试与执行。分析程序可知,该程序实现对字符串的解密操作,将连续的字符重复输出n次,n为该连续字符前面的数字,若字符串s的值为"3a2bcl",则将a输出3次,bc输出2次,即输出变量str的值为aaabcbc。故选C。 15.C 【详解】本题考查Python模块。import是用于导入模块的关键字,正确的语法是import matplotlib。故答案为:C。 16.D 【详解】本题考查Python函数。当x=6时,f(6)=6f(5);f(5)=5f(4);f(4)=4f(3);f(3)=3f(2);f(2)=2f(1),而f(1)=1,所以f(2)=2,f(3)=3*2=6,f(4)=4*6=24,f(5)=5*24=120,f(6)=6*120=720,即k=720,故答案为:D。 17.D 【详解】本题考查Python程序。由分支结构可知,当a[i]%3==0时,也就是a[i]=3或者6时,有b[i]=a[i]*2。而当i%2==0时,一定有b[i]=a[i]*2+1,此时也就是说当i为偶数时,b[i]为奇数。在D选项中,a[4]=0,显然不符合题意,故答案为:D。 18.28 【详解】本题考查Python程序设计相关内容。分析程序段,其功能是计算[0,7]范围内的整数之和,结果为28,故本题答案是:28。 19.break 【详解】本题考查Python。在Python中,当使用break关键字时,无论循环条件是否满足,都会立即终止当前所在的循环结构,使程序跳出该循环,继续执行循环后面的代码。故答案为:break。 20.[1,4,7] 【详解】本题考查Python。range函数的语法是range(start,stop,step),它生成一个从start开始、到stop(不包括stop)结束、步长为step的整数序列。对于list(range(1,10,3)),参数为1(起始值)、10(终止值,不包括)、3(步长),生成的序列为1,4,7。因此,执行该语句的结果是[1,4,7]。故答案为:[1,4,7]。 21. 函数名 参数 返回值 函数体 函数名 函数体 参数 返回值 【详解】本题考查的是自定义函数。自定义函数包括函数名、参数、返回值、函数体和函数名,其中函数名和函数体是必不可少的,参数和返回值可根据需要进行定义。 22. open函数 write方法 close方法 【详解】本题考查Python相关知识。Python中读写文本文件的方法,其中打开用open函数把外存储器里的文本文件(.txt)打开;存储用write方法将内存中的数据存储到外存储器的文件中;关闭文件时一定要用close方法关闭文件。 23.正确 【详解】本题考查Python基础。 Python中的变量确实不直接存储值本身,而是存储了对值的引用(或者说是内存地址,尽管这个地址对Python程序员通常是不可见的)。这种机制使得Python中的变量更加灵活和强大,同时也带来了一些特定的行为模式。故正确。 24.错误 【详解】本题考查变量。Python中的变量严格区分大小写。num和NUM不是相同变量,故错误。 25.错 【详解】本题考查自定义函数。用户自定义函数是用户自己写的一段程序.一般包括函数名、参数、返回值、函数体等四部分.其中,其中参数和返回值可根据需要进行定义。题干说法错误。 26.正确 【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。 27.正确 【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。 28. 4 11 r[j]!=data[i+j] h=i data[p]=data[j]+segs[i][0] 【详解】本题考查Python程序设计相关内容。本题涉及到索引数组和双指针知识。结合题目内容,分析程序段,推知: (1)考查基本的数据模拟能力,变换数组r = [[5, 1], [8, 7]],在序列data中,分别以索引号1、5、7、9为起始的包含两个元素的子序列与r序列中的子序列相等,则有4个子串进行变换。题目要求在各子序列前插入一个标记元素,则共插入4个标记元素,故本题答案为:4。 (2)考查索引数组。由题目描述知,索引数组的长度可能小于原数组,当原数组索引超过索引数组的索引范围时,需要对原数组进行分组,应以索引数组的长度m作为每一组的元素个数,若不足,则用0补齐。data长度为c的整数倍,则调用shuff函数后,data的最后一个元素是分组后最后一组重排结果的最后一项, c[3] = 2,最后一组的元素值为[130, 6, 11, 10],所以索引2处的值为11。故本题答案为:11。 (3)考察用变换实现加密功能。compare函数返回data从索引i位置、r从索引0位置开始的连续相等元素的个数,trans函数处理序列变换,update函数用于完成子串的变换和标记元素的插入。③处,compare函数中,j是r的索引,i是data的索引,该函数用于检查data中是否存在从索引i开始的连续j项均与r相同,返回相同项的数量。若data[i + j] != r[j]成立,表明查询结束,应结束循环,故③处答案为:r[j]!=data[i+j]。④处,trans函数的3个参数:data表示原始数据,r是当前变换数组,segs记录了当前data的变换信息。对于其中一条变换信息s,s[0] == 0表明该信息所描述的子串没有经过标记,可以进行变换。若compare(data, i, r) == m成立,表明找到了需要进行变换的子串data[i: i + m],此时,若i > h成立,则需要新增data[h: i]的未标记子序列和data[i: i + m]的标记子序列(标记值恰为m),与此同时,该子序列中data[h: i + m]均为已处理状态,在i += m后更新h = i的作用是更新该子序列的头部标记,故④处答案为:h=i。⑤处,update函数根据变换信息处理data数据中的具体更新,函数中需要实现元素插入的功能,因此需要逆序遍历data,trans函数采用队列保证变换信息的有序性,逆序遍历变换信息的同时可以逆序遍历data,以免因数据的插入而影响原始数据。索引p用于逆向遍历插入后data,索引j从变换信息的“结束索引”逆向遍历到“开始索引”,由于变换信息中存储的是data的原始数据信息,因此data[p] = data[j] + segs[i][0]即为对data[j]的变换值的更新并移动到最终的位置上,故⑤处答案为:data[p]=data[j]+segs[i][0]。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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