4.1.2 Python的数据类型 知识点题库

【加试题】有一组数据23、12、56、34、10分别存放在一组变量数组a(1)-a(5)中,以下程序执行后,i的值是(   )

Dim a(1 To 5) As Integer

Dim f As Boolean

a(1) = 23: a(2) = 12: a(3) = 56: a(4) = 34: a(5) = 10

i = 1: f = True

Do While i <= 5 And f = True

  If a(i) = 56 Then f = False

  i = i + 1

Loop

Label1.Caption = i

A . 6 B . 3 C . 4 D . 5
设计人口普查程序,用一个变量表示海南省的人口总数,这个变量的类型应是(   )
A . 整型 B . 实型 C . 长整型 D . 双精度型
表达式Len(“doodluck”)+2 Mod 3+Int(3.9999)的值为  (   )
A . 12 B . 13 C . 14 D . 表达式运算出错
在VB中,某同学若想使用变量X存储电子邮箱地址,则X的数据类型应定义为(   )
A . Boolean B . Double C . Integer D . String
在程序运行过程中其值可以被改变的量称为常量。
有如下VB程序段

Const n = 8

Dim a(1 To n) As Integer

For i = 1 To n

    a(i) = Int(Rnd * 20)

Next i

x = n \ 2

For i = x To 2 Step -1

    For j = 1 To i - 1

      If a(j) < a(i) Then

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

      End If

    Next j

Next i

i = n

Do While i > x + 1

    k = i

    For j = i - 1 To x + 1 Step -1

      If a(j) > a(k) Then k = j

    Next j

    If k <> i Then

      t = a(k): a(k) = a(i): a(i) = t

    End If

    i = i - 1

Loop

执行完这段代码后,数组 a 中各个元素的值可能的是(  )

A . 2,8,9,11,16,16,7,3 B . 19,19,18,12,9,8,6,6 C . 20,17,10,10,5,11,13,16 D . 14,11,10,5,0,6,15,15
有如下VB程序段:

    Dim a(1 To 5) As Integer

    a(1) = 1

    For i = 2 To 5

      a(i) = Int(Rnd() * 3) + 3

    Next i

    For i = 2 To 5

      If a(i) Mod 2 = 1 Then

        a(i) = a(i) + a(i - 1)

      Else

        a(i) = a(i) / 2

      End If

    Next i

执行程序后,a数组各元素可能是(  )

A . 1,2,6,10,13 B . 1,5,8,15,22 C . 1,4,9,2,7 D . 1,2,5,11,1
某VB程序如下:

Private Sub Command1_ Click( )

  Dim a(1 To 15) As Integer

  Dim i As Integer

  a(1) = 1

  For i = 1 To 15

    a(i) = a(i-1) + i

  Next i

  Text1. Text = str(a(i))

End Sub

运行程序,单击命令按钮 Command1后,出现的错误提示为(  )

A . 下标越界 B . 子程序或函数未定义 C . 溢出 D . 类型不匹配
在某打游戏中,一开始每个玩家各有17张牌,牌型从小到大分别为“3~10、J、Q、K、A、2”,每种牌最多4张,现在按指定规则的顺序打牌:打完为止,规则如下:

先打顺子牌(顺子指连续的5个及以牌型,如45678,顺子最大到A),若有多个顺子,先长后短长度和同按先小后大的顺序打出然后按4张、3张、2张、1张的顺序出牌,同一个牌型从小到大。

