2.3程序设计基本知识2024—2025学年高中信息技术人教/中图版(2019)必修1

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

内容正文:

2.3 程序设计基本知识 一、选择题 1.下列程序段功能是(   ) s=0 n=1 for i in range(1,6):     n=n*i     s=s+n print(s) A.S=1!+2!+3!+4!+5! B.S=1*2*3*4*5 C.S=1+1*2+2*3+3*4+4*5 D.S=1+2+3+4+5 2.以下哪个选项是Python中实现循环结构的正确方法(   ) A.使用loop关键字 B.使用while或for关键字 C.使用repeat函数 D.使用iterate方法 3.在BXY中编辑这样一段代码: from microbit import * import random try:     whileTrue:         display.scroll(str(random.randint(1,6))) except:     display.clear() 在micro: bit硬件支持下,该代码的功能是(    ) A.每次运行这段代码,都会滚动显示一次一个在1到6之间的某个随机数 B.每次运行这段代码,都会滚动显示1到6之间的某个随机数 C.每次运行这段代码,都会滚动显示0到6之间的某个随机数 D.每次运行这段代码,都会滚动显示1到5之间的某个随机数 4.以下程序段运行后,整型变量s的值是(   ) s=1 for i in range(1,11,3):     s=s * i print(s) A.55 B.280 C.28 D.3 640 5.下列表达式计算正确的是(   ) A."a"+"b"="a" B.6 % 2=3 C.3*"py"="pypypy" D.8 / 4=2 6.象限是平面直角坐标系(笛卡儿坐标系)中横轴和纵轴所划分的四个区域,每一个区域叫作一个象限。象限以原点为中心,x,y轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x.y)来判断该坐标点的位置所在,以下实现该分类的据Python程序段中正确的是(    ) A. if x==0 and y==0:     result="原点" if x==0 or y==0:     result="数轴" if x!=0 and y!=0:     result="象限" B. if x==0 or y==0:     result="数轴" elif x==0 and y==0:     result="原点" else:     result="象限" C. if x!=0 and y!=0:     result="象限" elif x==0 or y==0:     result="数轴" else:     result="原点" D. if x!=0 and y!=0:     result="象限" if x==0 and y==0:     result="原点" elif x==0 or y==0:     result="数轴" A.A B.B C.C D.D 7.在Python中,以下代码执行后输出的结果是(   ) x=1 for i in range(5):     x=x*i print(x) A.0 B.15 C.24 D.120 8.执行以下代码后,整型变量a和b的值分别是(   ) a=2 b=3 a=a*b b=a//b a=a//b A.2 3 B.6 2 C.3 2 D.6 3 9.数组元素 a[0]至a[n-1]依次存放着n个数据,现需要将元素 a[n-1]插入在下标为x(0≤x<n-1)的位置,例如:n为5,数组 a 为[0,3,4,6,7],x为2,插入操作后a为[0,3,7,4,6]。为实现此功能,某同学编写Python程序如下:   temp=a[n-1]   for i in range(n-2,x-1,-1):       a[i]=a[i-1]   a[i]=temp 此程序不能正确实现上述添加功能,若a的值是[0,3,4,6,7],执行该程序段后输出结果是(   ) A.[0, 3, 6, 4, 7] B.[0, 3, 3, 4, 7] C.[0, 3, 7, 4, 7] D.[0, 4, 3, 4, 7] 10.下列Python表达式的值为True的是(   ) A.7%2==0 B.int(6.89)==7 C.8%5==9//3 D.not(1>2or1!=5) 11.有如下Python程序段: k = 3 c,j,Sum = 0,0,0 for i in range(len(s)):     ch = s[i]     if '0' <= ch <= '9':         c = c * 10 + int(ch)         j += 1     else:         if j == k:             Sum += c         j,c = 0,0 字符串 s 为"wz500ai2024ok102"时,执行该程序段后,Sum 的值为(   ) A.500 B.602 C.2524 D.2626 12.有如下Python程序段: s=["a","b","c","d"] i=0 for xx in s:     t=ord(xx)-ord("a")     i+=t print("i=",i) 执行该程序段后,输出 i 的值是(   ) A.4 B.5 C.6 D.10 13.有如下Python程序段: s=input() word=[] for i in range(len(s)):     for j in range(i+1,len(s)):         if s[i:j]not in word:             word.append(s[i:j])         ifs[i:]not in word:             word.append(s[i:])     n=len(word) 执行该程序段,输入“ababa”,则n的值是(    ) A.7 B.8 C.9 D.10 14.有如下 Python 程序段: import random a=[1,2,3,4,5] st=[0]*len(a);top=-1 i=0;res=[] while i<len(a):     if random.randint(0,1)!=0 or top==-1:         top+=1         st[top]=a[i]     else:         res.append(st[top])         top-=1         continue     i+=1 while top!=-1:     res.append(st[top])     top-=1 print(res) 运行上述程序,下列输出 res 不可能的是(   ) A.[3,1,2,4,5] B.[1,5,4,3,2] C.[3,4,2,1,5] D.[1,3,2,4,5] 15.将数学关系式5≤x<14表示成Python表达式,正确的是(   ) A.5≤x<14 B.5≤x and x<14 C.x>=5 or x<14 D.x>=5 and x<14 16.运行如下Python程序段,若输入“B”,则变量cnt的值为(    ) a=[ 'A ','B ','C ','D ','E ','F ','G '] ch=input(“输入A-G之间的字母:”) cnt=0 for key in a: i,j=0,len(a)-1 while i<=j: m=(i+j)//2 if a[m]==ch: cnt+=1 break#终止while循环 if a[m]==key: break elif a[m]<key: i=m+1 else: j=m-1 A.1 B.2 C.3 D.7 二、填空题 17.一元二次方程的求根公式,在Python程序设计中,应该表示为 (如想使用数学模块,假设已经导入,不用单独再写) 18.在横线处填入表达式完成如下Python程序,求0-100所有偶数的和。 sum=0 for i in :     sum=sum+i print(sum) 19.在Java中,System类的currentTimeMillis()方法返回的是自 以来的毫秒数。 20.在编程中, 是一种错误,它发生在程序运行时,导致程序不能正常执行。 21.将高级语言源程序翻译成机器语言通常有 和 两种方式。 三、判断题 22.列表对象的extend()方法属于原地操作,调用前后列表对象的地址不变。( ) 23.在python中,下面程序可以正常运行。( ) n=10 s=n+'T' 24.循环语句可以嵌套使用。( ) 25.字典是Python语言中的一种数据类型,其中每个元素包含键和值两部分。( ) 四、操作题 26.某解压算法描述如下: 数据由数字段和字母段组成,数字段的数值代表字母段的重复次数。 例如:字符串1A2B3CD,用该解压算法解压后为ABBCDCDCD。实现该功能的Python程序如下: decr=input("输入压缩码:") ① num=0 tmp="" res="" for i in range(n):     if :        num=num*10+int(decr[i])     else:         tmp+=decr[i]         if i<n-1 and "0" <=decr[i+1]<= "9":             ②             num=0; tmp="" res+=tmp*num print("解压结果:"+res) (1)请在程序中划线处填入合适的代码。 (2)若输入字符串“1A2BC3DEF”(不含引号),输出的内容是“解压结果: ”。 (3)以下选项与加框处表达式功能一致的有 (多选,填字母)。 A.decr[i]>="0" and decr[i]<="9"    B.0<=int(decr[i])<=9 C.not(decr[i]<"0" or decr[i]>"9")    D."0"<=decr[i]<"10" 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.A 【详解】本题考查Python程序。代码通过for循环计算从1到5的阶乘,并将每次计算的阶乘累加到变量s中。具体执行过程如下:当i=1时,n=1,s=1;当i=2时,n=2,s=1+2;当i=3时,n=6,s=1+2+6;当i=4时,n=24,s=1+2+6+24;当i=5时,n=120,s=1+2+6+24+120。最终,输出结果为S=1!+2!+3!+4!+5!。故答案为:A。 2.B 【详解】本题考查Python循环结构的描述。在Python中,实现循环结构的正确方法是使用while或for关键字。while循环用于在条件为真时重复执行一段代码,而for循环用于遍历序列(如列表、元组、字符串等)中的每个元素。选项A、C和D在Python中都不是用于实现循环的正确方法。故选B。 3.B 【详解】本题考查micro: bit程序设计相关内容。该代码段含义是直到按下清除显示,一直执行display.scroll()函数,所以正常情况下程序会一直滚动显示1到6之间的某个随机数。故本题答案是B选项。 4.B 【详解】本题考查Python基础。 根据range函数参数得知遍历的序列为:1、4、7、10。累乘到变量s。故正确答案:选项B。 5.C 【详解】本题考查Python基础。 选项A,正确结果为字符串ab。选项B,6能被2整除,故余数为0。选项D,正确结果为2.0。故正确答案为:选项C。 6.D 【详解】本题考查Python基础。 根据定义,(0,0)是原点,即if x==0 and y==0表示原点;(0,y)或者(x,0)分别表示y轴与x轴,即if x==0 or y==0且x与y不同时为0表示数轴。A选项,x==y==0时,第1个和第2个if均成立。故正确答案为:选项D。 7.A 【详解】本题考查的是Python循环语句。range(5)生成0,1,2,3,4序列数, x=x*i将i累乘到x中,即x=1*0*1*2*3*4=0,故选A。 8.C 【详解】本题考查的是Python调试与运行。*表示乘,//表示整除。a=a*b=2*3=6,b=a//b=6//3=2,a=a//b=6//2=3。执行后整型变量a和b的值分别是:3 2,选C。 9.C 【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,若a的值是[0,3,4,6,7],n为5,x为2,执行过程:循环体共执行两次,(1)i=3,a[3]=4;(2)i=2,a[2]=3。循环结束时,i值为2,执行a[i]=temp,即a[2]=7。所以程序段执行完毕后,a为[0, 3, 7, 4, 7],故本题答案是C选项。 10.C 【详解】本题考查的是Python表达式。%表示求余,int表示转化为整数类型,==表示相等,!=表示不相等。7%2==0、int(6.89)==7、not(1>2or1!=5)值为False,8%5==9//3值为True。故选C。 11.A 【详解】本题考查Python程序设计相关内容。分析程序段,其运行过程如图所示:。执行该程序段后,Sum的值为500,故本题答案是A选项。 12.C 【详解】本题考查的是Python循环语句。for循环中,执行 t=ord(xx)-ord('a'),t的值依次是0、1、2、3,因此i=i+t=0+0+1+2+3=6,故本题选C选项。 13.C 【详解】本题考查计算机程序分析能力。根据程序两层for循环可知依次遍历切片字符串ababa,添加到空列表word中,不添加重复字符串。 i=0,j分别取1,2,3,4。 i=1,j分别取2,3,4。 i=2,j分别取3,4。 i=3,j分别取4。 根据代码 word.append(s[i:])可以将每次最后一个字符串添加上。 最终['a', 'ab', 'aba', 'abab', 'ababa', 'b', 'ba', 'bab', 'baba'],故C选项正确。 14.A 【详解】本题考查Python程序设计相关内容。本题涉及到栈的相关知识,栈的特点是先进后出。分析程序段,推知,先执行第一个循环(i<len(a)成立时),若随机函数产生的随机数为1或栈空,则将对应的列表元素a[i]入栈st,否则,将栈中元素全部出栈,依次添加res中;i<len(a)不成立时,执行第二个循环,若栈不空,则将栈中剩余元素出栈,依次添加res中。由此得出结论,res中元素排列次序与st栈中元素出栈次序相对应,BCD选项为可能结果,A选项,3为第一个元素,依据栈的特点,1不可能排列在2前面,该序列不可能出现。故本题答案是A选项。 15.D 【详解】本题主要考查Python表达式。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。5≤x<14,表示x大于等于5且小于14,即x>=5 and x<14。故选D。 16.C 【详解】本题考查Python程序设计相关内容。分析程序段,其运行过程如图所示:。运行结束,变量cnt的值为3,故本题答案是C选项。 17.(-b+math.sqrt(b**2-4*a*c))/(2*a) 【详解】本题考查Python表达式。本题考查Python表达式。在Python程序设计中,对于数学运算有特定的函数和运算符。首先,求根公式中的开方运算使用的是math.sqrt()函数。这个函数可以计算一个数的平方根。幂运算使用**运算符。乘运算使用*运算符。一元二次方程ax^2+bx+c=0的求根公式为x=(-b±√(b^2-4ac))/(2a)。在Python中,要实现这个求根公式,需要用到一些数学运算和函数。math.sqrt()函数用于计算平方根,如math.sqrt(b**2-4*a*c)计算b^2-4ac的平方根。b**2表示b的平方。4*a*c表示4乘以a再乘以c。最终,表达式(-b+math.sqrt(b**2-4*a*c))/(2*a)就表示了一元二次方程求根公式的其中一个根(取正号的情况)。故答案为:(-b+math.sqrt(b**2-4*a*c))/(2*a)。 18.range(0,101,2) 【详解】本题考查Python程序设计相关内容。根据题意求0-100之间的偶数和,从2开始,每次递增2,直到增加到100,故用range()函数实现:range(0,101,2)。故本题答案是:range(0,101,2)。 19.1970年1月1日00:00:00 GMT 【详解】本题考查计算机编程。System类的currentTimeMillis()方法返回的是自1970年1月1日00:00:00 GMT(即Unix纪元)以来的毫秒数。这个时间戳可以用于测量时间间隔、创建时间戳或进行时间相关的计算。理解这一点对于编写涉及时间操作的Java程序非常重要,有助于进行准确的时间测量和处理。故答案为:1970年1月1日00:00:00 GMT。 20.运行时错误(Runtime Error) 【详解】本题考查计算机编程。在编程中,运行时错误(Runtime Error)是一种错误,它发生在程序执行过程中,导致程序不能正常执行。这类错误可能是由于无效的输入、资源不足或其他意外情况引起的。故答案为:运行时错误(Runtime Error)。 21. 解释 编译 【详解】本题考查程序的描述。将高级语言源程序翻译成机器语言通常有解释和编译两种方式。 22.正确 【详解】本题考查Python基础。 在Python中,列表(list)对象的extend()方法是一个原地操作,意味着它直接在原列表上添加元素,而不是创建并返回一个新的列表。因此,调用extend()方法前后,列表对象的内存地址保持不变。故正确。 23.错误 【详解】本题考查Python基础。 字符型数据和整型数据无法进行加法运算,类型不兼容。故错误。 24.正确 【详解】本题考查的知识点是循环结构应用。循环语句可以嵌套使用。在一个循环的内部再使用另一个循环,这就是循环的嵌套。在大多数编程语言中,如Python,Java,C++等,都支持循环的嵌套。故答案为正确。 25.正确 【详解】本题考查的是Python数据类型。字典是Python语言中的一种数据类型,其中每个元素包含键和值两部分。说法正确。 26. n=len(decr) res+=tmp*num ABCBCDEFDEFDEF AC 【详解】本题考查Python综合应用。 (1)需要获取输入字符串的长度,以便后续通过循环进行处理。故答案为:n=len(decr)。当遇到下一个数字段时,将之前累计的字母段按照重复次数添加到结果字符串res中。故答案为:res+=tmp*num。 (2)数字1表示字母A重复1次,数字2表示字母BC重复2次,数字3表示字母DEF重复3次,所以解压结果为ABCBCDEFDEFDEF。故答案为:ABCBCDEFDEFDEF。 (3)A选项“decr[i]>="0" and decr[i]<="9"”,直接判断字符是否在'0'到'9'之间,与加框处表达式功能一致。C选项“not(decr[i]<"0" or decr[i]>"9")”,通过逻辑运算判断字符不在'0'以下和'9'以上,即判断字符在'0'到'9'之间,与加框处表达式功能一致。B选项“0<=int(decr[i])<=9”,将字符转换为整数进行判断,不符合要求。D选项“"0"<=decr[i]<"10"”,对字符串进行比较时,确实是从第一个字符开始依次比较它们的ASCII码值,因此不存在字符满足"0"<=decr[i]<"10"。故答案为:AC。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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