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

求表达式的值1<5  and  4>3  or  not  -1=1
【加试题】中秋节时,班级组织活动,其中有抽奖环节,小龙在7选3中选考了技术,班主任让小龙编写一个VB抽奖程序,功能如下:窗体装载过程从数据库读取所有同学的相关数据并显示在列表框List1中,抽奖时在文本框Text1中输入要抽出的人数,单击“摇奖”按钮command1,程序进行处理,结果输出在列表框list2中。程序运行界面如下图所示。

图片_x0020_25

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

  1. (1) 分析下面的程序代码,可知数据表名为
  2. (2) 请在划线处填入合适的代码。

    Dim a(1 To 100) As String '数组大小满足处理要求,学生学号

    Dim b(1 To 100) As String '数组大小满足处理要求,学生姓名

    Dim i As Integer '学生总数

    Dim j As Integer

    Dim dd(1 To 100) As Integer

    Private Sub Form_Load()

    ‘从数据库读取全班同学的相关信息,存储在数组a、数组b和变量i中

        Dim n As Integer

    Dim conn As New ADODB.Connection

    Dim rs As New ADODB.Recordset

    Dim strSQL As String

        conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & App.Path & "\1718.accdb"

    conn.Open

    Set rs.ActiveConnection = conn

    strSQL = "SELECT * FROM stuinfo"

    rs.Open strSQL

    '本过程的其他语句略

    End Sub

    Private Sub Command1_Click()

        Dim ShuruNum As Integer, k As Integer, y As Integer,n As Integer

        Randomize

        ShuruNum = Val(Text1.Text)

        Label4.Caption = ""

        For k = 1 To i

          dd(k) = 0

        Next k

        If ShuruNum > 0 And ShuruNum <= i Then

            j = 1

            Do While j <= ShuruNum

                y = Int(Rnd() * i) + 1

                If   Then'

                    dd(j) = y

                    j = j + 1

                End If

            Loop

            List2.Clear

            For n = 1 To ShuruNum

                List2.AddItem   '

            Next n

        Else

            Label4.Caption = "错误:没有输入中奖人数或超过学生总数"

        End If

    End Sub

    '核对重复,避免同一人再次中奖

    Private Function CheckCF(p As Integer) As Boolean

        Dim m As Integer,x As Boolean

        x = True '初始化

        For m = 1 To j

            If   Then '

                x = False

                Exit For

            End If

        Next m

        CheckCF = x

    End Function

闰年条件:能被4整除且不能被100整除或能直接被400整除。写出闰年的VB表达式(年份用变量y)
已知数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。小王设计了一个模拟碰撞的小球的程序,其功能为:在文本框Text1、Text2和Text3中分别输入线段长度L、小球数量n以及运动时间t,在文本框Text4中输入n个小球的初始坐标位置,单击“求解”按钮Command1,计算t秒之后,各个小球的位置,并在标签框Label5上显示结果。

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

    Private Sub Command1_Click()

        Dim n As Integer, L As Integer, t As Integer

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

        Dim s As String, result As String

        Dim a(1 To 50) As Integer, dir(1 To 50) As Integer

        L = Val(Text1.Text): n = Val(Text2.Text): t = Val(Text3.Text) s = Text4.Text

        s = s + ".": tmp = 0: k=0

        For i = 1 To Len(s)

            ch = Mid(s, i, 1)

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

                tmp = tmp * 10 + Val(ch)

            Else

                k = k + 1

                a(k) = tmp: dir(k) = 1

                tmp = 0

            End If

        Next i

        For i = 1 To t

           For j = 1 To n

                IfThen dir(j) = -dir(j)

                Else

                    For c = 1 To n

                        IfThen dir(c) = (-1) * dir(c)

                        dir(j) = (-1) * dir(j)

                    End If

                Next c

            End If

           

        Next j

        Next i

        For i = 1 To n

            result = result + Str(a(i))

        Next i

        Label5.Caption = Str(t) + "秒后小球的位置为:" + result

    End Sub

  2. (2) 若文本框Text3中输入的内容为“4”,单击“求解”按钮后,在标签框Label5中显示的结果为
有如下VB程序段:

