4.1程序设计语言的基础知识2024—2025学年高中信息技术粤教版(2019)必修1

2024-08-15
| 15页
| 228人阅读
| 1人下载

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术粤教版必修1 数据与计算
年级 -
章节 4.1 程序设计语言的基础知识
类型 作业-同步练
知识点 -
使用场景 同步教学
学年 2024-2025
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 129 KB
发布时间 2024-08-15
更新时间 2024-08-15
作者 匿名
品牌系列 -
审核时间 2024-08-15
下载链接 https://m.zxxk.com/soft/46841249.html
价格 1.50储值(1储值=1元)
来源 学科网

内容正文:

4.1 程序设计语言的基础知识 一、选择题 1.如果x=1,y=2,z=3,则下列表达式结果为False的表达式是(   ) A.(x>z) or (x<y) B.(x>y) or (x<z) C.(x>z) and (x<y) D.not (z<y) 2.下面Python程序段运行后输出(    ) a=87 b=12 print(a,"-",b,"=",a-b) A.a-b=75 B.a-b=a-b C.87-12=75 D.75 3.在Python语言中,以下不可以用作变量名的是(  ) A.2_password B.Area C.bmp1 D. _3text 4.在平面直角坐标系中,设点A(x1,y1)、点B(x2,y2) ,则AB两点之间的距离为: , 该公式正确的python表达式是(  ) A.math.sqr((x1 -x2)**2+(y1-y2)**2) B.math.sqr((x1-x2)2+(y1-y2)2) C.math.sqr[(x1-x2)2+(y1-y2)2] D.math.sqr((x1 -x2)**2+(y1-y2)**2) 5.关于Python语言的特点,以下选项描述正确的是(   ) A.Python语言不支持面向对象 B.Python语言是解释型语言 C.Python语言是编译型语言 D.Python语言是非跨平台语言 6.表达式3+9>20 or 23<=3+15 and 5+7<20的值为(    ) A.TRUE B.true C.false D.False 7.绘制正六边形的 Python程序代码如下,程序第5行下划线处应填入(   ) 1    #画正六边形 2    import turtle as t 3    for I in range(6): 4        t.forward(90) 5        __________ 6    t.done() A.backward(60) B.t.backward(60) C.left(60) D.t.left(60) 8.“水仙花数”是指一个三位正整数,其各位数字立方和等于该数本身。例如:153=13+53+33,故153是一个水仙花数。求1000以内的所有水仙花数的Python程序如下: import math for num in range(100,1000): if num==pow(gw,3)+pow(sw,3)+pow(bw,3):#pow(x,y)函数返回xy的值 print(num) 上述程序段中加框处应该填入的代码段是(  ) A. B. C. D. 9.下列代码的输出结果是(    ) def fact(n):     s=1     for i in range(1,n+1):         s*=i      return s print(fact(5)) A.30 B.24 C.120 D.240 10.已知a、b 为整型变量,下列表达式的值一定为False的是(   ) A.a!=b B.a>b and b>a C.a>=b or b>=a D.a==b 11.某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 12.在 Python 语言中, random 模块中 random. random()函数的作用是(  ) A.生成从 1—10 的随机整数 B.产生0—1之间的随机浮点数 C.返回数值 10 D.产生1—9 之间的随机浮点数 13.有如下Python程序段: import random q=[0]*8; head, tail=0, 4 for i in range (4):    k=random. randint (0, 10)    if k%2==0:       q[tail]=k%5       tail+=1    else:       head+=1 while head<tail:    print (q[head], end="")    head+=1 程序运行后,输出结果可能为(    ) A.00002306 B.01234 C.0000 D.24 14.有如下 Python 程序段: import random        a=[0]*6 for i in range(6):     x=int(random.random()*10)+1     if i%2==1:         a[i]=2*x+1     elif x%2==0:         a[i]=x//2     else:         a[i]=x-1 print(a) 执行该程序段后,列表 a 中的值可能是 (  ) A.3,11,4,19,2,13 B.3,11,7,9,2,3 C.9,3,1,23,4,17 D.3,3,9,0,19,8 15.某二分查找算法的 python 程序段如下, 运行该段代码后, 输出的结果不可能是(   ) import random a = [10,20,30,40,50,60,70,80] key = random.choice(a); i,j = 0,len(a)-1 ; s = "" while i<=j: m = (i+j)//2 if key == a[m]: s = s+"M"; break elif key < a[m]: j = m-1; s = s+"L" else: i = m+1; s = s+"R" print(s) A.LLM B.LRM C.RRRM D.RRLM 16.有如下python程序: import random a,i,c=[],0,0 while i<5:     b=random.randint(0,9)     if b not in a:         a.append(b)         i+=1 key=int(input("key=")) for j in range(len(a)):     if a[j]%key==0:        c+=1     else:         a[j-c]=a[j] print(a) 运行该程序,若输入key为2,则输出的a不可能为(   ) A.[3,7,5,4,5] B.[3,7,1,5,5] C.[3,5,0,3,5] D.[9,7,4,7,3] 二、填空题 17.已知a=3,那么执行语句a+=3之后,a的值为 。 18.在python中,有程序如下,如果通过键盘输入5,则运算结果是( )。 A=int(input( )) print(A * 5) 19.在Python中,使用 可以快速生成一个特定范围内的数列。 20.有如下Python程序: inp=input(“May i have your name? ”).split() family_name= print(“It's nice to meet you ”+family_name) 运行该程序,其输入输出样例如下: 或: 请根据程序功能补全代码。 21.程序分析题:阅读程序写结果 s=0 for k in range(1,7,2):    s =s+k print (s) 输出s的值是 。 22.程序分析题:算法设计与程序实现(每空4分,共8分) 已知a、b、c分别为三角形的三条边长,利用海伦公式求三角形面积 ,其中编程实现:输入边长a,b, c,如果能构成三角形,输出面积,否则输出“No Answer !” def cal(): a=int(txtl.get()) b=int(txt2.get()) c=int(txt3.get()) if: :   p= (atb+c)/2   s=math. sqrt (p*(p-a)*(p-b)*(p-c))   txt4.insert (0,str(s)) else:   txt4.insert (0."No Answer!") (1)利用海伦公式求三角形面积的算法是 (填写:解析法/查找法/穷举法/排序法)。 (2)填写出参考程序中空白处的表达式 (填写字母: A/B/C/D)。 A.a+b>c or  a+c>b  and  b+c>a   B.a+b>c or  a+c>b  or   b+c>a C. a+b>c  and  a+c>b  or  b+c>a   D.a+b>c  and  a+c>b  and  b+c>a 三、判断题 23.“student id”是一个正确的变量名。( ) 24.在Python中,元组中的元素不能被修改。( ) 25.不能用for 、in、if等关键字作为变量名。( ) 26.在Python3.x语言中,input()函数的返回值类型是字符串。( ) 27.Python语言具有面向对象、代码规范、函数库丰富、动态数据类型等特点。( ) 28.算法至少有一个有效输出,所以函数至少有一个返回值。( ) 四、操作题 29.某团队目前所处的研究区域有n个蝙蝠洞(不妨假设n个蝙蝠洞排成一条直线,编号依次为1-n),且该地区共有m(分别为1-m,m<=n)种不同的蝙蝠(每个洞只有一种蝙蝠)。团队准备进行一次科学考察,集齐所有种类蝙蝠的样本。科学考察会对连续编号的几个山洞进行考察(例如2,3,4,5,6)。给定n个蝙蝠洞对应的蝙蝠种类,请你设计一个程序,帮助团队确定科学考察的起点和终点,保证在完成任务的情况下,探访蝙蝠洞尽可能少。如果有多种方案,按山洞编号输出第一种。 例如:该地区有12个山洞,共有5种蝙蝠,每个山洞的蝙蝠种类依次为:2,5,3,1,3,2,4,1,1,5,4,3。那么团队应该从第2个山洞出发,一直探访到第7个山洞,这样5种蝙蝠种类都能搜集到,且探访山洞总数最少。 (1)已知,该地区有10个山洞,共有4种蝙蝠,每个山洞的蝙蝠种类依次为:2,1,3,1,2,2,4,1,1,3,那么团队应该第 个山洞出发,一直探访到第 个山洞,这样4种蝙蝠种类都能搜集到,且探访山洞总数最少。 (2)定义如下函数csh(flag),功能是将列表flag的每个元素值初始化为0,请在划线处填入合适的代码。 def csh(flag):     for i in range(20):          # (3)实现程序功能的部分代码如下,请在划线处填上合适的代码。 def isok(p,a, flag):     tmp = 0     global ansa, ansb     #定义全局变量     for i in range(p):         if flag[a[i]] == 0:             tmp += 1         flag[a[i]] = flag[a[i]] + 1     if tmp >= m:         ansa = 1         ansb = p         return True     for i in range(p,n):         flag[a[i-p]] =         if flag[a[i-p]] == 0:             tmp -= 1         if flag[a[i]] == 0:             tmp += 1         flag[a[i]] += 1         if tmp >= m:             ansa =             ans b = i             return True     return False n = int(input("请输入蝙蝠洞总数:")) m = int(input("请输入蝙蝠总数:")) a = [0]*100      #记录n 个蝙蝠洞中的蝙蝠种类 flag = [0]*20     #记录在一定长度的区间内某种蝙蝠统计次数 ansa, ansb = 0,0   #记录路线的起始编号和结束编号 #输入n个整数(范围在[1,m]之间),依次存入列表a中,代码略 p = m while p <=n:     if :         break     p += 1     csh(flag) print("起始编号"+str(ansa+1)) print("结束编号"+str(ansb+1)) 30.小明同学设计了一种加密算法,将自己的一些私密字符串数据 (例如他在各个网站和APP注册的 用户名和密码等数据信息,这里统称为明文数据)进行了加密,他设计的加密算法有如下规则: ①将明文数据中的所有大写字母均转换为小写字母,例如 A→a, B→b …Z→z ②将明文数据中的所有数字减去 2 变成另一数字,例如 0→ 8, 1→9,2→0 …9→7 ③明文数据中的其他字符均不转换 ④将加密后的数据倒序输出,例如“ abc→cba” 例如明文数据“aBC+789”加密后的数据为“765+cba”,他根据以上加密规则编写了下列python 程序: defjiami(x): if "A"<=x<="Z": y= elif "0"<=x<="9": y=str((int(x)-2)%10) else: y= return y mingwen=input("请输入明文数据:") miwen="" 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题主要考查表达式运算。逻辑运算符AND左右两边值都为真时返回TRUE;有一个值的逻辑值为假即返回FALSE。逻辑运算符OR左右两边值有一个参数逻辑值为TRUE,即返回TRUE。逻辑运算符NOT用于对参数值求反,(x>z) and (x<y)结果为False,故本题选C选项。 2.C 【详解】本题主要考查Python程序的执行。分析程序可知,程序段运行后输出87-12=75 ,故本题选C选项。 3.A 【详解】本题考查的是Python变量名。Python程序设计语言规定变量名由字母(A~Z,a~z)、数字(0~9)、下划线组成,并且其第一个字符必须是字母或下划线,而不能是数字,如s1,k,num,pai等。选项A以数字开头,不可以用作python变量名。故本题应选A。 4.D 【详解】本题主要考查Python表达式。Python中使用math调用开方方法sqr,平方使用“**”连接,括号使用英文状态下的括号,该公式正确的python表达式是math.sqr((x1 -x2)**2+(y1-y2)**2),故本题选D选项。 5.B 【详解】本题主要考查Python语言。Python语言是解释型语言,支持面向对象和跨平台使用,故本题选B选项。 6.D 【详解】本题主要考查Python表达式的运算。3+9>20值为False,23<=3+15值为False,5+7<20值为True,因此表达式3+9>20 or 23<=3+15 and 5+7<20的值为False,故本题选D选项。 7.D 【详解】本题主要考查Python程序的turtle模块。分析程序可知,第4行表示绘制长度为90的线段,接下来应该改变方向,继续绘制,题干是绘制正六边形,故应向左偏转60度,故填代码是t.left(60),故本题选D选项。 8.B 【详解】本题主要考查Python程序的调试。加框处是取出num的十位、百位、个位,其中百位bw=num//100,十位sw=(num-bw*100)//10或sw=num//10%10,个位gw=num%10或gw=num-bw*100-sw*10,故本题选B选项。 9.C 【详解】本题考查的是自定义函数。由自定函数 fact(n)可知计算的是n的阶乘。故fact(5)=1*2*3*4*5=120,故本题应选C。 10.B 【详解】本题考查的是Python表达式。and是同真为真,a>b And b>a,这两个条件不会同时满足。故本题应选B。 11.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选项。 12.B 【详解】本题考查的是Python随机函数。在 Python 语言中, random 模块中 random. random()函数的作用是生成一个0到1的随机符点数。故本题应选B。 13.C 【详解】本题考查Python程序的执行与调试。k=random. randint (0, 10),k随机生成0~10, 由q[tail]=k%5可知,q列表中不可能出现6,排除A选项;for循环一共循环4次,若q中有1、2、3、4,说明没有执行head+=1,则B应是00001234,排除B选项;如果k是连续生成0或10两个再生成两个奇数,选项C可能;选项D有偶数2、4,则说明head+=1至多执行2次,因此输出结果一定有0,排除D选项。故选C。 14.A 【详解】本题主要考查Python程序的调试。random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0, x=int(random.random()*10)+1,则x随机生成1~10之间的整数。如果i是奇数,则 a[i]=2*x+1也是奇数,排除选项D;如果i和x是偶数,则a[i]=x//2可能是奇数也可能是偶数;如果i是偶数,x是奇数,则a[i]=x-1是偶数,选项C中a[0]=9不符合题意,选项B中a[2]=7不符合题意,均排除。故本题选A选项。 15.D 【详解】本题主要考查二分查找及Python程序实现。random.choice()方法用于返回一个列表、元组或字符串中的随机项。该二叉树如下图,分析程序可知,当遍历左子树执行,s = s+"L";当遍历右子树执行,s = s+"R";当查找到该树时,执行s = s+"M",并退出循环。由图可知,70节点没有左子树,故输出的结果不可能是RRLM,故本题选D选项。 16.D 【详解】 本题考查Python程序的执行与调试。由if b not in a,可知a保存了0-9不重复的数据。c表示偶数的个数,else表示a[j]是奇数,当前面有1个偶数c=1,a[j-1]=a[j]。当前面有2个偶数c=2,a[j-2]=a[j],即当前奇数往前移动偶数个数个位置。 A选项,[3,7,?,4,5],其中?处的5是后面的5移动上来的,那只能c=2,所以?处是个偶数即可成立,例如[3,7,2,4,5] B选项,[3,7,1,?,5],其中?处的5是后面的5移动上未的,那只能c=1,所以?处是个偶数即可成立,例如[3,7,1,4,5] C选项,[?,?,0,3,5],其中?处的3和5是后面的3和5移动上来的,那只能c=3,所以两个?处都是偶数即可成立,例如[2,4,0,3,5] D选项。[9,?,4,7,3]。其中?处的7是后面7移动上来的,那么c=2,但3也会移动到数字4的位置上。故选D。 17.6 【详解】本题主要考查Python赋值语句。a+=3等价于a=a+3,已知a=3,那么执行语句a+=3之后,a的值为6。 18.25 【详解】本题主要考查Python程序的执行。A=5,输出A*5=25,故运算结果是25。 19.range() 【详解】本题考查Python函数。在Python中,range()函数可以快速生成一个特定范围内的数列。通过指定起始值、终止值和步长等参数,range()函数能够灵活地创建符合需求的数字序列。例如,range(5)会生成包含0到4的数列;故答案为:range()。 20.inp[-1] 【详解】本题考查的是Python相关知识。split() 通过指定分隔符对字符串进行切片。由输出样例可知,family_name是分割后最后的子字符串。inp[-1]读取读取inp列表中倒数第一个元素。故应填入为:inp[-1]。 21.9 【详解】Range函数用于产生循环迭代列表,括号里的可以带三个参数,第一个是列表起始值,第二个是列表终止值,第三个是步长。例如本题for循环中range(1,7,2)将产生1-6之间,步长为2的数字序列,即为[1,3,5],因此循环执行3次,累加k,即s=1+3+5=9。 22. 解析法 D 【详解】本题考查的是python程序解决问题。解析法又称为分析法,它是应用解析式去求解数学模型的方法 定义 数学中用解析式表示函数或任意数学对象的方法叫解析法。根据代码的描述,空白处应填写三角形成立的条件,即每两边之和大于第三边且是与(and)的关系,a+b>c  and  a+c>b  and  b+c>a。 23.错误 【详解】本题主要考查变量的命名。“student id”中间有空格,不是一个正确的变量名,故表述错误。 24.正确 【详解】本题考查算法与编程。Python中,元组一旦创建,不可修改,题干中说法正确。 25.正确 【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。故表述正确。 26.正确 【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。 27.正确 【详解】本题考查的是Python。Python语言具有面向对象、代码规范、函数库丰富、动态数据类型等特点。说法正确。 28.正确 【详解】本题考查的是算法特征。算法的五大特征:有穷性、确定性、能行性(可行性)、有 0 个或多个输入、有一个或多个输出。算法至少有一个有效输出,所以函数至少有一个返回值。说法正确。 29. 3 7 flag[i] = 0 flag[a[i-p]] - 1 i-p+1 isok(p,a, flag) 或 isok(p,a, flag) == True 【详解】本题考查Python综合应用。 (1)我们首先需要确定连续的山洞段内包含所有蝙蝠种类的最小长度段,并找到它的起点和终点。给定的蝙蝠种类序列为:2,1,3,1,2,2,4,1,1,3要集齐所有4种蝙蝠种类(1,2,3,4),我们可以找到最短的包含所有种类的子序列。通过分析,我们发现从第3个山洞到第7个山洞(即蝙蝠种类:3,1,2,2,4)包含了所有的蝙蝠种类,并且这是最短的子序列。因此,起始编号为3,结束编号为7。故答案为:3、7。 (2)函数csh的作用是将列表flag中的每个元素值初始化为0。flag列表的大小假设为20,因此需要对flag列表的前20个元素进行初始化。故答案为:flag[i] = 0。 (3)在函数isok中,当我们向右移动窗口时,需要减少窗口左端点的蝙蝠种类的计数。flag[a[i-p]]表示窗口左端点蝙蝠种类的计数,所以当窗口右移时,计数减1。故答案为:flag[a[i-p]] - 1。当我们发现一个有效的窗口时,需要记录这个窗口的起点和终点。ansa表示起点,ansb表示终点。起点应该是当前终点i减去窗口长度p再加1。故答案为:i-p+1。需要判断是否存在一个包含所有蝙蝠种类的有效窗口。如果存在,我们就结束循环并输出结果。isok(p,a,flag)返回True表示存在这样的窗口。故答案为:isok(p,a, flag) 或 isok(p,a, flag) == True。 30. chr(ord(x)+32) y=x 【详解】本题主要考查Python程序的综合应用。①将明文数据中的所有大写字母均转换为小写字母,小写字母的ASCII码值比大写字母大32。ord函数用于将字符转换为整数,即用于获取ASCII给定字符的值;chr函数接受一个数字(应为ASCII码)并返回字符,故此处填chr(ord(x)+32)。②明文数据中的其他字符均不转换,故此处填y=x。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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