3.2Python语言程序设计同步作业2024—2025学年高中信息技术浙教版(2019)必修1

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

内容正文:

3.2 Python语言程序设计 一、选择题 1.超市进行促销活动,若单笔消费满 200 元打九折,单笔消费满 300 元打八折(单笔消费仅享受一次打折优惠)。设顾客单笔消费 s 元,下列 Python程序能正确描述超市活动的是(   ) A. if s>=300:     s=s*0.8 else:     s=s*0.9 B. if s>=300:     s=s*0.8 if s>=200:     s=s*0.9 C. if s>=300:     s=s*0.8 elif s>=200:     s=s*0.9 D. if s>=200:     s=s*0.9 elif s>=300:     s=s*0.8 A.A B.B C.C D.D 2.判断整数x是否奇偶的部分Python程序段如下: if x % 2 == 0:    res = ″偶数″ else:    res = ″奇数″ 下列选项中与上述语句块功能相同的是(   ) A. if x % 2 == 0:     res = ″偶数″     res = ″奇数″ B. if x % 2 == 0:     res = ″偶数″ else x % 2 ! = 0:     res = ″奇数″ C. res = ″奇数″ if x % 2 == 0:     res = ″偶数″ D. if x % 2 == 0:     res = ″奇数″ if x % 2 ! = 0:     res = ″偶数″ A.A B.B C.C D.D 3.小东学习了Python程序设计后,编写了计算话费充值优惠的程序如下所示。用户输入充值金额,程序会计算并输出优惠后需要支付的金额。当用户输入充值金额53时,输出结果是(   ) 1  cz=float(input("请输入充值金额(元):")) 2  if cz<=38: 3     zf=cz 4  elif cz<=50: 5      zf=cz-3 6  elif cz<=100: 6     zf=cz-6 7  else: 8      zf=cz*0.9 9  print(zf) A.47.0 B.50.0 C.55.0 D.53.0 4.下列Python程序,运行的结果是(   ) a=1 if(a==4) or (a<6): print("你好!",a) else: print("退出!") A.你好! B.退出 C.你好!1 D.你好!6 5.有如下python 程序段: s = "1010/1100/1111" ans,t = 0,0 for i in s: if "0" <= i <= "1": t = t * 2 + int(i) else: ans += t t = 0 print(ans) 运行该程序段,输出结果是(   ) A.12 B.15 C.22 D.37 6.定义如下函数: def f(k):     if k<=3:         print(k)         return     for i in range(1,4):         f(k-i)     return 执行语句f(6),则f(3)被调用的次数为(    ) A.1次 B.2次 C.3次 D.4次 7.有如下Python程序段: from random import randint s=[60,40,70,20,10,50] m=randint(1,3)*2 for i in range(6, m,-1):    for j in range(5,i,-1):       if s[j-1]>s[j]:          t=s[j]          s[j]=s[j-1]          s[j-1]=t print(s) 该程序段执行后,输出的结果可能是(  ) A.[60,40,70,20,10,50] B.[10,60,40,70,20,50] C.[10,20,60,40,70,50] D.[10,20,40,50,60,70] 8.有一组正整数,要求对其中的奇偶数进行交换。交换后偶数在前,奇数在后,并保持相对顺序不变。将划线处的代码补充完整,正确的是(  ) a=[5,10,21,7,24,14,9,11,36,37] n=len(a) ;b=[0]*n num=0;k=0 while k <10:     if   ① :         b[num]=a[k]         num+=1     else: ②     k+=1 for j in range(n-num,n): ③ print(a) A.①a[k]%2==1 ②a[k-num]=a[k] ③a[j]=b[j-n+num] B.①a[k]%2==0 ②b[k-num]=a[k] ③a[j]=b[j+num] C.①a[k]%2==0 ②a[k-num]=a[k] ③a[j]=b[j+num] D.①a[k]%2==1 ②b[k-num]=a[k] ③a[j]=b[j-n+num] 9.以下分支结构描述不正确的是(   ) A.分支结构分为单分支结构、双分支结构和多分支结构 B.if-else语句结构中依然可以嵌套if-else结构 C.多分支结构可以连用多个else语句来实现 D.通过判断if条件表达式的值( True或False ),决定程序执行的分支 10.哥德巴赫猜想提出:任一大于2的偶数都可表示成两个质数之和。小余想通过Python程序来验证这一猜想,输入一个大于2的偶数,输出一个满足猜想的表达式。程序代码如下: import math def isprime(x): for i in range(2,int(math.sqrt(x))+1): if_ ① : return False return True n=int(input(“请输入一个大于2的偶数:”)) for p in range(2,n-1): q=n-p if ② : print(n,"=",p,"+",q) break 下列选项中能实现该代码程序功能的是() A.①x % i !=0  ②isprime(p) and isprime(q) B.①x % i !=0  ②isprime(p) or isprime(q) C.①x % i==0   ②isprime(p) and isprime(q) D.①x % i ==0  ②isprime(p) or isprime(q) 11.a=[3,7,2,5,4,6,9,1] m=abs(a[0]-a[1]) for i in range(2,len(a)):     if abs(a[i]-a[i-1])>m:        m=abs(a[i]-a[i-1]) 则程序执行后,m的值是( ) A.4 B.5 C.7 D.8 12.有如下 Python 程序段: s=0     for k in range(3,1,-1):     if k <= 1 :         x = 1     if k <= 2 :         x = 2     if k <= 3 :         x = 3     s = s + x print(s) 执行该程序段后,输出显示的内容是(   ) A.9 B.8 C.6 D.3 13.在Python中,表达式a**3+b**3+c**3==100*a+10*b+c属于( ) A.算术表达式 B.关系表达式 C.逻辑表达式 D.日期表达式 14.已知闰年的判断条件是:年份能被4整除但不能被100整除,或者能被400整除。下列VB表达式中,能判断某年份(year)是否是闰年的是(    ) A.year Mod 4 <> 0 And year Mod 100 = 0 Or year Mod 400 = 0 B.year Mod 4 = 0 And year Mod 100 <> 0 Or year Mod 400 = 0 C.year Mod 4 = 0 And year Mod 100 <> 0 Or year\400 = 0 D.year \ 4 = 0 And year \ 100 <> 0 Or year \ 400 = 0 15.以下语句格式正确的是(    )。 A.if age < 18; B.if age < 18: C.if age < 18。 D.if age < 18. 16.函数如下 def chanageInt(number2):      number2 = number2+1      print("changeInt: number2= ",number2) #调用 number1 = 2 chanageInt(number1) print("number:",number1) 打印结果哪项是正确的(  ) A.changeInt: number2= 3       number: 3 B.changeInt: number2= 3       number: 2 C.number: 2             changeInt: number2= 2 D.number: 2             changeInt: number2= 3 二、填空题 17.Python表达式125%100的运算结果是( ) 18.阅读如下一段程序,回答以下问题。 x=20 if x>=10:    value=4*x else:    value=5*x print(value) 该程序采用 结构,程序输出结果是 19.某Python程序段如下: def isdigit(x): if "0" <= x <= "9": return True else: return False d = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" s = "1*8%6$3@0#19&amp;0" ans = "" t = 0 for i in s: if isdigit(i): t = t * 10 + int(i) else: ans += d[t] t = 0 print(ans) 运行该程序段,输出结果是 20.在解决问题的过程中,常常需要对事物进行判断和选择,Python中使用if语句实现程序的分支选择,当分支比较多时可以用if … …else语句来实现。 21.有10个数据34,22,101,8,14,88,24,17,54,7依次存放在列表list中,有如下Python程序,当程序运行结束时,输出的值是: list= [34,22, 101,8,14,88,24,17,54,7] num=list[0] for i in range(1,10): if list[i]<num: num=list[i] print(num) 22.有如下Python程序段: d=[13,9,21,29,36,18,23,20,25,6,8] n=len(d) key=int(input("please input key:")) ans=max(d) posi=i=0 while i<=n-1:       if abs(d[i]-key)<=ans:           ans=abs(d[i]-key)           posi=i       i=i+1 print(ans","posi) 程序运行时,输入key的值为25,输出结果为 23.阅读下列程序,写出运行结果。 sum = 0 data = [34,5,9,41,78,2] for i in data : if i % 2 == 0: sum = sum + iprint(sum) 运行结果是: 24.阅读下列程序,写出运行结果 警察抓小偷,有四个嫌疑人甲乙丙丁,其中一人是小偷。甲说“不是我”,乙说“是丙”,丙说“是丁”,丁说“丙在冤枉人”。他们中只有一人说了假话,编程判断谁是小偷。(注:在Python运算中,True的值为1,False的值为0) persons=[’甲’,’乙’,’丙’,’丁’] for thief in persons: flag =(thief!=’甲’)+(thief==’丙’)+(thief ==’丁’)+(thief!=’丁’) if flag == 3: print(thief) 运行结果是: 三、判断题 25.顺序结构和分支结构的程序中每一条语句都会被执行,且只执行一次。( ) 26.在 Python语言环境下,For循环语句中的循环体在书写时需要缩进,且必须缩进四个空格。   ( ) 27.Python语言用if语句实现选择结构,它包括以下三种基本形式:单分支语句、双分支语句、多分支语句。( ) 四、操作题 28.某地居民生活用水实行阶梯式水价方案,阶梯式水价计量分为三级:第一级为每户每月20立方米及以下的用水量按2.75元/立方米计价;第二级为每户每月21至30立方米的用水量按3.65元/立方米计价;第三级为每户每月31立方米及以上的用水量按4.55元/立方米计价。根据用水量w(立方米)计算水价s(元)的Python程序如下: w=float(input("请输入当月居民的用水量:")) if w<=20:     s=2.75*w elif ① :     s=2.75*20+(w-20)*3.65 else:     s=② print("水价为:",s,"元。") (1)若某户家庭当月的用水量为24立方米,则该家庭需要缴纳的水费为 元。 (2)请在划线处填入合适的代码。 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查的是分支语句。选项A,遗漏了200数据的判断;选项B,300元以上的也被错判为九折;选项D,300元以上的也被错判为九折。故选C。 2.C 【详解】本题考查的是Python选择语句。选项A在x为偶数y="奇数",与题干给的程序不符;选项B语句格式不对,else后不用写条件表达式;选项Dx为偶数y="奇数",奇数y="偶数",与题干给的程序不符。故本题应选C。 3.A 【详解】本题考查的是Python多分支语句。输入充值金额53时,不满足 cz<=38,不满足cz<=50,满足cz<=100,执行zf=cz-6=53-6=47。故本题应选A。 4.C 【详解】本题考查的是Python选择语句。a=1,满足(a==4)or(a<6)条件,故执行print("你好!",a),运行的结果是你好!1。选项C正确。 【点睛】 5.C 【详解】本题考查Python程序。这段 Python 程序的目标是将给定的字符串 s 中的二进制数值转换为十进制并将它们相加。让我们逐步分析程序:s = "1010/1100/1111" 定义了一个包含多个二进制数的字符串。ans,t = 0,0 初始化两个变量 ans 和 t,它们分别用于存储累加的结果和当前正在处理的二进制数。for i in s: 开始遍历字符串 s 中的每个字符。if "0" <= i <= "1": 检查当前字符是否是 '0' 或 '1'。如果是,执行 t = t * 2 + int(i) 将当前字符转换为整数并加到 t 上,模拟二进制数值的累积。如果不是,执行 ans += t 将累积的二进制数值添加到 ans 上,并将 t 重置为 0,以开始处理下一个二进制数。最后,程序输出 ans 的值。现在让我们按照程序的逻辑来计算结果:第一个二进制数是 "1010",其十进制值为 10。第二个二进制数是 "1100",其十进制值为 12。第三个二进制数是 "1111",其十进制值为 15,但最后并无/使其进入else分支,因此最后的结果为前两个数相加:10 + 12  = 22。故答案为:C。 6.D 【详解】本题主要考查Python程序调试。分析程序,在f(6)中for循环中会执行f(5)、f(4)、f(3);而在f(5)中for循环中又会执行f(4)、f(3)、f(2);而在f(4)中for循环中又会执行f(3)、f(2)、f(1),因为有两个f(4),因此f(3)被调用的次数为1+1+2=4次,故本题选D选项。 7.A 【详解】本题主要考查Python程序的执行与调试。m=randint(1,3)*2,m随机生成2、4、6,当m=2时,a[3]~a[5]成升序状态,s=[60,40,70,10,20,50];当m=4时,a[4]~a[5]成升序状态,s=[60,40,70,20,10,50];当m=6时,s不变,故输出的结果可能是[60,40,70,20,10,50],故本题选A选项。 8.A 【详解】本题主要考查Python程序的综合应用。要求对其中的奇偶数进行交换。交换后偶数在前,奇数在后。该算法的思想是将偶数保存到列表a中,奇数保存到列表b中,最后再将列表b中的奇数并到列表a中偶数的后面。第一空判断a[k]是否为奇数,即a[k]%2==1。第二空如果a[k]是偶数则保存到列表a前面,即a[k-num]=a[k]。最后再把列表b并到列表a存放到偶数的后面,即a[j]=b[j-n+num],故本题选A选项。 9.C 【详解】本题主要考查分支结构描述。分支结构分为单分支结构、双分支结构和多分支结构;if-else语句结构中依然可以嵌套if-else结构;多分支结构格式是if....else if....else语句;通过判断if条件表达式的值( True或False ),决定程序执行的分支,故本题选C选项。 10.C 【详解】本题主要考查Python程序的综合应用。isprime(x)用来判断x是否为质数,如果x除以i的余数为0,则返回False,说明x不是质数,故①处填x % i==0。哥德巴赫猜想提出:任一大于2的偶数都可表示成两个质数之和,即p和q同时为质数,需要用逻辑连接词and连接,故②处填isprime(p) and isprime(q),故本题选C选项。 11.D 【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现求列表a中相邻两个元素差值绝对值的最大值,将其赋给变量m,最大值m=abs(a[7]-a[6])=8,故本题选D选项。 12.C 【详解】本题主要考查Python程序的执行。由代码可知,变量k的可取值分别是3、2。当k=3时,x=3,s=s+x=0+3=3;当k=2时,分别满足k<=2和k<=3,x=3,s=s+x=3+3=6,故执行该程序段后,输出显示的内容是6,故本题选C选项。 13.B 【详解】本题主要考查Python表达式的运算。“==”是关系运算符,用于判断左右两边的表达式值是否相等,故该表达式是关系表达式,故本题选B选项。 14.B 【详解】本题主要考查VB条件判断。年份能被4整除但不能被100整除(可使用逻辑运算符and连接),表示为year Mod 4 = 0 And year Mod 100 <>0,或者能被400整除(使用逻辑运算符Or连接),表示为Or year Mod 400 = 0,故能判断某年份(year)是否是闰年的是year Mod 4 = 0 And year Mod 100 <>0 Or year Mod 400 = 0,故本题选B选项。 15.B 【详解】本题主要考查if条件表达式。if(条件表达式)后面加冒号“:”,故本题选B选项。 16.B 【详解】本题考查Python相关知识。chanageInt(number1)将number1代入自定义函数chanageInt中,因为number1=2,所以函数中number2=3。打印函数print("changeInt: number2= ",number2),得到changeInt: number2=3,number1的值没变,所以本题选B。 17.25 【详解】本题考查Python运算符与表达式。在Python中,%代表求模运算,因此表达式125%100的运算结果是25。 18. 分支 80 【详解】本题主要考查Python分支结构的应用。①分析程序可知,该程序采用分支结构。②当输入x=20时,满足if条件,执行value=4*x=80,故输出结果是80。 19.BIGDAT 【详解】本题主要考查Python程序的执行。分析程序可知,依次从s中取出数字,将该数字作为索引从字符串d中取出对应的字母,s中的数字依次是1、8、6、3、0、19、0,因为最后一个数字0后面再无其他字符,故不会执行ans += d[t],对应d中的字符分别是B、I、G、D、A、T,故输出结果是BIGDAT。 20.elif 【详解】本题主要考查Python分支结构。在解决问题的过程中,常常需要对事物进行判断和选择,Python中使用if语句实现程序的分支选择,当分支比较多时可以用if …elif…else语句来实现。 21.7 【详解】本题主要考查Python程序的执行。分析程序可知,该程序求列表list的最小值,将其保存到变量num中,故输出的值是:7。 22.0 , 8 【详解】本题主要考查Python程序的执行。n=len(d)=11,key=25,ans=max(d)=36,分析程序可知,变量ans保存key与列表d中元素差值的最小值,变量posi保存该元素的索引下标。列表d中索引i=8时,d[8]=25,此时ans=d[8]-key=0,故输出结果为0,8。 23.114 【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现将列表data中的偶数进行求和,故sum=0+34+78+2=114,故运行结果是114。 24.丙 【详解】本题主要考查 Python程序执行。分析程序可知,只有当thief=’丙‘时,满足flag=3,即4个人中只有一人说了假话,故运行结果是丙。 25.错误 【详解】本题主要考查算法控制结构。顺序结构的程序中,每一条语句都会被执行,且只执行一次。分支结构的程序中,有些语句可能不会被执行,故表述错误。 26.错误 【详解】本题考查的是Python中的for语句格式。在 Python语言环境下,For循环语句中的循环体在书写时需要缩进,但不是必须缩进四个空格。故题干中的说法错误。 27.正确 【详解】本题主要考查Python条件分支结构。Python语言用if语句实现选择结构,它包括以下三种基本形式:单分支语句、双分支语句、多分支语句,表述正确。 28. 69.6 w<=30 2.75*20+3.65*10+(w-30)*4.55或91.5+(w-30)*4.55 【详解】本题考查的是Python选择语句应用。 (1)若某户家庭当月的用水量为24立方米,依据阶梯式水价计量:第一级为每户每月20立方米及以下的用水量按2.75元/立方米计价;第二级为每户每月21至30立方米的用水量按3.65元/立方米计价,故该家庭需要缴纳的水费为:20*2.75+(24-20)*3.65=69.6元。 (2)①处,由s=2.75*20+(w-20)*3.65可知,此处是第二级计价,故此处应为:w<=30;②处,第三级为每户每月31立方米及以上的用水量按4.55元/立方米计价,故此处应为:2.75*20+3.65*10+(w-30)*4.55或91.5+(w-30)*4.55。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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