2.2 算法的控制结构 知识点题库

有如下的Visual Basic程序段:

s=1

For i=20 To________ Step-2

  s=s+i

Next i

若要使语句s=s+i执行5次,则循环变量i终值应为(  )

A . 12 B . 11 C . 10 D . 9
某VB程序段如下:

Fori=1To5

b(a(i))=b(a(i))+1

Nexti

t=0

Forj=1To10

Fork=1Tob(j)

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

Nextk

Nextj

a(1)到a(5)d初值依次是7、5、9、4、3,程序段运行后,数组a的值依次是()

A . 7,9,5,4,3 B . 3,4,5,7,9 C . 4,5,7,9,3 D . 9,7,5,4,3
编写“二进制数转换为十六进制数”程序,实现如下功能:在文本框Text1输入一个二进制数,单击“转换”按钮 Commandl,将二进制数转换为十六进制数并在文本框Text2中显示。程序运行界面如图所示。

  1. (1) 设计如图所示的程序界面,至少要使用个类(填数字)。
  2. (2) 实现上述功能的VB程序如下,请在画线处填入合适的代码。

    Private Sub Command1_Click( )

    Dim s1 As String, s2 As String

    Dim i As Integer, x As Integer

    Const code=“0123456789ABCDEF”

    S1=Text1,Text:s2=“”

    Do While Len (s1) Mod 4<>0

        S1=“0”+s1

    Do While i < Len(s1)

        x= x*2+Val (Mid (s, i, 1))

        i=i+1

        If   ①   Then

        s2=s2+ Mid (code, x+1,1)

          ② 

        End If

    Loop

    Text2 Text= s2

    End Sub

     ② 

  3. (3) 若文本框Text1中输入的内容为“101101”,单击“转换”按钮后,文本框Text2中显示的内容是
有如下程序段:

Const n=6

Dim a(1 To n)As Integer

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

Do While True

  For i=1 To n-1

      If a(i)>a(i+1)Then Exit For

  Next i

  If i < n Then

      For i=1 To n

        j=Int(Rnd * 6)+1

        t=a(j):a(j)=a(i):a(i)=t

      Next i

  Else

      Exit Do

  End If

Loop

数组中a(1)到a(6)的值依次为“56,34,48,87,65,96”,上述程序段执行后a(1)到a(6)的值依次为(  )

A . 96 87 65 56 48 34 B . 344856658796 C . 选项A和B都有可能 D . 选项A和B都不可能
下列程序段的功能为:去除数组 a(1)到 a(n)中的“0”元素,并将非 0 元素按原顺序输出。如数组元素 a(1)到 a(8)的值依次为“2,0,2,0,0,7,0,7”,处理后 a(1)到 a(4)的值依次为”2,2,7,7”,原顺序输出为:“2 2 7 7”。

k = 0: s = ""

For i = 1 To n

   

Next i

Text1.Text = s

方框中的代码由以下四部分组成:

①If a(i) = 0 Then k = k + 1

②If p = k Then s = s + Str(a(i - k))

③a(i - k) = a(i)

④p = k

代码顺序正确的是(    )

A . ④①②③ B . ④①③② C . ③④①② D . ③④②①
从键盘输入一个整数,判断该数字能否被2和3同时整除,能否被2整除,能否被3整除,不能被2和3整除。输出相应信息。
有关循环结构的说法不正确的是(    )。
A . 循环结构是算法的基本结构之一 B . 有的程序设计中没有循环结构 C . 循环结构在程序设计有可能会有嵌套出现 D . 在PYTHON程序设计语言中循环结构一般使用IF语句实现。
下列 VB 程序段的功能:生成n个不重复的随机整数,保存在数组a中,并升序排序。f数组各元素的初值置为False,代码略 。

i = 1

Do While 图片_x0020_100005

    t = Int(1 + Rnd * 10)

    If Not f(t) Then

        a(i) = t

        f(t) = True

        For j = 图片_x0020_100006  

            If a(j) < a(j - 1) Then

                tmp = a(j): a(j) = a(j - 1): a(j - 1) = tmp

            End If

        Next j

    Else

        图片_x0020_100007

    End If

    i =i + 1

Loop

上述程序段3个方框处的表达式分别为(   )

A . ⑴i <= n - 1      ⑵2 To i                ⑶i = i - 1 B . ⑴i <= n          ⑵i To 2 Step -1        ⑶i = i - 1 C . ⑴i <= n - 1       ⑵2 To i               ⑶t = Int(1 + Rnd * 10) D . ⑴i <= n          ⑵i To 2 Step -1        ⑶t = Int(1 + Rnd * 10)
某全英文教材文件"textbook.txt"内容如图所示。编写Python程序,分析该书中的单词使用情况。程序代码如下,请回答下面问题。

 

  1. (1) 图1中单词的间隔有 。
  2. (2) 自定义函数cleantext( )的功能是
  3. (3) 在划线处填入合适代码,完善程序。

    import pandas as pd

    def cleantext( ):

        txt = open("textbook.txt","r"). read( )

        txt=     ①            #将字符串中所有大写字母转为小写

        for ch in '! ( );:''',.? ' :

            txt = txt.replace(ch,"")       #用空格替代ch的值

        return txt

    booktxt = cleantext( )

    words = booktxt. split( )

    #以空格为分隔符分割文本并生成列表

    counts= { }

    for word in words:

        counts[word]=counts. get( word,0)+1

    items= -list(counts. items( ))    #返回所有键值对信息,生成列表

    df= pd.DataFrame(items,columns=['word','times'])

    df1= df.sort _values('word')

    df1.plot( x='word', y='times', kind='line', igsize=(8,3))

    df2=    ②       

    print('文件中出现的不同单词数:',     ③          )

    print(df2[:10])

     ② ③ 

  4. (4) 运行程序,输出结果如图2所示,绘制的图形如图3所示。结合两图分析,该教材中出现次数超过50次的单词有哪些?这些单词有什么特征?

  5. (5) 若将该教材中单词的掌握程度分为“非常熟练”“熟练”“一般”三类输 出,请完善下表。

    掌握程度

    程序末尾须添加的输出语句

    非常熟练(出现10次以上)

    熟练(出现2~10次)

    一般(出现1次)

