4.1.1 Python的常量和变量 知识点题库

为使左右框内的Visual Basic程序段实现相同的功能,可在左框内划线处填写的代码是:

A . g = 2 B . g = 6 C . g = g + 1 D . g = g + 2
[根据2011年9月高考题改编]下列VB程序运行时,单击命令按钮Command1后,文本框Text1中显示的内容是,文本框Text2中显示的内容是

Private Sub Command1 click( )

  Dim a(1 to 3) as integer,k as integer,t as integer,s as integer

  a(1)=15: a(2)=36: a(3)=7

  s=0

  For k=2 to 3

if a(k)>a(1) then

  t=a(1):a(1)=a(k):a(k)=t

  s=s+1

End if

  Next k

  text1.text=str(a(1))

  text2.text=str(s)

End sub

小金编写了一个统计随机数分布的VB程序,部分程序如下所示,在调试程序的时候出现如右图所示的错误信息:

n = 0

m = 0

For i = 1 To 100

  If Rnd > 0.5 Then

     n = n + 1

  Else

     m = m + 1

Next i

小金仔细分析该程序段后,发现其中缺少了(   )

A . End If B . For C . Next D . If
素数只能被1和它本身整除,不能被其他自然数整除。编写VB程序实现如下功能:单击“产生奇数并判断”按钮Command1,随机产生一个三位正奇数显示在文本框Text1中,并在文本框Text2中显示其是否为素数的判断结果。例如,当随机产生的三位正奇数为953时,程序运行界面如图a所示。

  1. (1) 在设计程序界面时,应使用图b所示“控件工具箱”中的 (填写相应编号)添加文本框Text1。
  2. (2) 实现上述功能的VB程序如下,请在划线处填写合适的代码。

      Private Sub Command1_Click()

        Dim n As Integer, i As Integer

        Dim flag As Boolean ‘用于标记是否为素数

        Randomize

        n = Int(  ①  )*2+1

        Text1.Text = Str(n)

        flag = True ‘标记为素数

        i = 3

        Do While i <= n - 1 And flag = True

          If  n Mod i = 0  Then

             flag = False

          End If

          i = i + 2

        Loop

    If   ②   Then

          Text2.Text = Str(n) + “是素数”

    Else

          Text2.Text = Str(n) + “不是素数”

        End If

      End Sub

     ②

  3. (3) 以下选项中,与加框处表达式“n Mod i = 0”等价的是       (单选,填字母)。
    A . n \ i = Int(n / i) B . n \ i = n/ i C . n Mod i = n \ i
某算法的部分流程图如图所示,执行完这部分流程后,变量i,s的值分别是(  )

A . 3,9 B . 4,18 C . 5,18 D . 6,43
简易加法器:小王用VB编写了一个简易加法器,其功能如下:在文本框Text中输入数字,中间用“,”隔开,单击“计算”命令按钮 Command1后,其计算结果输出在标签框 Label1中。运行界面如图所示,VB程序代码如下,请回答以下问题。

  1. (1) 观察代码,可知“计算”命令按钮的对象名为
  2. (2) 请在划线处填入合适的代码。

    Private Sub Command_Click( )

    Dim i As Integer, j As Integer, ans As Integer

    Dim ch As String, s As String

    s= Text1 Text

    ans = 0:j = 1

    For i =l To Len(s)

           ①    

        If ch = "," Then

            ans =ans Val (Mid(s, j, i-j))

            j=     ②    

        End If

    Next i

    Label1. Caption ="计算结果是:"+Str( ans)

    End sub

     ② 

  3. (3) 运行该程序,在文本框中输入“21,5,3”,则计算结果(值)是
小明用VB编写了查找第二小的数的程序界面如图所示,程序随机产生50个范围在1~1000之间的随机整数,单击“查找”按钮能够在标签 Label1中显示第二小的数字。

