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

2024-08-13
| 15页
| 45人阅读
| 0人下载

内容正文:

第二节 程序设计语言基础知识 一、选择题 1.Python解释器执行print('金额:{0:f}元'.format(1.5000))的结果为(   ) A.金额:1.5 元 B.金额:1.500 元 C.金额:1.500000元 D.金额:¥1.50000元 2.有 Python 程序如下,运算结果是(  ) A,B,C,D= 3,4,-5,6 print(A+B+C<D and A>=3 or not C<0 or D> 0) A.0 B.1 C.True D.False 3.函数sum([1,2,3,4])的值是(    ) A.4 B.1 C.10 D.5 4.有如下Python程序段: n=int(input("n=")) a,b=1,2 for i in range(1,n):   c=a+b   a=2*a   b=2*b print(c) 程序执行时,输入n的值为5,则输出的结果为(   ) A.12 B.20 C.24 D.45 5.有如下Python程序段 a=[1,1,2,2,3,3,4,4,5,5] L=0 R=len(a)-1 while L<=R:     m=(L+R)//2     if a[m]>key:         R=m-1     else:         L=m+1 若key的值为3,执行该程序段后,R的值为(   ) A.4 B.5 C.6 D.7 6.地图软件的驾车导航、步行导航、骑行导航等功能给我们的生活带来了极大的便利。用户在使用地图软件的驾车实时导航功能时,软件会实时获取我们的位置、车速、方向、时间等信息,将数据发送给服务器,服务器将获取到的信息进行分析处理,转换为车流量信息,判断交通的拥堵情况并返回给用户,以不同颜色来呈现拥堵情况。拥堵指数是根据车流量等数据计算而来的,具体如表n所示,用python描述不同拥堵情况tmp和呈现的颜色,下列选项正确的是(   ) 拥堵指数 含义 0~1.4 通畅(绿色) 1.5~1.9 缓行(黄色) 2.0~3.9 拥堵(红色) 4.0及以上 严重拥堵(深红色) A. if tmp>=4.0:     print("深红色") elif tmp>=2.0:     print("红色") elif tmp>=1.5:     print("黄色") else:     print("绿色") B. if tmp>=4.0:     print("深红色") if tmp>=2.0:     print("红色") if tmp>=1.5:     print("黄色") else:     print("绿色") C. if tmp>=0:     print("绿色") elif tmp>=1.5:     print("黄色") elif tmp>=2.0:     print("红色") else:     print("深红色") D. if tmp>=0:     print("绿色") if tmp>=1.5:     print("黄色") if tmp>=2.0:     print("红色") else:     print("深红色") A.A B.B C.C D.D 7.在升序链表 a 中插入一个不重复数据data,仍保持链表的升序状态。使用 Python 程序实现插入操作,代码如下: a=[[20,4],[6,3],[35,5],[18,0],[27,2],[59,-1]] p=head=1 data=int(input()) if data<=a[head][0]:     a.append([data,head])     head=len(a)-1 else:     q=a[p][1]     while _____①______ and data>a[q][0]:         p=q         q=a[p][1]     ________②__________     a.append([data,q]) 则划线处的代码为(   ) A.①p!=-1      ②a[p][1]=len(a)-1 B.①q!=-1      ②a[p][1]=len(a) C.①q!=-1      ②a[q][1]=len(a)-1 D.①p!=-1      ②a[q][1]=len(a) 8.二分查找时,要求数据是有序的,但有时我们又想保持数据的原始顺序,那可以引入一个索引数组解决这个需求。例如,已知无序数组a(下标0到n-1),通过引入索引数组b(下标0到n-1),使得a[b[0]]≤a[b[1]]≤a[b[3]]……≤a[b[n-1]](示例如图所示),再对这些有序数据进行二分查找。 通过索引数组b,实现a[b[0]]≤a[b[1]]≤a[b[3]]……≤a[b[n-1]]功能的程序段如下,方框中应填入的正确代码为 b = [i for i in range (len(a))]     # 索引数组b的初始值 for i in range(1, n):    for j in range(n - 1, i -1, -1): print (b) A. if a[b[j]] < a[b[j-1]]:     b[j], b[j-1] = b[j-1], b[j] B. if a[b[j]] < a[b[j-1]]: a[b[j]], a[b[j-1]] = a[b[j-1]], a[b[j]] C. if a[j] < a[j-1]: a[j], a[j-1] = a[j-1], a[j] D. if b[j] < b[j-1]: b[j], b[j-1] = b[j-1], b[j] A.A B.B C.C D.D 9.已知某同学的BMI值存储在变量X中,小蓝编写程序判断该同学的身体状况信息,并保存到变量Y中,则下列程序段无法实现该功能的是(    ) A. Y = "偏瘦" if X>=18:     Y = "正常" elif X>24:     Y = "偏胖" B. Y="偏胖" if X<18:     Y = "偏瘦" elif X<=24:     Y = "正常" C. if X>24:     Y = "偏胖" elif X>=18:     Y = "正常" else:     Y = "偏瘦" D. if 18<=X<=24:     Y = "正常" else:     Y = "偏瘦"     if X>18:         Y = "偏胖" A.A B.B C.C D.D 10.某算法的部分流程图如图所示。执行这部分流程,若输入x的值为21,则输出s和k的值分别为(    ) A.4,7 B.-5,11 C.4,9 D.-5,9 11.有如下Python程序段: n=int(input()) a=[0,0,0,0,0,0,0,0,0,0] c=0 while n>0:     a[n%10]=a[n%10]+1     if a[n%10]==1:         c=c+1     n=n//10 print(c) 执行上述程序段,若输出c的值为4,则输入n的值可能为(   ) A.1123 B.2373 C.14551 D.20045 12.某算法的部分流程图如下图所示,执行这部分流程,依次输入整数-2,3,-1,2,0。则输出s的值是(   ) A.-3 B.5 C.2 D.0 13.在信息传递的过程中,通常会将一些敏感信息进行加密,以下是实现加密功能的Python程序段。 mw=input("请输入明文:") mm="";key=2 for ch in mw:     if"0"<=ch<="9";         mm=str((int(ch)+key)%10)+mm     else:         mm+=chi print(mm) 若输入的明文为“Hi,2024”,则执行代码后的输出结果为(   ) A.,6424iH B.6424Hi C.6424Hi, D.Hi,6424 14.小爱同学在jhyzoj上编写求1-n之间所有数和的程序如图a所示,本地调试报错信息如图b所示。 小爱同学求助编程大牛的你,她的程序代码运行到程序第(   )行报错。 A.1 B.3 C.4 D.5 15.在Python中,以下赋值语句的说法错误的是(   ) A.语句a , b=3表示将3同时赋值给变量a和b B.“=”表示将右边表达式的值赋给左边的变量 C.语句x,y =y,x可以实现变量x和y值的互换 D.c+= a等效于c=c+ a 16.下列程序的功能是求1~x之间所有5的倍数之和 x = int(input(″输入数字x:″) i = 1 s = 0 while i <= x:     if ① :        s = s + i        print(i )     ② print("s=" , s) 则划线处应填入的语句是(   ) A.① i%5 ==0 ②i = i + 1 B.① i//5 ==0 ② i = i + 1 C.① i%5 ==0 ②i = i + 2 D.① i%5 ==0 ② i = i + 5 17.有如下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.0 0 0 0 2 3 0 9 B.0 0 0 0 C.0 1 2 3 4 D.2 3 二、填空题 18.函数一般包括函数名、参数、返回值和函数体等四部分。其中 和函数体是必不可少的。 19.从键盘输入圆的半径r,编程计算圆的面积s。 r=float(input("请输入圆的半径:")) =3.14*r*r print("圆的面积s=",s) 20.有如下Python 程序段: k=[29,38,78,17] m=0 for i in range(1, len(k)): if k[i]>k[m]: m=i if m!=0: k[0],k[m]=k[m],k[0] print(k) 该程序段执行后,输出结果为 。 21.用Python表达式补充完成如下程序,统计四位奇数中满足能被23和19整除的总数。 s=0 for i in range(1001,10000,2): :     s=s+1 print(s) 22.某 Python 程序如下: n = int (input ()) sum = a = 3 res = 0 i=1 while i <= n:     res = res  + sum     sum = sum * 10 + a     i = i + 1 print (res) 当输入n值为3时,程序输出结果是 。 三、判断题 23.Python是解释型语言,翻译一行就执行一行。( ) 24.程序设计语言是指人们编制程序所使用的计算机语言,VB是低级语言。( ) 25.Python语言的变量名要区分英文字母的大小写。( ) 26.在程序中,x=y与y=x是不一样的。( ) 四、操作题 27.寻找金蝉素数。素数是指大于1 的自然数中,除了1 和它本身以外不再有其他因数的自然数。金蝉素数是指由1、3、5、7、9 这5个奇数排列组成不重复的五位素数,它的中间三位数和最中间的一位数也都是素数的自然数,如“13597”是素数,“359”和“5”也是素数,则“13597”是金蝉素数。小乐编写一个Python 程序寻找金蝉素数,运行结果如图所示。 (1)下列选项中可以填入加框处的代码是 (多选,填字母)。 A.2,n    B.2,n+1    C.2,int(math.sqrt(n))+1    D.2,n/2+1      E.2,n//2+1 (2)Python 程序代码如下,请在划线处填入合适的代码 import math def isprime(n):     for i in range:        if n%i==0:             break         else:             return True ① cicada=[];c=0 for i in range(13579,99999,2):     a=[0]*10     temp=i     while temp!=0:         ②         temp//=10     if a[1]+a[3]+a[5]+a[7]+a[9]==5:         x=i//100%10         y= ③         if isprime(x) and x!=1 and isprime(y) and isprime(i):             cicada.append(i)             ④ print("金蝉素数有:",cicada) print("共有:",c, "个") 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查Python基础。 在Python中,{0:f}可以将第一个参数格式化为默认精度的浮点数即6位小数,并保留小数点后面的数字。故正确为:选项C。 2.C 【详解】本题考查Python程序设计相关内容。A+B+C<D-->3+4-5<6-->2<6-->True,A>=3-->3>=3-->True,not C<0-->not -5<0-->not True-->False;D>0-->6>0-->True。A+B+C<D and A>=3 or not C<0 or D> 0-->True and True or False or True-->True。故本题答案是C选项。 3.C 【详解】本题考查Python程序设计相关内容。sum是求和函数,[1,2,3,4])是列表,sum([1,2,3,4])是计算列表各元素的和,即:10。故本题答案是C选项。 4.C 【详解】本题考查Python程序设计相关内容。分析程序段,当最后一次循环开始时,a=1×2×2×2=8,b=2×2×2×2=16,然后c=a+b=24,故本题答案为C选项。 5.B 【详解】本题考查Python程序执行与分析。L=0,R=9,第一次循环,m=(L+R)//2=4,不满足a[4]=3>key,L=m+1=5;第二次循环,m=(L+R)//2=7,满足a[7]=4>key,R=m-1=6;第三次循环,m=(L+R)//2=5,不满足a[5]=3>key,L=m+1=6;第四次循环,m=(L+R)//2=6,满足a[6]=4>key,R=m-1=5;第五次循环,不满足L<=R,循环结束。因此执行该程序段后,R的值为5。故选B。 6.A 【详解】本题考查Python程序设计相关内容。题目采用if...elif...else结构实现功能需求,分析四个选项:A选项,可以实现题目要求;B选项,tmp>=4.0或tmp>=2.0时,均输出“黄色”,不符合题意,存在逻辑错误。C选项,若tmp>=0不成立,意味着tmp<0,后面的部分均不会执行,不符合题意。D选项,若tmp>=2.0不成立,意味着tmp<2.0,执行print("深红色"),不符合题意。故本题答案是A选项。 7.B 【详解】本题考查Python程序设计相关内容。本题涉及到链表的插入相关知识。根据题意if条件是在链表头部插入数据;else是在链表中插入数据,p引入头指针,q指向头指针的后继节点,需要遍历整个链表,只需要遍历到最后一个节点即可,若在while条件中令p!=-1,那么逻辑就会出错,p指向尾结点时,q指向-1,data就会和尾结点的后继指针的数据比较。故应该是令q!=-1,q指向尾结点时,和data比较最后一次,然后q跳转到尾结点的后继指针上,遍历结束。执行插入的过程是①令p所直接点的后继指针指向data的位置即a[p][1]=len(a)-1,但是新节点是在最后加入的,所以a[p][1]=len(a);②构建新节点[data,q],即成功插入。故本题答案是B选项。 8.A 【详解】本题考查Python程序设计相关内容。题目采用冒泡排序的方法,若要保留其原始顺序,则在a[b[j]] < a[b[j-1]]成立时,将交换b[j], b[j-1] 可以实现,即: b[j], b[j-1] = b[j-1], b[j]。故本题答案是A选项。 9.A 【详解】本题考查的是Python分支语句。代入特殊的值,可以快速判断是否能实现算法要求的功能。 A选项,当x=25时,if x>18条件成立,elif不会被执行,会得到Y是正常,不符合要求。 B选项,把x=16,20,25,分别代入,会得到偏瘦,正常,偏胖的正确结果,正确。 C、D选项,同样把x=16,20,25,都能得到正确结果。综上,答案为A。 10.B 【详解】本题考查流程图分析。 根据题意执行过程如下表所示,则输出s和k的值分别为-5,11。 项目 x s k 初值 21 0 1 1 10 -1 3 2 5 2 5 3 2 -3 7 4 1 4 9 5 0 -5 11 故选择B。 11.D 【详解】本题考查Python程序设计相关内容。输入D选项,n=20045,n>0成立,进入循环:20045%10=5,a[5]=a[5]+1=0+1=1,a[5]==1成立,c=c+1=0+1=1,n=n//10=20045//10=2004;n>0成立,进入循环:2004%10=4,a[4]=a[4]+1=0+1=1,a[4]==1成立,c=c+1=1+1=2,n=n//10=2004//10=200;n>0成立,进入循环:200%10=0,a[0]=a[0]+1=0+1=1,a[0]==1成立,c=c+1=2+1=3,n=n//10=200//10=20;n>0成立,进入循环:20%10=0,a[0]=a[0]+1=1+1=2,a[0]==1不成立,n=n//10=20//10=2;n>0成立,进入循环:2%10=2,a[2]=a[2]+1=0+1=1,a[2]==1成立,c=c+1=3+1=4,n=n//10=2//10=0;n>0不成立,不再进入循环。此时,c=4,符合题目要求。输入ABC选项,C的值均为3,不符合题意。故本题答案是D选项。 12.B 【详解】本题考查算法流程图阅读理解能力。由流程图可知,a=0时,循环结束,s变量是正数累加的结果,所以最终s的值是5。故选B。 13.C 【详解】本题考查程序分析。语句(int(ch)+key)%10的功能是把数字ch循环右移2位,即如果ch=0,循环右移2位结果是2,若ch=4,右移结果是6,若ch=2,右移结果是4。mm=str((int(ch)+key)%10)+mm的功能是把右移2位的结果逆序保存到mm中,如果ch不是数字,则按照顺序保存到mm中。故选C。 14.B 【详解】本题考查的是Python程序调试运行。由图a可知,错误是因为i再之前没有赋值,导致错误。故她的程序代码运行到程序第3行报错。选B。 15.A 【详解】本题考查Python赋值语句。在Python中,语句a,b=3并不会将3同时赋值给变量a和b。这种语法是错误的,实际运行时会引发ValueError,因为左侧有两个变量,右侧只有一个值,无法解包。正确的做法是分别给每个变量赋值,例如a=3和b=3,或者用a,b=3,3。故答案为:A。 16.A 【详解】本题考查的是Python选择和循环语句应用。第一空判断i是不是5的倍数,填i%5==0;求1~x之间所有5的倍效之和,每次i递增1,第二空填i=i+1,故本题选A选项。 17.B 【详解】本题考查Python程序的分析。k=random. randint (0, 10),k随机生成0~10, 由q[tail]=k%5可知,q列表中不可能出现9,排除A选项;for循环一共循环4次,若q中有1、2、3、4,说明没有执行head+=1,则C应是00001234,排除C选项;如果k是连续生成0或10两个再生成两个奇数,选项B可能;选项D有2、3,则说明head+=1至多执行2次,因此输出结果一定有0,排除D选项。故正确答案选B。 18.函数名 【详解】本题考查函数相关内容。用户自定义函数是用户自己写的一段程序,一般包括函数名、参数、返回值、函数体等四部分,其中,函数名和参数是必不可少的部分。故本题答案是:函数名。 19.s 【详解】本题考查Python程序。在计算圆的面积时,需要先定义一个变量来存储计算结果。这里用变量s来表示圆的面积,根据圆的面积公式s=3.14*r*r,将计算结果存储在s中,然后通过print函数输出。故答案为:s。 20.[78,38,29,17] 【详解】本题考查Python程序设计相关内容。分析程序段,其功能是先找出列表元素最大值,然后将其与列表首元素交换位置。列表k中,最大值是78,将其与29交换位置,形成新列表[78,38,29,17]。故本题答案是:[78,38,29,17]。 21.if i %23==0 and i %19 ==0 【详解】本题考查的是Python循环与选择语句。通过循环变量i遍历所有四位数的奇数,判断能否被23和19整除,只要看除完后的余数是否为0,故画线处代码为:if i %23 == 0 and i %19== 0。 22.369 【详解】本题考查的是Python循环语句。初始i=1,sum = a = 3,当输入n值为3时。 i<=3成立,res = res+sum=3, sum=sum*10+a=30+3=33,i=i+1=2; i<=3成立,res = res+sum=36, sum=sum*10+a=330+3=333,i=i+1=3; i<=3成立,res = res+sum=369, sum=sum*10+a=3330+3=3333,i=i+1=4; i<=3不成立,故输出res为369。 23.正确 【详解】本题考查Python语言基础知识。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python程序当运行时,它会逐行执行每个代码行。故本题答案是:正确。 24.错误 【详解】本题考查的是程序设计语言。程序设计语言是指人们编制程序所使用的计算机语言,VB是高级语言。题干中说法错误。 25.正确 【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。 26.正确 【详解】本题考查程序设计中赋值语句的理解。在Python程序中,x=y是将y的值赋给x,y=x是将x的值赋给y,因此,x=y与y=x是不一样的。故正确。 27. ACE return False a[temp%10]=1 i//10%1000 或i%10000//10 c+=1 或c=len(cicada) 【详解】本题考查的是Python综合应用。 (1)isprime(n)函数用于判断n是否是素数,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)。由于判断n是否是素数的过程中具有对称性,因此此处可以填2,n,或2,int(math.sqrt(n))+1,或2,n//2+1,故选ACE选项。 (2)①处,如果找到一个因数,跳出循环,同时返回False表示不是素数,故此处应为:return False;②处,由if判断语句“if a[1]+a[3]+a[5]+a[7]+a[9]==5”可知此处将temp各个位的数字保存到列表a中,并赋值为1,故此处填a[temp%10]=1;③处,x取i的最中间的一位数,y取i的中间三位数,故此处填i//10%1000 或 i%10000//10;④处,如果找到金蝉素数,则追加到cicada列表中,并统计个数c,故此处应为:c+=1,cicada列表中存储的是金蝉素数,故也可以为:c=len(cicada)。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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