小刘依据上述算法设计了VB程序,其中牌型“10”用数字“0”代替表示,如图所示,请回答下列问题。

  1. (1) 若初始牌型为344445566790JQKA2,第2次出的牌为
  2. (2) 请在划线处填入合适代码。

    Private Sub Command1_Click()

    Dim i As Integer, j As Integer

    Dim a (1 To 13) As Integer, max As Integer, t As Integer, last As Integer

    Dim sa As String, stem As String, flag As Boolean

    Const s="34567890JQKA2"       '用0代替牌10

    '发牌和洗牌代码略,在标签Label1显示初始牌型,洗牌后数组a各元素分别存储牌型3~2的数量

    t=17      '刚开始牌有17张

    Do While t>0      '打牌

    flag=True

    Do While flag   '寻找牌中有没有顺子牌

    max =0: k =1: flag=False

    For i=1 To 13

    If   ①   Then

    k=k+1

    If k > Max Then

     Max = k

    Last = i+1     '记录连续牌的最后一张

    End If

    Else

    k=1

    End If

    Next i

    If Max >= 5 Then '有顺子牌,把最长的这把顺子打出来

    flag=True: sa= ""

    For j =    ②    To last

    Stem=Mid(s, j, 1)

    sa=sa +stem+ ""

    a(j)=a(j)-1

    Next j

    List1.AddItem sa     '顺子在列表框显示

    t=t-max

    End If

    Loop

    For i= 1 To 13     '出4个一样的牌

    If a(i)=4 Then

    stem=Mid(s, j, 1)

    List1.AddItem stem+stem+stem+stem

    a(i)=0

       ③  

    End If

    Next i

    '3张、2张、单张出牌,具体代码略

    Loop

    End Sub

     ② ③ 

在一个整数序列中找第k大数,若有相同的整数,则位置靠前的整数的名次靠前。如有整数分别为“10,13,12,13,15”,则第1大的数为15,第2大的数为13,位于第2位置,第3大的数还是13,位于第4个位置,第4大数是12,第5大的数是10。

编写一个VB程序,实现如下功能:程序启动时产生n个1~20之间的随机整数,在文本框Text2中输入整数k(k≤n),单击“查找”按钮Command1后,在标签Label1上显示第k大的数及位置。程序运行界面如图所示。

  1. (1) 下列对象不具有Caption属性的是(单选,填字母:A .Command1 /B .Form1 / C .Text1 /D .Label1)
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

    Const n = 10

    Dim a(1 To n) As Integer

    Private Sub Form_Load()

    '本过程产生n个1~20之间的随机整数存数组a中,并在文本框Text1中显示,代码略

    End Sub

    Private Sub Command1_Click()

    Dim i As Integer, sum As Integer, key As Integer,c As Integer,k As Integer

    Dim b(1 To 20) As Integer

         ①    

    For i = 1 To n

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

    Next i

    i = 20

    sum = 0

    Do While i >= 1 And sum < k

           ②    

    i = i – 1

    Loop

         ③    

    Label3.Caption = "第" + Str(k) + "大的数是" + Str(key)

    c = 0

    For i = 1 To n

      If a(i) = key Then c = c + 1

      If c = Then Exit For

    Next i

    Label3.Caption = Label3.Caption + ",在第" + Str(i) + "位置"

    End Sub

     ② ③ 

  3. (3) 程序代码中的加框处代码有误,请改正。
给定一字符串(全部由小写字母组成),有n个字符(1≤n≤100),将每个字符存入到数组a中,有以下两种操作:

操作1:在文本框中分别输入L,R,T(1≤L≤R≤n),对数组下标为L到R之内(包含L和R)的字符做相应的字符加密操作(1≤T≤100)。

操作2:在文本框中输入M(1≤M≤n),在标签中输出a(M)的值。

为了提高算法的效率,小明设计了如下算法,以n=10为例,将n个元素依次分成 段( 表示对 向下取整),每段的元素个数为 ,若最后有不足 个元素,则自成一段。给每段设置一个标记,如下表所示。

①对于操作1,若输入的L,R属于同一段,则直接对a(L to R)的每个元素的ASCII码进行后移T位的操作。如输入4,6,3,则第2段中的每个字符变为k,r,q,操作后如下表所示。

②对于操作1,若输入的L,R不属于同一段,则对元素a(L)所在段中从a(L)开始到该段最后一个元素为止的每个字符的ASCII码做后移T位的操作,并对元素a(R)所在段中从该段第一个元素开始到a(R)为止的每个字符的ASCII码做后移T位的操作,对a(L)元素所在段的下一段开始到a(R)元素所在段的上一段为止的每个段标记值增加T,这些段中的元素值保持不变。如在上表的基础_上再输入1,8,2,则第1段的3个字符和第3段中的前2个数都做相应的字符后移2位的操作,第2段的段标记值增加2,如下表所示。

