4.1.3 Python的运算符与表达式 知识点题库

在Visual Basic中表达式“6789\100”的值是(   )
A . 67.8 B . 67 C . 67.89 D . 68
模拟剪刀石头布的游戏,用1~3这3个数分别代表剪刀、石头、布这三种情况,使用Rnd随机函数可以表示为(  )
A . Int(Rnd(3)+1) B . Int(Rnd*2+1) C . Int(Rnd(2)+1) D . Int(Rnd*3+1)
小明最近学习了一种插入排序的算法。算法的基本思想如下:每次将一个待排序的记录,按其关键字大小插入前面已经排好序的记录集中,使记录依然有序,直到所有待排序记录全部插入完成。

如数据25 54 8 54 21 排序过程如下(n=5):

待排序数据:【25】 54 8 54 21

i=2:【25 54】 8 54 21

i=3:【8 25 54】 54 21

i=4:【8 25 54 54】 21

i=5:【8 21 25 54 54】

程序产生10个-100~100之间的整数,从小到大排序后输出,运行结果如图所示:

实现上述功能的VB程序代码如下,但加框处代码有错,请改正。

Dim a(0 To 10) As Integer

Private Sub Command1_Click()’产生10个随机数放在数组a中

 Dim i As Integer

 For i = 1 To 10

    ‘①

  List1.AddItem Str(a(i))

 Next i

 End Sub

Private Sub Command2_Click()

 Dim i As Integer, j As Integer

 For i = 2 To 10

  a(0) = a(i)

  j = i - 1

  Do While a(0) < a(j)

    ‘②

   j = j - 1

  Loop

  a(j + 1) = a(0)

 Next i

 For i = 1 To 10

  List2.AddItem Str(a(i))

 Next i

End Sub

①处的代码修改为

②处的代码修改为

小杜编写VB解决上述问题的程序,其功能如下:程序运行时在文本框Text1中输入整数序列(输入的数据保证存在符合条件的子序列),在Text2中输入整数s。单击按钮Command1后在标签Label1上输出总和不小于s的连续子序列,程序运行如图所示。

  1. (1) 给定整数序列为{5,1,3,5,10,7,4,9,2,8},整数s=15,符合条件的长度最小的子序列为
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

    Dim a(1 To 100) As Integer

    Dim sum(0 To 100) As Integer ’sum(i)存储 a(1)+a(2)+…+a(i)的值

    Dim n As Integer, s As Integer

    Private Sub Form_Load()

    ‘读取整数序列依次存储在数组a中

    ‘读取整数序列长度存储在变量n中

    ‘本过程代码略

    End Sub

    Private Sub Command1_Click()

    Dim i As Integer, ans As String

    Dim Min As Integer     ‘存储符合条件的最小长度

    Dim iMin As Integer     ‘存储符合条件子序列的起始位置

    s=val(Text2.text)

    For i = 0 To n

     sum(i) = 0

    Next i

    For i = 2 To n

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

    Next i

    Min = n

    iMin = 1

    For i = 1 To n

     j=i

     Do WhileAnd j<= n

      j = j + 1

     Loop

     If j <= n And j - i + 1 < Min Then

      Min = j - i + 1

      iMin = i

     End If

    Next i

    ans =“”

    For i = iMin To

     ans = ans + Str(a(i))

    Next i

    Label1.Caption = “符合条件的子序列为” + ans

    End Sub

以下程序段的输出结果是(  )。

X=2

PRINT X+1, X+1

A . 3  4 B . 3  3 C . X+1  X+1 D . 2+1  2+1
小明编写了一个简单算式计算器程序,功能如下:在文本框Text1中输入一个加法的算式,形式为a+b,a和b都为正整数,单击按钮 Command1后,在标签 Label1上显示算式的计算结果。程序运行界面如图所示。

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

    Private Sub Command1 _Click( )

    Dim key As String

    Dim a As Integer, b As Integer, ans As Integer, ch As String

    key =Text1.Text

    i=1

    Do While i <= Len (key)

        ch Mid(key, i, 1)

        If ch>= “0” And ch < = “9” Then

               ①   

        Else

            Exit Do   ‘退出循环

        End If

    Loop

    a=   ②  

    b= Val (Mid(key,+1, Len (key)-i))

    ans =a +b

    Label1. Caption= “算式计算结果为: “+str(ans)

    End Sub

     ② 

  3. (3) 程序运行时,在文本框中输入“123+10”,单击“计算”按钮后,对语句ch=Mid(key, i, 1)执行的次数是
有如下VB程序:

Dim c As Integer

Private Sub Form _Load ( )

    c = 0: Text1. Text = “”

End sub

