常用标准函数 知识点题库

int(9.8),正确的结果是(   )
A . 10 B . ‘9’ C . 9 D . 9.0
下列关于表达式的叙述正确的是(    )
A . 表达式Mid(“3.1415926”,6,2)=59的值为True B . 表达式1988 mod 1000\10/2=38的值为True C . 表达式Int(Rnd-Rnd+1)/2)*100=0的值为True D . 表达式Int(Rnd*18)*5+10一定能生成能被5整除的两位随机整数
有如下VB程序段:

s = 0: x ="0123456789": i = 1

Do While i <= Len(x)

    t = Val(Mid(x,i,2))

    If t Mod 3 = 0 Then s = s + t

    i = i + 1

Loop

执行该段程序后,s的值为(    )

A . 18 B . 135 C . 144 D . 225
下列程序用来判断一个单词是否是素单词:设定小写字母a-z对应的数字为1-26,大写字母A-Z对应的数字为27-52,将某个单词的所有字母按照其对应的数字求和,判断其和是否是素数,如果是输出“It is a prime word.”,反之则输出“It is not a prime word.”。如单词“Hello”,字母分别对应的数字为:34、5、12、12、15,其和为34+5+12+12+15=78,不是素数,因此单词“Hello”并不是素单词,在Label1中输出“It is not a prime word.”。(已知字母A的ASCII码值为65,a的ASCII码值为97)。程序运行界面如下图所示:

Private Sub Command1_Click( )

    Dim s As String, t As String, n As Integer

    Dim i As Integer, m As Integer

    s = Text1.Text

    n = Len(s)

    For i = 1 To n

        t = Mid(s,i,1)

        If t >= "A" And t <= "Z" Then

            m =        ①          

        ElseIf t >= "a" And t <= "z" Then

            m= m + Asc(t)- 96       ‘Asc(t)用于返回字符t的ASCII 码值

        End If

    Next i

    For i = 2 To m - 1

        If  Then Exit For

    Next i

    If       ②      Then

        Label1.Caption = "It is a prime word."

    Else

        Label1.Caption = "It is not a prime word."

    End If

End Sub

  1. (1) 请在划线处补充合适的代码。

     ② 

  2. (2) 加框处代码有误,请改正。
  3. (3) 若在Text1中输入单词Make,在label1中输出的结果是
  在Text1中输入一个1-26之间的数字n,点击“产生”按钮,在Text2中产生n个不重复的大写字母,中间用逗号隔开(图a),点击一次“最小值”按钮,Text2中最小的字母会掉落到List1中,并将Text2中对应的字母和后面的逗号删除(图b),再点击一次“最小值”按钮,剩余字母中的最小值继续掉落(图c)。(ASC(“A”)=65,CHR(65)=“A”)

  1. (1) 根据描述,如产生的字母为“H,K,C,B,N,”,第三次点击“最小值”按钮后Text2中显示内容为
  2. (2) 请在划线处填入合适的代码。

    Private Sub Command1_Click()

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

        Dim zm As Integer, flag As Boolean, zf As string

        Randomize       ‘重置rnd函数,确保每次产生的随机数不一致

        zf = ""

        n = Val(Text1.Text)

        For i = 1 To n

           

            zm = Int(Rnd * 26 + 65)

            For j = 1 To Len(zf) Step 2

                If Asc(Mid(zf, j, 1)) = zm Then

                   

                    flag = True

                    Exit For

                End If

            Next j

            If flag = False Then zf = zf + Chr(zm) + ","

        Next i

        Text2.Text = zf

    End Sub

    Private Sub Command2_Click()

        Dim i As Integer, zf As string

        zf=Text2.Text

        k = 1

        For i = 3 To Len(zf) - 1 Step 2

            If Mid(zf, k, 1) > Mid(zf, i, 1) Then k = i

        Next i

        List1.AddItem Mid(zf, k, 1)

        Text2.Text =

    End Sub

