相关试卷

  • 1、现有包含10个元素的数组d,使用冒泡排序算法对此数组元素进行升序排序,部分VB代码如下:

    For i=1 To 9

        For j=   ① 

            If   ②   Then

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

            End If

        Next j

    Next i

    画线①②处应填写的正确语句是(    )

    A、①i+1 To n,②d(j)>d(j+1) B、①i+1 To n,②d(j)<d(j+1) C、①1 To n-i,②d(j)<d(j+1) D、①1 To n-i,②d(j)>d(j+1)
  • 2、有如下程序段:

    S=" "

    For i=1 To 3

        For j=7 To i+1 Step-1

            If a(j)<a(j-1) Then

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

            End If

        Next j

        s=s+Str(a(i))

    Next i

    Text1. Text=s

    数组元素a(1)到a(7)的数据依次为“3,9,1,5,8,6,2”经过该程序段“加工”后,文本框Text1中显示的内容是(    )

    A、1  2  3 B、9  8  6 C、3  9  1 D、8  6  2
  • 3、对11个元素进行排序,用冒泡法进行排序时,需比较的次数共为(    )
    A、110 B、132 C、55 D、66
  • 4、小方同学在某网站注册时需要预设登录密码,预设密码需要符合以下2点:①密码不少于6位字符组成;②必须同时包含大写英文,字母、小写英文字母、阿拉伯数字和标点符号。据此,该同学编写了生成密码的VB程序,程序运行界面如图a所示,当点击“生成密码”按钮( command1)时,在文本框Text1中输出符合要求的密码字符

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

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

    (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)、以下字符串不可能是上述程序生成的密码的一项是(填数字序号)

    ①H2? N64Aj

    ②[26wv9,Q

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

  • 5、小杜编写了一个统计每个字母出现次数的程序,字母统计时不区分大小写。程序功能如下:程序运行时在文本框Text1中输入一个ASCII码字符串,单击“统计”按钮Com-marnd1,程序统计每个字符出现的次数,结果输出在列表框List1中,未出现过的字母不输出。程序运行界面如图所示。

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

    (1)、已知大写字母“A”的ASCII内码为65,程序运行时单击“统计”按钮Command1后如图所示,数组元素count(66)的值为 。
    (2)、请在划线处填入合适的代码。

    Private Sub Command1_ Click( ) 

        Dim a(1 To 100) As Integer     '用于存储每个字母的ASCII码

        Dim count(65 To 90) As Integer     '用于存储26个字母出现的次数

        Dim i As Integer, ch As String

        s= Text1. Text

        

        For i=1 To Len(s)

            ch= Mid(s, i, 1)

            If zm(ch)=1 Then

                a(n)= Asc(ch)- 32

                n=n+1

            ElseIf zm(ch)=2 Then

                a(n)= Asc(ch)

                n=n+1

            End If

        Next i

        For i=1 To n-1

           

        Next i

        For i=65 To 90

            If  Then

                List1. AddItem Chr(i) +“个数为:”+ Str(count(i))

            End If

        Next i

    End Sub

    Function zm(x As String) As Integer

        If x>=“a”And x <=“z”Then

            zm= 1

        ElseIf x>=“A”And x <=“Z”Then

            zm= 2

        Else

            zm=3

        End If

    End F unction

  • 6、从原点(0,0)出发,顺时针旋转,经过平面上所有整点恰好一次,我们称之为螺旋折线,如下图所示。对于整点(x,y),我们定义它到原点的距离是从原点到(x,y)的螺旋折线段的长度。例如:x=0,y=1,则螺旋折线段的长度为3;x=-2,y=-1,则螺旋折线段的长度为9。现要求计算从原点到整点(x,y)螺旋折线段的长度。小王根据,上述描述设计如下VB程序,请回答下列问题:

    (1)、从原点到整点(4, 0)螺旋折线段的长度为
    (2)、请在画线处填入合适的代码。

    Dim x As Integer, y As Integer     'x用于存储横坐标的值,y用于存储纵坐标的值

    Private Sub Command1_Click()

        Dim sum As Integer, m As Integer

        Dim dx As Integer, dy As Integer

        Dim i As Integer, t As Integer

        x= Val(Text1. Text)

        y=Val(Text2. Text)

        dx=0 : dy=0

        sum= 0

        m=1: t=- 1

        Do While Not check(dx, dy)

            For i=1 To m

                If check(dx, dy) Then Exit Do      'ExitDo表示退出Do循环

                dx=dx+t

                sum= sum+ 1

            Next i

            

            For i=1 To m

                If check(dx, dy) Then Exit Do

                

                sum= sum+ 1

            Next i

            m=m+1

        Loop

        Label1. Caption= Str( sum)

    End Sub

    Function check(x1 As Integer, y1 As Integer) As Boolean

        check= False

        If x1=x And y1=y Then

           

        End If

    End Function

  • 7、编写VB程序,实现如下功能:在文本框Text1中输入二进制数,单击“转换”命令按钮Command1,在文本框Text2中输出对应的十六进制数。程序运行界面如图所示,请回答下列问题:

    (1)、如果输入的二进制数为“1101010”,则得到的结果为
    (2)、实现上述功能的VB程序如下,请在划线处填入合适代码。

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

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

        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

  • 8、按下面公式计算y的值:

    现要求编写VB程序,实现如下功能:在文本框Text1中输入x的值,单击“计算”按钮Command1 ,在标签Label3中显示y的值。按此要求编写的程序如下,其中函数f(x)用于计算y的值,但加框处代码有错,请改正。

    Function f(x As Single) As Single

       If x<0 Then

         f=- x

       ElseIf  Then   '(1)

         f=x*x+1

       Else

         f=2* x+1

       End If

    End Function

    Private Sub Command_Click()

        Dim x As Single, y As Single

        x= Val(Text1.Text)

            '(2)

       Label3. Caption= Str(y)

    End Sub

    程序中加框处的语句应更正为

    ;⑵

  • 9、下列VB程序运行时,单击命令按钮Command1后,文本框Text1中显示的内容是 , 文本框Text2显示的内容是

    Private Sub Command1_ Click( )

        Dim a(1 To 6) As Long,i As Integer

        a(1)=1

        a(2)= 1

        For i=3 To 6

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

        Next i

        Text1. Text=Str(a(6))

        Text2. Text= Str(i)

    End Sub

  • 10、某VB程序如下:

    Function fx(n As Integer) As Long

        If n=1 Then

            fx=2

        Else

            fx=2+fx(n-1)

        End If

    End Function

    Private Sub Command1_ Click()

        Dim x As Integer, y As Integer

        x=va1(Text1. Text)

        y=fx(x)

        Text2. Text= Str(y)

    End Sub

    程序运行时,在文本框Text1中输人数字10,单击命令按钮后,在Text2显示内容为(    )

    A、2 B、18 C、20 D、22
  • 11、下列VB程序模块可以计算正整数n阶乘(n!)的值,该模块采样的算法是(    )

    Function f(n As Integer) As Long 

        If n<=1 Then

            f= 1

        Else

            f=n* f(n-1)

        End If

    End Function

    A、枚举算法 B、查找算法 C、排序算法 D、递归算法
  • 12、[枚举的综合应用]在一个数组中存储了若干个同学的技术成绩小题分,其中a(1)存储学生个数,a(2)开始按顺序存储小题分数据。每个学生有33个小题的数据,例:a(2)~a(13)是学生1的信息选择题得分,a(27)~a(30)是学生1的信息4个主观题得分。具体如下表

    题号

    1-12

    13-25

    26-29

    30- 33

    科目题型

    信息客观题

    通用客观题

    信息主观题

    通用主观题

    满分分值

    每题2分

    每题2分

    4/8/7/7

    6/9/3/6

    小李根据上述描述,设计了一个统计所有同学信息各题得分率的算法。程序运行后首先在列表框List1显示信息技术各小题得分,单击“计算”按钮“Command1",在列表框List2显示信息各题的题号和得分率,在文本框Text1输出所有同学的信息平均分(平均分=各题得分率*分值之和)。算法的VB程序如下,回答下列问题。

    (1)、根据题目描述,使用如图所示数据,a(95)的数值是
    (2)、在程序划线处填上合适代码,使程序完整。

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

    Private Sub Command1_Click()

        Dim i As Integer, j As Integer

        Dim fz(1 To 16) As Integer     'fz数组存储信息各题满分值

        Dim b(1 To 33) As Double    '数组b存储全卷各题的平均得分

        For i=1 To 16    '数组fz存储信息16个小题的满分值   

            If i<= 12 Then fz(i)=2

            fz(13)=4 : fz(14)=8 : fz(15)=7 : fz(16)=7

        Next i

        For i=2 To n      '把数组a数据分别统计到各题中

           

            b(j)=a(i)+ b(j)

        Next i

        For i=1 To 33    '仅处理信息各题的平均分

            If i<= 12 Then

                b(i)=b(i) / (a(1) * fz(i))      ' 计算信息选择题各题的得分率

            ElseIfi>= 26 Andi<= 29 Then

                b(i)=

            End If

        Next i

        For i=1 To 16

            If i> 12 Then j=i+13 Else j=i

            b(j)=Int(b(j) * 1000+0.5) / 10      '对结果四舍五入保留1位小数

            List2. AddItem Str(i) 十Str(b(j))+"%"

            ave=

        Next i

        Text1. Text=Str(ave / 100)

    End Sub

    Private Sub Form_ Load()

        '读入数据到数组a,数据个数n,代码略

    End Sub

  • 13、[二进制枚举法]小明在玩一个翻转棋盘的游戏,其中棋子只有黑白两面,界面如图a所示:游戏规则是挑选几个棋子,对于每个被挑选的棋子,将该棋子和它上下左右4个相邻棋子一起翻转,若某个方向无棋子,则不作处理,最后使得棋盘纯色(纯白或纯黑)。现需要编写程序找出所选棋子最少的方案并输出所选棋子的个数,若无答案则输出“无法翻转为纯色”

    (注:如图a所示,则需翻转第二行第二列、第四行第二列两个棋子便可使得棋盘纯黑)

    一开始小明不知从何人手,但很快他发现了突破点。他先将棋盘状态利用二进制进行编码并存储在数组中,编码规则为0表示白,1表示黑,顺序为从左至右,从上至下,则第10题图a中的初始状态可以表示为数列1011000111110001。

    随后,他将被选中的棋子的位置也进行二进制编码,0表示不选中,1表示被选中,则可以用一个16位二进制编码表示。例如,二进制编码0000010000000100表示选中了第2行第2列、第4行第2列这两个棋子,随后将编码转化为十进制数,即2^10+2^2= 1028;于是,整张棋盘的所有选棋子方案为000000000000000 ~ 11111111111111,也就是十进制下的0~65535,利用枚举算法即可找到最优方案。

    程序界面如图b所示,VB代码如下,请回答下列问题。

    (1)、若某方案用十进制表示为137,则总共选择了个棋子。
    (2)、完成程序中填空。

    Dim a(16) As Integer, b(16) As Integer, min_ _c As Long

    'a数组储存棋盘原状态,b数组储存翻转后的棋盘状态

    Function check() As Boolean    '判断棋盘是否纯色   

        Dim flag As Boolean, i As Integer

        flag= True

        For i=1 To 15

            If b(i) <> b(i+1) Then flag= False

        Next i

        check = flag

    End Function

    Private Sub Command1_Click()

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

        For i=0 To 2^16- 1

            For j=1 To 16     '初始化棋盘

                b(j)=a(j)

            Next j

            k=16

            c=0

            j=i

            Do While j>0

                If  Then

                    b(k)=1- b(k)

                    If k> 4 Then b(k-4)=1-b(k-4)

                    If k< 13 Then b(k+4)=1- b(k+4)

                    If k Mod 4 <> 0 Then b(k+1)=1- b(k+1)

                    If  Then b(k-1)=1-b(k- 1)

                    c=c+ 1

                End If

                j=j\2

                k=k- 1

            Loop

            If  Then

                min_ c= c

            End If

        Next i

        If min_ c=17 Then Label1. Caption= "无法翻转为纯色!" Else Label1. Caption= Label 1. Caption+Str(min_c)

    End Sub

    Private Sub Form_ Load()

        '生成棋盘状态,用数组a(1)~a(16)表示,代码略

        For i=1 To 16

            s=s+Str(a(i))

            If i Mod 4=0 Then List1. AddItem s : s=" "

        Next i

    End Sub

  • 14、[二进制枚举法]有n个人(编号1、2、3……n)一起玩猜拳游戏,请输出n个人猜拳的所有的情况(每个人包括石头、剪刀和布三种情况)。

    程序代码如下。

    Dims(2) AsString, res AsString

    Dim i AsInteger, p AsInteger

    PrivateSub Command1_ Click()

        s(0)="石头" : s(1)="剪刀" : s(2)="布"

        n= Va1(Text1. Text)

        For i=1 To n

            res= res+Str(i)+"号"+”"

        Next i

        List1. AddItem res

        For i=0 To    ①  

            p=1 : res =" "

            For j=1 To n

                res= res+" "+   ②  

                p=p\ 3

            Next j

            List1. AddItem res

        Next i

    EndSub

    (1)、若5个人进行游戏,则总方案数为
    (2)、请完成程序中的填空。

     ② 

  • 15、[矩阵上的枚举]大家有接触过地雷游戏吗?如图所示是一个“挖地雷”游戏的界面,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

  • 16、小李忘记了自己的银行账号密码,非常着急,请帮她尽快找出密码。幸亏她还隐约记得自己的密码信息:①密码是六位数字,前面两位为31;②最后两位数字相同;③能被16和46整除。程序界面如图所示,单击“帮助找回密码”按钮Command1后,可能的密码显示在列表框List1中,实现上述功能的VB代码如下。

    请回答下列问题:

    (1)、解决此问题的算法是(选填:枚举算法/解析算法)。
    (2)、在程序中划线处填入适当的代码。

    Private Sub Command1_ Click()

        Dim s As Long

        Dim iAs Integer,a As Integer,b As Integer

        For i=0 To 9999 Step

            s=310000+i

            If s Mod 46=0 Then

                a=

                b=s\ 10 Mod 10

                If a=b Then List1. AddItem Str(s)

            End If

        Next i

    End Sub

  • 17、幼儿园罗老师在班级活动课将全班小朋友进行分组:每3个小朋友组成1个小组,最后多出1个小朋友,每4个小朋友组成1个小组,最后也多出1个小朋友,每5个小朋友组成1个小组,最后1个小组差1个小朋友。若该班级小朋友不超过50人,编写VB程序实现求出当前班级至少有多少个小朋友,并将结果显示在文本框Text1中。程序设计界面如图所示。

    (1)、在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的属性。
    (2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_ Click()

        Dim flag As Boolean,i As Integer,d As Integer

        Dim t3 As Integer,t4 As Integer,t5 As Integer

        i=5:flag= True

        Do While i<= 50 And flag

            t3=i Mod 3

            

            t5=i Mod 5

            If (t3=1) And (t4=1) And (t5=4) Then

                

                flag= Flase

            End If

            i=i+1

        Loop

        Text1. Text = Str(d)

    End Sub1

    (3)、运行该程序,在文本框Text1中显示的值是
  • 18、编写“寻找质因子”的程序,程序功能:在文本框Text1中输入[2,32767]之间的任意整数,单击“执行”按扭Command1后,在文本框Text2中显示该整数可分解出的所有质因子(若存在重复,只输出一次)。程序运行时界面如下图所示:

    (1)、观察程序界面,不具有Caption属性的对象有(填数字)个。
    (2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_ Click()

        Dim n As Integer, m As Integer

        Dim s As String

        Dim bj As Boolean     '用于标记该质因子是否已存在

    n=Va1(Text1. Text)

        s=" "

        m= 2

        bj= True

        Do While n> 1

            If n Mod m=0 Then

                n=

                If bj= True Then

                    s=s+Str( m)

                    bj= False

                End If

            Else

                m=m+1

               

            End If

        Loop

        Text2. Text= s

    End Sub

    (3)、运行,上述程序,若在文本框Text1中输入1024,单击“执行”按钮后,文本框Text2中显示的内容为 。
  • 19、给定12个不同的正整数,任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。比如给定8 13 21 28 19 33 10 17 42 5 38 7,得到的答案是3,因为10是5的两倍,42是21的两倍,38是19的两倍。下列VB代码段能实现上述功能,请将划线处代码补充完整:

    Private Sub Command2_Click()

        Const n=12

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

        Dim i As Integer, j As Integer

        Randomize

        For i=1 To n

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

            For j=1 To i- 1

                If a(i)=a(j) Then

            Next j

            If j <i Then

        Next i

        For i=1 To n

            For j=1 To n

                If  Then

                    s=s+1

                    List1. AddItem Str(s)+":"+ Str(a(i)) + Str(a(j))

                    Exit For跳出内层循环

                End If

            Next j

        Next i

    End Sub

  • 20、使用会声会影软件加工视频时的部分界面如下图所示。

    从图中可知,加工该视频使用了(    )

    A、2个图片素材、1个视频素材、3个音频素材 B、1个图片素材、2个视频素材、2个音频素材 C、1个视频素材、2个图片素材、2个声音素材 D、2个音频素材、2个视频素材、2个图片素材
上一页 417 418 419 420 421 下一页 跳转