2.3 周而复始的循环 知识点题库

数字之美:在数学中有一种规律数列,随着第一个因数末尾增加一个相邻自然数,积的末尾也增加一个相邻自然数。如1*8+1=9,12*8+2=98,123*84+3=987,……,这种数列可以组成完美的三角形结构,称为数字之美。这一规律用VB程序编写后,运行界面如图所示。

实现该功能的VB程序段如下:

Function space(x As Integer)As String        ‘输出格式化,设置左侧的空格数量

  Dim n As Integer

  For n=9 To x Step-1

     ①  

  Next n

End Function

Private Sub Form_Load()

  Dim t As Long,i As Integer,n As String

  Dim a(1 To 9)As String

  Dim b(1 To 9)As String

  Const num=“987654321”

  For i=1 To 9

    t=t*10+i

    a(i)=space(i)+CStr(t)  ‘CStr函数的功能是将数值转为字符,转换时不会添加空格

       ②   

    n=n+a(i)+“*8+”+CStr(i)+“=”+b(i)+Chr(13)       ‘Chr(13)实现换行处理

  Next i

  Label1.Caption=n

End Sub

  1. (1) 触发该功能的事件是(A,按钮的单击事件;B,窗体的加载事件;C,标签的修改事件)。
  2. (2) 在程序中①和②画线处填入适当的语句或表达式,把程序补充完整。

    在程序中①画线处应填入

    在程序中②画线处应填人

  3. (3) 若在定义时,将变量t的数据类型定义为Integer,运行后会出现(选填:下标越界、溢出、类型不匹配)错误。
编写VB程序,实现如下功能:在文本框Text1中输入二进制数,单击“转换”命令按钮Command1,在文本框Text2中输出对应的十六进制数。程序运行界面如图所示,请回答下列问题:

  1. (1) 如果输入的二进制数为“1101010”,则得到的结果为
  2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适代码。

    ‘函数 bw 功能:若二进制位数不足,通过在前面添"0"使得位数为 4 的倍数
    Private Function bw(x As Integer, y As String) As String

    Dim r As Integer, i As Integer

    r = x Mod 4

    If r <> 0 Then

      For i = 1 To 4 - r

        y = “0” + y

      Next i

      x = Len(y)

    End If

    bw =   ①   
    End Function

    Private Sub Command1_Click()

       Dim m As String, n As Integer, i As Integer, a As Integer

       Dim s As Integer, s1 As String, j As Integer

       m = Text1.Text

       n = Len(m)

       Text2.Text =“”

       m =  ②           ‘调整m的位数为4的倍数

       For i = 1 To n - 3 Step 4

         s = 0

         For j = i To i + 3

           a = Val(Mid(m, j, 1))

           s =  ③  

         Next j

         If s >= 10 Then

           s1 = Chr(Asc("A") + s - 10)

         Else

           s1 = CStr(s)      ‘函数CStr类似于 Str,但无前导空格

         End If

         Text2.Text = Text2.Text + s1

       Next i
    End Sub

     ② ③

有如下VB程序段:

For i=1 to 3

    For j=1 to 5-i

        If a(j)>a(j+1) Then

            t=a(j) : a(j)=a(j+1) : a(j+1)=t

        End If

    Next j

    Text1.Text = Str(a(i))+Text1.Text

Next i

数组元素a(1)到a(5)的值依次为“2,9,7,8,5”。若该程序段执行后,文本框Text1显示的内容是(    )

A . 2 5 7 B . 9 8 7 C . 2 7 7 D . 7 7 2
有如下VB程序段,该程序段运行后,在文本框中显示的内容是(  )

Dim a(1 To 10)As Integer

Dim i As Integer, j As Integer

a(1)=1:a(2)=1

For i=3 To 5

    a(i)=1

    For j=i-1 To 2 Step-1

        a(j)=a(j)+a(j-1)

    Next j

Next i

Text1.Text=Str(a(3))

A . 1 B . 3 C . 4 D . 6
用VB编写一个计算 的程序,程序代码如下,请补充完整。

Private Sub Command1_Click( )

  Dim i, n, tAs Integer

  Dim m, s As Double

  s=1:t=1

  n=Val(Text1.Text)

  For i=2 To n

      m=1

      For j=1 To   ①   

          m=   ②       ‘计算1/(2*i-1)!

      Next j

      s=s+m*t     ‘累加通项式

        t=-t

  Next i

  Text2.Text=Str(s)   ‘结果显示到文本框Text2中

End Sub

以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②

下列有关字典的说法,不正确的是(     )
A . 字典中的每个元素包含键和值两部分 B . 字典中的值可以是任意类型的数据 C . 可以通过字典的值来找到对应的键 D . 在同一字典中,键必须互不相同
下面代码的输出结果是(   )。

def fib(n):

    a,b=1,1

    for i in range(n):

        a,b=b,a+b

    return a

print(fib(5))

A . 5 B . 8 C . 13 D . 21
斐波那契在《计算之书》中提出了一个有趣的兔子问题:从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和,又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。迭代法也称辗转法,阅读下列程序代码。

def fib(n):

    #迭代求Fibonacci数列

    f2=f1=1

    for i in range(①,n+1):

        ②

    return f2

n=int(input('输入需要计算的月份数:'))

print('兔子总对数为:',fib(n))

input("运行完毕,请按回车键退出...")

下列说法错误的是(    )

