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

2024-08-03
| 14页
| 86人阅读
| 1人下载

内容正文:

2.3 程序设计基本知识 一、选择题 1.以下哪个Python代码片段正确地实现了一个双分支选择结构(   ) A.if x > 10: print("x is big") B.if x > 10: print("x is big") else: print("x is small") C.if x > 10 print("x is big"): D.if x > 10: then print("x is big") 2.在Python中,range()函数的作用是(   ) A.返回一个列表 B.返回一个元组 C.返回一个指定范围内的整数序列 D.返回一个空值 3.在Python语言中,下面程序段运行结果是(  ) w=2 if w<=1: m=12 elif w<3: m=12+(w-1)*3 else : m=18+(w-3)*2 print(m) A.2 B.12 C.15 D.16 4.Python表达式“abs(3-5%3**2)//2”的值是(   ) A.1 B.2 C.4 D.5 5.智能农业大棚中的自动温度控制系统,通过温度传感器每隔一定时间采集大棚中的温度,一旦监测到环境温度超过预设的最高温度40℃,控制系统会启动通风和喷水子系统实现降温;如果温度低于预设的最低温度18℃,控制系统会启动加热器,给大棚升温。下列Python程序段功能为:列表1st中存放的是某温度传感器某时段内采集的温度值,找出其中最大值max和最小值min。 1st=[20.5,21,20.8,19.8,21.5] max=min=lst[0] for i in range((1) ):     if (2) :         max=lst[i]     elif min>lst[i]:         min=lst[i] print("最大值是:",max,"最小值是:",min) 上述程序段中划线处可选语句为(   ) ①1,len(1st)-1   ②1,len(1st)   ③max<1st[i]   ④max>1st[i] A.①③ B.②③ C.①④ D.②④ 6.有如下Python程序: s=input('请输入字符串:') ans='' a=[1,2,3] for i in range(len(s)): x=s[i] key=a[i%3] if '0'<=x<='9': ans=ans+chr((ord(x)-48+key)%10+48)    #字符'0'的ASCII是48 else: ans=ans+x print(ans) 执行该程序后,输入s的值为'A1b9',输出的结果是(    ) A.A2b1 B.A3b0 C.bA30 D.b0A6 7.在Python中,函数round(5.38,1)的返回值是(   ) A.5.0 B.5.3 C.5.4 D.不确定 8.在Python中,执行以下语句后,显示的结果是(   ) >>>x=3;y=12 >>>x+=1 >>>y//=x >>>x+y A.7 B.15 C.6 D.4 9.在Python中,运行以下代码后,输出“@”符号的个数是(   ) >>>i=5 >>>while i<30:     print("@")     i=i+5 A.4 B.5 C.6 D.7 10.有如下Python程序段: import random a=[1]*5 i=1 while i<len(a):     a[i]=a[i-1]+random. randint (0,2)*2     for j in range(i):         if a[i]==a[j]:             i=j             break     i+=1 print(a) 执行该程序后,输出的结果可能是(   ) A.[1,3,9,11,15] B.[1, 3, 5, 9, 13] C.[1,5,7,10,13] D.[1, 5, 5, 9, 13] 11.已知a、b 为整型变量,下列表达式的值一定为False的是(   ) A.a!=b B.a>b and b>a C.a>=b or b>=a D.a==b 12.下列代码的输出结果是什么?(   ) def sum(a,b):     c = a + b     return c print(sum(4,5)) A.4 B.5 C.9 D.1 13.在tkinter模块中可以用来创建按钮的是(   ) A.Button B.Label C.Entry D.Frame 14.运行以下 Python语言程序段后,s的输出结果是(   ) s=10 a=1 while a<=3: s=s-a a=a+1 print ("s=",s) A.s=9 B.s=4 C.s=10 D.s=1 15.变量标识符命名正确的是(   ) A.while B.521_zhongguo C.!123s D.a_3 16.下面(    )不是Python 合法的变量名。 A.int32 B.40XL C.self D.name 17.在Python运行环境下,按顺序输入如下指令,变量a的值是(    ) a=1 a='hello' a=[1,'hello'] a=1+2 A.1 B.'hello' C.[1,'hello'] D.3 18.下列关于关系运算符的叙述,不正确的是(   ) A.x=y判断x是否等于y B.x! =y判断x是否不等于y C.x>y判断x是否大于y D.x>=y判断x是否大于等于y 二、填空题 19.运行下面Python代码, a=23 b=int(a/10) a=a-b*10 print(a,b) 运行后,a的值为 ,b的值为 。 20.在Python中,使用 关键字可以定义一个函数。 21.在Python中,使用 可以进行列表推导。 22.在编程中, 是指程序在执行过程中遇到的错误,导致程序不能正常运行。 23.编程语言中的 语句用于控制程序的流程,根据条件是否满足来决定执行哪一段代码。 24.某 Python 程序如下: n = int (input ()) sum = a = 3 res = 0 i=1 while i <= n:     res = res  + sum     sum = sum * 10 + a     i = i + 1 print (res) 当输入n值为3时,程序输出结果是 。 三、判断题 25.表达式list('[1, 2, 3]')的值是[1, 2, 3]。( ) 26.对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码。( ) 27.在python中,for i in range(10),i值从1变化到10,共10个循环。( ) 28.在Python语言中,表达式x=2.4/8+10%3执行后, 用print语句输出,则屏幕显示的结果是1.3。 29.NAME、name、Name、NaMe是不同的变量。( ) 30.字典是Python语言中的一种数据类型,其中每个元素包含键和值两部分。( ) 四、操作题 31.编写Python程序,本程序要求完成的功能如下:计算s=10/101+10/102+10/103+10/104+…+10/n的值(n的值由输入决定为120)。 32.从键盘接收一组不重复整数,并将这组整数按从小到大的顺序排列。 以下程序采取快速排序法对这组整数进行排序。 快速排序法的原理是: (1)取这组数据中间那个数为锚定值mid; (2)从这组数据开头往右找,遇到比mid大的数则停下,位置记为i; (3)从这组数据末尾往左找,遇到比mid小的数则停下,位置记为j; (4)如果此时i仍在j左边,即i<=j,则交换这两个数; (5)重复(2)~(4)直到i、j重合; (6)对i左边的数进行快速排序; (7)对右边的数进行快速排序。 输入示例: 请输入需要排序的一组整数,数与数之间用空格隔开:6 10 11 8 4 1 9 7 输出示例: 排序结果:1 4 6 7 8 9 10 11 程序模板: def QuickSort(left,right): if : return mid=Numbers[left+(right-left)//2] i=left j=right while i<j: while Numbers[i]<mid: i+=1 while Numbers[j]>mid: j-=1 if i<=j: QuickSort(left,j-1) QuickSort(i+1,right) Numbers=list(map(int,input("请输入需要排序的一组整数,数与数之间用空格隔开"). )) QuickSort(0, ) print("排序结果:",end="") for i in Numbers: print(i,end=" ") 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查Python基础。 单分支要想实现双分支,需要编写else结构。选项A、C、D缺少else分支,其中选项C缺少冒号,选项D结构错误,多了then,故正确答案为:选项B。 2.C 【详解】本题考查Python函数的描述。在Python中,range()函数用于生成一个指定范围内的整数序列。它不返回列表或元组,而是返回一个range对象,该对象可以通过迭代来访问其中的整数。故选C。 3.C 【详解】本题考查Python基础。 初始化 w = 2。 进入 if-elif-else 结构: 首先检查 if w<=1:,由于 w 的值是 2,不满足这个条件,所以不会执行这个分支下的 m=12。 然后检查 elif w<3:,由于 w 的值是 2,满足这个条件(2 小于 3),所以会执行这个分支下的代码 m=12+(w-1)*3。 既然已经找到了满足条件的分支并执行了相应的代码,就不会再检查 else 分支了。 在 elif 分支中,计算 m 的值:m = 12 + (2-1)*3。这里 (2-1)*3 计算结果为 3,所以 m = 12 + 3 = 15。 最后,打印 m 的值,即 print(m) 会输出 15。 故正确答案为:选项C。 4.A 【详解】本题考查Python基础。 3的平方为9,5取余9为5,3-5=-2,-2的绝对值为2,2//2=1。故正确答案为:选项A。 5.B 【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,该程序段算法思想是先假定列表lst第一个元素lst[0]为最大值max、最小值min,在[1,len(1st)-1]内,列表元素lst[i]分别与max、min进行比较,若max<lst[i]成立,则最大值为lst[i];若min>lst[i]成立,则最小值为lst[i]。结合range函数特点,②1,len(1st)、③max<1st[i]符合题意,故本题答案是B选项。 6.B 【详解】本题考查程序分析。 该程序功能为:切片字符串s,切片索引为i,当s[i]为字母时,累加到ans空串中。当s[i]为数字字符时,转换成数值,向后移动key位后,转换成字符累加到ans中。当s='A1b9',i=0,s[i]='A',ans的第一个字符为A。故排除选项C、D。当i=1,key=2,s[i]=1,则向后移动2位后,为3。故ans第二个字符为3,排除选项A。故正确答案为选项B。 7.C 【详解】本题考查Python函数的应用。round是四舍五入函数,函数round(5.38,1)表示将5.38四舍五入保留1位小数,因此返回值是5.4。故选C。 8.A 【详解】本题考查Python基础。x+=1,则x=4。y//=x,则y=3。x+y结果为7。故选择A。 9.B 【详解】本题考查Python程序。首先,变量i被初始化为5,然后通过while循环,每次i增加5,打印一个“@”符号,直到i不再小于30。由于初始值是5,每次增加5,所以在30之前会打印5个“@”符号,然后i的值将会等于30,不再满足循环条件,循环结束。因此,输出“@”符号的个数是5。故答案为:B。 10.B 【详解】本题考查Python程序设计相关内容。分析程序段,a[0]=1,该程序段通过随机函数产生随机数:0,1,2,由语句“a[i]=a[i-1]+random. randint (0,2)*2”知,当前项将等于前一项,或比前一项大2或4,若当前项等于前一项,则重新产生该项,即最后生成序列中不可能出现重复值,且为递增的奇数序列。A选项,a[2]=9,比a[1]大6,选项错误。B选项,为可能序列。C选项,a[3]=10,为偶数,选项错误。D选项,a[1]与a[2]相等,选项错误。故本题答案是B选项。 11.B 【详解】本题考查的是Python表达式。and是同真为真,a>b And b>a,这两个条件不会同时满足。故本题应选B。 12.C 【详解】本题考查程序设计相关内容。分析程序段,其功能是调用sum函数计算两数之和。故本题答案是C选项。 13.A 【详解】本题考查Python tkinter模块相关内容。tkinter是Python的一个标准库,用于创建GUI应用程序。Button是它用于创建按钮控件。Label是Python Tkinter标签组件之一,主要显示指定的窗口中的文本和图像。Entry用于创建单行文本框,允许用户输入文本。Frame控件是一个用于组织和管理其他控件的容器,它可以将其他控件放置在自己内部,用于创建更复杂的用户界面。故本题答案是A选项。 14.B 【详解】本题考查Python程序设计相关内容。分析程序段,其运行过程:(1)a=1,a<=3成立,执行循环体:s=s-a=9,a=a+1=2;(2)a=2,a<=3成立,执行循环体:s=s-a=7,a=a+1=3;(3)a=3,a<=3成立,执行循环体:s=s-a=4,a=a+1=4;(4)a=4,a<=3不成立,结束循环。s的输出结果是4,故本题答案是B选项。 15.D 【详解】本题考查Python变量定义相关内容。变量命名规则:(1)只能由字母、数字、下划线构成;(2)在标识符中数字不能开头;(3)保留关键字不能作为标识符使用;(4)在标识符中,字母区分大小写。A选项为保留关键字;B选项以数字开头;C选项含有“!”;D选项符合变量定义命名规则。故本题答案是D选项。 16.B 【详解】本题考查Python变量命名。在Python中,变量名必须遵循一定的规则:变量名只能包含字母(A-Z,a-z)、数字(0-9)和下划线(_)。变量名不能以数字开头。变量名不能是Python的关键字或保留字。根据这些规则,我们可以检查给出的选项:int32:合法,它只包含字母和数字,并且没有以数字开头。40XL:不合法,因为它以数字开头。self:合法,尽管它是Python中的一个特殊变量名(通常用于类实例中引用实例本身),但它仍然是一个有效的变量名。name:合法,只包含字母。因此,不是Python合法变量名的是 40XL。故答案为B选项。 17.D 【详解】本题考查Python语句执行。4条语句均是给变量a进行赋值,最后一条语句会更新a=1+2=3,故选D。 【点睛】 18.A 【详解】本题主要考查Python关系运算符的描述。x==y判断x是否等于y,x=y表示将y赋值给x,故本题选A选项。 19. 3 2 【详解】本题考查Python基础。b=int(a/10)=int(23/10)=int(2.3)=2;a=a-b*10=23-20=3。故正确答案为:①3;②2。 20.def 【详解】本题考查Python。在Python中,使用def关键字来定义一个函数。通过def后跟函数名、参数列表以及函数体,明确了函数的功能和执行逻辑,这是Python中创建自定义函数的标准方式,方便代码的模块化和复用。故答案为:def。 21.list comprehension 【详解】本题考查Python程序设计相关内容。Python中的列表推导式(list comprehension)是一种方便快捷的语法,可以快速地生成列表。它的语法形式类似于数学中的集合推导式,语义也相似,因而易于理解和使用。故本题答案是:list comprehension。 22.错误或异常 【详解】本题考查计算机编程。编程中,错误或异常是指程序在执行过程中遇到的问题,导致程序不能按照预期或正常方式运行。这些问题可能由语法错误、逻辑错误、运行时环境问题等引起。错误通常会导致程序的终止或不正确的行为,需要开发者通过调试和修复来解决。故答案为:错误或异常。 23.条件 【详解】本题考查计算机程序设计语言。编程语言中的条件语句(如if语句)用于控制程序的流程,根据条件是否满足来决定执行哪一段代码,实现程序的分支逻辑。故正确答案为:条件。 24.369 【详解】本题考查的是Python循环语句。初始i=1,sum = a = 3,当输入n值为3时。 i<=3成立,res = res+sum=3, sum=sum*10+a=30+3=33,i=i+1=2; i<=3成立,res = res+sum=36, sum=sum*10+a=330+3=333,i=i+1=3; i<=3成立,res = res+sum=369, sum=sum*10+a=3330+3=3333,i=i+1=4; i<=3不成立,故输出res为369。 25.错误 【详解】本题考查Python基础。 表达式 list('[1, 2, 3]') 的值并不是 [1, 2, 3]。在Python中,list() 函数用于将可迭代对象转换为列表,但如果直接传入一个字符串,list() 函数会将字符串中的每个字符视为列表的一个单独元素。故错误。 26.正确 【详解】本题考查Python基础。 在Python中,for循环和while循环都可以带有else子句。这个else子句的作用是在循环正常完成(即没有因为break语句而提前退出)后执行。如果循环因为循环条件不再满足(对于while循环)或者迭代对象被完全遍历(对于for循环)而自然结束,那么就会执行else子句中的代码。故正确。 27.错误 【详解】本题考查Python基础。 题目中的for循环i值是从0变化到9。故错误。 28.正确 【详解】本题考查的是Python表达式。在Python中:/表示除,%表示求余。2.4/8+10%3=1.3。题干中的说法正确。 29.正确 【详解】本题考查Python变量的描述。Python变量区分字母的大小写,故表述正确。 30.正确 【详解】本题考查的是Python数据类型。字典是Python语言中的一种数据类型,其中每个元素包含键和值两部分。说法正确。 31.s=0 n=int(input("please input a number: ")) for i in range(101,n+1):     s=s+10/i print(s) 【详解】本题考查程序设计。 该程序累加由循环构造的分数,并输出求和结果。初始化累加变量s=0。调用input函数,键盘输入累加的最后一个分数的分母。使用for循环遍历分母,分母由range函数产生,参数起始值为101,终止值为n+1。分子为数字10。每次循环通过s=s+10/i累加到变量s,最后输出s。 32. left>=right Numbers[i],Numbers[j]=Numbers[j],Numbers[i] split() len(Numbers)-1 【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,推知: ①处,由快速排序法的原理可知,在i、j重合前,可以执行快速排序,重合后结束排序,故此处答案是是:left>=right。 ②处,由“如果此时i仍在j左边,即i<=j,则交换这两个数”知,在i<=j成立时,应执行Numbers[i]与Numbers[j]的交换,故此处答案是:Numbers[i],Numbers[j]=Numbers[j],Numbers[i]。 ③处,map(int,input().split())将输入的值(input.split()的东西也叫做可迭代对象)通过空格分开,int函数将其转化为整型数据,map()函数将输入的多个数据的结果生成一个迭代器,故此处答案是:split()。 ④处,主程序内,依据快速排序法的原理来调用QuickSort函数,应以Numbers的最小(0)、最大(len(Numbers)-1)索引号为参数,分别传值给left与right,故此处答案是:len(Numbers)-1。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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