查找最短26个字母字符串:在文本框Text1中输入任意一串包含小写字母的字符串(长度n>=26),要求找到长度最小的一段区间,能够包含全部26个小写英文字母。小王设计了VB程序用于搜索最短字符串,单击“查找”按钮command1,若无解,则在标签Label1中输出“无解!”,反之程序在标签Label1中输出该最小区间的长度以及字符的开始位置,并在文本框Text2中输出相应的最短字符串,程序界面如图所示:

⑴确定初始右边界:从第1个字符开始,向右搜索到包含全部26个字母的子串,并因此而确定右边界,同时记录每个字母在子串中出现过的次数。

⑵调整子串左边界:若左边界有重复的字母则表明该子串可缩短,故左边可右移1位……直到找到一个符合条件的子串并记录,然后子串左边界再右移1位。

⑶调整子串右边界:子串右边界继续右移,在新子串符合条件后,记录并进行比较。

重复(2)各调整步骤,直至遍历完整个字符串,获得并输出满足条件的最小长度字符串。

图片_x0020_100011

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

Const n = 300

Dim i As Integer, k As Integer, length As Integer, L As Integer

Dim pos As Integer, s1 As String, res As String

Dim f(1 To 26)As Integer    '数组f记录每个小写英文字母的出现次数

Dim s(1 To n)As Integer    '数组s记录每个输入字符在字母表中的位置

Private Sub Command1_Click()

    res = ""

    s1 = Text1.Text

    For i = 1 To Len(s1)

        s(i)=        ①         

    Next i

    k = 0: pos = 1: length = n

    For i = 1 To 26

        f(i)= 0

    Next i

    For i = 1 To Len(s1)

        If f(s(i))= 0 Then k = k + 1

        f(s(i))= f(s(i))+ 1    '调整右边界,直到达到26个字母

        Do While         ②        

            f(s(pos))= f(s(pos))- 1

            If         ③          Then

                k = k - 1

                If i - pos + 1 < length Then

                    length = i - pos + 1

                    res = Mid(s1, pos, length)

                    L = pos

                End If

            End If

            pos = pos + 1

        Loop

    Next i

    If res <> "" Then

        Text2.Text = res

        Label1.Caption = "最短长度:" + Str(length)+ "开始位置:" + Str(L)

    Else

        Label1.Caption = "无解!"

    End If

End Sub

  1. (1) 对于字符串“qbwcadsgeqbdatcy”,包括字母“abcde”的最短字符串长度为(填数字)。
  2. (2) 请在画线处填入合适的代码。

     ② ③ 

使用数组a实现英文字符的螺旋矩阵显示,螺旋从外到内字符依次变小,依据上述描述设计了如下VB程序,在Text1中输入矩阵的行数n(n≤5),单击“生成螺旋”按钮Command1,在List1中显示n×n的螺旋矩阵。程序运行界面如第16题图所示,请回答下列问题:

  1. (1) 当输入的行数为3时,单击“生成螺旋”按钮,列表框中第一个显示的英语字母是
  2. (2) 请在划线处填入合适的代码。

    Private Sub Command1_Click()

        Dim a(1 To 100) As String

        Dim i As Integer, j As Integer, m As Integer, n As Integer

        Dim ts As String, t As Integer, v As Integer

        n = Val(Text1.Text)

        v =

        t = 1

        For m = n To 1 Step -2

            For i = 1 To m            '向右方向填数

                a(t + i - 1) = Chr(Asc("A") + v - 1)

                v = v - 1

            Next i

            t = t + n - 1

            For i = 1 To m - 1      '向下方向填数

                a(m + t) = Chr(Asc("A") + v - 1)

                v = v - 1

               

            Next i

            t = t - n

            For i = m - 1 To 1 Step -1      '向左方向填数

                a(t + i) = Chr(Asc("A") + v - 1)

                v = v - 1

            Next i

            For i = m - 2 To 1 Step -1    '向上方向填数

                a(t - n + 1) = Chr(Asc("A") + v - 1)

                v = v - 1

                t = t - n

            Next i

            t = t + 2

        Next m

        For i = 1 To n         '在List1 中输出数组数据

            ts = ""

            For j =To i * n

                ts = ts + " " + a(j)

            Next j

            List1.AddItem ts

        Next i

    End Sub

