4.4运用循环结构描述问题求解过程2023—2024学年高中信息技术粤教版(2019)必修1

2024-08-12
| 14页
| 154人阅读
| 0人下载

内容正文:

4.4运用循环结构描述问题求解过程2023—2024学年高中信息技术粤教版(2019)必修1 一、选择题 1.有如下Python程序 s1="0312"; s2="ABCDEFGH" m=0; c="" for i in range(len(s2)): k=int(s1[i%4]) m=4*(i//4) c+=s2[k+m] 执行该程序段后,变量c的值是(    ) A."ADBCADBC" B."ABCDEFGH" C."AHBGCFDE" D."ADBCEHFG" 2.某算法程序段如下: Dim s1 As String, s2 As String, ch As String Const code ="@*()&amp;#" s1 = Text1.Text For i = 1 To Len(s1) ch = Mid(s1, i, 1) If ch >= "a" And ch <= "z" Then t=(Asc(ch)-65+i)Mod7 s2 = Mid(code, t+1, 1)+ s2 Else s2= s2+ ch End If Next i Text2.Text = s2 若text1中输入字符“AbCd”,则text2中输出的是(    ) A.AC^@ B.^@AC C.^<@&amp; D.A^C@ 3.在Python中,如下的代码输出结果是(   ) x=0 for i in range(10):        x=x+i print(x) A.55 B.45 C.10 D.0 4.数组元素a[0]至 a[n-1]依次存放着n个数据,现需要将下标为 x(0≤x≤n-1)元素在逻辑上删除,例如:n为5,数组a为[1,3,5,7,9] ,x为2,删除操作后输出[1,3,7,9]。实现该功能的程序段如下,横线中应填入的正确代码为(   ) a=[1,3,5,7,9] n=len(a) x=2 for i in range(① ):     ② print(a[:-1]) A.①x,n ②a[i-1]=a[i] B.①n-x    ②a[i-1]=a[i] C.①x,n ②a[i]=a[i+1] D.①x-n,-1 ②a[i]=a[i+1] 5.有如下VB程序段: For i = 1 To 6   a(i) = Int(Rnd() * 10) + 1   If a(i) Mod 2 = i Mod 2 Then     a(i) = a(i) + 1   Else     a(i) = a(i) Mod 2   End If Next i 执行该程序段后,在下列选项中,a(1)~a(6)各元素可能的值是(   ) A.0,1,1,0,0,1 B.0,5,6,6,10,9 C.2,3,6,7,8,11 D.2,1,8,3,12,5 6.在运行for循环语句程序时,没有错误提示但结果不对,此时应该检查(   ) A.for语句是否有冒号 B.循环语句是否存在逻辑错误 C.for语句保留字是否正确 D.循环体语句是否正确缩进 7.以下程序的运行结果是(    ) A.i!=t B.i!=1 C.i!=6 D.3!=6 8.有如下VB程序段: k=3:sum=0:j=0:c=0 For i=1 To Len(s)、 ch=Mid(s,i,1) If ch >= ''0''And ch<= ''9'' Then c=c * 10+Val(ch) j=j+1 Else If j=k Then sum=sum+c j=0:c=0 End If Next i 字符串s为''ab300cde2022fg002h'' 时,执行该程序段后,sum的值为(    ) A.300 B.302 C.504 D.2324 9.求非空子串。输入一组不重复的字符串s,求其所包含的所有非空子串,并输出。如字符串“abc”的非空子串有“a”、“b”、“c”、“ab”、“bc”、“abc”。实现该功能的Python程序段如下: s = input ("输入一组不重复的字符串") for i in range(len(s)):       for j in range(    (1)    ):             print(    (2)    ) 上述程序段中方框处可选代码为(    ) ①i, len (s)        ②len(s)-i        ③s[j:i+j] ④s[i:j+1]        ⑤s[j-i:j+1]        ⑥s[j:len(s)-i] 则(1)(2)处代码不能实现上述功能的是(    ) A.①④ B.①⑤ C.②③ D.②⑥ 10.学校历届校友的海量数据存储在校网络中心服务器中(共10000条,无重复数据),某管理员因为误操作删除了一位校友的ID号(8位整数)信息,恰好在备份数据库中保存了一份所有人员ID号的文件(无重复数据,无序)。参考流程图阅读下列快速找出被误删的ID号程序代码 关于异或,下列选择错误的是(  ) A.target=target^int(line)是异或运算 B.异或应用于逻辑运算,其运算法则为:0^0=0,1^0=1,0^1=1,1^1=0 C.0异或任何数=任何数,1异或任何数=任何数取反,任何数异或自己=把自己置0 D.以上都不对 11.有如下程序段: a=[[2,2,1],[8,0,4],[3,3,0],[6,-1,2],[8,1,-1]] ans=head=3 p=a[head][2] while p!=-1:     if a[ans][0] < a[p][0] :         ans=p     p=a[p][2] print(ans,a[ans][0],sep=",") 则程序运行后,下列说法正确的是(    ) A.链表数据值依次为2->8->3->6->8 B.程序输出结果为4,8 C.a[0][2]的值为1,双向链表a的头节点数据值为2 D.a[1][1]的值为0,双向链表a的尾节点数据值为8 12.有如下Python程序段    s="aabbccabc"    st=s[1]    for i in range(1,len(s)):        if len(st)==0 or s[i]!=st[len(st)-1]:            st=st+s[i]        else:            st=st[0:len(st)-1]    print(st)    运行该段代码后,输出结果为(     ) A.abc B.abcabc C.ababc D.aabbc 13.有如下 Python 程序段: n=10 m=0 d=[False]*10 for i in range(1,int(n**0.5)+1): j=3*i while j<n: d[j]=not d[j] j=j+3 for i in range(n): if d[i]: m=m+1 print(m) 执行该程序段后,变量 m 的值为( ) A.2 B.1 C.3 D.0 14.下面程序段的循环结构执行后,y的输出值是(   ) 程序段为:     For i=1 to 10 step 2          y=y+i      Next i      print i; A.25 B.10 C.11 D.因为Y的初值不知道,所以不确定 15.有如下VB程序段: Const n = 6 Dim a(0 To n)As String Dim i As Integer,j As Integer a(1)="118":a(2)="36":a(3)="98":a(4)="15":a(5)="88":a(6)="2" For i = 2 To 4     a(0)= a(i): j = i - 1     Do While a(0) < a(j)         a(j + 1)=a(j)         j =j - 1     Loop     a(j + 1)= a(0) Next i 执行该段程序后,数组元素a(1)到a(6)的值依次为(    ) A.“118”、“15”、“36”、“98”、“88”、“2” B.“2”、“15”、“36”、“88”、“98”、“118” C.“2”、“15”、“36”、“118”、“88”、“98” D.“15”、“36”、“98”、“118”、“88”、“2” 16.以下程序段的运行结果是(    ) sum=0 for i in range(1, 11):        sum+=i print(sum) A.10 B.11 C.55 D.66 17.某算法的部分流程图如图所示: 若要用VB语言实现该部分算法,下列代码正确的是(  ) A. B. C. D. 18.求16~40所有偶数的和,在<1>、<2>、<3>处填入的正确代码是(    ) A.0  2  2 B.1  1  (i+1) C.0  2  i D.1  3  i-1 19.有如下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 20.下面的代码,哪个选项会输出1,2,3三个数字(   ) A. for in range(3):     print(i) B. L=[0,1,2] for i in L :         print(i+1) C. i=1 while i<3:         print(i)        i+=1 D. for in range(4):     print(i+1) A.A B.B C.C D.D 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.D 【详解】本题考查的是Python循环语句。由程序中c += s2[k+m]可知,从s2 中取值由k+m确定,k的取值依次为“03120312”,而m的取值依次为“00004444”,可知k+m的取值依次为“03124756”,所以答案为“ADBCEHFG”,故本题应选D。 2.B 【详解】本题主要考查VB中程序执行。程序显示碰到小写字母,从code里取出一个字符,倒序,其它字符顺序,所以2个大写字母,2个小写字母,大写放后面,小写取符号放前面,因此B选项正确。 【点睛】 3.B 【详解】本题主要考查Python程序的执行。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)。故循环结束后,x=x+i=0+1+2+3+4+5+6+7+8+9=45,故本题选B选项。 4.D 【详解】本题考查程序分析。需要指定range的参数,确定遍历的下标。range的参数可是使用负数索引,故从x-n到-1。每次遍历后一个数覆盖前一个数,实现删除,故a[i]=a[i+1]。正确答案为选项D。 5.C 【详解】本题考查VB程序综合能力,循环语句,选择语句。外循环For i = 1 To 6,循环总共执行六次。 根据a(i) = Int(Rnd() * 10) + 1,a(i)数组的初值范围应该是[1,10],而在后面的语句中有 a(i) = a(i) + 1,故a(i)的最大值应该不会超过11,故先将选项D排除。再根据判断If a(i) Mod 2 = i Mod 2 Then,若a(i)的奇偶性和i相同,则 a(i) = a(i) + 1,否则a(i) = a(i) Mod 2。不妨分类讨论,当i=1,3,5的时候,若a(i)是奇数,则a(i) = a(i) + 1变为偶数,否则执行a(i) = a(i) Mod 2,则a(i)=0。所以第1,3,5项是偶数或者0,根据这个可将A排除。再根据i=2,4,6时,a(i)是奇数或者a(i)=1,结合判断可将B排除。故本题最终C是正确选项。 6.B 【详解】本题考查循环语句。当在运行for循环语句程序时,没有错误提示但结果不正确,通常表示存在逻辑错误,这意味着程序的控制逻辑不符合预期,导致循环的执行不如预期那样。因此,应该检查循环语句中的逻辑,包括循环条件、循环变量的变化、循环体内的操作等,以确定问题出在哪里,并进行适当的修正。故答案为B选项。 7.D 【详解】本题主要考查Python程序的执行。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)。故变量i的取值依次是1、2、3,循环结束后t=t*i=1*1*2*3=6,即运行结果是3!=6,故本题选D选项。 8.B 【详解】本题考查的是VB字符串处理。阅读程序可知,变量sum用于存储字符串s中连续3位都是数字的总和,变量j是用于统计连续都是数字的位数,若检测到连续3位都是数字子串后,接着遇到非数字字符时,将该3位数字子串c的值累加到sum中,同时清空变量c、j。字符串s中符合要求的数字子串只有“300”和“002”,故sum=300+002=302,选项B正确。 9.C 【详解】本题考查的是Python循环嵌套。如果内循环选择len(s)-i,由于切片s[j:i+j]中不包含i+j,故需将s[j:i+j]改为s[j:i+j+1]才能取到i+j,故选项C不能实现上述功能。 10.D 【详解】本题主要考查算法流程图及Python程序实现。target=target^int(line)是异或运算;异或应用于逻辑运算,其运算法则为:0^0=0,1^0=1,0^1=1,1^1=0;0异或任何数=任何数,1异或任何数=任何数取反,任何数异或自己=把自己置0,故本题选D选项。 11.D 【详解】本题主要考查链表及Python程序。分析程序可知,a是双向链表,ans=head=3,故链表数据值依次为6->3->2->8->8;程序运行结束后,ans=1,a[ans][0]=8;a[0][2]的值为1,head=3,双向链表a的头节点数据值为6;a[1][1]的值为0,双向链表a的尾节点数据值为8,故本题选D选项。 12.A 【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现将s中相邻不相等的字母依次拼接到变量st中,相等字母跳过,s="aabbccabc",故运行该段代码后,输出结果为abc,故本题选A选项。 13.A 【详解】本题主要考查Python程序的执行与调试。初始时,数组d均为False。变量i的范围是1~3,当i=1时,d[3]=True,d[6]=True,d[9]=True;当i=2时,d[6]=False,d[9]=False;当i=3时,d[9]=True,变量m统计列表d中值为True的个数,只有d[3]、d[9]值为True,故c=2,故本题选A选项。 14.A 【详解】本题主要考查程序循环结构执行。题中For循环,步长值为2,循环变量依次为1,3,5,7,9,循环体中将循环变量依次累加至变量y;y没有声明或定义,它就是变体型,y=y+i,可知在该处y为整型,初始默认为0,故y=1+3+5+7+9=25,A选项正确。 15.D 【详解】本题主要考查VB程序的执行。当i=2时,a(0)=a(2)=36,j=i-1=1,执行完while循环后,数组元素a(1)到a(6)的值依次为36,118,98,15,88,2,当i=3时,a(0)=a(3)=98,j=i-1=2,执行完while循环后,数组元素a(1)到a(6)的值依次为36,98,118,15,88,2,当i=4时,j=i-1=3,执行完while循环后,数组元素a(1)到a(6)的值依次为15,36,98,118,88,2,故执行该段程序后,数组元素a(1)到a(6)的值依次为15,36,98,118,88,2,故本题选D选项。 16.C 【详解】本题主要考查Python程序的执行。sum初始值为0,变量i的范围是1~10,循环体是sum+=i,故程序段的运行结果是sum=sum+i=0+1+2+3+4+5+6+7+8+9+10=55,故本题选C选项。 17.B 【详解】本题主要考查算法流程图知识点。初值s=0,i=1,使用for循环,i的范围是从1-10,满足条件执行s=s*2+i,故要用VB语言实现该部分算法可用B选项中的代码,故本题选B选项。 18.C 【详解】本题考查的是Python循环语句。求16~40所有偶数的和,可将初始s设为0,循环步长设置为2,每次进入循环加i,故本题应选C。 19.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。 20.B 【详解】本题主要考查Python代码。A项代码结果:0 1 2, B项代码结果:1 2 3, C项代码结果:1 2,D项代码结果:1 2 3 4,故本题选B。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

4.4运用循环结构描述问题求解过程2023—2024学年高中信息技术粤教版(2019)必修1
1
4.4运用循环结构描述问题求解过程2023—2024学年高中信息技术粤教版(2019)必修1
2
4.4运用循环结构描述问题求解过程2023—2024学年高中信息技术粤教版(2019)必修1
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。