运算符、基本运算与表达式 知识点题库

有如下 V B 程序段:

Dim s(1 To 6) As String

Text1.Text = ""

For i = 1 To 5

   For j = i + 1 To 6

       If s(i) + s(j) < s(j) + s(i) Then

        t = s(j): s(j) = s(i): s(i) = t

       End If

    Next j

Next i

For i = 1 To 6

  Text1.Text = Text1.Text + s(i)

Next i

如果程序运行,一开始当数组元素s(1)到s(6)的值依次为“4”、“343”、“312”、“12”、“246”、“121”,运行该段代码后,文本框Text1中显示的内容为(   )

A . 434331224612121 B . 434331224612112 C . 343312246121124 D . 121122463123434
在VB中,能够正确表示代数式 的是 (   )
A . x^3+1/abs(x)+sqr(x) B . (x^3+1)/abs(x)+sqr(x) C . x^3+1/(abs(x)+sqr(x)) D . (x^3+1)/(abs(x)+sqr(x))
有VB 程序如下:

Private Sub Command1_Click()

    Dim s1 As String, s2 As String, ch As String

    s1 = Text1.Text

    s2 =””

    ch =””

    For i = 1 To Len(s1)

      ch = Mid (s1, i, 1)

      If Asc(ch) <= 122 And Asc(ch) >= 97 Then

        ch =Chr(Asc(ch) - 32)

      End If

      If Asc(ch) >= 65 And Asc(ch)<= 90 Then

        ch = Chr(65 + (Asc(ch) - 62) Mod 26)

      End If

      s2 = s2 + ch

    Next i

    Text2.Text = s2

  End Sub

已知大写字母A的ASCII码值为65,且小写字母的 ASCII 码为对应的大写字母的ASCII码加上32。运行上述程序,若文本框Text1 中的内容为“Text1”,单击命令按钮 Command1,则文本框Text2中将显示(  )

A . Whawl B . WHAW1 C . Whaw3 D . WHAW3
在 Visual Basic 中,关系表达式 x/y=x\y 为真,则说明(  )
A . x不能被y整除 B . x与y一定不相等 C . x与y一定相等 D . x 能被y整除
某算法的部分流程图如图所示,输出值s为(  )

A . 4 B . 9 C . 16 D . 25
小李利用所学的VB知识,编写了一个简单计算器:在文本框Text1中输入一个加减算式(只包含数字和“+”“一”符号,以“=”结束),点击“计算”按钮 Command1,计算结果在标签 Label上显示,程序运行界面如图所示。

  1. (1) 要实现程序运行时,单击文本框Text1即可将文本框清空,则应在

    (A .Command1_Click        B .Form_load     C .Text1_Click)事件处理过程中添加语句 Text1. Text=“”。

  2. (2) 实现上述功能的VB程序如下,请在画线处填入合适的代码。

    Private Sub Command1_Click(  )

      Dim s As String, ch As String, sum As Integer

      Dim fh As Integer

      s= Text1.Text:fh=1:p=0:sum =0

      For i= 1 To Len (s)

        ch= Mid(s, i, 1)

        If ch>="0"And ch <="9" Then

          p=   ①  

        Else

          sum=   ②  

          p=0

          If ch ="—"Then

            fh=-1

          Elself ch ="+" Then

            fh=1

          End If

        End If

      Next i

      Labell. Caption= Str(sum)

    End Sub

     ② 

  3. (3) 若文本框Text1中输入的内容为“12*10=”(不包括双引号),单击“计算”按钮后,标签 Label1上将显示(A .120    B .22        C .0        D .程序出错无法显示)
一个十进制整数的二进制表示中,如果数字“1”的个数多于数字“0”的个数,则称该整数为A类数。如十进制整数26的二进制表示为11010,26是一个A类数。下列VB程序的功能是寻找前1000个自然数中所有A类数,在List1中输出,并将统计个数在Text1中输出。
  1. (1) 十进制数37(选填:是/不是)A类数。
  2. (2) 请在划线处填入合适的代码。

    Private Sub Command1_Click( )

    Dim i As Integer, n As Integer

    Dim s As Integer     ‘s为A类数的个数

    Dim t As Integer     ‘t为二进制数中 “1”的个数

    Dim k As Integer     ‘k为二进制数中 “0”的个数

    s=0

    For=1 To 1000

        n=i:t=0:k=0

        Do While n>0

            If     ①      Then t = t+1
            Else k = k+1

               ②    

        Loop

        If t > k Then

            List1. Additem Str(i)

            s=s+1

        End If

    Next i

    Text1.Text=str(s)

    End Sub

     ② 

