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

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

内容正文:

第2单元 编程计算 一、选择题 1.在Python中,运行以下程序后,变量的值是(   ) i=0 while i<6: print("*") i=i+1 A.0 B.6 C.1 D.7 2.为提高人们的生活质量,把人从繁重的工作中解放出来,有许多工作可以通过编程业解决,以下描述中不宜使用编程来处理的是(    ) A.编写程序控制工业喷涂机器人 B.编写程序计算所有实数和 C.编写导弹自动防御系统 D.编辑用数码相机拍摄的一段视频 3.在Python中,下列变量名合法的是(   ) A.False B.Stu-1 C.if_1 D.2nd 4.在传递信息的过程中,常会将一些敏感信息进行加密,以下是对数据进行加密的Python程序段,若输入数据为“123sAw34”,则输出的内容为(    ) A.123 B.246 C.157 D.321 5.对于下列Python语句 if b==2:  s=s*2 else:  s=s/2 下列说法正确的是(   ) A.b==2为赋值语句 B.s=s*2和s=s/2均为赋值语句 C.s=s*2和s=s/2均为关系表达式 D.s=s*2为关系表达式,s=s/2为赋值语句 6.有如下Python程序段    s="aabbccabc"    st=s[1]    for i in range(1,len(s)):        if len(st)==0 or s[i]!=st[len(st)-1]:            st=st+s[i]        else:            st=st[0:len(st)-1]    print(st)    运行该段代码后,输出结果为(     ) A.abc B.abcabc C.ababc D.aabbc 7.学校举行大合唱比赛,每个班级演唱结束后会有10个评委打分,最终得分的计分规则为:去掉一个最高分,去掉一个最低分,求平均分。 编程Python程序,实现快速计分,代码如下: n=10 scores, maxs, mins=0, 0, 10 for i in range(n):    s=float(input("第"+str(i)+"个评委给分:"))    if maxs < s:       maxs=s    elif mins>s:       mins=s    scores+=s    avg=____________ print("平均分为:"+str(round(avg,2))) 以下关于该程序的说法正确的有(   ) A.将“elif”改为“if”,程序功能不变 B.划线处代码为“(scores-maxs-mins)/n-2” C.倒数第2行代码取消缩进,算法更加优化 D.此程序段只适用于满分不超过10的情况 8.利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做(   )。 A.分析问题 B.设计算法 C.编写程序 D.调试程序 9.有如下Python程序段: s=″328ud*YourDay″ t=″″ for i in range(len(s)):   if s[i]>=″a″ and s[i]<=″z″: t=t+s[i] print(t) 该程序段的功能是(  ) A.输出字符串t中的所有小写字母 B.输出字符串s中的小写字母个数 C.输出字符串s中的所有的非数字字符 D.输出字符串s中的所有小写字母 10.数组a已有9个数据,分别存储于a[0]~a[8],需在第j个位置(1≤j≤9)插入数据k。利用Python语言编写代码,模拟数据插入过程,可选代码如下: ①a[i]=k    ②a[i-1]=k    ③a[i+1]=a[i]    ④a[i]=a[i-1] ⑤for i in range(j,9)    ⑥for i in range(8,j-2,-1) a=[9,8,7,6,5,4,3,2,1,0] ________________________: ________________________ 划线处所需代码依次为(    ) A.⑥③① B.⑤③② C.⑥④① D.⑤③① 11.有如下Python程序段: s = "PythonSuperNB" list1 = ["Everyday","Study","Happy"] if s[6:11] > list1[1]:      print(list1[1]  + s[0:6]) else:      print(list1[1]) 该程序段执行后,输出的结果是(    ) A.Study B.StudyPython C.EveryPython D.StudySuper 12.有如下Python程序段: sl=''1324'';s2="abcdefgh'' j,m=0,0 c="" for i in s2:     k=int(s1[j])     c+=s2[m+k]     j+=1     ifj>3:         j=1        m=m+2 print(c) 运行程序,输出结果是(   ) A.acbdefeg B.bdcefegh C.bcdefegh D.bdceefgh 13.某Python程序如下: s="xyAB#Fk";k=x="";flag=True for i in range(len(s)):     if "a"<=s[i]<="z" and flag:         x=chr(((ord(s[i])-95))%26+97)   #字符"a"的ASCII码值为97     elif "A"<=s[i]<="Z" and flag:         x=chr(((ord(s[i])-41))%26+65)   #字符"A"的ASCII码值为65         flag=False     else:         x=s[i];flag=True     k=k+x print(k) 执行该程序后,输出值为(    ) A.ZAyb#dK B.yzYZ#Dm C.zaYB#Dk D.zaYZ#Dm 14.有如下程序段: 程序运行后,输出结果是(  ) A.56 B.456 C.01234 D.23456 15.在Python中,以下哪个选项能正确实现查找一个列表中是否存在某个特定元素8,并输出其索引 lst = [3,4,8,1] target = 8 for i in ① :     if ② :         print(i) A.①range(len(lst))  ②lst[i] == target B.①lst    ②lst[i] == target C.①lst    ②i == target D.①range(len(lst))    ②i == target 16.执行下面的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 17.某 Python 程序如下: def  encode(msg,key) :   result=""   for  i  in  range(0,len(msg)) :     c=msg[i]     if "a"<=c<="z":        result=chr((ord(c)+key-ord("a"))%26+ord("a"))+result     elif "0"<=c<="9" :        result=result+chr((ord(c)-key-ord("0"))%10+ord("0"))   return  result msg=input("请输入明文:") key=int(input("请输入密钥:")) re=encode(msg,key) print(re) 程序运行后,输入 msg 的值为“1a2b3c” ,key=2,输出的结果是(  ) A.edc901 B.edc345 C.9c0d1e D.3c4d5e 二、填空题 18.在Python中,使用 可以进行字典推导。 19.用python编写程序,实现一元二次方程式ax2+bx+c=0(a≠0)的求解。输入系数a、b、c的值,输出方程可能的解。 import math a=int(input("a:")) b=int(input("b:")) c=int(input("c:")) if ① :     X1=((-1)*b+sqrt(f(a,b,c)))/(2*a)     x2=((-1)*b-sqrt(f(a,b,c)))/(2*a)     print("x1=",x1,"x2=",x2) else:     print(“该方程式无解!”) 请把上面程序划线①处的代码补充完整。 20.某Python程序段如下: def isdigit(x): if "0" <= x <= "9": return True else: return False d = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" s = "1*8%6$3@0#19&amp;0" ans = "" t = 0 for i in s: if isdigit(i): t = t * 10 + int(i) else: ans += d[t] t = 0 print(ans) 运行该程序段,输出结果是 21.阅读以下程序,写出程序运行结果。 def jc(n): s=1 for i in range(2,n+1): s=s*i return s total=jc(4)    #调用jc函数 print(total) 程序运行后,其输出结果为 22.阅读下列程序,写出运行结果 s = 1 for i in range(1,10,3): s = s *iprint(s) 运行输出结果是: 三、判断题 23.已知列表x = [1, 2],执行语句y = x后,表达式id(x) == id(y)的值为True。( ) 24.网络爬虫是种程序或脚本,通过它可以将非结构化数据从网页中抽取出来,并以结构化的方式存储为本地数据文件。( ) 25.在 Python语言环境下,For循环语句中的循环体在书写时需要缩进,且必须缩进四个空格。   ( ) 26.在Python3.x语言中,input()函数的返回值类型是字符串。( ) 27.下列Python程序段运行结束后,赋值语句sum=sum+i共被执行了9次。( ) 四、操作题 28.图a和图b所示程序的功能分别采用for语句和while语句实现求1-2+3-4+5-6+7-8……+99-100的和,请将程序补充完整。 左图:① ④ 右图:② ③ ④ ⑤ 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查Python编程基础。while循环中,i<6,当i的值等于6时,结束循环,共循环6次。故选择B。 2.B 【详解】本题主要考查计算机编程解决问题。结合选项可知,计算所有实数和不适合用编程解决,不满足有穷性,故本题选B选项。 3.C 【详解】本题考查Python基础。 在Python中,变量名不可以使用Python中内定的关键字;变量名可以包括字母、数字和下划线,但不可以是数字开头。故正确答案为:选项C。 4.A 【详解】本题主要考查Python程序的执行。分析程序可知,变量i依次取字符串s中的字符, 当i是数字时,则执行t=t*10+int(i),如果i是小写字母则执行sum+=t,其余字符t=0。当i='s'时,此时sum=0+123=123,因为最后一组数字"34"后没有小写字母,不再执行sum+=t,故输出的内容sum为123,故本题选A选项。 5.B 【详解】本题主要考查If选择结构。b==2为关系表达式,s=s*2 和 s=s/2 均为赋值语句,因此B选项正确。 6.A 【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现将s中相邻不相等的字母依次拼接到变量st中,相等字母跳过,s="aabbccabc",故运行该段代码后,输出结果为abc,故本题选A选项。 7.ACD 【详解】本题主要考查Python程序的调试。分析程序可知,将“elif”改为“if”,程序功能不变;划线处代码为“(scores-maxs-mins)/(n-2)”;倒数第2行代码取消缩进,该语句只执行一次,因此算法更加优化;此程序段只适用于满分不超过10的情况,故本题选ACD选项。 8.C 【详解】本题主要考查计算机编程解决问题。利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做编写程序,故本题选C选项。 9.D 【详解】本题Python循环语句。考查的是本题字符串t中输出的是字符串s中的所有小写字母,因此答案为D。 10.A 【详解】本题主要考查Python程序执行与调试。该算法的思想是:通过循环先将索引j-2~8的元素依次后移一位,再将k放到a[i]以实现k的插入。代码依次是for i in range(8,j-2,-1)、a[i+1]=a[i] 、a[i]=k ,故本题选A选项。 11.B 【详解】本题考查的是python程序。s[6:11] 是Super,与list1[1]的 "Study"相比,s[6:11] > list1[1]成立,故执行print(list1[1]  + s[0:6])= "Study"+"Python"= "StudyPython",故选项B正确。 12.B 【详解】本题考查程序分析。程序代码运行过程: k=1 j=1 m=0 c=b k=3 j=2 m=0 c=bd k=2 j=3 m=0 c=bdc k=4 j=1 m=2 c=bdce k=3 j=2 m=2 c=bdcef k=2 j=3 m=2 c=bdcefe k=4 j=1 m=4 c=bdcefeg k=3 j=2 m=4 c=bdcefegh 故程序运行的最后变量c的结果为bdcefegh,故正确答案为选项B。 13.C 【详解】本题主要考查Python程序的执行。分析程序可知,对于小写字母执行x=chr(((ord(s[i])-95))%26+97) ,即"xy"变为"za",大写字母执行x=chr(((ord(s[i])-41))%26+65) 和 flag=False,即相邻的大写字母只有第一个执行,因此"AB"变为"YB"。特殊字符跳过,即执行 x=s[i],flag=True,因此执行该程序后,输出值为zaYB#Dk ,故本题选C选项。 14.A 【详解】本题主要考查Python程序的执行。n=len(a)=7,top=0,s[0]=a[0]=6,第二个for循环执行完,s[0]=6,s[1]=5,故输出的结果是56,故本题选A选项。 15.A 【详解】本题考查程序分析。B选项,直接遍历列表lst,变量i直接存储的是列表元素,非索引。C选项,变量i存储的是列表元素值,非索引。D选项,if条件判断错误,不能用索引等于目标值。故正确答案为A选项。 16.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。 17.A 【详解】本题考查的是Python循环语句及自定义函数。由if语句可知,如果是小写字母则后移key位,并放在字符串前端;由elif语句可知,如果是数字,则前移key位,并放在字符串的后端。程序运行后,输入 msg 的值为“1a2b3c” ,key=2;字母后移2位后edc,数字前移2位后901,组合后为:edc901。选项A正确。 18.dict comprehension 【详解】本题考查Python基础。 在Python中,使用dict comprehension可以进行字典的推导。字典推导提供了一种简洁且高效的方式来创建字典,通常用于从一个已存在的字典、列表、元组或其他可迭代对象中提取数据来创建新的字典。故正确答案为:dict comprehension。 19.f(a,b,c)〉=0 【详解】本题考查Python程序设计相关内容。一元二次方程的求解:若b*b-4*a*c>0成立,表明方程有两个不等实根;若b*b-4*a*c==0成立,表明方程有两个相等实根;若b*b-4*a*c<0成立,表明方程无解;由给定程序段知,b*b-4*a*c的值通过调用函数f(a,b,c)获得,故本题答案是:f(a,b,c)〉=0。 20.BIGDAT 【详解】本题主要考查Python程序的执行。分析程序可知,依次从s中取出数字,将该数字作为索引从字符串d中取出对应的字母,s中的数字依次是1、8、6、3、0、19、0,因为最后一个数字0后面再无其他字符,故不会执行ans += d[t],对应d中的字符分别是B、I、G、D、A、T,故输出结果是BIGDAT。 21.24 【详解】本题考查的是Python函数及循环语句。由s=s*i及 range(2,n+1)可知返回值是s=1*2*3*……n,total=jc(4)=1*2*3*4=24。 22.28 【详解】本题考查的是Python循环语句及range函数。range()函数格式:range(起始值,结束值,步长)。注意:结束值不包含;步长可省略,默认为1。range(1,10,3)生成的是列表[1,4,7]。故s=1*1*4*7=28。 23.正确 【详解】本题考查Python基础。 在Python中,当你执行 y = x 这样的语句时,你实际上并没有创建 x 的一个新副本,而是让变量 y 指向了 x 指向的同一个对象。这意味着 x 和 y 都引用了内存中的同一个列表对象,即内存地址相等,故表达式id(x) == id(y)的值为True。故正确。 24.正确 【详解】本题考查网络爬虫。网络爬虫就是一种能够按照一定的规则,自动地抓取万维网信息的程序或者脚本。它能够从网页中提取出所需的非结构化数据,并将其整理成结构化的形式,存储为本地的数据文件,以便后续的分析和处理。故说法正确。 25.错误 【详解】本题考查的是Python中的for语句格式。在 Python语言环境下,For循环语句中的循环体在书写时需要缩进,但不是必须缩进四个空格。故题干中的说法错误。 26.正确 【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。 27.正确 【详解】本题考查的是Python循环与选择语句。range(1,20)生成1~19的整数,阅读程序可知,只有i为1~19的偶数,才执行赋值语句sum=sum+i。故一共被执行了9次。题干中说法正确。 【点睛】 28. 0 else n<=100 1 else n=n+1或n+=1 【详解】本题考查Python程序综合应用。①求1-2+3-4+5-6+7-8……+99-100的和,i依次取1~100,当i是奇数时,执行sum+=i,故if判断条件是i%2!=0,故填0。②否则,如果i是偶数,执行sum-=i,故此处填else。③该程序中循环变量是n,使用while循环,因此循环条件是n<=100。④此处对应else部分,故填else。⑤此处循环变量n递增1,继续循环,故填n=n+1或n+=1, 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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