Private Sub Command1_ Click( )

  Dim n As Integer, i As Integer

  Dim a(1 To 50) As Integer

  Randomize

  For i=1 To 5

        ①      

    List1 AddItem Str(a(i))

  Next i

  If a(1) < a(2) Then

    firstmin=a(1)

    secondmin =a(2)

  Else

    firstmin=a(2)

    secondmin=a(1)

  End if

  For i=3 To 50

    If a(i) < secondmin Then

      If        ②        then

        Secondmin = firstmin

        firstmin = a (i)

      Else

                 ③         

      End If

    End If

  Next i

  Label1. Caption = "第二小的数是" str(secondmin)

End Sub

  1. (1) 为了在列表框List1中加入随机产生的数字,小明在程序中写了语句 “List1. AddItem Str(a(i))”,其中Addltem是List1对象的。(填字母:A .属性/B .事件/C .方法)
  2. (2) 为实现上述功能,请在划线处填入合适的代码。

     ② ③ 

“轮转后有序数组(Rotated Sorted Array)”是取有序数组中某一个数为分割点,将分割点之前的所有数都轮转到数组的末尾所得的数组。比如7,11,13,17,2,3,5就是一个轮转后有序数组,原有序数组中的子串{2,3,5}被轮转到了数组的末尾处。对于一个轮转后有序数组arr也可以进行对分查找,算法思路如下(以升序为例):每次根据查找的左侧位置L和右侧位置R求出中间位置M,M左边[L,M]和右边[M+1,R]这两部分中至少有一个是有序的(可根据中间位置数据和边界数据的大小关系进行判断)。

arr[M]和待查找数据key比较:

①arr[M]= key,返回M的值;

②若M位置的右侧有序,当待查找数据在右侧时则下次在右侧查找,否则在M左侧查找;

③若M位置的左侧有序,当待查找数据在左侧时,下次在左侧查找,否则在M右侧查找。

  1. (1) 对轮转后有序数组{7,1,13,1,2,3,5}使用函数Search( )查找key值3,则查找次数为
  2. (2) 以下VB程序实现了对轮转后有序数组arr进行分查找的过程,如果查询成功,返回M值,查询失败则返回-1。请补充程序中划线处的代码。

    Function Search (key As Integer, L As Integer, R As Integer) As Integer

        ①           ‘填写合适的代码

    Do While L < R And Search =-1

      M=(L+R)\2

      If arr(M) = key Then

        Search = M

      Else

        If     ②    Then      ‘填写合适的代码

          If arr(L) < = key And key arr(M)Then

            R=M-1

          Else

            L=M+1

          End If

        Else

          If        Then     ‘填写合适的代码

            L=M+1

          Else

            R = M-1

          End if

        End if

      End If

    Loop

    End Function

数组a中存储的是左右交替上升的n个正整数,如下表所示:

a(1)

a(2)

a(3)

a(n-2)

a(n-1)

a(n)

3

25

38

55

31

12

依据对分查找思想,设计一个在数组a中查找数据key的程序,实现该功能的VB程序如下,但加框处代码有错,请改正

Private Sub Command1_Click( )

Const n = 6

Dim a (1 To n) As Integer, flag As Boolean

Dim i As Integer, j As Integer, m As Integer, key As Integer

‘读取一组正整数,按上述规则存入数组a中

‘代码略

key = Val(Text1. Text)

i = 1

j = (n+1) \2

flag= False

Do While     And Not flag     ‘①

  m = (i+j) \2

  If key = a(m) Then

    flag= True

  ElseIf key < a(m) Then

    j = m-1

  Else

    i = m+1

Loop

If Not flag And j > 0 Then

  m =       ‘②

  If key = a(m) Then flag = True

End If

If flag Then

  Text2.ext = str(m)

Else

  Text2.Text= “找不到”

End if

End sub

①加框处应改为

②加框处应改为

某VB程序段如下:

s = "491053"

For i = 1 To 3

   n = Len(s)

   k = 1

   For j = 2 To n

    If Mid(s, k, 1) >= Mid(s, j, 1) Then

      k = j

    Else

      Exit For  'Exit For表示退出循环

    End If

   Next j

   s = Mid(s, 1, k - 1) + Mid(s, k + 1, n - k)

 Next i

Label1.Caption = s

执行该程序段后,标签Label1中显示的值是(  )