③对于操作2,若输入M的值为4,则输出a(4)的值,若a(M)所在的段标记为奇数,a(M)的值为该数组元素的值,否则输出a(M)对应的大写字母的值,如a(4)=H。程序运行如下。请回答下列问题:

  1. (1) 若数组元素为“p,y,t,h,o,n,j,a,v,a”,依次进行以下3次操作后a(6)的值为

    操作1:在文本框Text1,Text2,Text3中依次输入1,8,3后,点击按钮Command1

    操作1:在文本框Text1,Text2,Text3中依次输入7,9,2后,点击按钮Command1

    操作2:在文本框Text4中输入6后,点击按钮Command2

  2. (2) 请在划线处填入合适的代码。

    Const n=10

    Dim a(1 To n)As String

    Dim dbj(1 To n)As Integer    ‘依次表示每段的标记值

    Dim bk As Integer       ‘表示每段的元素个数.

    Private Sub Form_Lond()

      bk = Int(Sqr(n))

      ‘读取数据,并存储到数组a中,代码略

      ‘读取数据,并存储到数组dbj中,代码略

    End Sub

    Function bl(x As Integer)As Integer   ‘bl函数返回数组元素a(x)的段编号

      bl=

    End Function

    Private Sub Command1_Click()

      Dim L Ax Integer, R As Integer, t As Integer

      L= Val(Text1.Text)

      R= Val(Text2.Text)

      t= Val(Text3.Texr)

      If bl(L)= bl(R) Then

        For i =L To R

          a(i)= Chr((Ase(a(i))- Ase("a")+t) Mod 26+97)

        Next i

      Else

        For i=L To bl(L)*bk

          a(i) = Chr((Ase(a(i))- Ase("a")+1) Mod 26+97)

      Next i

    For i= bl(L)+ 1 To bl(R)-1

      dbj(i) = dbj(i) + t

    Next i

    For i =

          a(i) = Chr((Ase(a(i))-Ase("a") + 1) Mod 26 + 97)

        Next i

      End If

      List1. AddItem Str(L) +"," + Str(R) + "," + Str(t) +“加密完成!”

    End Sub

    Private Sub Command2_Click( )

      Dim M As Integer

      Dim jg As Suring

      M= Val(Text4. Tex1)

      If dbj(bl(M)) Mod2 = 0 Then

        Jg=

      Else

        jg= a(M)

      End If

    Labell. Caption =“经过一 系列操作后. a(” + Str(M) +“)的值为:“+ ig

    End Sub

有如下 VB 程序段:

m = Int(Rnd * 4 + 2)

For i = 1 To 6 - m

  For j = 1 To 6 - i

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

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

    End If

  Next j

Next i

数组元素a(1)到 a(6)的值依次为“49,45,5,61,42,71”,执行该程序段后,a(1)~a(6)各元素值不可能的是(         )

A .  61,49,71,45,42,5 B . 49,45,61,42,71,5 C . 49,61,45,71,42,5 D . 71,61,49,45,42,5
在Visual Basic中,若要定义变量no用于存储汽车牌照号码,如"沪A•12345",则正确的定义语句是(     )。
A . Dim no As Integer B . Dim no As String C . Dim no As Single D . Dim no As Boolean
有如下VisualBasic自定义函数:

Function f(x As Integer) As Single

  f=Abs(x)

End Function

该函数返回值的数据类型是(    )

A . 整数型 B . 日期型 C . 逻辑型 D . 单精度实数型
有如下VB程序段:

For i=1 To 6

    a(i)=Int(Rnd*10)+1

Next i

For i=1 To 5

    If i Mod 2=1 And a(i)>a(i+1)Then

      T=a(i):a(i)=a(i+1):a(i+1)=t

    Else

        a(i)=a(i)+1

    End If

Next i

执行该程序段后,a(1)~a(6)各元素可能的值是(  )

A . 11,11,7,9,3,9 B . 6,2,8,10,5,9 C . 6,9,3,7,8,12 D . 3,9,0,8,2,7
在python语言中,以下哪个选项a数据类型为整型(    )
A . a=5 B . a=input( ) C . a='5' D . a=5.0
如下图所示,数组a中存储了一组正整数,特征是:①以三个数为一组的话,每组中任意一个数都比前面一组中的任意一个数要大;②每组中三个数依次递减;③数组a的元素总个数为3的倍数。

8

5

3

17

14

10

32

25

24

53

50

35

73

66

61

图 a

依据对分查找思想,设计一个在数组a中查找数据key的程序。执行程序,在文本框Txt1中输入key的值,在文本框Txt2中显示查找结果。根据左右边界,计算中位值,并在标签L1中记录历次中位值的位置。

  1. (1) 程序代码如下,请在划线处填入合适的代码。

    Private Sub Command1_Click( )

    Const n = 15

    Dim a(1 To n) As Integer, search As Integer, key As Integer Dim i As Integer, j As Integer, m As Integer

    Dim s As String

    ' 读取一组正整数,按上述规则存入数组,代码略。

    key =

    i = 1: j = n: search = 0

    Do While i <= j

        m = (i + j) \ 2

        s = s + Str(m) + ","

        If m Mod 3 <> 0 Then  '把 m调整到三个一组的最后一个数的位置

        If key = a(m) Then search = m: Exit Do

        ElseIf key < a(m) Then j = m - 3

        ElseIfThen i = m + 1

        ElseIf key = a(m - 2) Then search = m - 2: Exit Do

        ElseIf key = a(m - 1) Then

            search = m - 1: Exit Do

        End If

    Loop

    If search <> 0 Then Txt2.Text = Str(search)

    Else

        Txt2.Text = "找不到" End If

        L1.Caption = s

    End Sub

  2. (2) a数组数据如图 a所示,如果key的值为 10,则L1上显示的内容为
运行如下程序段时,出现了如图所示的错误提示框:

Private Sub Command1_Click()

Dim r As Single, s As Single            '①

r="10米"                     '②

s=3.14159*r*r            '③

Text2.Text ="某个半径为"+ Str(r)+"米的圆,其面积为"+ Str(s)+"平方米."             '④

End Sub

则程序中出错的语句是(   )

A . B . C . D .
以下不能创建一个字典的语句是(  )
A . dict1 =   } B . dict2 =  3 : 5 } C . dict3 = [1,2,3]: “uestc”} D . dict4 = (1,2,3): “uestc”}
某学校开展了艺术节活动,数组a中存储了n个节目的编号和得分数据,数组存储结构如下图所示:

小明使用选择排序思想对上述n个节目按得分进行降序排序(得分相同的按编号升序排列),并依据得分插入各个节目的排名信息,处理后数组a的存储结构如下图所示:

程序运行时,单击命令按钮Command1后读取数据到数组a中并显示在列表框List1中,单击命令按钮Command2后将节目按照上述规则进行排序,并将排名结果显示在列表框List2中。实现上述功能的VB程序如下,请回答下列问题:

  1. (1) 已知窗体名称为Form1,要使程序加载时,窗体标题自动显示为“第15题程序”,则可在(单选,填字母:A .Form_ Click() / B .Form Load() / C .Form1_ Click() / D .Forml_ Load()) 事件过程中添加代码: Form1. Caption= "第15题程序"。
  2. (2) 请在划线处填入合适的代码。

    Const n = 20

    Dim a(1 To 3 * n) As Integer

    Private Sub Command1_Click ()

        ‘读取数据,存储在数组a中,并显示在列表框List1中。代码略

    End Sub

    Private Sub Command2_Click ()

        

            k=i

            For j=1 To i-1

                If a(2*j) < a(2*k) 0r  Then

                    k=j

                End If

            Next j

            a(3*i)=a(2*k)

            a(3*i-1)=a(2*k-1)

            

            a(2*k-1)=a(2*i-1)

        Next i

        List2. AddItem "第1名:编号”+ CStr(a(2)) + ",分数”+ Str(a(3))

        a(1) =1

        mc=1

        For i=2 To n

            If  Then mc=i

            List2. AddItem "第"+ Str(mc) + "名:编号" + CStr(a(3* i-1)) +",分数"+Str(a(3 * i))

            a(3*i-2)=mc

        Next i

    End Sub

  3. (3) 加框处代码有误,请改正。
最近更新