a(1) = 1

 For i = 2 To 6

 Randomize

 a(i) = a(i - 1) + Int(Rnd * 5 + 1)

 If a(i) Mod 2 = 1 Then

   a(i) = a(i) \ 2 + 1

 Else

   a(i) = a(i) / 2

 End If

 Next i

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

A . 1 3 4 6 7 9 B . 1 2 0 3 5 6 C . 1 2 3 4 5 4 D . 1 3 4 5 1 1
字符串旋转。若整型变量s、t、c的值分别为3、9、4,则下列程序执行后str 1的值为(  )

str 1=“go it for!”

str 2=Mid(str 1, s, t-s+1)

len 1=Len(str 1) :len 2=Len(str 2)

c=c Mod len 2

For i=1To c

  str 2=Mid(str 2, len 2, 1) +Mid(str 2, 1, len 2-1)

Next i

str 1=Mid(str 1,1,s-1) +str 2+Mid(str 1,t+1,len 1-t)

A . go for it! B . for!go it C . for it go! D . it for go!
为防止某传染病,在堂食中不能两个人相邻就餐。为避免两个人相邻就餐,小明设计了一个VB程序,在Text 1中输入某一排座位就餐人员的分布情况,用字符“*”代表当前座位有人,字符“#”代表当前座位没人。如“*#**”就代表1号座位有人,2号座位没人,3号座位有人,4号座位有人。单击“检查”按钮后,若该排有人相邻就餐,则在标签Label 2中输出“警告!”;若该排没有人相邻就餐,在己入座人员不换坐的情况下,检查该排座位中是否还可以再加人就餐,若可以,则在标签Label 2中输出这排中至多还能有几个人入座;若不可以,则在标签Label 2中输出“该排人数已满”,程序运行界面如图所示。

  1. (1) 观察VB代码,可知“检查”按钮的名称为
  2. (2) 实现上述功能的VB代码如下,请在划线处填入合适的代码。

    Private Sub Cmd1_Click()

        Dim s As String, c As String

        Dim flag As Boolean

        Dim i As Integer,count As Integer

        s=Text 1.Text

        flag=True

        For i=1 To Len(s) -1

            c=Mid(s,i,2)

            If c=“**”Then

                

                Exit For

            End If

        Next i

        s=“#”+s·“#”

        count =0:i= 2

        Do While flag And i<=Len(s) -1

            If Then

                s=Mid(s,1,i-1) +“*”+Mid(s, i+1, Len(s) -i)

               

            End If

            i=i+1

        Loop

        If Not flag Then

            Label2.Cnption=“警告!“

        Elself count = 0 Then

            Label2.Caption=“该排人数己满”

        Else

            Label2.Caption=“该排至多还能有”+Str(count) +“个人入座”

        End If

    End Sub

     ② ③ 

下列VB表达式的值等于数值2020的是(  )
A . Abs(Int(-2020.34)) B . Len(“2019”)+1 C . Str(2010)+”10” D . Mid(“19-3-2020”,6,4)
地球上任意位置可以用纬度、经度描述,纬度区间是[-90,90],经度区间是[-180,180]。如:浙江省绍兴市越城区鲁迅故里的纬度是29.9924099,经度为120.58552218。为表达位置间的邻近关系,引入了地理区域编码,某算法的核心思想如下:

•将地理上某点经纬度分别转换成二进制编码。例如,对于给定纬度lat(299924099),编码规则为:

•将区间[-90,90]二分为[-90,0),[0,90],称为左、右区间,1at属于右区间[0,90],标记为1;

•将区间[0,90]二分为[0,45),[45,90],lat属于左区间[0,45),标记为0;

