教科版(2019)必修一2.4可以复用的代码同步作业

2024-06-03
| 8页
| 183人阅读
| 1人下载

内容正文:

教科版(2019)必修一2.4可以复用的代码同步作业 一、单选题 1.有如下 Python 程序段: def sym(d1, d2): s1 = d1.split(",") # 以“,” 将字符串分割成列表 s2 = d2.split(",") if len(s1) != len(s2): return False stk = [] i=0 j=0 while i < len(s1): stk.append(s1[i]) i += 1 while stk != [] and stk[-1] == s2[j]: stk.pop() #删除列表 stk 中的最后一个元素 j += 1 return stk == [] and i == j L1 = "@,a,b,3,c,d" L2 = input() print(sym(L1, L2)) 执行该程序段后,若输出结果为 True,则 L2 输入的值可能是(  ) A.a,b,c,d,3 B.c,d,3,b,@,a C.b,a,@,3,d,c D.d,c,3,@,a,b 2.有如 Python 程序段: import random def find(x, y): m = (x+y+1)//2 if a[m] == key: return m if a[m] > key: y = m-1 else: x = m + 1 return find(x, y) a = [2, 4, 6, 8, 10, 12, 14, 16] key=random.choice(a) #从序列的元素中随机挑选一个元素 i = 0;j = len(a) - 1 xb = find(i, j) print(xb, key) 上述程序执行完后,函数find被调用的最多次数是(  ) A.3 B.4 C.5 D.6 3.定义如下函数: def move(n,a,b,c): if n==1: print(a,"->",c) return move(n-1,a,c,b) move(1,a,b,c) move(n-1,b,a,c) 执行语句 move(2,"A","B","C"),输出的第一行内容是(  ) A.a -> c B.A -> C C.a -> b D.A -> B 4.“最强大脑”游戏问题的算法分析:显示游戏规则,显示物品以及编号,屏幕停留10秒;随机出题,给出物品,回答编号;判断回答是否正确,如果正确,则答对的题数加1。重复以上步骤,直到答完5道题;显示答对的题数。(  ) import random;import time;import os print("你好,现在你有 10 秒钟的时间记忆下列物品及其编号") things= ["苹果","香蕉","橙子","梨子","猕猴桃","柚子","猴魁","铁观音","彩蛋","复活节"] for i in range(10) : print(i,":", ① ); #在屏幕上显示编号及物品名称 time.sleep(10) #延时 10 秒 os.system("cls") #清屏幕,隐去编号及物品 n=0 #记录答对的题数,初值为 0 t2=random.sample( ② ,5) #随机抽出 5 个物品 for i in t2: #出 5 题 ans=int(input(i + "的编号是:"))#输入编号答题技术 if i== ③ : n=n+1 #如果回答正确,答对的题数加 1 print(" 你一共答对了",n,"次")#屏幕显示答对的题数 input(" 按回车键结束程序") A.①things[i] ② things ③things[ans] B.① things ② things ③ things[i] C.①things[i] ② things[i] ③ things[ans] D.①things[ans] ② things[ans] ③ things[i] 5.有一组正整数,要求对其中的奇偶数进行交换。交换后偶数在前,奇数在后,并保持相对顺序 不变。将划线处的代码补充完整,正确的是(  ) 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] 6.有如下VB程序段: Function fact(n As Integer) As String If n = 1 Then fact = fact & 1 Else fact = fact(n \ 2) & n Mod 2 End If End Function Private Sub Command1_Click() Dim x As String, i As Integer, r As Integer, x = Text1.Text For i = 1 To Len(Text1.Text) If Mid(x, i, 1) = "." Then Exit Next i r = Val(Mid(x, i + 1, Len(Text1.Text) - i)) Text2.Text = fact(r) End Sub 在文本框Text1 中输入 2019.70,则执行程序段,在文本框 Text2 中显示的内容是(  ) A.1000110 B.70 C.350 D.100011 7.小敏利用 Python 编写了一个根据输入半径 r,求解圆面积 s 的程序。 1 r=float(input("输入半径:")) 2 S=pi*r*r 3 print(" 面积为 : ",s) 程序运行时,输入半径的值为 6,程序出现以下错误提示,程序出错的原因是(  ) 输入半径:6 Traceback(most recent call last): File “C:/Users/lenovo/Desktop/圆的面积.py",line 2,in <module> S=pi*r*r NameError: name 'pi ' is not defined A.序第 2 行代码中的变量 pi 未定义 B.程序中变量的数据类型是字符型,不能用于计算 C.程序第 1行代码多了一个右括号 D.程序第 3 行代码中双引号应该改成单引号 8.运行以下程序代码后的结果是(  ) a=17.95 b= -18 m= int(a) if abs (b) > m: m = b else: m = a print ("m=",m) A.-18 B.18 C.m= -18 D.m= 18 9.小明学习了算法后,写了以下两段代码来求斐波那契数列的第6项: a= 1 b=1 for i in range(2, 6) : c=a+b a=b b=c print(c) def f(n) : if n==1 or n==2: return 1 else: return f(n-1)+f(n-2) print(f(6)) 算法一 算法二 下列说法正确的是(  ) A.两种算法的时间复杂度均为0(1) B.算法一是迭代算法,算法二是递归算法,相比之下,算法二的时间效率更高 C.执行算法二代码,f(4)共被调用了2次 D.执行算法一代码,当i=4这-遍循环刚结束时,a的值等于5 10.有如下Python程序段: def sp(a,i): if "a"<=a[i]<= "z" : a=a[:i]+a[i+1:] elif "0"<=a[i]<= "9": a=a[:i]+str((int(a[i])+3)%10)+a[i+1:] return a s="cfi3H8qwz4";i=0 while i<len(s): s=sp(s,i) i+=1 执行上述程序段后,s的值为(  ) A.”f3H1w4” B.”3H84” C.”6H17” D.”f6H1w7” 11.以下Python程序段执行后,结果为2,横线处的代码为 (  ) def f(list): m=list[0] for i in range(1,len(list)): if : m=list[i] return m s=[4,5,2,6,5,8] print(f(s)) A.m<list[i] B.m>list[i] C.m==list[i] D.m!=list[i] 12.在Python程序设计语言中,可以返回列表、元组、字典、集合、字符串对象中元素个数的数是(  )。 A.int(x) B.min(x) C.abs(x) D.len(x) 二、判断题 13.random.randint(1,10)语句作用在1到10中随机生成一个数字。 14.numpy是一个科学计算包,其中包括很多数学函数。 15.用户自定义函数是用户自己写的一段程序。一般包括函数名、参数、 返回值、函数体等四部分。其中,函数名和参数是必不可少的部分。 三、填空题 16.请在空格处填写正确的代码,使程序完善。 实现功能:用辗转相除法求解两个正整数的最大公约数。 x = int(input('请输入第一个正整数:')) y = int(input('请输入第二个正整数:')) m = max(x,y) #找出x,y中 最大值 n = min(x,y) #找出x,y中的最小值 r = m%n #求得最大值除以最小值后的余数 while r!=0: #如果余数不等0,则进行以下循环 m =    #把最小值赋给m n =    #把余数赋给n r = m%n #求得最大值除以最小值后的余数 print('这两个数的最大公约数为:',   ) input("运行完毕,请按任意键退出....") 17.某Python程序段如下: def isprime(x): for i in range(2, x//2 + 1): if x % i == 0: return False return True s = 0 for i in range(2, 19): if isprime(i): s += i print(s) 运行该程序段,输出结果是   。 18.在统计全班同学数学科目的最高分时,我们可以使用电子表格软件提供的   函数。 答案解析部分 1.【答案】C 2.【答案】B 3.【答案】D 4.【答案】A 5.【答案】A 6.【答案】A 7.【答案】A 8.【答案】C 9.【答案】C 10.【答案】A 11.【答案】B 12.【答案】D 13.【答案】正确 14.【答案】正确 15.【答案】错误 16.【答案】n;r;n 17.【答案】58 18.【答案】max 学科网(北京)股份有限公司 $$

资源预览图

教科版(2019)必修一2.4可以复用的代码同步作业
1
教科版(2019)必修一2.4可以复用的代码同步作业
2
教科版(2019)必修一2.4可以复用的代码同步作业
3
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。