两个长度相同的字符串s1和s2,若所含字符及各字符的数量均相等时可以归为一类。

如字符串“ABDAC”与字符串“AABCD”可以归为同一类,与“AABBC”不可以归为同一类。图图编写了一VB程序,功能如下:在文本框Text1中输入字符串s1,在文本框Text2中输入字符串s2,单击“判断”按钮Command1,在标签Label1中显示是否可以归为同一类的结果。部分运行界面如图所示。

请回答下列问题:

  1. (1) 要使窗体的标题栏文字显示为“同类字符判断”,则应设置窗体的 属性(单选,填字母:A .Text / B .Name /C .Caption)。
  2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

        Dim a(1 To 100) As Boolean

        Dim i As Integer, j As Integer

        Dim flag As Boolean

        s1 = Text1.Text

        s2 = Text2.Text

        flag = True

        For i = 1 To Len(s2)

            

        Next i

        If Len(s1) <> Len(s2) Then

            flag = False

        Else

        For i = 1 To Len(s1)

            c =

            j = 1

            Do While j <= Len(s2)

                If  Then

                    a(j) = False

                    Exit Do

                End If

               

            Loop

            If j = Len(s2) + 1 Then flag = False

        Next i

    End If

    If flag Then

        Label1.Caption = "可以归为同一类"

        Else

            Label1.Caption = "不可归为同一类"

        End If

    End Sub

  3. (3) 程序中加框处代码有错,请改正。
关于结构化程序设计所要求的基本结构,以下描述错误的是(   )
A . 重复(循环) B . 选择(分支) C . goto跳转 D . 顺序
小明去网吧上网,普通包间3元一小时,高级包间4元一小时,豪华包间6元一小时,他决定用函数计算上网费用,如下:函效中的两个参数分别对应的是                 , 豪华包间上网2小时的费用是        元。(     )

A . 上网时长  包间类型  12 B . 包间类型  上网时长  12 C . 上网时长  包间类型  8 D . 包间类型  上网时长  8
对随机生成n个互不相同的正整数(正整数的最大值不超过m)进行排序,排序要求如下:①偶数在前,奇数在后;②奇数降序排序;③偶数升序排序。部分程序如下所示,划线处的正确语句是(     )

Const n = 15

Const m = 100      '整数的最大值

Dim a(1 To n) As Integer

'本过程产生n个不同随机整数,区间在[1,m]之间,存储在数组a中,代码略

Private Sub Command1_Click()

    Dim i As Integer

    Dim flag(1 To m) As Boolean

    For i = 1 To n

              ①        = True

    Next i

    For i =2 To m step 2

        If flag(i) Then List2.AddItem        ②       

    Next i

    For i =      ③        To 1 Step -2

        If flag(i) Then List2.AddItem Str(i)

    Next i

End Sub

A . ①flag(i) ②Str(a(i)) ③m-1 B . ①flag(a(i)) ②Str(i) ③m-1 C . ①flag(a(i)) ②Str(i) ③m D . ①flag(i) ②Str(a(i)) ③m
对于多分支语句的情况,python语言通常使用语句来创建。
阅读下列程序段并回答问题。

a=3

b=6

b=a

c=b

a=c

上述程序执行后,变量a的值是,变量b的值是

下面的程序段运行后的结果为(   )。

s=0

for i in range(1,8,3):

s=s+i

print(s)

A . 4 B . 9 C . 11 D . 12
阅读下列程序,写出运行结果。

m = 1

n = 0

for i in range(3):

  m += 1

  for j in range(5):

    n += 1

print(m, n)

运行结果是:

求1-100间能被3整除的数的和

PRIVATE SUB FORM_CLICK( )

    S=0

    FOR I= 1 TO 100

        

            S=S+I

        END IF

    NEXT I

   PRINT I

END SUB

有如下Python程序段:

s1=input("请输入字符串:")

a=[0]*128

for item in s1:

    ch=ord(item)

    a[ch]=a[ch]+1

    s2=""

    for i in range(len(a)):

        for j in range(a[i]):

            s2=s2+chr(i)

print(s2)

列表a各元素的初始值都为0,s1中输入的内容为“abs54int”。执行该程序后,程序输出的结果中第5个字符为(    )

A . n B . s C . 4 D . i
有如下 Python 程序段:

import random

a = [8,6,1,3,2,9]

k = random.randint(1,3)

for i in range(k,k+2):

  if a[i]<a[i-1]:

    a[i],a[i-1]=a[i-1],a[i]

执行该程序段后,a 对象的内容不可能是(      )

A . [6, 1, 8, 3, 2, 9] B . [8, 6, 1, 2, 3, 9] C . [8, 1, 3, 6, 2, 9] D . [6, 9, 1, 3, 2, 8]
最近更新