第三章 算法的程序实现 2023-2024学年高中信息技术浙教版(2019)必修一

2024-07-10
| 10页
| 31人阅读
| 0人下载

内容正文:

第三章 算法的程序实现 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.下列属于程序设计语言的是(   )。 A.ACDSee B.VisualBasic C.WinRAR D.Premiere 2.运行以下程序,变量b的值是(  ) a=8 b=a//3+5 A.8 B.7 C.10 D.5 3.如下Python程序段: x = int(input("输入x的值:")) if x > 3 :    if x <= 6 : y = 2 * x else: y = 3 * x else:    y = 4 * x print( y) 程序运行并输入6,则y的值是(   ) A.24 B.18 C.12 D.6 4. BF语言是一种基于一种简单的计算模型的最小化编程语言,这个机器包括八种指令,一个以字节(0-255)为单位、初始全部为零的数组,一个初始时指向该数组中第一个字节的指针,以及用于输入输出的两个字节流。八种指令用字符表示如图所示: 字符 含义 > 指针加一 < 指针减一 + 指针所指字节的值加一 - 指针所指字节的值减一 . 输出指针所指字节内容(ASCII 码) , 向指针所指的字节输入内容(ASCII 码) [ 若指针所指字节的值为零,则向后跳转,跳转到其对应的]的下一个指令处 ] 若指针所指字节的值不为零,则向前跳转,跳转到其对应的[的下一个指令处 和 BF 语言最接近的计算模型是(   ) A.图灵机 B.原始递归函数 C.Lambda 演算 D.组合子逻辑 5.在列表listaue中添加订单号”y5617”,正确的是() A.listaue[]=“y5617” B.append(“y5617”) C.listaue[“y5617”] D.listque.append(“y5617”) 6.有如下Python程序段 from random import randint x=randint(2,4)*2 a=[9,2,5,1,3,4,8,7] n=len(a) for i in range(0,n-1): k=i for j in range(i+1,x): if a[k]>a[j]: k=j if i!=k: a[k],a[i]=a[i],a[k] print(a) 执行后,输出结果不可能是(    ) A.[1,2,3,4,5,7,8,9] B.[1,2,3,4,5,9,8,7] C.[1,2,5,9,3,4,8,7] D.[1,2,3,4,5,9,7,8] 7.下列Python程序段功能为:列表a中存放的是无重复的非负整数,找出其中的最大值m1和次大值m2。 m1=m2=0 for i in range(len(a)):     if a[i]>m1:                      elif a[i]>m2:          print('最大值为'+str(m1)+'次大值为'+str(m2)) 上述程序段中方框处可选语句为: ①m1=a[i]    ②m2=a[i]    ③m2=m1        ④m1=m2 则(1)(2)(3)处语句依次是(   ) A.①④② B.③①② C.②①③ D.③②① 8.有如下 python 程序段: m=int(input()) def dex_oct(m): if m>=8: dex_oct(m//8) print(m%8,end='') else: print(m,end='') dex_oct(m) 运行该程序时,如果输入 15,则输出的结果是( ) A.81 B.71 C.17 D.18 9.以下Python 代码段运行的结果是(   ) s=0 for i in range(100):    s+=i print(s) A.0 B.100 C.4950 D.8050 10.以下关于 Python 3.0基础知识的说法,错误的是(    ) A.支持中文做标识符 B.Python命令提示符是>>> C.Python 标识符不区分字母的大小写 D.命令中用到的标点符号只能是英文字符 11.现有一段代码如下,现输入“260”和“-123”,运行后输出结果分别是(    ) x=input("请输入数据") if  x[0] =="-":         fz=-int(x[:0:-1]) else:         fz=int(x[: :-1]) print(fz) A.062   -32 B.062   -321 C.62   -32 D.62   -321 12.有如下Python程序段:     s=input("输入字符串:")     n=len(s) i=0;j=n-l ans=" " while i<n//2 and j>=n//2:    - if s[i]>=s[j]: ans+=s[i];j-=l elif s[i]<s[j]: ans+=s[j];i+=l print(ans) 执行该程序段,分别输入下列选项中的字符串,输出结果不为“ppp”的是(     ) A."python" B."public" C."purple" D."bookshop" 13.在Python编程时,能提高程序的可读性。但不会在程序运行过程中被执行的语句是(   ) A.赋值语句 B.注释语句 C.循环语句 D.选择语句 14.Python 表达式 int(3 ** 2 / 4) * 6 % 4 * 2 的值是(   ) A.0 B.4 C.6 D.8 15.下列代码中(  )生成的函数曲线更光滑。 A.import numpy as np;x=np.arange(0,2*np.pi,0.1);y=sin(x) B.import numpy as np;x=np.arange(0,2*np.pi,0.01);y=sin(x) C.import numpy as np;x=np.arange(0,3*np.pi,1);y=sin(x) D.import numpy as np;x=np.arange(0,np.pi,0.5);y=sin(x) 16.某Python代码如下: import random lst =[0]*8    #定义列表lst,  lst[0]~Ist[7]初始值均为0 i=0 while i<8 :    if  i % 2==0:       lst[i]=int(random.random() *10)    else:       lst[i]=int(random.randint(1,5)) *2 +1    i +=1 print(lst) 执行程序后,列表lst[0] ~ lst[7]各元素值可能的是(  ) A.[0, 10, 2, 9, 8, 3 ,4, 5] B.[8, 5, 4, 7, 10, 3, 6, 9] C.[4, 11, 3, 5, 9, 6, 1, 7] D.[6, 3, 1, 11, 7, 3, 5, 9] 17.下列表达式结果为真(True)的是(   ) A.9>2 and 0>5 B.3<5 or 4>5 C.not 16>15 D.20<19 and 87>100 18.语句“m+=n”等价于(    ) A.m=m+n B.m=n+n C.n=m+n D.m+n=m 19.关于python语句功能描述正确的(   ) A.ord(chr(x)+26)    #若字符变量x是大写字母即变成小写字母 B.str(x)+str(y)    #求两数之和 C."abcd"[2:4]    #运行结果为"bcd" D.2**3*2/2 % 5    #结果3 20.有如下 Python 程序段: s=input("请输入字符串:") a=[""]*10 ; a[0]=s[0] ; t=0 for i in range(1,len(s)):     if t>=0 and s[i]==a[t]:         t=t-1     else:         t=t+1     a[t]=s[i] 运行程序段,输入以下字符串,运行后变量t的值与其它三项不同的是(   ) A.++**+ B.+*+** C.*+**+ D.*++*+ 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题主要考查程序设计语言。ACDSee是图片编辑与管理软件,VisualBasic是程序设计语言,WinRAR是解压缩软件,Premiere是视频编辑软件,故本题选B选项。 2.B 【详解】本题主要考查Python程序的执行。a=8,b=a//3+5=2+5=7,故程序执行后变量b的值为7,故本题选B选项。 3.C 【详解】本题考查Python程序设计相关内容。分析程序段,x为6时满足if x > 3 条件,接着判断if里面的条件,满足x<=6,因此执行y = 2 * x,即y的值为12。故本题答案是C选项。 4.A 【详解】本题考查计算模型。BF语言是一种极简的编程语言,其计算模型包括一个指针、一个以字节为单位的数组以及八种基本指令。这种模型与图灵机最为接近。图灵机是一种抽象的计算模型,由图灵在上世纪提出,被认为是通用计算模型的基础。图灵机包含一个无限长的纸带,纸带被划分为一个个格子,每个格子上可以写入符号。机器包含一组状态以及一组转移规则,根据当前状态和当前格子上的符号执行相应的转移规则。这与BF语言的模型十分相似,都是基于一种简单的指令集操作一个数据存储器。故答案为:A。 5.D 【详解】本题主要考查Python列表。append() 方法用于在列表末尾添加新的对象,在列表listaue中添加订单号”y5617”,可以使用语句listque.append(“y5617”),故本题选D选项。 6.D 【详解】本题考查Python程序。这是一个简单的选择排序算法实现。选择排序的目的是将数组按升序排列。在这个算法中,你选取列表中的最小元素并将其与第一个元素交换,然后选取第二小的元素并将其与第二个元素交换,以此类推,直到整个列表排好序。现在,让我们逐一分析选项:[1, 2, 3, 4, 5, 7, 8, 9]:这是选择排序的升序排列结果,是可能的输出。[1, 2, 3, 4, 5, 9, 8, 7]:这也是选择排序的一种可能结果,其中有一个逆序对在第6和第7位置(8和7之间)。虽然这不是最常见的排序结果,但仍然是可能的输出。[1, 2, 5, 9, 3, 4, 8, 7]:这是选择排序的一种可能结果,其中在第2和第3位置(2和5之间)有一个逆序对。虽然不太常见,但仍然是可能的输出。[1, 2, 3, 4, 5, 9, 7, 8]:这个选项中,数字7和8的顺序被颠倒了,这不是选择排序的结果。在选择排序中,从左到右,每次都会选择列表中的最小元素,并将其放在正确的位置。因此,选项D不是选择排序的可能输出,因为它没有按照升序排列。故答案为D选项。 7.B 【详解】本题考查Python程序。在给定的Python程序段中,我们需要找出列表a中的最大值m1和次大值m2。正确的操作步骤如下:首先,我们需要初始化m1和m2的值为列表a中的前两个元素。假设a[0]和a[1]是最大的两个元素,那么m1应该等于a[0],m2应该等于a[1]。然后,我们遍历列表a的剩余元素,从索引2开始,依次与m1和m2进行比较。如果当前元素a[i]大于m1,则更新m2为m1,再将m1更新为a[i]。如果当前元素a[i]大于m2但小于m1,则仅更新m2为a[i]。根据上述步骤,正确的语句顺序应该是:(1) 处填写 m2 = m1,因为当a[i]大于m1时,m1应该被更新为a[i]的值,而m2需要成为之前的m1的值,即m2 = m1。(2) 处填写 m1 = a[i],因为当a[i]大于m1时,m1需要被更新为a[i]的值。(3) 处填写 m2 = a[i],因为当a[i]大于m2但小于m1时,m2需要被更新为a[i]的值。故答案为B选项。 8.C 【详解】本题考查Python程序。用户输入数字 m,即输入 15。 程序调用 dex_oct 函数,并将输入的数字传递给该函数。 dex_oct 函数进行八进制转换,通过递归调用自身实现对输入数字 m 的八进制转换。 输出的结果是将每次转换得到的余数逆序输出,即 15 转换为八进制为 17。 故答案为:C。 9.C 【详解】本题主要考查Python循环结构。分析程序可知,该程序实现计算0+1+...+98+99=4950,故本题选C选项。 10.C 【详解】本题考查Python程序设计相关内容。Python3.0版本,常被称为Python 3000,或简称Py3k,相对于Python的早期版本,这是一个较大的升级。Python3.0支持中文做标识符,Python标识符区分字母的大小写,Python命令提示符是>>>,命令中用到的标点符号只能是英文字符。故本题答案是C选项。 11.D 【详解】本题主要考查Python字符串切片操作。切片操作基本表达式:object[start_index:end_index:step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。故当输入260时,执行else部分,输出62,输入-123时执行if部分,输出-321,故本题选D选项。 12.D 【详解】本题主要考查Python程序的执行。分析程序可知,比较字符串s左右两端的字符,其中比较小的一端进行移动并再次比较,将值大的字符拼接到变量ans中,选项D中,字符"b"、"o"、"o"、"k"均小于字符"p",因此输出的结果是"pppp",故本题选D选项。 13.B 【详解】本题主要考查Python程序基本概念。在Python编程时,能提高程序的可读性。但不会在程序运行过程中被执行的语句是注释语句,故本题选B选项。 14.A 【详解】本题主要考查Python表达式。表达式 int(3 ** 2 / 4) * 6 % 4 * 2 =int(9 / 4) * 6 % 4 * 2 =2*6%4*2=12%4*2=0*2=0,故本题选A选项。 15.B 【详解】本题主要考查Python函数。结合选项,选项ABCD点每次分别递增0.1、0.01、1、0.5,故import numpy as np;x=np.arange(0,2*np.pi,0.01);y=sin(x)生成的函数曲线更光滑,故本题选B选项。 16.D 【详解】本题主要考查Python程序的调试与执行。random()方法返回随机生成的一个实数,它在[0,1)范围内。random.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。random.random()用于生成一个0到1的随机符点数: 0 <= n 。分析程序可知,能满足i%2==0的数有0、2、4、6,因为索引从0开始,那么在列表中不能满足的则是第二、第四、第六、第八个元素不能够满足,所以执行 lst[i]=int(random.randint(1,5)) *2 +1,故应该为奇数,可排除A、C选项;random.random()生成的是大于等于0但小于1的随机数,所以奇数为0~9的任意整数,可排除选项B,故本题选D选项。 17.B 【详解】本题主要考查Python表达式的运算。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。因此3<5 or 4>5值为True,其他选项值均为False,故本题选B选项。 18.A 【详解】本题考查Python运算符相关内容。在Python中,“+=”是指“加赋值”运算符,是赋值运算符的一种,作用是先进行加法运算,再将结果赋值给运算符左侧的变量;语法为“x += y”,等价形式为“x = x + y”。故本题答案是A选项。 19.D 【详解】本题考查表达式的运算。A选项,会导致类型错误。B选项,字符拼接,非求和。C选项,结果为“cd”。D选项正确,结果为3。故正确答案为选项D。 20.A 【详解】本题主要考查Python程序的执行与调试。分析程序可知,该程序实现的功能是:输入字符串s,相邻的字符相等且t>=0时,执行t=t-1,反正执行t=t+1,同时更新a[t]=s[i]以比较下一组,分析选项可知,选项A执行后t的值是0,其余选项执行后t的值是2,故本题选A选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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