2023-2024学年高中信息技术粤教版(2019) 必修1 第四章 程序设计基础

2024-06-26
| 10页
| 55人阅读
| 0人下载

内容正文:

第四章 程序设计基础 一、选择题 1.有如下Python程序段: from random import randint a=[0]*6 i=0 while i<6:     b=randint(1,20)     if i%2==0 and b%2==0:         a[i]=b         i=i+1     elif i%2==1:         a[i]=b         i=i+1 print(a) 执行程序段后,显示的内容不可能是(    ) A.[4,3,6,19,16,16] B.[20,20,20,20,20,20] C.[4,8,11,14,8,9] D.[12,2,20,19,16,1] 2.有下列程序段: s=″accdbbdca″ res=″ ″ for i in s:     if len(res)==0 or i!=res[-1]:         res+=i     elif i==res[-1]:        res=res[-1]+res[:len(res)-1] print(res) 该程序执行结束后,输出结果正确的是(   ) A.aca B.acdb C.dbcaca D.bcacdbdca 3.有如下 Python程序段: a="1357" list1=["car", "bus","bike"] list1 [1]=a[1:3] print (list1) 该程序段运行后的结果是(    ) A.['car','bus','bike'] B.['car','35','bike'] C.['car',35,'bike'] D.['car','3','5','bike'] 4.将字符串s(仅包含小写字母)依据规则划分为几个子串。划分规则为同一个字母只出现在同一个子串中,且划分的子串尽可能的多。例如字符串为“arrayiybikk”,按照规则最多可以划分为“arra”、“yiybi”、“kk”3个子串。实现上述功能的程序段如下: p={};s=input("") for i in range(len(s)):     p[s[i]]=i i=0 while i<len(s):     n=p[s[i]]            (1)            while j<=n:         if p[s[j]]>n:             n=p[s[j]]               (2)           print(s[i:j])           (3)       上述程序段中方框处可选代码为:①i=j、②i=i+1、③j=i-1、④j=i+1、⑤j=j+1 则(1)、(2)、(3)处代码依次为(   ) A.④⑤① B.③⑤① C.④⑤② D.③⑤② 5.已知字典 d={"名称":"ORANGE JUICE","数量":61,"售价":6.7},则下列 Python 表达式中结果最大的是(   ) A.4**len(d) B.d["数量"] C.ord(d["名称"][2]) D.int(d["售价"])*10 6.有如下Python程序段: n=4 a=[[i*n+j+1 for j in range(n)] for i in range(n)] for i in range(n//2):     for j in range(1,n,2):          a[i][j],a[n-i-1][n-j-1]=a[n-i-1][n-j-1],a[i][j] 则程序执行后,a[1][1]和 a[2][0]的值分别为(   ) A.6和9 B.8和9 C.11和9 D.11和8 7.小明学习了算法后,写了以下两段代码来求斐波那契数列的第6项: a=1;b=1 for i in range(2,6): c=a+b a=b b=cprint(c) def f(n): if n==1 or n==2: return 1 else: return f(n-1)+f(n-2) print(f(6)) 算法一 算法二 下列说法正确的是(    ) A.两种算法的时间复杂度均为O(1) B.算法一是迭代算法,算法二是递归算法,相比之下,算法二的时间效率更高 C.执行算法二代码,f(4)共被调用了2次 D.执行算法一代码,当i=4这一遍循环刚结束时,a的值等于5 8.经过中国国家登山队的测量,2020年12月8日,中尼两国共同宣布了珠穆朗玛峰的最新高度为海拔8848.86米。现有一张白纸的厚度大约是0.08毫米,对折一次,厚度变0.16毫米,再对折一次,厚度变为0.32毫米,……,每对折一次,其厚度均变为对折前的两倍,假设这张纸足够大,可以对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度?以下是求解以上问题的程序片段,请你补全代码: 请选择适当的代码填入程序①处。(    ) A.while B.for C.output D.input 9.在 Python中常用的输入输出语句分别是(  ) A.input()  output() B.input()   print() C.input()  printf() D.scandf()   printf() 10.有如下VB 程序段: (    ) a(1) = 8: a(2) = 7: a(3) = 1: a(4) = 6 a(5) = 9: a(6) = 5: a(7) = 4: a(8) = 7 m = Int(Rnd * 4) * 2 + 1 For i = 1 To m - 1    k = i    For j = i + 1 To m      If a(j) < a(k) Then k = j    Next j    If i <> k Then      t = a(i): a(i) = a(k): a(k) = t    End If Next i 执行该程序段后,数组a各元素的值不可能是(   ) A.8 7 1 6 9 5 4 7 B.1 7 8 6 9 5 4 7 C.1 4 5 6 7 8 9 7 D.1 4 5 6 7 7 8 9 11.有以下Python代码: a=input(“请输入a的值:”) print(a*3) 假如从键盘输入5,则运行结果为(    ) A.555 B.15 C.15.0 D.aaa 12.单向链表data中的节点由[数据区域,指针区域]构成,其中数据有重复,执行以下Python程序,去除链表中的重复数据,代码如下: 原始数据:data=[[3,1], [3, 2], [1,3], [5,4], [1,5], [3, 6], [2,7], [3, 8], [8, 9], [2, -1]] 去重后输出:[3, 2], [1, 3], [5, 6], [2, 8], [8, -1] head = 0 cur = head while (1) :     p = cur     q = datat[cur][1]     while q!= -1:         if data[q][0] = data[cur][0]:             (2)         else:            p = q         (3)     cur = data[cur][1] #输出链表,代码略 请选择合适的代码组合填入划线处 ①data[cur][1] != -1   ②cur != -1   ③data[p][1] = data[q][1]   ④data[q][l] = data[p] [1]   ⑤q = data[q] [1] ⑥p = data[p][1] A.①③⑤ B.②④⑥ C.①④⑤ D.②③⑥ 13.Python 表达式abs(-3)+len("2abc")的值为(   ) A.7 B.6 C.5 D.4 14.已知字符串a="python",则a[1]的值为(   ) A."p" B."py" C."Py" D."y" 15.某Python代码如下: mylist =[1, 2, 5, 6] ans = 0;c = 0 for i in range(1,4):         for x in mylist:                if x % i == 0:                        ans += x                        c += 1 print(ans,c) 执行后输出的结果是( ) A.28  7 B.33  8 C.14   4 D.25   5 16.在Python中,表达式(21%4)+3的值是(    ) A.2 B.4 C.6 D.8 17.在Python中,以下表达式的计算结果不为0的是(    ) A.3//5 B.21%7 C.2/4 D.10*0 18.在Python中,下面代码的运行结果是(    ) x=365 g=x%10        #%为求余的意思 s=x//10%10     # //为整除的意思 b=x//100 sum=g*100+s*10+b #sum英文是求和的意思 print(sum) A.365 B.14 C.563 D.41 19.若x是一个整型变量,则判断它是否为5的倍数的Python关系表达式是(   ) A.x % 5 == 0 B.x / 5 == 0 C.x \ 5 = =0 D.Int(x / 5) == 0 20.在 Python 语言中,执行“float('1.5')”函数后的结果是(    ) A.'1.5' B.1.5 C.1 D.2 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题主要考查Python程序分析。当i为偶数时,随机数b必须是偶数,才执行a[i]=b。观察选项C中,a[2]=11,b为奇数,显然不符合题意,故本题选项C正确。 2.C 【详解】本题考查Python程序设计相关内容。 给定字符串s=″accdbbdca″,我们需要遍历字符串s并对其进行处理。首先,我们初始化一个空字符串res作为结果。在循环遍历字符串s的过程中,我们逐个检查每个字符。如果当前字符不在结果字符串res中,我们将其添加到res的末尾。这意味着我们只保留字符串s中的第一个出现的字符。根据这个逻辑,我们依次处理字符串s中的字符: 当处理字符'a'时,由于'a'不在res中,将其添加到res的末尾,此时res=″a″; 当处理字符'c'时,由于'c'不在res中,将其添加到res的末尾,此时res=″ac″; 当处理字符'c'时,由于'c'==res[-1],执行res=res[-1]+res[:len(res)-1],此时res=″ca″; 当处理字符'd'时,由于'd'不在res中,将其添加到res的末尾,此时res=″cad″; 当处理字符'b'时,由于'b'不在res中,将其添加到res的末尾,此时res=″cadb″; 当处理字符'b'时,由于'b'==res[-1],执行res=res[-1]+res[:len(res)-1],此时res=″bcad″; 当处理字符'd'时,由于'd'==res[-1],执行res=res[-1]+res[:len(res)-1],此时res=″dbca″; 当处理字符'c'时,将其添加到res中,此时res=″dbcac″; 当处理字符'a'时,将其添加到res中,此时res=″dbcaca″。 根据题目中给定的程序段逻辑,字符串res最终的结果应该是″dbcaca″。 故本题答案是C选项。 3.B 【详解】本题考查Python列表操作。a="1357",list1=["car", "bus","bike"],列表索引从0开始,执行list1 [1]=a[1:3]后,list1=['car','35','bike'],故选B。 4.A 【详解】本题主要考查Python程序的执行与调试。for循环中, p[s[i]]=i用于记录字符串s中相同字母最后一次出现的位置,第一空设置j的初值,n=p[s[i]],n保存s[i]最后一次出现的位置,而嵌套while中依次比较p[s[j]]>n,因此j的初值为i+1,即第一空填j=i+1。第二空循环变量j递增1,继续循环,因此填j=j+1。内层循环结束后,需要更新i的值为j继续下一个字串的划分,第三空填i=j,故本题选A选项。 5.C 【详解】本题主要考查Python表达式的运算。已知字典 d={"名称":"ORANGE JUICE","数量":61,"售价":6.7},4**len(d)=4**3=64;d["数量"]=61;ord(d["名称"][2])=65;int(d["售价"])*10=60,故本题选C选项。 6.D 【详解】本题考查Python程序设计相关内容。 创建第二行语句,创建一个4*4的二维数组。a=[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] 在双重循环中,i=0,j=1时,执行:a[0][1],a[3][2]=a[3][2],a[0][1];i=0,j=3时,执行:a[0][3],a[3][0]=a[3][0],a[0][3];i=1,j=1时,执行:a[1][1],a[2][2]=a[2][2],a[1][1];i=1,j=3时,执行:a[1][3],a[2][0]=a[2][0],a[1][3]。 程序执行后,a[1][1]和a[2][0]的值分别为11和8。故本题答案是D选项。 7.C 【详解】本题主要考查算法的应用。两种算法的时间复杂度均不为O(1);算法一是迭代算法,算法二是递归算法,相比之下,算法一的时间效率更高;执行算法二代码,f(4)共被调用了2次;执行算法一代码,当i=4这一遍循环刚结束时,a的值等于3,b的值等于5,故本题选C选项。 8.A 【详解】本题考查的是Python的while循环。while语句格式: 当表达式的值为真时,执行循环体语句;当表达式值为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。当高度h小于珠穆朗玛峰的高度height,则继续对折,故本题应选A。 9.B 【详解】本题考查的知识点是python的函数。Python中常用的输入输出语句分别是input() print(),故选项B正确。 10.D 【详解】本题主要考查VB程序的排序算法。m = Int(Rnd * 4) * 2 + 1,m是随机生成[1,7]之间的整数,m的最大值为7,当m=7时,即内层循环j的范围从i+1到7,数组a中最后一位不参与排序,即a(8)一直为7,故数组a各元素的值不可能是1 4 5 6 7 7 8 9,故本题选D选项。 11.A 【详解】本题主要考查Python程序执行。input接收的数据类型是字符串型,即a="5",则a*3="555",故本题选A选项。 12.A 【详解】本题考查Python程序。外层循环需要判断当前节点是否为最后一个节点,即条件为data[cur][1]!=-1,所以第一空选①;当发现重复数据时,要将当前节点的下一个指针指向重复节点的下一个节点,即data[p][1]=data[q][1],第二空选③;内层循环中要不断移动到下一个节点进行判断,即q=data[q][1],第三空选⑤。故答案为:A。 13.A 【详解】本题主要考查Python表达式的运算。abs求绝对值函数,len是返回字符串长度,故abs(-3)+len("2abc")=3+4=7,选A。 14.D 【详解】本题主要考查Python字符串。字符串索引从0开始,a[0]="p",a[1]="y",故本题选D选项。 15.A 【详解】本题主要考查Python嵌套循环。变量i的范围是1、2、3,变量x是列表mylist中的元素,当x能整除i时,则将x累加到变量x中,同时变量c递增,满足的情况有:当i=1时,x=1、2、5、6;当i=2时,x=2、6;当i=3时,x=6,故ans=1+2+5+6+2+6+6=28,c=4+2+1=7,故本题选A选项。 16.B 【详解】本题考查的是Python表达式。%是求余,故(21%4)+3=1+3=4,选项B正确。 17.C 【详解】本题考查Python运算符与表达式相关内容。A选项,3//5-->0。B选项,21%7-->0。C选项,2/4-->0.5。D选项,10*0-->0。故本题答案是C选项。 18.C 【详解】本题主要考查Python基本运算。%为求余, //为整除,程序实现了提取了变量x各位上的数值,然后倒置形成新数,因此C选项正确。 【点睛】 19.A 【详解】本题考查的是Python表达式。判断它是否为5的倍数,即x是否能被5整除,即x除以5的余数为0,%是取余运算符,故判断变量x是否能被5整除的Python语言表达式为:x%5==0。故选A。 20.B 【详解】本题主要考查Python函数的应用。 float() 函数用于将整数和字符串转换成浮点数。 执行“float('1.5')”函数后的结果是1.5,故本题选B选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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