有两个以字母结尾的字符串s1和s2,在忽略字符串中空格的前提下判断它们是否相同。实现该功能的VB程序段如下:

i=1:j=1

Do While i<=Len(s 1) And j<=Len(s 2)  

   If Mid(s1,i,1) =Mid(s2,j,1) Then

      i=i+1:j=j+1

   Else

    

   End If

Loop

If i>Len(s1) And j>Len(s 2) Then Text 1.Text=”相同” Else Text1.Text=“不相同”

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

①If Mid(s1,i,1) =“” Then i=i+1

②If Mid(s2,j,1) =“” The nj=j+1

③If Mid(s1,i,1) <>“” And Mid(s2,j,1) <>“” Then Exit Do    'Exit Do表示退出循环
代码顺序正确的是(  )

A . ①②③ B . ②①③ C . ②③① D . ③②①
在VB中,若x是能被7整除的正整数,则下列表达式的值一定为真的是(  )
A . x Mod 7=0 B . X\7=0 C . Int(x/7)= 0 D . 7 Mod x=0
某校跳高比赛计分规则如下:每个高度每位选手最多试跳三次,成功记为1,失败或轮空记为0。如选手第一次试跳成功记为100,第二次试跳成功记为010,第三试跳成功记为001,三次失败则终止比赛。编写VB程序统计选手积分,在文本框Text1中输入姓名和成绩,在列表框List1中输出结果,其算法如下:1.将每个选手的跳高记录三位一组转换成十进制数存储到数组a (该数组元素的值都不相同)。2.先比较数组a中各数组元素的长度,长度长的排名在前;若长度相同的情况下从后往前依次比较字符大小,当前数值大的排名在前。程序运行界面如图所示:

请在划线处填入合适的代码。

Dim a(1 To 9) As String   '存储跳高成绩

Dim b(1 To 9) As String   '存储学生姓名

Dim c(1 To 9) As Integer

Private Sub Command1_Click()

Dim ch As String, tmp As Integer, t As Integer

Dim p As Integer, k As Integer, i As Integer, j As Integer

Dim s As String

s = Text1.Text: t = 0

For i = 1 To .

    If Mid(s, i, 1) <> "/" Then

        ch = ch + Mid(s, i, 1) 

    Else

        t = t + 1

        If t Mod 2 = 0 Then

          a(t \ 2) = zh(ch)

        Else

         

        End If

       ch = ""

    End If

  Next i

For i = 1 To t\2

c(i) = i

Next i

  For i = 1 To t \ 2 - 1

    p = i

    For j = i + 1 To t \ 2

       If Len(a(c(p))) < Len(a(c(j))) Then

          p = j

       ElseIf Len(a(c(j))) = Len(a(c(p))) Then

          k = Len(a(j)): flag = True

          Do While k >= 1 And flag

             If Val(Mid(a(c(j)), k, 1)) > Val(Mid(a(c(p)), k, 1)) Then

                p = j

                flag=false

             ElseIf val(Mid(a(c(j)), k, 1)) = val(Mid(a(c(p)), k, 1)) Then

                k = k - 1

             Else

               flag = False

             End If

          Loop

       End If

    Next j

    If p <> i Then

      tmp = c(i): c(i) = c(p): c(p) = tmp

    End If

  Next i

  For i = 1 To t \ 2

     

  Next i

End Sub

Function zh(cm As String) As String

  Dim temp As String

  Dim i As Integer, j As Integer

  For i = 1 To

     For j = 1 To 3

        temp =temp * 2 + Val(Mid(cm, (i - 1) * 3 + j, 1)) .

     Next j

     zh = zh + CStr(temp)     'CStr函数可把表达式转换为字符串类型

     temp = 0

  Next i

End Function

下列有关VB表达式的描述,正确的是(  )
A . VB的基本表达式包括算术表达式、关系表达式和条件表达式 B . VB表达式“Int(3.14159*1000) / 1000”的值为3.142 C . VB表达式“Abs(Int(-20.19)) + Len(Mid("20.19",2))”的值是25 D . VB表达式“20201 \ 10 + Int(Sqr(5))”和“Len("2020") + 2”的值相等
下列程序段执行后,变量a,b的值分别为(  )。