A . 确定迭代变量, 程序中的的f1、f2 B . 建立迭代关系式,②处应填写:f1,f2=f2,f1+f2 C . 对迭代过程进行控制,①处应填写range(3,n+1)枚举从第三个月开始 D . f1,f2=f2,f1+f2不可以用temp=f1+f2,f1=f2,f2=temp代替
有如下VB程序段:

Dim i As Integer, c As String, s As String, t As Integer

Dim s2 As String, pwd As String

   s= Text1.Text: pwd = "71zhYEAR":s2= ":t= 0

   For i= 1 To Len(s)

      c= Mid(s, i, 1)

      If c>= "0" Andc <= "9" Then

         t=t* 10 + Val(c)

      Else

         s2 = s2 + Mid(pwd, tMod8 + 1, 1)

      End If

   Next i

   Text2.Text= s2

运行该程序段,在文本框Text1中输入“20B13A8",文本框Text2输出的是(      )

A . hY B . YE C . YE7 D . hYA
有如下VB程序段:

result = ""

s1 = Text1.Text

s2 = Text2.Text

i = 1

Do While i <= Len(s1)

    If Mid(s1,i,Len(s2)) <> s2 Then

        result = result + Mid(s1, i, 1)

        i = i + 1

    Else

        i = i + Len(s2)

    End If

Loop

在文本框Text1和Text2中分别输入“Pyyesthon”和“yes”,执行该程序段后,变量result的值是(   )

A . "Pythonyes " B . "yesPython " C . "Pyyesthon " D . "Python "
以下程序执行后将输出100到200之间所有的素数,并统计素数的个数

 Private Sub Form_Click( )

    Dim i%, j%, k%, t%         't为统计素数的个数

    Dim b As Boolean

    For i = 100 To 200

        b = True

        k=

        j = Int(Sqr(i))

        Do While k <= j And b

            If i Mod k = 0 Then

                

            End If

            

        Loop

        if b=true then

            t = t + 1

            Form1.Print i

        End If

    Next i

    Print "t="; t

End Sub

下面程序的运行结果为:

for num in range(2,10):

  if num % 2==0 :

    continue

print(num,end=”、”)

有如下VB程序段:

c = Text1.Text

s1 = "jiayou!" s2 = s1 + s1

For i =1 to len(s1)

    If c = Mid(s2, i, Len(s1)) Then Exit For

Next i

Label1.Caption = Str(i)

程序执行完后,Label1中显示的内容是4,则Text1中输入的内容是(     )

A . "jiayou!" B . "you!jia" C . "ayou!ji" D . "jayou!j"
在单向链表如下图所示,在data2与data3之间插入一个新节点data4(p指向data2,r指向data4。列表data来记录链表数据域,列表next来记录指针域),在以下选项中选择正确的执行步骤(     )

①next[p]= next[r]    ②next[p]= r             ③next[r]= p

④next[r]= -1         ⑤next[r]= next[p]       ⑥next[p]= -1

A . ③⑥ B . ⑤② C . ①④ D . ⑤②④
设一棵二叉树的中序遍历序列:becfad,后序遍历序列:efcbda,则二叉树前序遍历序列为(     )
A . abcdef B . bdaefc C . abcefd D . abcfed
下列程序的输出结果是(    )

y=0

x=1

while x<=10:

  if x%5==0:

    break

  else:

    y+=x

    x=x+1

print(y)

A . 50 B . 55 C . 15 D . 10
有如下程序段:

Dim i As Integer, sum As Integer

Dim a(1 To 10) As Integer

sum=0

For i=1 To 10

    a(i) = i+5

    If a(i) Mod 3=0 Then sum=sum+a(i)

Next i

Text1. Text = Str(sum)

该程序段运行后,文本框Text1中显示的内容是(     )

A . 24 B . 42 C . 105 D . 205
阅读下列程序,写出运行结果。

程序运行后,输入:8

运行结果是:

阅读下列程序,写出运行结果。

a=1

s=0

for i in range(1,5):

    a=a*i

    s=s+a

print(s)

运行结果是

用python编辑器打开“y:\109”下的文件“凯撒密码.py”进行以下操作并保存结果。凯撒密码是一种移位密码,明文中的所有字母都在字母表上向后按照一个固定数目(密钥)进行偏移后被替换为密文

①请填空,完善该程序实现功能:输入一串字符串(message)和一个数字(key)。对这串字符进行加密(向后移位Key位,只对26个英文字母加密)

注:程序修改时,请把下划线及序号删除,不能删除注释语句。

import math

import random

import os

#定义加密函数,对字母进行加密,即向后移动key位,其他字符不加密。

def cipher(befmessage, key):

    aftmessage = ''

    for char in befmessage:

        if char.isupper():    #对大写字母进行加密

            code = ord('A')+(ord(char)-ord('A')+key) % 26

            aftmessage = aftmessage+chr(code)

        elif char.islower():  #对小写字母进行加密

            code = +(ord(char) - ord('a') + key) % 26

            aftmessage = +chr(code)

        else:

            aftmessage = aftmessage+char   #字母以外的其他字符不进行加密

return aftmessage

#主程序

message = input('请输入明文:')

key = (input('请输入密钥(整数):'))  # 输入数字密钥

secret = cipher(message, )

print('加密后的密文是:',)

# 结束

②编写完成后,原名保存并关闭应用软件。