当前位置: 初中信息技术(信息科技) /浙教版(2020) /八年级上册 /第二单元 Python程序基本结构 /第10课 循环结构一while循环
试卷结构: 课后作业 日常测验 标准考试
| 显示答案解析 | 全部加入试题篮 | 平行组卷 试卷细目表 发布测评 在线自测 试卷分析 收藏试卷 试卷分享
下载试卷 下载答题卡

浙教版(2020)初中信息技术八年级上册第二单元第10课 循...

更新时间:2022-01-27 浏览次数:93 类型:同步测试
一、选择题
  • 1. 某Python程序代码如下:

    s='t1Hr2a3'

    s1='' ; s2=''; i = 0

    while i < len(s):

      if '0'<=s[i]<='9': 

        s1 = s1 + s[i] 

      elif 'a'<=s[i]<='z':

        s2 = s[i] + s2 

        i = i + 1

        ans = s2 + s1

    print(ans)

    程序执行后,输出的结果是(      )

    A . 12art3 B . tra123 C . rta123 D . art321
  • 2. 如下Python程序段

    x = 0

    while x < 50:

        x = (x + 2) * (x + 3)

    运行后,x的值为(    )

    A . 0 B . 72 C . 50 D . 168
  • 3. 在一次比赛中,需要随机给10名选手各编一个0~9范围内的唯一序号,对应的Python程序段如下:

            

    a,b=[0]*10,[False]*10

    i=0

    while i<=9:

           

    if not b[r]:

    a[i]=r

              

    i=i+1

    print(a)

    则划线处的代码依次是(      )

    ① r=random.randint(0,10)

    ② b[r]=True

    ③import random

    ④ b[i]=True

    ⑤from random import randint

    ⑥ r=random.randint(0,9)

    A . ⑤①② B . ⑤⑥④ C . ③①④ D . ③⑥②
  • 4. 执行下列Python程序段后,变量n的值是(    )

    n=0

    for i in range(1,4):

      n+=i

    A . 4 B . 3 C . 6 D . 1