小明需要根据订单的取件距离依次安排快递员取件。快递员出发后不能中途折返,但可以接更远距离的快递订单。当小明新接到一个取件订单,他会依次安排可以取件的快递员取件,若该订单距离小于所有已出发的快递员的最远距离,则安排新的快递员出发取件。编写VB程序,实现上述功能。程序运行时,在文本框Text1中输入订单距离(各数值之间用“,”隔开),单击“安排”按钮Command1后,在标签Label2中显示最后一件快递的收取情况。运行界面如图所示。

  1. (1) 运行窗体中,具有Caption属性的对象共有类。
  2. (2) 若快递订单的取件距离依次为“243,123,167,309,183,229,87,333,183”,则最后距离为183的订单由号快递员收取。
  3. (3) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Dim dd(0 To 100) As Integer           '记录所有订单的取件距离

    Dim fp(0 To 100) As Integer             '存储第x个快递员取件的最远距离

    Dim xs(0 To 100) As String

    Private Sub Command1_Click()

        Dim n As Integer,i As Integer,k As Integer,s As String

        Dim left As Integer,right As Integer,m As Integer

        Dim x As Integer,r As Integer

        Randomize

        s = Text1.Text: n = 1: i = 1

        Do While i <= Len(s)

            k = i: ch = Mid(s, k, 1)

            Do While

                k = k + 1: ch = Mid(s,k,1)

            Loop

            dd(n) = Val(Mid(s,i,k - i))

            i = k + 1: n = n + 1

        Loop

        x = 1: fp(x) = dd(1)

        For i = 2 To n - 1

            left = 1

            right = x

            Do While left <= right

                m = (left + right) \ 2

                If  Then

                    right = m - 1

                Else

                    left = m + 1

                End If

            Loop

            

            fp(r) = dd(i)

            If r = x + 1 Then x = x + 1

        Next i

        Label2.Caption = "第" + Str(i - 1) + "件快递将由第" + Str(r) + "号快递员收取"

        '列表框List1中显示每位快递员的收取情况,代码略

    End Sub

  4. (4) 程序加框处代码有错,请改正
为了便于数据的表示也处理,python提供了整数、浮点数和字符串等常见的数据类型。它们可以把数据从一种类型转换为另外一种类型。下面可以把字符串或整数转换成浮点数R的选项是(     )。
A . input() B . int() C . str() D . float()
在python中运行print(“3+6”)的结果是(    )。
A . 9 B . “3+6” C . 3+6 D . “9”
某字符转置算法描述如下:

·将字符串(均为大写字符)s依次转换为相对应的数值(字符A~Z对应数值1~26);

·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);

·每一段中K个数据与K*K转置矩阵进行乘法运算;

·将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值1~26对应字符A~Z),最后按原始字符串长度输出。

乘法运算规则如下:

第i个元素c(i) =第j个元素a(j) * 转置矩阵第i行第j个元素b(t)的乘积之和(其中j = 1 , 2 …K)

例如:字符串s = PYTHON,区块大小K = 4的转置过程如下:

  1. (1) 根据算法描述,上述示例中,字符“N”的相乘结果(即图中(★)处)为
  2. (2) 请在划线处填入合适代码。

    Private Sub Command1_Click()

        Dim a(1 To 100) As Integer    ‘存储字符串,长度不超过100个字符

        Dim b(1 To 100) As Integer    ‘存储转置矩阵,长度不超过10*10

        Dim c(1 To 100) As Long

        Dim s As String, tmp As String

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

        Dim n As Integer, m As Integer, lens As Integer

        s = Text1.Text    ‘在Text1中输入原始字符串

        k = Val(Text2.Text)     ‘在Text2中输入区块大小K

        Randomize

        For i = 1 To k ^ 2

            b(i) = Int(Rnd * 9) + 1

            tmp = tmp + Str(b(i))

            If i Mod k = 0 Then

                List2.AddItem tmp

                tmp = ""

            End If

        Next i

        lens = Len(s): n = lens

        For i = 1 To n

            tmp = Mid(s, i, 1)

           

            List1.AddItem Str(a(i))

        Next i

        Do While n Mod k <> 0

            n = n + 1

            a(n) = 0

            List1.AddItem Str(a(n))

        Loop

        For i = 1 To n

            m = (i -1) Mod k + 1

            t = 1

            For j =

                c(i) = a(j) * b((m -1)* k + t) + c(i)

                t = t + 1

            Next j

        Next i

        For i = 1 To n

            List3.AddItem Str(c(i))

        Next i

        s = ""

        For i = 1 To lens

           

            s = s + Chr(t + 64)

        Next i

        Text3.Text = s    ‘在Text3中输出转置后的字符串

    End Sub