a=15

b=20

a=a+b

b=a-b

a=a-b

PRINT a, b

A . 20,15 B . 35,35 C . 5,5 D . 15,20
有一组原来按升序排列的正整数,第p个至第q个数据(p和q的值分别由文本框Text1和Text2输入,且p<q)的区间被打乱,其他数据的位置不变,小陈首先依据冒泡排序的思想对该区间中的数据进行升序排序使得整组数据恢复升序排列,然后依据对分查找的思想在该组数据中查找满足[k1, k2](k1和k2的值分别由文本框Text3和Text4输入,且k1<k2)范围的数据个数并显示在标签Label1中。相关示例如下(其中p=4,q=7,k1=70,k2=80)。

排序前

55

70

70

78

71

79

75

80

80

90

排序后

55

70

70

71

75

78

79

80

80

90

查找该组数据中满足[k1, k2]范围的数据个数为:8

实现上述功能的VB程序如下,请回答下列问题:

  1. (1) 下列对象中没有Caption属性的是 (单选,填字母:A . 标签 Label1 /B . 命令按钮 Command1 /C . 文本框 Text1)。
  2. (2) 程序加框处代码有错,请改正。

    Private Sub Command1_Click()

    Const n = 10

    Dim a(1 To n) As Integer, k As Integer

    Dim i As Integer, j As Integer, k1 As Integer, k2 As Integer

    Dim p As Integer, q As Integer 

    Dim b As Integer      '查找满足条件的第一个数据所在数组元素的下标

    '读取排序前的一组正整数,存储在数组a中。代码略

    p= Val(Text1.Text)

    q = Val(Text2.Text)

        For i = p To q - 1

            For j =  Step -1

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

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

                End If

            Next j

        Next i

        k1 = Val(Text3.Text) 

        k2 = Val(Text4.Text) 

        i = 1: j = n

        Do While i <= j

            m = (i + j) \ 2

            If   ①    Then

                i = m + 1

            Else

                j = m - 1

            End If

        Loop

        b =    ②   

        i = 1: j = n

        Do While i <= j

            m = (i + j) \ 2

            If a(m) <= k2 Then

                i = m + 1

            Else

                j = m - 1

            End If

        Loop

    Label1.Caption = Str   ③     

    End Sub

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

     ② ③ 

以下给出的式子中,正确的赋值表达式是(   )
A . 6 ← Q B . K + 1 ← x C . A ← A * A D . -H ← G /10
在python语言中,下列表达式中不是关系表达式(     )
A . m<=n B . m>=n C . m or n D . m!=n
将数学表达式 写成Visual Basic表达式,正确的是(    )
A . Int(Abs(ab-c*c)) B . Sqr(Abs(ab-c*2)) C . Int(Abs(a*b-c*c)) D . Sqr(Abs(a*b-c*c))
在Python中,设a=2,b=3,表达式(not a>b) and b>=3的值是(       )
A . 1 B . 0 C . True D . False
水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身(例如:13+53+ 33=153)。通过Python编程可以得到所有的3位水仙花数并打印出来。
  1. (1) 实现上述功能的部分程序代码如下,请在划线处填入合适的代码。

    for i in range():

    a=i// 100                #取出百位数字

    b=          #取出十位数字

    c=i%10                    #取出个位数字

    if

    print(“水仙花数是:”, i)

  2. (2) 加框处的代码有误,以下可以代替此代码的正确代码有(       
    A . a**3+b**3+c**3== i: B . not i!=a**3+b**3+c**3: C . a**3+b**3+c**3!=I D . i== a**3+b**3+c**3 E . (a+b+c)**3= =i:
下列VB表达式的值等于2021的是(        )
A . Mid("20210901", 1, 4) B . Len("2020") + 1 C .  Str(2020) + "1" D . 2021 Mod 100 + (2021 \ 100) * 100
有如下 Python 程序段:

a=abs(-13.25)

b=round(25.335655, 2)

c=(b-a)*100  

Print(c)

则执行程序输出的结果为(    )

A . 1209.0 B . 1859.0 C . 1209.6 D . -1209.6