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

设 C= “A”,写出下列布尔表达式的值。
  1. (1) C>= “0” And C <= “9” Or C >= “A” And C <= “Z”
  2. (2) C<= “0” And C >= “9” Or C>= “A” And C <= “Z”
  3. (3) C>= “0” And C <= “9” And C>= “A” And C <= “Z”
  4. (4) C>= “0” Or C <= “9” And C>= “A” Or C <= “Z”
小丁想买几张6+1彩票,选号时,他希望前4位用自己的生日:11月8日,即1108,特别号码他选了买彩票日子的个位数5,并且他希望前六个数字组成的数能被他的幸运数字9整除。他的好朋友小杰帮他设计了一个VB程序,可以提供一份符合这些要求的号码清单供他挑选。相应的界面如图1所示。阅读程序并完成后面的问题。


  1. (1) 设计应用程序界面时,为添加a所指向的对象,应使用图2所示的“控件工具箱”中的 (填写相应编号)。


  2. (2) 请根据题意将下列程序补充完整。

    Private Sub Command1_Click()

    Dim i As Integer, j As Integer, c As Integer,n As Long

    c = 0

        n = 110800 + i

                If  Then

            List1.AddItem Str(n) + " " + "5"

            

       End If

    Next i

    Label2.Caption = "满足条件的数有:" + Str(c) + "组"

    End Sub

在密钥加密方式中,可以通过自己指定的一个密钥将字符串加密,而解密也必须通过密钥。本题采用的具体实现方法是将字符串的每个字符转换为ASCII码,顺序加上密钥中的对应数字后转换回ASCII字符得到密文(当密钥位数不够时重新从第一位循环)。

以原文:Hello,密钥:123为例,“H”转换为ASCII码后加上密钥的第一个数字1,再转换回ASCII字符,得到“I”;“e”转换为ASCII码,加上密钥的第二个数字2,转换回ASCII得到“g”;“l”则加上密钥的第三个数字3得到“o”;随后原文又出现“1”,但是密钥中的数字已经用完了,则密钥从头开始,加上“1”,得到“m”;“o”则得到“q”,最后产生密文“Igomq”。

具体程序如下,但是有两处加框的代码错误,请改正:

Dim code As String, key As String

Dim i As Integer, res_code As String

Dim l_code As Integer, l_key as Integer

Private Sub Command1_Click( )’加密程序

code = Text1.Text

key = Text2.Text

l_code =Len(code)

l_key =Len(key)

res_code = “”

For i = 1 To      ‘⑴

 c =Asc(Mid(code, i, 1))

 k =      ‘⑵

 res_code = res_code +Chr(k + c)

Next i

Text3.Text = res_code

End Sub

Private Sub Command2_Click( )

‘解密程序略

End Sub

 ⑵ 