下列VB语句可以产生10到99之间(包含10和99)随机整数的是(    )
A . Int(Rnd()* 100) B . Int(Rnd ()* 89 )+10 C . Int(Rnd ()* 90)+10 D . Int(Rnd()*91)+10
对一段字符(仅包含大小写字母和数字)加密,加密规则为: ①字母和数字都往后循环顺移3位,如“a”变为“d”,“y”变为“b”;“0”变为“3”,“7”变为“0”②加密后字母在前,数字在后③字母按逆序排列,数字按顺序排列,如输入明文“ab7Z8x3”,这密文为“aCed4016”。

小王利用VB程序实现这一加密功能,程序界面和代码如下所示:

Private Sub Com_ jm_ Click()

    Dim x As String, ch As String, cl As String

    Dim sl As String, s2 As String, s As String

    Dim i As Integer, n As Integer, y As Integer

    x= Text1. Text

    n=Len(x)

    For i=1 To n

        ch= Mid(x, i, 1)

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

               ①    

            s2=s2 & y

        Elself ch >="a" And ch<="z" Then

            y=(Asc(ch)-Asc("a")+3)Mod 26

               ②   

            s1=c1+s1

        Else

            y=(Asc(ch)- Asc("A")+3) Mod 26

            c2=Chr(Asc("A")+y)

            s1=c2+s1

        End If

    Next i

       ③  

    Text2 Text=s

End sub

  1. (1) 根据程序代码分析,“加密”按钮的名称是
  2. (2) 根据加密规则,明文“9G78fbY5”,则密文为
  3. (3) 请在画线处填入合适的代码:

     ② ③ 

在平面直角坐标系中,设点A(x1,y1)、点B(x2,y2),则AB两点之间的距离为: , 该公式正确的python表达式是(  )
A . math.sqr((x1 -x2)**2+(y1-y2)**2) B . math.sqr((x1-x2)2+(y1-y2)2) C . math.sqr[(x1-x2)2+(y1-y2)2] D . math.sqr((x1 -x2)**2+(y1-y2)**2)
下列属于非法调用的函数是(  )。
A . sqr(-5) B . Sgn(-5) C . Exp(-5) D . Int(-5)
阅读下面程序段:

N1=InputBox(“请输入第一个数”)

N2=InputBox(“请输入第二个数”)

Print N1+N2

当输入分别为111和222是,程序输出为(       )。

A . 111222 B . 222 C . 333 D . 程序错误
[矩阵上的枚举]大家有接触过地雷游戏吗?如图所示是一个“挖地雷”游戏的界面,9X9个格子里都有一个数字,红旗代表地雷可以用“★”表示,图中共有10个地雷,“一一”表示空白格,边上的“▲”表示边框。

定义规则:你需要标记出所有空白格子周边相邻的格子上有多少地雷(在正方向和斜45度方向挨着的格子均可视为相邻),并将数量标记在空白格中,如下图所示。

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

Dim n As Integer,m As Integer      'n 存储地雷区域大小,m存储地雷数目

Dim a(1 To 100 * 100) As String

Dim b(1 To 100 * 100) As Integer