二、填空题
三、简答题
四、操作题
  • 7. 编写Python程序,实现以下功能:输入两个正整数a,b,输出他们的最小公倍数。求最小公倍数的做法为:先算出数a和数b的最大公约数k,那么最小公倍数就为数a乘数b再除以数k。而求最大公约数的方法一般为辗转相除法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是e为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。示例:123456和7890的最大公因数是6,这可由下列步骤(其中,“a % b”是指取a÷b的余数)看出:

    a

    b

    a % b

    123456

    7890

    5106

    7890

    5106

    2784

    5106

    2784

    2322

    2784

    2322

    462

    2322

    462

    12

    462

    12

    6

    12

    6

    0

    程序如下:

    a = int(input("输入第一个数:"))

    b= int(input("输入第二个数:"))

    c=   ①  

    while   ②  

    print("它们的最小公倍数是:",c//a)

    1. (1) 在划线处填入合适的代码
    2. (2) 如果输入的数分别为:27和15,则加框处语句共执行了次。
  • 8. 现今信息化时代,信息的传输十分迅速,足不出户便知天下事。许多社交平台都有设置本平台的热点排行榜,方便用户了解正在发生的热门事件。但社交平台数量众多,平台用户种类和数量也大不相同,导致不同平台热点的实际热度大小也不同。小钟为了确保自己知道的热点是真正的热点,于是打算用功能强大的python把各个平台的热点排行榜进行合并,形成自己的热点排行榜。

    为了热点之间比较方便,小钟设置了一个热度值来衡量一个热点的热度大小,热度值越大说明这个热点的热度越高。现在小钟已经获得了如下两个平台的热度值从小到大的排行榜,正当他打算将之合并为一个从小到大的排行榜时,却被老师叫走了。于是他决定把这个小功能交给他的好朋友——你来实现,你想到2种算法,请把下列程序填写完整。

    A

    P10

    P9

    P8

    P7

    P6

    P5

    P4

    P3

    P2

    P1

    11

    66

    116

    329

    438

    582

    652

    714

    756

    925

    B

    E10

    E9

    E8

    E7

    E6

    E5

    E4

    E3

    E2

    E1

    35

    116

    215

    271

    309

    428

    576

    772

    806

    950

    Python程序如下:

    A= [11,66,116,329,438,582,652,714,756,925]

    B = [35,116,215,271,①,428,576,772,806,950]

    算法一:

    myRank =

    i = 0

    j = 0

    while (i < len(A) and j < len(B)):

      if (A[i] < B[j]):

        ②

        i += 1

      else:

        myRank.append(B[j])

        j += 1

    while (i < len(A)):

      myRank.append(A[i])

      i += 1

    else:

      while (③):

        myRank.append(B[j])

        j += 1

    print(myRank)

    算法二:

    myRank = [0]*(len(A)+len(B))

    i = 0

    j = 0

    k = 0

    while (④):

      k = i+j

      if (i >= len(A)):

        myRank[k] = B[j]

        j += 1

      elif (j >= len(B)):

        myRank[k] = A[i]

        i += 1

      elif (⑤):

        myRank[k] = A[i]

        i += 1

      else:

        myRank[k] = B[j]

        j += 1

    print(myRank)

  • 9. 阅读程序。观察使用随机数求解百钱白鸡问题的代码并回答问题。

    百千白鸡问题是经典的数学问题,原题为“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?”翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

    import random

    while True:

      x=random.randrange(0,20)

      y=random.randrange(0,33)

      z=random.randrange(0,100)

      if 5*x+3*y+z/3==100 and x+y+z==100:

        print('公鸡',x)

      print('母鸡',y)

    print('小鸡',z)

    1. (1) Python中导入库文件的命令是
    2. (2) random.randrange(0,20)生成的随机数的范围是
    3. (3) 如果不想写类似random.randrange(0,20)这么长的句子,可以修改程序中的第一行为
    4. (4) while True的作用是 。
    5. (5) 如果while True造成程序无法停止,我们可以在程序中添加一行
  • 10. 阅读程序。分析以下两段Python程序并回答问题。

    #程序1

    i=1

    while i<101:

       print('把这句话打印100遍')

    i+=1

    #程序2

    i=100

    while i:

        print('把这句话打印100遍')

    i=i-2

    1. (1) 在程序1中,i+=1这句话的含义是
    2. (2) 在程序1中,‘把这句话打印100遍 ’实际输出了遍。
    3. (3) 在程序2中,i的初值是
    4. (4) 在程序2中,‘把这句话打印100遍 ’实际输出了遍。
    5. (5) 在程序2中,while i 的含义是
  • 11. 若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。编写python程序,实现如下功能:输入n的值,统计显示n以内的所有双胞胎数。程序运行界面如图所示:

    实现上述功能的程序如下,请在划线处填入合适的代码。

    def isprime(x):

        for i in range(2,x):

            if

                return False

        return True

    n=int(input(“请输入一个正整数n:”))

    c=0

    k=3

    while k<=n-2:

        if isprime(k) and

            print(k,k+2)

           

        k=k+1

    print(“共有”+str(c)+“对双胞胎数”)

  • 12. 若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。编写python程序,实现如下功能:输入n的值,统计显示n以内的所有双胞胎数。程序运行界面如图所示:

    实现上述功能的程序如下,请在划线处填入合适的代码。

    import math

    def isprime(x):

     

      for i in range(2,int(math.sqrt(x))+1):

        if x % i = = 0 :

          f=False

        return f

    n=int(input("请输入一个正整数 n:"))

    c=0

    k=3

    while k < = n-2:

      if isprime( k ) and:

        c + = 1

      print("第"+ str( c ) +"对双胞胎数:", k ,'和',k+2)

     

    print("共有"+str(c)+"对双胞胎数")

  • 13. 某字符转置算法描述如下:

    将字符串(均为大写字符)s依次转换为相对应的数值(字符A~Z对应数值1~26);

    ·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);

    每一段中K个数据与K*K转置矩阵进行乘法运算;

    将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值1~26对应字符A~Z),最后按原始字符串长度输出。

    乘法运算规则如下:

    第i个元素c(i)=第j个元素a(j)*转置矩阵第j行第i个元素b(t)的乘积之和(其中j=1,2…K)

    例如:字符串s=PYTHON,区块大小K=4,的转置过程如下:

    1. (1) 根据算法描述,上述示例中,字符“N”的相乘结果(即图中(★)处)为
    2. (2) 请在划线处填入合适代码。

      Private Sub Command1_Click()

          Dim a(1 To 100)As Integer       '存储字符串,长度不超过100个字符

          Dim b(1 To 100)As Integer       '存储转置矩阵,长度不超过10*10

          Dim c(1 To 100)As Long

          Dim s As String, tmp As String

          Dim k As Integer, t As Integer, i As Integer, j As Integer

          Dim n As Integer, m As Integer, lens As Integer

          s=Text1. Text               '在Text1中输入原始字符串

          k=Val(Text 2.Text)          '在Text2中输入区块大小K

          Randomize

      For i=1 To k^2

              b(i)=Int(Rnd*9)+1

              tmp=tmp+Str(b(i))

              If i Mod k=0 Then

                  List 2. AddItem tmp

                  tmp="" 

              End If

          Next i

          lens=Len(s):n=lens

          For i=1 To n

              tmp=Mid(s,i,1)

              

              List1. AddItem Str(a(i))

          Next i

          Do While n Mod k<>0

              n=n+1

              a(n)=0

              List1. AddItem Str(a(n))

          Loop

          For i=1 To n

              m=(i-1) Mod k+1

              t=1

              For j=

                  c(i)=a(j) * b((m-1) * k+t)+c(i)

                  t=t+1

              Next j

          Next i

          For i=1 To n

              List3. AddItem Str(c(i))

          Next i

          s=″″

          For i=1 To lens

              

              s=s+Chr(t+64)}

          Next i

          Text 3.Text=s               '在Text 3中输出转置后的字符串

      End Sub

微信扫码预览、分享更方便

试卷信息