2024-2025学年高一上学期华东师大版(2020)必修1 第二节 程序设计语言基础知识

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

内容正文:

第二节 程序设计语言基础知识 一、选择题 1.在Python程序语言中,range(5)生成的序列是(   ) A.1,2,3,4,5 B.0,1,2,3,4 C.0,1,2,3,4,5 D.0,1,2,3 2.小申设计了一个算法,判断样本的水质类别是否符合2类及以上标准(即水质类别1-2认为符合,其他认为不符合)。小申编写的程序如图所示,以下选项填入划线处正确的是(    ) A.r==1 or r==2 B.r==1 and r==2 C.r>=2 D.r<2 3.计算机能直接识别、理解执行的语言是(   ) A.汇编语言 B.Python语言 C.Basic语言 D.机器语言 4.表示10以内奇数的列表是(    ) A.range(10) B.range(1,10) C.range(10,2) D.range(1,10,2) 5.下列对count()、index()、find()方法描述正确的是(   ) A.count()方法用于统计字符串里某个字符出现的次数 B.find()方法检测字符串中是否包含子字符串str,如果包含子字符串返回开始的索引值,否则会报一个异常 C.index()方法检测字符串中是否包含子字符串str,如果str不存在返回-1 D.以上都错误 6.有如下 Python 程序段: a=[5,4,2,1,3,6];q=[0]*6; head=tail=0 for i in range(len(a)): if a[i]%2==1: q[tail]=a[i];tail=tail+1 elif head<tail: head+=1 print(tail-head) 执行该程序段后,输出结果为(      ) A.0 B.1 C.2 D.3 7.有如下Python程序段: a=[[0]*3 for i in range(4)] print(a) for i in range(len(a)):     for j in range(len(a[0])):         a[i][j]=i*len(a[0])+j+1 则程序执行后,a[2][2]的值为(   ) A.5 B.6 C.8 D.9 8.有如下Python程序段: import random n=6;a=[0]*n;i=0 while i<n: k=random.randint(1,10) if k%2==0: i=i-1 elif k%3==0: a[n-1]=k n=n-1 else: a[i]=k i=i+1 执行该程序段后,列表a中的各元素可能的是(    ) A.[0,0,3,3,6,9] B.[1,1,0,3,7,9] C.[5,0,0,5,7,3] D.[0,0,5,3,3,9] 9.某商场做促销打折活动,消费金额500元以内打8.8折;大于500元(含500元)且小于1000元打8折;1000元以上(含1000元)打7折。小曲使用Python编写了下面程序,第4行下划线处应填写的代码是(   ) A.if B.elif C.else D.while 10.执行以下代码后,整型变量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 11.在Python中,正确调用random模块的语句是(   ) A.return random B.import random C.read random D.open random 12.以下代码可实现把多个升序链表合并成一个升序链表 class ListNode:     def __init__(self, val=0, next=None):         self.val = val         self.next = next def mergeTwoLists(list1, list2):     if (1) or (2) :         list1, list2 = list2, list1     if (3) :         list1.next =(4)     return list1 def mergeKLists(list1):     if (5) :     return None     if len(list1) == 1:         return list1[0]     mid = len(list1) // 2     left, right = mergeKLists(list1[:mid]), mergeKLists(list1[mid:])     return mergeTwoLists(left, right) 划线处(1)(2)(3)(4)(5)应填入的正确代码有 ①(list2 and list1.val > list2.val)    ②(list1 and list2.val > list1.val)    ③list1,list2=list2,list1 ④mergeTwoLists(list1.next, list2)  ⑤mergeTwoLists(list1, list2.next)  ⑥not list1  ⑦not list2 ⑧list1   ⑨list2 则正确代码的顺序是(   ) A.⑥①⑧④⑥ B.⑦②⑥④⑥ C.⑥①⑨④⑥ D.⑦②⑨④⑥ 13.python表达式519% 10 * 10+519 // 10的结果为(   ) A.70 B.99 C.141 D.51 14.函数range(6,10)生成的序列中元素的个数是(   ) A.3 B.4 C.5 D.6 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.有下面一段程序,运行该程序后s的值为(    ) A.3 B.5 C.8 D.10 17.下列Python表达式的值中,与其他三项不同的是(    ) A.ord("H")-ord("A") B.round(7.25) C.len("Xin 024") D.172//2**3%8 18.有如下Python程序段: a=[3,4,7,9,12,17] i = a[0];j =a[5];tar =20;ans =-1 while i <=j:     mid=(i + j)//2     tmp=0     for k in range(len(a)):         if a[k]>mid:             tmp += a[k] - mid     if tmp >= tar:         ans = mid;i = mid+1     else:         j = mid -1 执行该程序段后,变量ans的值为(   ) A.-1 B.6 C.7 D.10 二、填空题 19.如下Python程序段 x=0 while x<50:     x=(x+2)*(x+3) 运行后,x 的值为 。 20.Python表达式125%100的运算结果是( ) 21.在程序的开始位置输入语句 numpy,即可导入Numpy模块。 22.有Python程序代码如下: n=int(input("请输入一个整数n:")) if n < 0 :     s = 0 elif n < 16 :     s = n ** 3 else :     s = n * n ** 2 print(s) 若要测试所有分支程序代码是否正确,请列举一组合适的数据 23.input( )函数的返回值的类型是 。 三、判断题 24.在Python中用<>表示不等于。( ) 25.“num”和“NUM”会被Python解释器视为相同的变量。( ) 26.汇编语言是面向机器的语言,其可读性相对较好,容易被移植。( ) 27.Python语言的变量名要区分英文字母的大小写。( ) 28.在程序中,x=y与y=x是不一样的。( ) 四、操作题 29.某次技术练习的成绩放在score.csv文件中,文件内容如图a所示,第一列为姓名,第二列是信息技术成绩,第三列是通用技术成绩。编写Python程序从该文件中读取数据,计算技术总分(信息技术+通用技术),然后选出总分最高的前十名(第十名若有同分一起输出),程序运行界面如图b所示。              图a                                        图b (1)下列Python代码实现读取数据、计算总分、存入zflst列表中的功能,请在划线处填入合适的代码。 #读入数据存入列表data中,data列表形如[["陈**","50","43.5"],["甘**","50","0"],......] zflst=[]     #创建空列表 for stu in data:     zf=①     zflst.append(zf)    #把zf添加到zflst列表中 (2)下列Python代码实现选出总分最高的前十名(第十名若有同分一起输出)。基本思路为:利用逐个比较求最大值的方式从zflst中挑选出总分最高的前十名,然后再遍历整个zflst查找第10名的同分。为避免重复参与选择,创建flag列表为每个分数标记,False代表未被选出;True代表已被选出。请在划线处填入合适的代码。 print("姓名    总分") n=② flag=[False]*n    #创建一个flag列表,含有n个False元素 for i in range(10):    #选出最高的10个总分     max=0     for j in range(n):         if flag[i]==False:             if ③ :                 max=zflst[j]                 k=j     print(data[k][0],"",zflst[k])     flag[k]=True i=0 while i<n:      #查找同分     if :    #(3)改错        print(data[i][0],"",zflst[i])         flag[i]=True     i+=1 (3)改正加框处代码。 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查Python基础。 range(start, stop[, step]) 函数用于生成一个整数序列,这个序列的起始值是start(默认为0),结束值是stop(但不包括stop本身),步长为step(默认为1)。因此,range(5)等价于range(0, 5),它会生成从0开始(包含0)到5结束(不包含5)的整数序列,即0, 1, 2, 3, 4。故正确答案为:选项B。 2.A 【详解】本题考查Python程序设计相关内容。and是且,or是或,判断样本的水质类别是否符合2类及以上标准(即水质类别1-2认为符合,其他认为不符合),因此if判断条件是r==1 or r==2,故本题答案是A选项。 3.D 【详解】本题主要考查程序设计语言。计算机能直接识别、理解执行的语言是机器语言,即二进制0和1,故本题选D选项。 4.D 【详解】本题考查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)。表示10以内奇数的列表是range(1,10,2),故本题答案是D选项。 5.A 【详解】本题考查Python函数的应用。count()方法用于统计字符串里某个字符出现的次数;find()函数可以在字符串中查找指定字符或子串的位置,如果找到则返回该字符或子串在整个字符串中的下标,否则返回-1;index()函数,如果不存在会报异常。故选A。 6.B 【详解】本题考查Python程序调试与执行。分析程序,当a[i]是奇数时,则将a[i]保存到q中,同时tail递增1,若a[i]是偶数且head<tail时,则head递增1。第一次循环,a[i]=5,则tail=1,第二次循环,a[i]=2,执行elif,head=1;第三次循环,不满足判断条件,跳过;第四次循环,a[i]=1,则tail=2;第五次循环,a[i]=3,则tail=3;第六次循环,a[i]=6,head=2,循环结束。因此输出tail-head=3-2=1。故选B。 7.D 【详解】本题考查Python程序。首先,a=[[0]*3 for i in range(4)]创建了一个4行3列的二维列表,初始值均为0。然后通过两层循环进行赋值,len(a)为4,len(a[0])为3。对于a[2][2],计算过程为2*3+2+1=9。故答案为:D。 8.D 【详解】本题考查Python程序设计相关内容。random.randint(1,10)生成1~10的随机整数。通过分析代码段,可知:当k=2、4、6、8、10时,a列表元素值不会出现2、4、6、8、10,A选项错误;当k=3、9时,列表最后元素aa[5]元素值为对应的3、9;若3、9同时出现,则两值之间不应该出现3、9之外的数值,B选项错误;当列表元素前有两个0(未被修改)出现时,其列表最后的两个元素值应该是3、9中的一个,C选项错误。故本题答案是D选项。 9.B 【详解】本题主要考查Python多分支结构。Python多分支结构格式是if…elif…else,故划线处填elif,故本题选B选项。 10.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。 11.B 【详解】本题考查Python模块。import是用于导入模块的关键字,正确的语法是import random。故答案为:B。 12.A 【详解】本题考查链表。(1)如果第一个链表为空,则直接返回第二个链表,故选⑥。(2)如果第二个链表不为空且第一个链表的值大于第二个链表的值,则交换两个链表,使得较小的值在前。故选①。(3)在递归合并两个链表时,将当前较小值的节点作为合并结果的头节点。故选⑧。(4)递归地合并剩余的链表部分。故选④。(5)如果链表数组为空,则返回None。故选⑥。故答案为:A。 13.C 【详解】本题考查的是Python表达式。%表示求余,//表示整除,*表示乘,故519% 10 * 10+519 // 10=141。选C。 14.B 【详解】本题考查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(6,10)生成:6、7、8、9共4个。故选B。 15.A 【详解】本题考查程序分析。B选项,直接遍历列表lst,变量i直接存储的是列表元素,非索引。C选项,变量i存储的是列表元素值,非索引。D选项,if条件判断错误,不能用索引等于目标值。故正确答案为A选项。 16.B 【详解】本题主要考查Python程序的执行。当list[i]>0且i<=n时,s递增,i递增,否则退出循环。当list[5]=-9<0,退出循环。故s=0+1+1+1+1+1=5,故运行程序后s的值为5,故本题选B选项。 17.D 【详解】本题考查Python表达式。A选项,ord("H")-ord("A")=72-65=7;B选项,round(7.25)=7;C选项,len("Xin 024")=7;D选项,172//2**3%8=172//8%8=21%8=5。故答案为:D。 18.B 【详解】本题考查Python程序设计相关内容。分析代码段,初始状态下,ans =-1,tar =20,i=3,j=17。 (1)i<=j成立,第一次进入外循环:mid=(i + j)//2=10,tmp=0,k从 0到5依次执行内循环体,当 k值为0、1、2、3时,a[k]>mid不成立,当k值为4、5时,a[k]>mid成立,两次都执行 tmp += a[k] - mid,使得tmp=9,此时,tmp >= tar不成立,执行j = mid -1,j=9。i值未发生变化,仍然=3。 (2)i<=j成立,第二次进入外循环:mid=(i + j)//2=6,tmp=0,k从 0到5依次执行内循环体,当 k值为0、1时,a[k]>mid不成立,当k值为2、3、4、5时,a[k]>mid成立,四次都执行 tmp += a[k] - mid,使得tmp=21,此时,tmp >= tar成立,执行ans = mid;i = mid+1;ans=6,i=7,j值未发生变化,值为9。 (3)i=7,j=9,i<=j成立,第三次进入外循环:mid=(i + j)//2=8,tmp=0,k从 0到5依次执行内循环体,当 k值为0、1、2时,a[k]>mid不成立,当k值为3、4、5时,a[k]>mid成立,三次都执行 tmp += a[k] - mid,使得tmp=14,此时,tmp >= tar不成立,执行j = mid -1,j=7,i值未发生变化,值为7。 (4)i=7,j=7,i<=j成立,第四次进入外循环:mid=(i + j)//2=7,tmp=0,k从 0到5依次执行内循环体,当 k值为0、1、2时,a[k]>mid不成立,当k值为3、4、5时,a[k]>mid成立,三次都执行 tmp += a[k] - mid,使得tmp=17,此时,tmp >= tar不成立,执行j = mid -1,j=6,i值未发生变化,值为7。(5)i=7,j=6,i<=j不成立,不再进入循环。在四次循环内,只有第二次循环,ans才获得值,其值为6。 故本题答案是 B选项。 19.72 【详解】本题考查Python基础。初始化x=0,执行循环。 第一次运行:x=(0+2)*(0+3)=6 第二次运行:x=(6+2)*(6+3)=72 故正确答案为:72。 20.25 【详解】本题考查Python运算符与表达式。在Python中,%代表求模运算,因此表达式125%100的运算结果是25。 21.import 【详解】本题考查模块。在Python中,要使用某个模块,需要使用import语句来导入。Numpy是Python中的一个重要的科学计算库,要使用它,就在程序开始位置输入import numpy来导入。故答案为:import。 22. -1,15,16  或其他等价答案 【详解】本题考查的是Python多分支语句。阅读程序可知,程序由三个分支:小于0、大于等于0小于16、大于等于16。故测试数据可以是:-1,15,16 或其他等价答案。 23.字符串型 【详解】本题考查输入函数相关知识。input()函数是输入函数,用于接受一个标准输入数据,函数返回值是“字符串”类型。故本题答案是:字符串型 24.错误 【详解】本题考查Python关系运算符相关内容。用来表示不等于的符号是“!=”,“==”表示等于,“>=”表示大于等于,“<=”表示小于等于,故本题答案是:错误。 25.错误 【详解】本题考查变量。Python中的变量严格区分大小写。num和NUM不是相同变量,故错误。 26.错误 【详解】本题考查汇编语言的描述。汇编语言是面向机器的语言,其可读性相对较好,但不容易被移植,开发难度大。故表述错误。 27.正确 【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。 28.正确 【详解】本题考查程序设计中赋值语句的理解。在Python程序中,x=y是将y的值赋给x,y=x是将x的值赋给y,因此,x=y与y=x是不一样的。故正确。 29. float(stu[1])+float(stu[2]) len(zflst)或len(data) zflst[j]>max或zflst[j]>=max not flag[i] and zflst[i]==max或flag[i]==False and zflst[i]==max 【详解】本题考查Python综合应用。 (1)①data列表形如[[陈**','50','43.5'],['甘**','50','0',......],代码"for stu in data",stu是data的元素['陈**','50','43.5'],['甘**','50','0'],......计算总分则是取出stu中的第二、三两个元素转实型后相加。故答案为:float(stu[1])+float(stu[2])。 (2)②程序中出现变量n,所以2处一定是对变量n的赋值,根据题目意思n是学生个数。故答案为:len(zflst)或len(data)。③循环10次,每次都遍历所有学生,从未选出的学生中找出一个总分最高分。假设max最大,然后与所有学生总分一一比对,若zflst[j]>max或zflst[j]>=max则替换max,并记录当前最大值的下标。故答案为:zflst[j]>max或zflst[j]>=max。 (3)根据题意“第十名若有同分一起输出”,所以程序中最后一个while循环是比对与第十个max同分的学生,改错处则是从未被选择过的学生中查找同分,故答案为:not flag[i] and zflst[i]==max或flag[i]==False and zflst[i]==max。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

2024-2025学年高一上学期华东师大版(2020)必修1 第二节 程序设计语言基础知识
1
2024-2025学年高一上学期华东师大版(2020)必修1 第二节 程序设计语言基础知识
2
2024-2025学年高一上学期华东师大版(2020)必修1 第二节 程序设计语言基础知识
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。