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

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

内容正文:

第二节 程序设计语言基础知识 一、选择题 1.以下选项不属于程序设计语言类别的是(   ) A.机器语言 B.汇编语言 C.高级语言 D.解释语言 2.在Python语言中对常量或变量进行运算或处理的符号称为运算符,“>”的运算符类别是(   ) A.算数运算符 B.逻辑运算符 C.关系运算符 D.赋值运算符 3.某店铺优惠活动:消费满688后打7折,不满额则9折。计算优惠价格的Python程序段如下: if x>=688: y=x*0.7 else: y=x*0.9 下列选项中与上述功能相同的是(   ) A. B. C. D. 4.数学表达式在python中的正确写法(   ) A.(Abs(2*a)+b)/(4ab) B.((2*a)**0.5+b)/4*a*b C.(Abs(2a)+b)/(4ab) D.((2*a)**0.5+b)/(4*a*b) 5.若x是一个整型变量,则判断它是否为5的倍数的Python关系表达式是(   ) A.x % 5 == 0 B.x / 5 == 0 C.x \ 5 = =0 D.Int(x / 5) == 0 6.下列代码的输出结果是(   ) >>> a = b = c = 2024 >>> print(a,b,c) A.a,b,c B.2024 2024 2024 C.0 0 2024 D.出错 7.某二分查找算法的Python程序如下: import random key=random.randint(0,4)*2+5 n=10;ans=0 a=[4,5,5,8,9,11,11,13,15,17] i=0;j=n-1 while i<=j: m=(i+j)//2 if a[m]<=key: i=m+1 else: j=m-1 ans+=a[m] print(ans) 程序运行后,输出ans的值不可能是(   ) A.19 B.27 C.37 D.44 8.关于Python语言的浮点数类型,以下选项中描述错误的是(   ) A.Python语言要求所有浮点数必须带有小数部分 B.浮点数类型与数学中实数的概念一致 C.小数部分不可以为0 D.浮点数类型表示带有小数的类型 9.定义如下函数: def fn(n,numl,num2):     if n==1:         return numl     return fn(n-1,num2,numl+num2) 下列说法正确的是(    ) A.该算法的时间复杂度是O(n) B.fn(10,1,2)的效果等价于1+2+3…+10 C.fn(5,1,1)的结果是 22 D.fn(1,1,1)与fn(1,1,2)的返回结果不同 10.我国古代著名的数学专著《孙子算经》中有这样一道题:“今有物,不知其数。三三数之,剩二;五五数之,剩三;七七数之,剩二。问:物几何? 请完善以下Python程序,实现:输出1000以内符合上述条件的所有整数及其个数。 ① for i in range(1001):     if i%3==2 ② i%5==3 ③ i%7==2:         s+=1         print(④ ) print("1000以内满足条件的数共有%d个"%s) 要实现题目要求,下列填入的代码完全正确的选项是(     ) A.①s=0  ②and  ③or  ④s B.①s=1  ②or  ③and  ④i C.①s=0  ②and  ③and  ④i D.①s=1000  ②and  ③or  ④s 11.输入一个四位正整数, 判断该四位正整数每一位上的数字是否有重复。实现上述功能的Python 程序段如下: n = int(input("请输入一个四位正整数:")) f = [0] * while n > 0:       y = n % 10       n = n // 10 if sum(f) == 4:        print("没有重复的数字。") else:        print("有重复的数字。")  方框中的(1)和(2)可选的代码有:①10;②4;③f[y]+=1;④f[y]=1下列选项中,代码顺序正确的是(   ) A.①③ B.②③ C.②④ D.①④ 12.某算法的流程图如图所示,若输入的n值为10987654321,则下列说法正确的是(   ) A.该算法中包含两个循环结构 B.执行该流程后,输出的s值为30 C.语句“n>0?”与“r%2=0?”执行的次数相同 D.执行该流程后,变量r的值为1 13.有如下Python程序段: s=input("请输入待处理字符串:") st="" for i in range(len(s)):     ch=s[i]     if"0"<=ch<="9":         ch=str((int(ch)+3)%10)         st=st+ch     else:         if"A"<=ch<="Z":             ch=ch.lower()         st=st+ch print(st) 执行程序后,输入字符串"Happy2024!",输出的结果(    ) A.7535happy! B.4202Happy! C.!7535yppah D.happy5357! 14.某二分查找Python程序代码如下 #b列表存入n个非递减整数 key = int(input()) i, j =0, n-1 while i<=j:     m=(i+j)//2     if key >= b[m]:         i=m+1     else:         j=m – 1     print(b[m],end=',') 某次运行,当输入key为“20”时,输出为“20,30,20,”,则下列说法不正确的是(   ) A.根据输出结果,可以得出该二分查找的判定树为三层或四层 B.根据输出结果,待找数据中“20”的个数最多为6个 C.根据输出结果,可以判定该批待找数据最少个数为6个 D.输出结果中的前后两个“20”,分别代表待找数据中最左端和最右端的两个"20" 15.有如下Python程序段: s=input("请输入一个仅由小写英文字母组成的字符串:") st=[""]*len(s);top=-1 t=[-1]*26 for i in range(len(s)):     id=ord(s[i])-97     if t[id]==-1:         top+=1         st[top]=s[i]         t[id]=top     else:         first=t[id]         while top>=first and top!=-1:             num=ord(st[top])-97             t[num]=-1;top-=1 print(st[:top+1]) 若从键盘输入的值为"hellopython",则输出的值为(    ) A.['o','n'] B.['h','e','n'] C.['h','e','l','o','p','y','t','n'] D.['h','e','o','p','y','t','h','o','n'] 二、填空题 16.有如下Python 程序段: s=0 for k in range(7,2,-2): if k<=3: x=3 if k<=5: x=5 if k<=7: x=7 s=s+x print(s) 执行该程序段后,输出显示的内容是 。 17.在Python中,使用 循环可以遍历字典的键值对。 18.用Python表达式补充完成如下程序,统计四位奇数中满足能被23和19整除的总数。 s=0 for i in range(1001,10000,2): :     s=s+1 print(s) 19.input( )函数的返回值的类型是 。 三、判断题 20.当作为条件表达式时,空值、空字符串、空列表、空元组、空字典、空集合以及任意形式的数字0都等价于False。( ) 21.程序设计语言是指人们编制程序所使用的计算机语言,VB是低级语言。( ) 22.计算机程序能重复使用。( ) 23.在程序中,x=y与y=x是不一样的。( ) 四、操作题 24.随机生成一个长度为n的字符串,该字符串仅由大写字母"A""B""C"组成。如果字符串中存在连续三个或更多的相同字符,则将其简化。例如,字符串"ACCBBBBCBC",根据简化规则可以进行以下步骤消除: 第一步:消除字符"B",得到新字符串"ACCCBC"; 第二步:消除字符"C",得到新字符串"ABC";最终操作结束后的字符串为"ABC"。 实现上述功能的python程序如下,请回答下列问题: (1)如有字符串“ABBBAACCB”,则消除后,字符串为: 。 (2)请在程序划线处①②③④填入合适的代码,实现程序功能。 import random def left(s, x):     while x-1>=0 and s[x]==s[x-1]:         x=x-1     return x def right(s, x):     while x+1<=len(s)-1 and s[x]==s[x+1]:         ①     return x def strs(n):  #随机生成一个只含有A、B、C的字符串,长度为n     s=” ”     for i in range(n):         m= ②         s=s+chr(ord(“A”)+m)     return s 主程序: K=int(input("请输入字符串的长度:")) s=③ i=0 while i<len(s):     L=left(s, i)     R=right(s, i)     if ④ :         s=s[:L]+s[R+1:]         i=L     else:         i=i+1 print("最后的字符串为: ", s) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.D 【详解】本题主要考查程序设计语言。解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。解释语言不属于程序设计语言类别,故本题选D选项。 2.C 【详解】本题考查Python基础。 在Python语言中,“>”的运算符类别是关系运算符。关系运算符用于比较两个操作数的大小或关系,并返回一个布尔值(True 或 False)。故正确答案为:选项C。 3.D 【详解】本题考查Python选择程序设计相关内容。对比4个选项,A选项,当x>=688时,执行两次对y的赋值操作,打9折,不能体现<688时的折扣,错误;B选项,y初值是打7折,当x>=688时打9折,不符合题意,错误;C选项,else后为空语句,无论x>=688是否成立,最终要执行y=x*0.9,即全部打9折,不符合题意,错误;D选项,两个if语句可以实现题目要求,正确。故本题答案是D选项。 4.D 【详解】本题考查Python表达式。在Python中,对于开平方,应该使用**0.5来表示,而分母作为一个整体,在表示时,应该加上括号作为一个整体,因此该数学表达式在Python中表示为:((2*a)**0.5+b)/(4*a*b)。故答案为:D。 5.A 【详解】本题考查的是Python表达式。判断它是否为5的倍数,即x是否能被5整除,即x除以5的余数为0,%是取余运算符,故判断变量x是否能被5整除的Python语言表达式为:x%5==0。故选A。 6.B 【详解】本题考查的是Python赋值语句。 a = b = c = 2024表示abc同时赋值为2024,print是输出函数。故本题应选B。 7.A 【详解】本题考查Python程序设计相关内容。本题涉及到对分查找相关知识。根据题意可知key的取值范围是5~13之间的奇数。相应的二叉树如下图所示: key为5和7时,ans=27;key为9时,ans=33;key为11时,ans=44;key为13时,ans=37,A选项,19不可能。故本题答案是A选项。 8.C 【详解】本题考查浮点数。Python中的浮点数小数部分可以为0,如1.0。故选项C错误。其它选项正确。故正确答案为选项C。 9.A 【详解】本题考查Python函数相关内容。A选项,该函数为递归函数,分析其执行过程,可知,时间复杂度为O(n),选项正确。B选项,该函数功能为计算斐波那契数列,不是计算1--10的和,选项错误。C选项,当n等于5时,计算的是斐波那契数列第5项(1、1、2、3、5...),其结果为5,不是22,选项错误。D选项,fn(1,1,1)与fn(1,1,2)运行结果相同,因第一个参数都是1,代入函数运行,均返回num1,即1。故本题答案是A选项。 10.C 【详解】本题考查Python程序。题目要求找出1000以内符合特定条件的所有整数,并计算其个数。根据题意,整数需要满足三个条件:对3取余为2,对5取余为3,对7取余为2,这三个条件需要同时满足,因此需要用and逻辑运算符。初始化计数变量应为0,并在满足条件时输出该整数。因此,填入的代码应该是:①s=0;②and;③and;④i。故答案为:C。 11.D 【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,可知:f为一个长度为10的列表,按照索引号分别对应十进制数0--9(四位正整数的最高位取值1--9,其余三位取值均为0--9),(1)处应填写:10。while循环作用是将四位正整数的每一位取出来,并将其值与索引号对应的f列表元素f[y]值置为1,(2)应填写:f[y]=1。故本题答案为D选项。 12.D 【详解】本题考查的是流程图识读。该算法中包含一个循环结构;该算法的功能是将输入的n值中,数位上为偶数累加到s中,n值为10987654321,s=2+4+6+8+0=20;语句“n>0?”比“r%2=0?”执行多执行1次;r表示是n值中个位、十位……的数字,故执行该流程后,变量r的值为1。本题应选D。 13.D 【详解】本题考查Python程序分析能力。if语句判断循环遍历的字符串,如果是数字0到9,则数字加3并取余数。如果是大写字母,则转换成小写字母。其它字符不变。以上处理结果逆序存放在st中,最后输出st。故选项D为正确答案。 14.D 【详解】本题考查Python程序设计相关内容。本题涉及到二分查找相关知识。根据输出:“20,30,20”,最后一个20是最右端的20,没问题。第一个20是整个列表的中点,没法保证左侧没有20,D选项错误。依据本题的中点表达式m=(i+j)//2,中点左侧数据量<=中点右侧数据量,根据第二、第三次的输出30,20,可以确定第二次查找的区间,数据应该是3-4个,那么列表中数据元素最多9个。右侧还有一个20,中点是20,如果左侧4个全是20,所以最多6个20,B选项正确。根据上面分析,不难得出最少元素是6个:左2中1右3,C选项正确。元素最少6个最多9个,如果画出二分判定树,高度是3-4,A选项正确。故本题答案为D选项。 15.A 【详解】本题考查Python程序设计相关内容。分析程序可知,该程序功能是:若栈空,将当前元素入栈,列表t对应位置数值加1(计数),若top>=first and top!=-1,则将栈中元素全部出栈,列表t对应位置重置为-1。输入的值为"hellopython",“hel”均入栈,读取到第二个“l”时,将栈中元素全部出栈;“opyth”均入栈,读取到第二个“o”时,将栈中元素全部出栈;最终,st中仅存“on”。输出的值为“on”。故此处答案是A选项。 16.21 【详解】本题考查程序分析。 程序循环遍历数字7、5、3赋值给循环变量k,if语句判断区间中,不管k是3或是5,都执行k=7的判断,故每次累加7到变量s。故s=7+7+7=21。故正确答案为:21。 17.dict.items() 【详解】本题考查Python循环的描述。在Python中,可以使用for循环结合字典的items()方法来遍历字典的键值对。items()方法返回一个包含字典键值对的视图对象。 18.if i %23==0 and i %19 ==0 【详解】本题考查的是Python循环与选择语句。通过循环变量i遍历所有四位数的奇数,判断能否被23和19整除,只要看除完后的余数是否为0,故画线处代码为:if i %23 == 0 and i %19== 0。 19.字符串型 【详解】本题考查输入函数相关知识。input()函数是输入函数,用于接受一个标准输入数据,函数返回值是“字符串”类型。故本题答案是:字符串型 20.正确 【详解】本题考查Python基础。 空值 (None):这是Python中的一个特殊类型,用于表示“无”或“空”的概念。在布尔上下文中,它被视为False。 空字符串 ('' 或 ""):无论是单引号还是双引号定义的空字符串,在布尔上下文中都被视为False。 空列表 ([]):一个不包含任何元素的列表,在布尔上下文中被视为False。 空元组 (()):一个不包含任何元素的元组,在布尔上下文中也被视为False。 空字典 ({}):一个不包含任何键值对的字典,在布尔上下文中被视为False。 空集合 (set()):一个不包含任何元素的集合,在布尔上下文中被视为False。 任意形式的数字0,在Python中,整数0、浮点数0.0等,在布尔上下文中都被视为False。 故正确。 21.错误 【详解】本题考查的是程序设计语言。程序设计语言是指人们编制程序所使用的计算机语言,VB是高级语言。题干中说法错误。 22.正确 【详解】本题考查计算机程序相关内容。计算机软件(程序)复用指的是在开发软件时,重复利用已有的代码和模块,以提高开发效率,并减少开发成本。故本题答案是:正确。 23.正确 【详解】本题考查程序设计中赋值语句的理解。在Python程序中,x=y是将y的值赋给x,y=x是将x的值赋给y,因此,x=y与y=x是不一样的。故正确。 24. CCB x=x+1 random.randint(0,2) strs(k) R-L+1>=3或R-L>=2或len(s[L:R+1])>=3 【详解】本题考查Python综合应用。 (1)在输入的字符串"ABBBAACCB"中,有连续三个或更多相同的字符。按照消除连续相同字符的规则,我们需要逐步消除这些相同字符。首先,我们从左到右遍历字符串,发现第一个连续三个相同字符的子串为"BBB"。根据规则,我们删除中间的"B"字符,得到新字符串"AAACCB"。现在,我们继续遍历新字符串,发现连续三个相同字符的子串为"AAA"。我们删除这三个"A"字符,得到最终消除后的字符串"CCB"。故答案为:CCB。 (2)在right(s, x)函数中,我们要找到字符s[x]向右的第一个不等于s[x]的位置。因此,当x对应的字符等于下一个字符时,我们需要将x自增,直到找到第一个不相等的字符位置。故答案为:x=x+1。在strs(n)函数中,我们需要生成一个随机整数,表示字符“ABC”中的其中一个。random.randint(0,2)可以生成一个0到2之间的随机整数,然后我们将其转换为相应的字符“A”、“B”或“C”。故答案为:random.randint(0,2)。在主程序中,我们需要调用strs()函数来生成指定长度的随机字符串,而用户通过输入的方式指定了字符串的长度K。故答案为:strs(k)。在判断删除条件时,我们需要确保至少有三个连续的相同字符,才执行删除操作。因此,我们应该判断R - L + 1 >= 3,即右边界减去左边界的值加1是否大于等于3。如果大于等于3,则说明有三个或更多连续相同字符,需要进行删除。故答案为:R-L+1>=3或R-L>=2或len(s[L:R+1])>=3。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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