下列VB表达式中的值必定为一个两位正奇数的是(  )
A . Int(Rnd (*90+11) B . Int(Rnd0*45+5)*2+1 C . Int(Rnd (*88+10)+1 D . Int(Rnd0*90+11)*2+1
下列VB程序实现数字字母混合序列分离后分别排序,最后又合并输出。具体算法如下:在文本框Text1输入若干组混合序列,每组序列中仅包含一组字母和一个多位数字,序列之间用逗号隔开,以逗号结束。单击“排序”按钮command1,把每组序列中的字母和数字分开,并分别排序,最后在列表框list1输出。排序规则如下:所有数字按从小到大升序排序,字母序列按长度升序排序,若长度相同,直接按字母序列大小升序排序(按字母的ASCII码排序,“A”<“Z”<“a”<“z”)。实现算法的部分程序界面如图所示,VB程序代码如下,回答下列问题:

Private Sub Command1_Click()

Dim a(1 To 6) As Integer, b(1 To 6) As String, i as integer, j as integer

Dim c As String, k As Integer, tmp1 As Integer, tmp2 As String

s=text1.text

i = 1: k = 1: tmp1 = 0: tmp2 = ""

Do While i <= Len(s)

      c = Mid(s, i, 1)

      If c = "," Then

         a(k) = tmp1: b(k) = tmp2

         tmp1 = 0: tmp2 = ""

              ①    

      Else

        If  Then 

           tmp2 = tmp2 + c

        Else

         tmp1=tmp1*10+val(c)

        End If

      End If

      i = i + 1

    Loop

    For i = 1 To 5

      For j = 1 To 6 - i

        If a(j) > a(j + 1) Then tmp1 = a(j): a(j) = a(j + 1): a(j + 1) = tmp1

    If Len(b(j)) > Len(b(j + 1)) Or      ②       Then

          tmp2 = b(j): b(j) = b(j + 1): b(j + 1) = tmp2

        End If

      Next j

    Next i

    For i = 1 To 6

      List1.AddItem Str(a(i)) + b(i)

    Next i

    End Sub

  1. (1) 代码“list1.AddItem”中的AddItem是(单选,填字母:A .属性名   B .对象名   C .方法   D .事件名)
  2. (2) 在程序划线处填入合适代码,使程序完整

     ② 

  3. (3) 加框处代码有错,请改正
  4. (4) 若输入的字符串为“21ckk,gho63,TCP43,23Yes,no62,phy46,”,则程序运行后第3组字符是
随机生成15个100以内[1,100]的正整数并显示在一个文本框中,再点击交换按钮将所有对称位置的两个数据对调后显示在另一个文本框中(第1个数与第15个数对调,第2个数与第14个数对调……)。小叶设计的运行界面和程序代码如下:

Dim a(1 To 15) As Integer

Private Sub Form_Load()

  Dim i As Integer, t As Integer

  Dim s1 As String, s2 As String

  Randomize

  s1 = ""

  For i = 1 To 15

    a(i) =  ①    

    s1 = s1 + Str(a(i))

  Next i

  Text1.Text = s1

End Sub

Private Sub Com1_Click()

  s2 = ""

  For i = 1 To 15

    s2 =  ②    

  Next i

  Text2.Text = s2

End Sub

  1. (1) 要使窗体的标题显示文字“数字交换”,应该更改Form1的 属性(A .Name /B .Caption /C .Font /D .Forecolor)。从程序代码可知,此命令按钮的对象名是
  2. (2) 请在划线处填入合适代码。

     ② 

  3. (3) 程序测试运行后生成如下文件:(A .jiaohuan.frm /B .jiaohuan.vbp /C .jiaohuan.vbw /D .jiaohuan.exe)。其中属于windows系统可执行文件是:(单选,填字母)。
在Text1文本框内输入字符串,单击去重按钮,将字符串后面相同的字符删除,并在Text2中输出经过删除的字符串。程序界面如图所示。请在下面划线处填入合适的代码。

Private Sub Command1_Click()

Dim s As String,s1 As String,c As String

s=Text1.Text

For i=1 To Len(s)

  c=Mid(s,i,1)

  s1=  ⑴  

  For j=  ⑵  

    If c<>Mid(s,j, 1)Then

      s1=s1+Mid(s,j,1)

    End If

  Next j
         
Next i
Text2.Text=s
End Sub

A . (1)Mid(s,1,1)    (2)i+1 To Len(s)    (3)s1=s B . (1)Mid(s,1,1)    (2)i To Len(s)       (3)s1=s C . (1)Mid(s,1,i)     (2)i To Len(s)       (3)s=s1 D . (1)Mid(s,1,i)     (2)i+1 To Len(s)    (3)s=s1
有如下VB程序段:

Randomize

a(0)=0:i=1

Do While i<= 7

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

    If i Mod 2= 1 Then

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

    ElseIf a(i) Mod 2= 1 Then

        i=i-1

    End If

    i=i+1

Loop

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

A . 7,10,7,4,20,16,44 B . 22,16,32,10,32,22,49 C . 28,4,14,16,44,28,41 D . 4,1,29,28,38,10,35
有如下 VB 程序段:

Dim s As String, ch As String

Dim i As Integer, t As Integer

s = Text1.Text : t = 0

For i = 1 To Len(s)

    ch = Mid(s, i, 1)

    If ch <> "," Then t = t * 2 + Val(ch)

    Text2.Text = Text2.Text + Str(t)

Next i

执行该程序,当文本框text1中输入了“11,10”时,文本框text2中输出的是(  )

A . 3 2 B . 1 3 7 14 C . 1 3 3 7 14 D . 1 3 3 7 14 14
  关系表达式是用连接起来的式子。当关系表达式成立时值为,不成立时值为
(贪心算法)最大整数问题:设有n个随机生成的正整数,将它们连接成一排,组成一个最大的多位整数。其求解思想是:先把整数转换成字符串,然后再比较ab和ba,如果ab≥ba,就把a排在b的前面,反之则把a排在b的后面。例如:n=3时,3个整数13,312,343,连成的最大整数为34331213。

小王同学编写了一个VB程序,功能如下:在列表框List1中随机生成n个1~1000之间的整数,单击“运行”按钮Command1后进行处理,最大整数结果输出在文本框Text1中。当n=5时,程序运行界面如图所示。

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

  1. (1) 要将按钮Command1的高度修改为800,以下赋值语句正确的是(单选,填字母:A .Command1_Height=800/B .Command1.Height=800/C .Height=800)。
  2. (2) 当n=3时,生成3个数:618,681,68,由这三个数组成的最大整数为
  3. (3) 请在画线处填入合适的代码。

    Const n=5

    Dim a(1 To 10)As Integer

    Private Sub Command1_Click( )

      Dim i, j, t As Integer

      For i=1 Ton-1

          For j=n To i+1 Step-1

              If    ①   Then

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

              End If

          Next j

      Next i

      For i=1 To n

          Text2. Text=Text2. Text+Str(a(i))

    Next i

    End Sub

    Private Sub Form_Load( )

      Randomize

      For i=1 To n

        a(i)=   ②   

        Text1. Text=Text1. Text +Str(a(i))

      Next i

    End Sub

    Function cmp(a As Integer,b As Integer) As Boolean

      If Str(a)+Str(b)<Str(b)+Str(a) Then

        cmp=True

      Else

        cmp=False

      End If

    End Function

    以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②

要求随机生成"ABCDEF"中某个字符,下列表达式中不正确的是(    )
A . Mid(“ABCDEF”,Int(Rnd*6)+1,1) B . Wid(“ABCDEF”,Int(Rnd*6),1) C . Chr(Int(Rnd*6)+65) D . Chr(Int(Rnd*6) +Asc("A"))
在Visual Basic中,下列函数的值不等于5的是(     )。
A . Int(5.1) B . Int(5.9) C . Abs(Int(-4.9)) D . Abs(Int(-5.5))
下列VB表达式中值为0的是(      )
A . Len("-20") + 20 B . Sqr(36) + Int(-5. 6) C . Asc(“0”) D . 1001 Mod 100 \ 10
程序中的表达式是按照一定的规则组合而成的,代数式 对应的Python表达式是(r1、r2和r3分别对应变量 )(      )
A . B . r1/(r1+r2)u C . r1/(r1+r2)·u D . r1/(r1+r2)*u
以下Python程序段执行后,输出结果为(    )。

m= 29

if m%3!=0:

    print (m, "不能被3整除")

else

    print (m,“能被3整除")

A . m不能被3整除 B . 29不能被3整除 C . 29能被3整除  D . m能被3整除
若要表示能被5整除的随机两位正整数,则下列表达式正确的是(    )
A . Rnd*90+10 B . Int(Rnd*10)*10+10 C . Int(Rnd*9)*10+10 D . (Int(Rnd*9)+1)*10+10
设a=16,b=4,下列表达式的运算结果中,值最小的是(     )。
A . (a +1) % b B . a % b -1 C . sqrt(b / a) D . sqrt(a) ** sqrt(b)
表达式100%8*2-5运算的结果为(    )
A . 2 B . 8 C . 3 D . 6
下列 Python 表达式的值为数值 5 的是(     )
A . int (max("5","11","100") B . len([1,2,3,5]) C . str(5) D . abs(float(-5))
最近更新