•重复上述过程,不断划分区间,lat属于左区间则记录0,属于右区间则记录1。直到达到指定编码长度 length(一般为5的倍数)为止类似地,可对经度lng(120.58552218进行二进制编码。

·Base32编码合成为地理区域字符串。以编码长度 length=10为例,如前述计算得到,鲁迅故里的纬度编码为10101 01010,经度编码为11010 10110。地理区域字符串生成规则:

•生成新串:奇数位放经度,偶数位放纬度,将两串编码组合:110110 11001 10011 01100;

•分组转换:将11100 11001 10011 01100每5位一组转成1个十进制整数,分别对应为28,25,19,12;

•Base32编码:使用数字0~9、小写字母(去掉字母a,i,1,o)这32个字符进行Base32编码(见下表)。十进制整数28,25,19,12对应的编码组合就是“wtmd”,即为该位置的地理区域字符串。

  1. (1) 规定编码长度 length为5,经度lng为120.125 082 58,则经度lng的二进制编码为
  2. (2) 小沈根据上述描述,设计了一个“利奇马”台风中心途经经纬度转换为地理区域字符串的算法。该算法VB程序实现如下,请在划线处填入合适的代码

    Const m=48, length=20'纬度、经度二进制编码长度均为 length

    Dim a(1 To 2*m)As Double

    Dim b(1 To m) As string

    ′读取m个时刻台风中心的经纬度数据并存入数组a,代码略'a(1),a(2)为台风在时刻1的纬度、经度,a(3),a(4)为台风在时刻2的纬度和经度,......

    ′b(1)保存台风在时刻1的地理区域字符串,b(2)保存台风在时刻2的地理区域字符串,......

    Private Sub Command1_Click()

    ′lat为纬度、1ng为经度,code为地理区域编码

    Dim lat As double, Ing As Double, code As String

    Dim strLat As String, strLng As String, s As String

    Dim i As integer, j As Integer, n As Integer

    Const base32="0123456789bcdefghjkmnpqrstuvwxyz"

    For i=1 To m

    lat=a(2*i-1)

    Ing=a(2*i)

    S=""

    strLat= DoubleToBits (lat,—90,90)      ′纬度转换为二进制编码

    strLng=DoubleToBits(lng,—180,180)      ′经度转换为二进制编码

    For j=1 To length

    s=①      ′将两串二进制编码组合

    Next j

    n=0: code=""

    For j=1 To Len(s)

    If j Mod 5=0 Then

    code= code+Mid(base32,n+1,1)

    n=0

    End If

    Next j

    b(i)=code

    Next i

    ′输出地理区域编码,代码略

    End sub

    ′函数 Doubletobits根据指定的区间[ lower,upper],计算 value的二进制编码

    Function Double ToBits( value As Double,lower As Double,upper As Double) As String

    Dim ret As String, i As Integer, middle As Double

    ret="": i=1: middle=0

    Do While i<= length

    middle=(upper+lower)/2

    If ③Then

    lower=middle

    ret=ret+"1"

    Else

    upper=middle

    ret=ret+"0"

    End If

    i=i+1

    Loop

    DoubleToBits=ret

    End function

实际参数和形式参数存在对应、对应、对应。
有如下VB程序段:

Dim d(1 to 5)as integer,i as integer

Dim flag as Boolean,j as integer

‘给数组元素d(1)至d(5)赋初值为1,代码略

  Randomize

  For i=1 to 5

    J = 1:flag = True

    d(i) = int(Rnd*9)

    Do while j< =i-1 and flag = True

      d(i) = int(Rnd*5+1)

      If d(i) = d(j) then i=i-2:flag = False

      j = j+1

    Loop

Next i

运行程序后,数组中的数据值可能是(    )

A . 1 3 4 5 6 B . 3 5 4 1 1 C . 8 3 1 2 5 D . 1 2 6 2 1
IPV4点分十进制IP地址可转换为十进制数字形式。编写“模拟IP过滤器”程序,程序功能如下:程序运行时,在列表框List1中显示能通过过滤的IP区间(IP区间按起始端点升序排序),在文本框Text1中输入需要判断的IP地址,单击“验证”按钮Cmd1,若IP区间有重叠区间则作合并处理,并显示在列表框List2中,然后对输入的IP地址进行判断,判断结果显示在标签Label4中。程序运行界面如图所示:

  1. (1) Cmd1对象 属于类(单选,填字母 :A . Form/ B . Label/ C . TextBox /D . CommandButton)。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

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

     Private Sub Form_Load()

    '本过程从数据库中读取n个IP地址区间数据,并依次存入数组a(1)、…、a(2*n)中

    '对能通过过滤的IP区间按区间起始端点升序排序

    '代码略

    End Sub

    Private Sub Cmd1_Click()

    Dim ip As Integer, L As Integer, R As Integer

    Dim i As Integer, pos As Integer, f As Boolean

    ip = Val(Text1.Text)

    L = a(1): R = a(2): i = 3: pos = 1     ‘合并重叠区间

    Do While i <= 2 * n - 1

        If Then

          If a(i + 1) > R Then R = a(i + 1)

          Else

            a(2 * pos - 1) = L:a(2 * pos) = R

            pos = pos + 1

            L = a(i)

            R = a(i + 1)

          End If

       

    Loop

        a(2 * pos - 1) = L: a(2 * pos) = R           '依次输出排序合并后的区间数据,代码略

        If  Then       '判断请求的 IP 地址

            Label4.Caption = "IP 需过滤"

        Else

            i = 1: f = False

    Do While i <= pos And Not f

        If  Then

          i = i + 1

        Else

          Label4.Caption = "IP 不需过滤" f = True

        End If

    Loop

      If f = False Then Label4.Caption = "IP 需过滤"

      End If

    End Sub

  3. (3) 程序中加框处代码有错,请改正。
小刘记录了某地每天最高气温和最低气温,现要编写VB程序,计算一周内最大温差(当日最高气温与最低气温之差)。功能如下:在文本框Text1中依次输入本周内每天的最高气温与最低气温(数据都用逗号分隔并以逗号结尾),单击“计算”按钮Cmd后,程序计算出最大温差,结果显示在Label1中。界面设计如下图所示:

  1. (1) Cmd 对象属于类 (单选,填字母:A . Form / B . Label / C . TextBox   D . CommandButton)。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

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

    Dim min As Single, max As Single

    Dim d As Single, v As Single, s As String

    s = Text1.Text

    d = 0: maxd = 0

    j = 1: k = 1

    For i = 1 To Len(s)

       If Mid(s, i, 1) = "," Then

       

         j = i + 1

         If  Then

            max = v

         Else

            min = v

            d = max - min

            If d > maxd Then

    End If

         k = k + 1

       End If

    Next i

    Label1.Caption = "本周温差最大值为" & Str(maxd)

    End Sub

  3. (3) 加框处的代码有误,请改正:
  4. (4) 运行该程序,输入数据如上图所示,程序执行到循环结束时,变量k为
字符串变量a、b的值分别为98、34,则表达式a+b的值是(   )
A . 98+34 B . 9834 C . 132 D . "132"
某宾馆的房间号由5位字符组成(例如A0823表示A幢8层23号房间),末位数字为奇数时表示房间朝南、为偶数时表示房间朝北。字符串变量s中存储了1个房间号,下列能正确判断房间朝南的VB表达式是(   )
A . Val(Mid(s,5,1))Mod 2=1 B . Val(Mid(s,5,1))Mod 2=0 C . Val(Mid(s,5,1))\2=1 D . Val(Mid(s,5,1))\2=0
下列VB表达式的值最大的是(      )
A . Val(Mid("235",2,2)) B . Len("333") +5 C . Int (Rnd*10) +25 D . Sqr(25) + Int(12.5)
Python中“ab ”+“cd”*2的结果是(    )。
A . abcd2 B . abcdabcd C . abcdcd D . ababcd
如aa=’345’,它的回文数是“34543”,以下表达式无法得到回文数的是(    )
A . new=aa+aa[-2:-4:-1] B . new=int(aa)*100+int(aa[1::-1]) C . new=aa+aa[1]+aa[0] D . new=(aa[0]+aa[1]+aa[2])*2
使用UltraEdit观察机内码,如图所示:

下列说法不正确的是(   )

A . 由图可知,相应字符ASCII码值关系"+"<"C"<"y" B . 英文字母"P"的机内码为50H,所以英文字母"O"的机内码为4FH C . 图中汉字编码字符共有2个Byte D . 根据ASCII码值大小关系可以推断出关系表达式"9">"10"的值为True
阅读下列程序,写出运行结果。

程序运行后,输入:8

运行结果是: