第2单元编程计算2024-2025学年高中信息技术教科版(2019)必修1

2024-08-11
| 12页
| 45人阅读
| 0人下载

内容正文:

第2单元 编程计算2024-2025学年高中信息技术教科版(2019)必修1 一、选择题 1.我国古代著名的数学专著《孙子算经》中有这样一道题:“今有物,不知其数。三三数之,剩二;五五数之,剩三;七七数之,剩二。问:物几何? 请完善以下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 2.有如下程序段: a,b=4,3 if a>=4:       if b<2:         a=a+2     if b>2:         a=a+3     a=a+2 elif a>=9:     a=a+4 else: a=a+b 运行该程序段后变量 a 的值为(   ) A.9 B.13 C.16 D.8 3.如下 Python 程序段: s="D5u6p@1_2t3B" num=0 for i in s[::-1]: if "a"<=i<="z" or "A"<=i<="Z" or "0"<=i<="9": if "0"<=i<="9": num=num*10+int(i) else: break print(num) 该部分程序段运行后,变量 num 的值是(    ) A.21 B.32 C.56 D.65 4.我们可以里计算机编写一个程序模拟控制交通信号灯:代替完成交警指挥交通的过程,那么计算机解决问题的一般过程为(   ) ①设计方案②分析问题③编程调试④解决问题⑤提出问题 A.⑤②①③④ B.⑤②③①④ C.⑤①②③④ D.⑤③①②④ 5.(   )函数将字符型整数转换成整数类型的数值(即整数) A.input() B.float() C.int() D.print() 6.下列 Python 表达式或部分语句书写不正确的是(   ) A.flag = True B.flag= =True C.if flag = True: D.while True: 7.以下描述中最适合用计算机编程来处理的是(    ) A.确定放学回家的路线 B.处理一张数码照片 C.计算10000以内的奇数和 D.在因特网上查找歌曲 8.九宫格游戏规则:1至9九个数字,横竖都有3个格,每行、每列、主对角、副对角所有元素之和为15,其中一组数据如列表1ist所示。1ist=[[8,1,6],[3,5,7],[4,9,2]]执行下列python程序,结果仍能构成九宫格数据的是(    ) A. B. C. D. 9.用计算机解决以下问题,与穷举法相比更适合用解析法来解决的有(    )。 A.输入整数m、n,输出从m到n之间的质数(素数)。 B.输入三角形三边长,输出这个三角形面积 C.输入一元二次方程的各个系数,输出方程的解。 D.输入三个正整数a、b、c,输出这三个数的最小公约数。 10.运行以下Python程序段后,变量b的值为(   ) a,b=6,2 while a!=b:      b=a//b      a=a-b A.0 B.2 C.1 D.3 11.n个人排成一圈,从某个人开始,按顺时针方向从No.1开始依次编号至No.n。从No.1的人开始顺时针“1,2,3,...,m,1,2,3,...”报数,报到m(m>1)的人退出圈子。这样不断循环下去,输出最后剩下的一个人的初始编号。实现该功能的Python程序段如下: n=int(input0) m=int(input0)) a=[] for i in range(n):     a.append(["No."+str(i+1),(i+1)%n]) head=0;p=head;cnt=1 while p!=a[p][1]:     pre=p     p=a[p][1]     cnt+=1     if cnt==m: print(a[p][0]) 上述程序段中方框处可选代码为 ①a[p][1]=a[pre][1]  ②a[pre][1] =a[p][1]  ③p=a[pre][1]  ④p=a[p][1]  ⑤cnt=1  ⑥cnt=0 则应填入的代码依次为(   ) A.①③⑤ B.②④⑤ C.①③⑥ D.②③⑥ 12.下面两组python程序的执行结果分别为(    )    A.1   39 B.1  40 C.1  49 D.1  60 13.有如下Python程序段: w=[12,5,8,9,3,16] n=len(w);stack=[0]*n top=-1;k=0;t=25 while top!=-l or k<n: while t>0 and k<n: if t>=w[k]: top+=l;stack[top]=k t-=w[k] k+=l if t==0: print(stack[:top+1]) k=stack[top];top-=l t+=w[k]:k+=l 执行该程序段后,输出第一组列表是(    ) A.[0,1,2] B.[1,2,3,4] C.[3,5] D.[12,5,8] 14.有如下对分查找程序段    #列表a存放整数升序数据,代码略    key=int(input())    f=[0]*9    i=0    j=8    while i<=j:        m=(i+j)//2        f[m]=1        if a[m]>key:            j=m-1        else:            i=m+1    print(f)    输入待查找数据,执行该程序段后,下列选项中,列表f的值不可能的是(     ) A.[0, 0, 0, 0, 1, 1, 1, 0, 0] B.[1, 1, 0, 0, 1, 0, 0, 0, 0] C.[0, 1, 0, 0, 1, 0, 1, 0, 0] D.[0, 0, 0, 0, 1, 0, 1, 1, 0] 15.有如下Python程序: import  random a=[0]*10 k=random.randint(1,5) a[0]=k;n=9 for i in range(1,n+1):    a[i]=a[i-1]+random.randint(1,5)*2 for i in range(n,k,-1):    a[i]=a[i-1] a[k]=k 执行程序段后,列表a可能的结果是(    ) A.[2,6,2,10,17,20,22,26,34,40] B.[5,7,13,19,21,5,23,25,31,33] C.[1,3,7,11,21,27,1,37,43,45] D.[4,10,16,4,20,24,34,40,44,50] 16.关于人工计算、自动工具计算和编程计算三种计算方式,下列说法不正确的是(   )。 A.对于简单的计算问题,人工计算的使用成本是三种计算方式中最低的 B.对于复杂的计算问题,通常不采用人工计算来解 C.依据实情,灵活运用三种计算方式将有助于我们提高数据计算的效率 D.由于计算机的日益普及,编程解决计算问题是最方便的 17.有如下Python程序: import random a=[0]*6 i=0 while i<6:     a[i]=random. randint (1, 10)     if a[i] in a[0: i]:         i-=1     i+=l for i in range (6):     if i%2==0 and a[i]>a[i+1]:         a[i], a[i + 1]=a[i+1], a[i]     else:         a[i]+=a[i]%2 print(a) 执行此程序后,数组a中不可能的结果为(    ) A.[4, 6, 4, 8, 7, 10] B.[3, 11, 6, 8, 1, 4] C.[1, 4, 4, 8, 6, 8] D.[4, 8, 2, 4, 6, 8] 18.已知一维数组a存储了n个元素(a[0]∼a[n-1]),当前数组长度大于n,要求在索引位置p插入元素key,并保持元素的相对位置不变,实现上述功能的python程序段如下: #生成数组a,代码略 key=int(input("请输入插入元素值:")) p=int("input("请输入插入元素位置:")) for i in range(A ):     B a[p]=key 有下列语句: ①p,n;②n-1,p-1,-1;③a[i+1]=a[i];④a[i]=a[i-1] 则程序A、B处代码分别是(   ) A.①③ B.①④ C.②③ D.②④ 19.有如下Python 程序段: import random a=[] for i in range(10):        a.append(random.randint(1,100)) i=0 while i <10:        if i==0:             i=i+1        elif a[i-1]<=a[i]:              ①        else:             a[i],a[i-1]=a[i-1],a[i]              ② print(a) 执行该程序段实现了随机生成一个数组,并将其元素递增输出的功能。划线处的代码应该是(  ) A.① i+=1   ② i=1 B.① i-=1   ② i=1 C.① i+=1   ② i+=1 D.① i-=1   ② i-=1 20.以下对循环结构及其语句的叙述,错误的是(    ) A.程序中某些代码的反复执行称为循环 B.循环结构容易引起系统死机 C.循环结构可以减少源程序重复书写的工作量 D.循环结构的3个要素分别是循环变量、循环体和循环终止条件 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查Python程序。题目要求找出1000以内符合特定条件的所有整数,并计算其个数。根据题意,整数需要满足三个条件:对3取余为2,对5取余为3,对7取余为2,这三个条件需要同时满足,因此需要用and逻辑运算符。初始化计数变量应为0,并在满足条件时输出该整数。因此,填入的代码应该是:①s=0;②and;③and;④i。故答案为:C。 2.A 【详解】本题考查Python程序。初始条件是:a=4,b=3。第一个条件是 a >= 4,这是满足的,所以进入第一个条件分支。在第一个条件分支中,有两个嵌套的条件:if b < 2 不成立,因为b=3,所以不执行这个条件下的语句。if b > 2 成立,因为b=3,所以执行 a=a+3,a变成7。最后,执行 a=a+2,a变成9。所以,最终程序运行后,变量a的值为9。故答案为A选项。 3.B 【详解】本题主要考查Python程序的执行。分析程序,s="D5u6p@1_2t3B",for i in s[::-1],变量i是逆着从字符串s中取字符,如果i是字母或数字,则接着判断i是否是数字,如果i是数字则执行num=num*10+int(i);如果i不是字母或数字,则退出循环。当i是“_”时,不满足if判断条件,退出循环,此时num=32,故本题选B选项。 4.A 【详解】本题主要考查计算机解决问题的步骤。计算机解决问题的一般步骤是:提出问题→分析问题→设计方案→编程调试→解决问题,故本题选A选项。 5.C 【详解】本题考查Python程序设计相关内容。input()函数用于提示并获取终端用户输入内容,一般获取的输入内容为字符串类型。float()函数用于将整数和字符串转换成浮点数。int()函数用于将一个字符串或数字转换为整型。print()是一个输出函数,一般用于向标准输出设备按规定格式输出信息。故本题答案是C选项。 6.C 【详解】本题考查Python程序设计相关内容。A选项,flag = True为赋值表达式,选项正确。B选项,flag= =True为关系表达式,选项正确。C选项,if为选择结构,后跟关系表达式或逻辑表达式,但flag = True为赋值表达式,选项错误。D选项,while为循环结构,后跟关系表达式或逻辑表达式,选项正确。故本题答案是C选项。 7.C 【详解】本题主要考查计算机编程解决问题。计算10000以内的奇数和适合计算机编程通过循环结构来处理,故本题选C选项。 8.BCD 【详解】本题考查的是Python循环语句。能够保证每行、每列、主对角、副对角所有元素之和为15,list1[x][y]=list[y][x]可以实现,同样list1[x][y]=list[x][::-1]也可以实现,list1[x][y]=list[y][2-x]也可以实现。故本题应选BCD。 9.BC 【详解】本题主要考查计算机解决问题。输入整数m、n,输出从m到n之间的质数(素数)和输入三个正整数a、b、c,输出这三个数的最小公约数,适合用穷举法。输入三角形三边长,输出这个三角形面积和输入一元二次方程的各个系数,输出方程的解,适合用解析法,故本题选BC选项。 10.D 【详解】本题考查的是Python条件循环。a=6,b=2,第一次循环,b=a//b=3,a=a-b=3-2=1;第二遍循环,b=a//b=0,a=a-b=1-1=0,循环结束,输出b的值是3,故本题选D选项。 11.B 【详解】本题考查Python程序设计相关内容。本题描述的是约瑟夫环算法,采用循环链表解决题目要求。分析程序段,cnt为计数器,每报数一个,计数器cnt加1,若cnt等于指定的m,则在循环链表中将该节点前驱节点与后继节点连接,删除该节点,且cnt重置为1,其代码为:a[pre][1] =a[p][1];p=a[p][1];cnt=1。故本题答案是B选项。 12.C 【详解】本题主要考查Python程序的执行。第一个程序,执行一次if语句,此时s=0+1=1,执行break退出for循环,故执行结果是1;第二个程序,当s<40时,执行if语句后,执行continue进入下一轮循环,故s=s+i=0+1+3+5+8+2+4+7+9+10=49,以后的循环不再执行if语句,故执行结果是49,故本题选C选项。 13.A 【详解】本题主要考查Python程序的执行。题干要输出第一组列表,因此只需要分析外层第一次循环即可,内循环中,满足if判断条件,top=1,stack[0]=k=0,t=25-12=13,k=k+1=1,同理可以得到stack[1]=1,stack[2]=2,因此执行该程序段后,输出第一组列表是[0,1,2],故本题选A选项。 14.C 【详解】本题主要考查对分查找算法。变量m是依次查找的下标索引值,第一次循环,m=4,f[4]=1,根据二叉树查找规则,往后查找只会在m=4的左边或右边进行查找,不会出现选项C中f[1]和f[6]同时为1的情况,故本题选C选项。 15.B 【详解】本题主要考查Python程序的执行。阅读程序可知,程序第一个for循环实现的使列表中为一个递增列表,并且相邻元素差最大为10,程序第二个for循环将列表分为两部分,以a[k]为分界点,列表下标为0和k为列表两个最小元素且a[0]=a[k],然后其他位置按照递增进行排序,阅读选项可知,选项 B 符合题意。故选B。 16.D 【详解】本题主要考查计算机解决问题。对于简单的计算问题,人工计算的使用成本是最低的;对于复杂的计算问题,通常不采用人工计算来解;依据实情,灵活运用三种计算方式将有助于我们提高数据计算的效率;编程解决计算问题不一定是最方便的,要依据实情,灵活运用三种计算方式。故本题选D选项。 17.B 【详解】本题考查的是Python调试与运行。由a[i]=random. randint (1, 10)可知随机生成a[i]的值范围1~10,选项B中a[1]=11,故其只能通过 a[i]+=a[i]%2执行得到,执行该语句后a[i]的值范围2~10,不可能为11。故选B。 18.C 【详解】本题考查Python程序。在插入元素时,需要从数组末尾开始,将元素逐个向后移动,为要插入的元素腾出位置。A处应是循环的范围,即从最后一个元素到要插入位置的前一个元素,所以是②n-1,p-1,-1。B处是在循环中进行元素后移的操作,即把当前位置的元素赋值给下一个位置,所以是③a[i+1]=a[i]。故答案为:C。 19.A 【详解】本题主要考查Python程序执行与调试。分析程序,该程序段实现了随机生成一个数组,并将其元素递增输出的功能,如果a[i-1]<=a[i],满足升序,不用交换,i递增,继续下一个元素的比较,即①处填i+=1;如果不满足a[i-1]<=a[i],则交换以完成升序,同时i赋值为1从头开始继续比较判断,即②处填i=1,故本题选A选项。 20.B 【详解】本题考查的是循环结构。循环结构表示程序反复执行某个或某些操作,直到判断条件为假时才可以终止循环,并不容易引起系统死机。故本题应选B。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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