Private Sub Text1 _Change ( )

    If Va l(Text1. Text) > 0 Then

        Text1. Text = Str(Val(Text1. Text) \2

        c = c + 1

    End If

Text2. Text = Str(c)

    End sub

运行该程序,在文本框Text1中输入5,则Text1和Text2中显示的内容分别是(  )

A . 0  3 B . 1  2 C . 5  1 D . -1  3
下列表达式的运算结果不等于9的是(以下的字符串都不含空格)(  )
A . Len(“2020选考”) +Sqr(9) B . Asc(“I”) -Asc(“A”) C . Val(Mid(“129”, 3, 1) ) D . Abs(Int(-8.4) )
产生[1,50] 范围内某一随机整数的表达式是(  )
A . Rnd * 50 B . Int(Rnd * 50) C . Int(Rnd * 50) + 1 D . Int (Rnd * 49) + 1
在VB中,表达式321+“54”的运算结果是(   )。
A . 375 B . "375" C . "32154" D . 321+54
编写VB程序,实现如下功能:在文本框Text1中输入二进制数,单击“转换”命令按钮Command1,在文本框Text2中输出对应的十六进制数。程序运行界面如图所示,请回答下列问题:
  1. (1) 如果输入的二进制数为“1101010”,则得到的结果为 。
  2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适代码。

    Private Function bw(x As Integer, y As String) As String

    '函数bw功能:若二进制位数不足,通过在前面添"0"使得位数为4的倍数

        Dim r As Integer, i As Integer

        r = x Mod 4

        If r <> 0 Then

           For i = 1 To 4 - r

              y = "0" + y

           Next i

           x = Len(y)

        End If

        bw=  

    End Function

    Private Sub Command1_Click()

       Dim m As String, n As Integer, i As Integer, a As Integer

       Dim s As Integer, s1 As String, j As Integer

       m = Text1.Text

       n = Len(m)

       Text2.Text = ""

          m =    ’调整 m 的位数为 4 的倍数

       For i = 1 To n - 3 Step 4

       s = 0

          For j = i To i + 3

             a = Val(Mid(m, j, 1))

             s = 

          Next j

          If s >= 10 Then

             s1 = Chr(Asc("A") + s - 10)

          Else

             s1 = CStr(s)      '函数 CStr 类似于 Str,但无前导空格

          End If

          Text2.Text = Text2.Text + s1

    Next i

    End Sub

有如下VB程序段:

i = 1

Do While i < = 6

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

  If a(i)Mod 2 = I Mod 2 Then

    i=i-1

  Else If I Mod 2 = 0 Then

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

  End If

  i=i+1

Loop

执行该程序后,a(1)-a(6)各元素不可能的值是(    )

A .  6,13,8,11,6,17 B .  8,11,4,5,8,17 C .  8,9,8,17,10,11 D .  6,13,6,9,4,9
分析解决问题。

在VB中常用的字符串截取函数有:

函数名

功能

示例

结果

Mid(s, m, n)

从字符串s的第m位开始,截取长度为n的字符

Mid(“ABCDEFG”,5,2)

“EF”

Left(s, n)

截取字符串s左边n个字符

Left(“ABCDEFG”,3)

“ABC”

Right(s, n)

截取字符串s右边n个字符

Right(“ABCDEFG”,2)

“FG”

假如某人身份证号码S=“370102199602190000”,如果需要根据此人身份证号码求出该人的“出生年月日”。下列表达式不能实现的是(    )。

A . Mid (s,7,8) B . Right (Left(s,14),8) C . Mid (s,7,4)+Mid(s,11,2)+Mid(s,13,2) D . Left (s,14)-Left(s,6)
有如下 VB 程序段:

s1 = "abcde" j = 1

s2 = "a"

For i = 1 To Len(s1)

  j = (j + 2) Mod Len(s1) + 1 s2 = s2 + Mid(s1, j, 1)

Next i Text1.Text = s2

执行该程序段后,文本框Text1中输出的内容是(   )

A . acebda B . Acdeab C . Adbeca D . adaceb
算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(  )。
A . 算术运算、赋值运算、关系运算 B . 算术运算、关系运算、赋值运算 C . 关系运算、赋值运算、算术运算 D . 关系运算、算术运算、赋值运算
已知 a=10,b=20,c=30,下列表达式中值为True的是(    )
A . a>=b or b>=c B . not(a>b) C . a>b and b<c D . a>=b>=c
下列表达式中,结果最大的是(     )
A . sqr(abs(int(-8.1))) B . sqr(len(“疫情防控人人有责”)) C . 2041 mod 100 \10 D . int(rnd*4)\2
  若n=6,m=3,则表达式m+3==n and n-3>=m的值为true。
在python中运行print(“3+6”)的结果是(    )。
A . 9 B . “3+6” C . 3+6 D . “9”
语句Print 5/4*6\5 Mod 2的输出结果是(    )
A . 0 B . 1 C . 2 D . 3
最近更新