Private Sub Command1_Click()       '按要求生成数组a中的数据并显示

    Randomize

    List1. Clear

    n=9 : m=10

    Dim s As String, pos As Integer, i As Integer

    s=" " : n=n+2

    For i=1 To n * n

        If isinside(i) Then a(i)="— —"

        Else a(i)="▲"

    Next i

    For i=1 To m

        pos=Int(Rnd * n * n)+1

        Do While a(pos)="★" Or

            pos= Int(Rnd * n *n)+1

        Loop

            a(pos)="★"

    Next i

    For i=1 To n* n

        s= s+" "+a(i)

        If i Mod n=0 Then

            List1. AddItem s

            s=" "

        End If

    Next i

End Sub

Private Sub Command2_Click()

    Dim i As Integer, j As Integer, row As Integer

    Dim col As Integer, start As Integer, temp As String

    For i=1 To n* n

        If a(i)="★" Then

        row=(i-1) \ n+1 : col=(i-1) Mod n+1

            For j=1 To 3

                start=

                If a(start+col- 1)="— —" Then b

                (start+ col- 1)= b(start+col- 1)+1

               If a(start+col)="— —" Then

                    b(start+ col)= b(start+col)+1

                If a(start+col+1)= "— —" Then b

                (start+col+ 1)= b(start+ col+1)+1

            Next j

        End If

    Next i

    List2. Clear

    For i=1 To n

        temp=" "

        For j=1 To n

            If a((i-1) * n+j)="— —" Then

                temp=temp+" "+ Str(b((i-1) * n+j))

            Else

                temp= temp+" "+a((i- 1)*n+j)

            End If

        Next j

        List2. AddItem temp

    Next i

End Sub

Function isinside(x As Integer) As Boolean

    isinside= x>n And And x

    Modn<;>1AndxMod<> 0

End Function

小方同学在某网站注册时需要预设登录密码,预设密码需要符合以下2点:①密码不少于6位字符组成;②必须同时包含大写英文,字母、小写英文字母、阿拉伯数字和标点符号。据此,该同学编写了生成密码的VB程序,程序运行界面如图a所示,当点击“生成密码”按钮( command1)时,在文本框Text1中输出符合要求的密码字符

图b为标准ASCII码表供你参考(其中ASCII为1-32,127的字符为特殊符号,不能用作密码):

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

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

    Private Sub Command1_Click() 

        Dim t As Integer, flag as Boolean

        Dim pwd as String ,n as Integer

        Dim a(1 To 4) As Integer

        flag= True

        n=0

        pwd=" "

        Randomize

        Do While flag

            t=             '随机生成33~126的ASCII码

            pwd= pwd+Chr(t)

            s= 0

            For i=1 To 4

                s=s+a(i)

            Next i

            n=n+1

            If n>=6 And s=4 Then

        Loop

        Text1. Text= pwd

    End Sub

    '获取字符类型:1-小写字母,2-大写字母,3-阿拉伯数字,4-符号

    Function check(x As Integer) As Integer

        If x>=97 And x <= 122 Then

            check= 1

        ElseIf x >=65 And x <=90 Then

            check= 2

        ElseIf x>=48 And x <=57 Then

            check= 3

        Else

            check= 4

        End If

    End Function

  2. (2) 以下字符串不可能是上述程序生成的密码的一项是(填数字序号)

    ①H2? N64Aj

    ②[26wv9,Q

    ③$ 14G/uv④zX}rb! T&}d2

下列Python程序执行后,可以输出“中国”在代码段是(      )
A . name=='中'; print(name) B . name='中国'; print('name') C . print(中+国) D . name='厦门'; name='中国'; print(name)
题目:输入两个数和一个运算符(+或-)。实现:如果运算符号为“+”,则输出a+b,否则输出a-b。
编写代码。请打开IDLE或者MUPython进行编辑。
调试运行。将代码与结果截图粘贴。

  1. (1) 字符串是以单引号或双引号括起来的任意文本。为“+”意思是等于“+”,等于符号在Python中为
  2. (2) 从键盘输入一个数到计算机中需要借助输入函数。输入函数是(     )
    A . read( ) B . input( ) C . in( )
  3. (3) input( )默认的类型是字符串类型。如果需要输入数值的话,需要用int( )或者float( )转换为数值。这里使用获取第一个数。获取第二个数的代码为
最近更新