A . 053 B . 953 C . 913 D . 103
某对分查找算法的VB程序段如下:

i=1:j=8

k=Int(Rnd * 100)

Do While i<=j

  m=(i+j+1)\2

  If k=a(m)Then Exit Do

  If k<=a(m)Then j=m-1 Else i=m+1

Loop

数组元素a(1)到a(8)的值依次是“13,27,36,42,48,51,66,83”,则以上程序段执行后,下列说法不可能正确的是(  )

A . m=j-4 B . i=j C . j=i+1 D . j=m+1
有多组“123”连接的字符串,如“123123123”,若删除其中一个任意位置的字符,如第8位字符“2”,则得到新字符串“12312313”。编写一个如图所示的VB程序,实现以下功能:输入非空新字符串s,找出被删除字符在原字符串中的位置。如输入“12312313”,则输出“原字符串的第8个字符被删除”。

s= Text1.Text

For i= 1 To Len(s)

    a(i) = Val(Mid(s, i, 1))

Next

L=1: R= Len(s) + 1

Do While L<R

    m= (L+R) \2

    If  Then

        R= m

    Else

        L=m+ 1

    End If

Loop

Label1 .Caption = "原字符串的第"+ + "个字符被删除"

上述程序段2个方框处的代码分别为(  )

A . ⑴ (m- 1) Mod 3 +1<>a(m)  ⑵ Str(L) B . ⑴ (m- 1) Mod 3+<>a(m)    ⑵ Str(m) C . ⑴ m Mod 3= a(m)          ⑵ Str(L) D . ⑴ m Mod 3 = a(m)          ⑵ Str(m)
某算法部分流程图如图所示。执行这部分流程,输出 n 的值是(  )

 

A . 3 B . 4 C . 5 D . 6
已知整型变量ab为小于20的正整数,下列VB语句交换变量a,b值方法错误的是(    )
A . a=a+b:b=a-b:a=a-b B . a=a-b:b=a+b:a=b-a C . a=a*b:b=a/b:a=a/b D . a=a/b:b=a*b:a=b/a
奇偶校验是一种校验数据传输正确性的方法。其中奇校验方法:统计二进制数据的数位中“1”的个数,若个数为奇数,则校验位值为0,否则校验位值为1。小李编写了一个计算奇校验位值得VB程序,功能如下:在文本框Text1中输入1~255十进制待校验数,单击“计算”按钮Command1后,在文本框Text2中显示该数对应的二进制值,并在标签Label3中显示该数的校验位值。程序运行界面如图所示。
  1. (1) 在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的属性,要修改窗体的标题,应该应修改该窗体的属性。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

    Private Sub Command1_Click()

    Dim a As Integer, s As String

    Dim n As Integer, t As Integer, v As Integer

    n = Val(Text1.Text)

    t = 0

    s = ""

    Do While n > 0

      a = n Mod 2

      n = n \ 2

      t =

      s = Str(a) + s

    Loop

    v = t Mod 2

    Text2.Text = s

    Label3.Caption = "校验位值:" +

    End Sub

  3. (3) 运行该程序,在文本框Text1中输入22,单击“计算”按钮,则显示的校验位值是 。

赋值语句的基本格式是: = 表达式。其中格式中的“=”表示
下列可以作为python变量名的是(     )
A . 'a1' B . ke3y C . False D . if
有效的变量名是(      )。
A . $343 B . 9X C . import D . max_radius
以下程序的运行结果是(    )

Private Sub Form_Click( )

    a= 1: b= 1

    Print"A="; a; "B="; b

    Call mult(a, b)

    Print"A=";a; "B=";b

End Sub

Sub mult(x, y)

    x=2* x

    y=3*y

End Sub

A . A=1 B=1

A=1 B=1

B . A=1 B=1

A=1 B=3

C . A=1 B=1

A=2 B=3

D . A=1 B=1

A=2 B=1

下列给变量名a的赋值语句中,赋值后变量a不是实型的是(     )
A . a=5.0∥2 B . a='2.0' C . a=6/2 D . a=3%2.0
最近更新