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

【加试题】表达式29\3+10 mod int(36/5)+3的值是(   )
A . 5 B . 9 C . 15 D . 13
已知x=17,y= "-315",则VB表达式x+Len(y)的值为(   )
A . -298 B . 17 C . 21 D . "17-315"
【加试题】维吉尼亚密码。如下图所示,分别用行和列表示待加密的字符(明文)和当前字符的密钥,行和列的交叉点的字符即为加密后的结果(密文)。在加密时,密文与明文的字母大小写形式保持一致,如:明文字母为大写,则加密后的密文字母也为大写;当密钥长度不足时重复使用密钥。

例如:当明文M=HelloWorld,密钥K=abc时,密文C=HfnlpYosnd。运算过程如下所示:

明文:HelloWorld

密钥:abcabcabca

密文:HfnlpYosnd

依据上述算法描述设计了如下VB程序。请回答下列问题:

  1. (1) 若明文是Jia,密钥是Pass,则输出的密文是:
  2. (2) 请在划线处填上合适的代码

    Const MIN_ASC = 65

    Function X2D(x As String) As String

      Dim s As String, zf As String, i As Integer

      s = ""

      For i = 1 To Len(x)

        zf = Mid(x, i, 1)

        If zf >= "a" And zf <= "z" Then

          s=s+

        Else

          s = s + zf

        End If

     Next i

     X2D = s

    End Function

    Private Sub Command1_Click()

    Dim M As String, K As String, C As String, flag As Boolean

    Dim i As Integer, t As Integer, ch As Integer, pos As Integer, j As Integer

    M = Text1.Text       '明文

    K = Text2.Text       '密钥

    t = Len(K)

    K = X2D(K)

    C = ""

    For i = 1 To Len(M)

      ch = Asc(Mid(M, i, 1))

      flag = False

      If ch >= 97 And ch <= 122 Then ch = ch - 32: flag = True

      pos=                  '密钥的字符位置值

      If pos = 0 Then pos = t

      j = Asc(Mid(K, pos, 1))      '密钥字符的ASCII值

      ch = ch - MIN_ASC

      j = j - MIN_ASC

      ch=

      ch = ch + MIN_ASC

      If flag Then ch = ch + 32     '设置字母的大小写形式

      C = C & Chr(ch)

    Next i

    Text3.Text = C

    End Sub

大数加法。在文本框Text1和Text2中输入两个大数,点击“相加”按钮后,在文本框Text3中输出结果。

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

Private Sub Command1_Click()

Dim s1 As String

Dim s2 As String

Dim s3 As String

Dim l1 As Integer

Dim l2 As Integer

Dim l3 As Integer

Dim a(1 To 100) As Integer

Dim b(1 To 100) As Integer

Dim c(1 To 100) As Integer

Dim t As Integer

s1 = Text1.Text

s2 = Text2.Text

l1 = Len(s1)

l2 = Len(s2)

For i = l1 To 1 Step -1

 a(i) =

Next

For i = l2 To 1 Step -1

 b(i) =Val(Mid(s2, l2 - i + 1, 1))

Next

If l1 > l2 Then l3 = l1 Else l3 = l2

t = 0

For i = 1 To l3

  c(i) = a(i) + b(i) + t

  t = c(i) \ 10

  c(i) =

Next

For i = 1 To l3

  s3 = Str(c(i)) + s3

Next

IfThen s3 = “1” + s3

Text3.Text = s3

End Sub

编写VB程序,在文本框Text1中输入需要产生的密码个数n,单击“确定”按钮confirm,生成n个长度为6的由大小写字母和数字0~9组成的密码,并在列表框中显示。程序运行时界面如下图所示。

为实现上述功能请在划线处填上合适代码

Private Sub confirm_Click()

Dim i As Integer, j As Integer

Dim n As Integer, m As Integer Dim k As Integer, s As String Const length=6

n=Val(Text1.Text)i=1

List1.Clear

s=""

For j=1Tolength

k=Int(Rnd()*3)+1

If k=1Then

    m=Int(Rnd()*26)+1

    s=s+Chr(Asc("a")+m-1)

ElseIf k=2Then

    m=Int(Rnd()*26)+1

    s=s+Chr(Asc("A")+m-1)

Else

    m=⑴

    s=s+Chr(Asc("0")+m-1)

    EndIf

    Next j

    List1.AddItemStr(i)+""+s

    ⑵

Loop

End Sub

编写VB程序,实现如下功能:在文本框Text1中输入十进制整数,单击“转换”按钮后,在标签上分别输出该整数对应的进制转换结果,运行效果如下图所示:

  1. (1) 根据程序可知,“转换”按钮的对象名是
  2. (2) 请在划线处填入合适的代码。

    Function chg 10(a As Integer, m As Integer) As String

    Dim k As Integer, p As Integer

    Dim temp As String

    Dim x As String

    x = "0123456789ABCDEF"

    k=n

    Do While   ①  

      p=k Mod m

        ②  

      k=k\m

    Loop

    chg10=temp

    End Function

    Private Sub Cmrd1_Click()

      Dim a As Integer

    a= Val(Text1.Text)

      Label5.Caption = chg10(a, 2)

      Label6.Caption = chg10(a, 8)

      Label7.Caption = chg10(a, 16)

    End Sub

  3. (3) 运行该程序,若在文本框Text1中输入整数"159",转换后在标签Label6中显示的结果是
小明编写了一个VB程序对数组a(1 to 20)进行处理:首先随机生成20个两位正整数,然后对所有“是3的倍数”的数字进行升序排序,其余的数原位不动。

在列表框List1中显示整理前的数据,单击“排序”按钮,整理结果显示在列表框List2中,程序运行界面如图所示。

Dim a(20) As Integer

Private Sub Form_Load()

    Randomize  '对随机函数进行随机初始化

    For i = 1 To 20

        a(i) =   ① 

        List1.AddItem Str(a(i))

    Next i

End Sub

Private Sub Cd1_Click()

    Dim Done As Boolean

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

    For i = 20 To 1 Step -1   

        If a(i) Mod 3 = 0 Then Exit For  'Exit For表示跳出For循环

    Next i

    If i = 0 Then

        Label1.Caption = "没有满足条件的数"

    Else                                    ‘对能被3整除的数进行排序

           ②  

        Do While Not Done

            j = i 

            Done = True

            k = j - 1

            Do While k >= 1

               If a(k) Mod 3 = 0 Then

                    If a(k) > a(j) Then t = a(k): a(k) = a(j): a(j) = t:  Done = False

                       ③ 

               End If

               k = k - 1

            Loop

        Loop

    End If

    For i = 1 To 20

        List2.AddItem Str(a(i))

    Next i

End Sub

  1. (1) “排序”按钮的对象名是(单选,填字母:A .Click/B .Cd1/ C .Command1)。
  2. (2) 请在划线处填入合适的代码。

     ② ③ 

下列关系或逻辑表达式的结果为“True”的是(   )。
A . 2*2< 2+2 B . "123"+45<178 C . Not(6<>11) D . (5 > 0) And (4 < 3)
暑假小明的弟弟问了他一道小学一年的数学题,题目是:“小红去超市买东西,里面有:巧克力一盒28元、火腿肠一包24元、皮球一个16元、毛巾一条4元、N95口罩一包15元、笔记本一本8元、铅笔盒一个7元、水晶泥一盒12元、水彩笔一盒24元、牛奶一瓶5元等很多商品。小红带的钱刚好购买其中的两样东西。请问她可以买哪两样东西,有几种组合?”为解决这个问题,小明专门编写了一个VB程序。在文本框中text1输入商品和价格,在文本框text2中输入带的钱,单击“挑选”按钮,在列表框list1中输出查询结果。程序运行界面如下图:

请回答下面问题:

  1. (1) 下列对象中,有Caption属性的是(单选,填字母:A .Command1/B .Text1/C .Lis1)。
  2. (2) 实现挑选两样商品功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

    Dim n,i,j,k,x,L,R,c As Integer

    Dim goods(1 To 20)As String      'goods(i)存储商品的名称

    Dim price(1To 20)As Integer       'price(i)存储商品的价格

    Dim s,ch As String

    s=Text1.Text:x=Val(Text2. Text)

    j=1:k=0

    For i=1 To Len(s)

        ch=Mid(s,i,1)

        If ch="," Then

          k=k+1

          If k Mod 2=1 Then

           

          Else

              price(k\2)=Val(Mid(s,j,i-j))

          End If

          j=i+1

        End If

    Next i

    n=k\2

    For i=1 To n-1

        For i=1 To n-i

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

            k=price(j):price(j)=price(j+1):price(j+1)=k

           

          End If

        Next j

    Next i

    For i=2 To n

     

      L=i:R=n

      Do While L<=R

        m=(L+R)\2

        If price(m)+price(k)=x Then

            c=c+1

            List1. Addltem goods(k)& Str(price(k))&"元 和" & goods(m)& Str(price(m))& "元"

            j=m

            Do While price(j)=price(j-1)

              j=j-1

              c=c+1

              Listl. Addltem goods(k)& Str(price(k))& "元 和" & goods(j)& Str(price(j))& "元"

            Loop

            Do While

              m=m+1

              c=c+1

              List1. Addltem goods(k)& Str(price(k))& "元 和" & goods(m)& Str(price(m))& "元"

            Loop

            Exit Do    ‘Exit Do 表示退出Do循环

        Elself price(m)+price(k)>x Then

            R=m-1

        Else

            L=m+1

        End If

       Loop

    Next i

    List1. Addltem"共有:" & Str(c)& "种组合"

    End Sub

  3. (3) 程序中加框处代码有错,请改正。
在VB中表示“x属于区间[a,b)”的正确表达式是(  )。
A . a<=x And x<b B . a<=x Or x<b C . a≦x And x<b D . a<=x<b
下列 VB表达式中,计算结果与其他不同的选项是(      )
A . 2 Mod 8 + 1 B . Len("2") + 1 C . Sqr(Abs(23-32)) D . 27 Mod 8 \ 2
下列VB表达式中值为奇数的是(    )
A . Len(“21”)+2 B . Sqr(36) + Int(-3.6) C . Int(Rnd*11)*2+11 D . 2019 \ 100 mod 10
下面代码的输出结果是(     )

x=10

y=3

print(x%y,x**y)

A . 3  1000 B . 1  30 C . 3  30 D . 1  1000
以下三斜求积术中正确顺序是(   )

①用公式计算面积      ②输出三角形面积s

③计算                ④输入边长a、b、c

A . ④③①② B . ①③②④ C . ④①③② D . ①②③④
下列VB表达式中,值最大的是(   )
A . Abs(-8)+Len("Taizhou") B . Val(Mid("Zhe2017Jiang", 6, 2)) C . Int(2*Sqr(49)+7.5)/3 D . 10^2 Mod 25\2^2
设a=2,b=3,c=4,表达式a>b And b<=c值是(   )。
A . 5 B . 1 C . True D . False
Python中“/”表示求余。
下列Python表达式的值不是2的是(   )。
A . 3%2 B . 5//2 C . 1*2 D . 1+3/3
设a=2,b=5,在python中,表达式a>b And b>3的值是(    )
A . False B . True C . -1 D . 1
在Python中,设a=5,b=8,表达式not(a-b)>=0值是(     )
A . 1 B . -1 C . True D . False