1. (贪心算法)最大整数问题:设有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) 要将按钮Command1的高度修改为800,以下赋值语句正确的是(单选,填字母:A .Command1_Height=800/B .Command1.Height=800/C .Height=800)。
(2) 当n=3时,生成3个数:618,681,68,由这三个数组成的最大整数为
(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

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

【考点】
运算符、基本运算与表达式; 常量、变量及变量的赋值; 过程与自定义函数; 分支结构语句及程序实现; 循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 困难
能力提升
换一批
1. 【缩解压缩问题】在数据压缩中,一个常用的途径是行程长度压缩。对于一个待压缩的字符串而言,我们可以依次记录每个字符及重复的次数。这种压缩,对于相邻数据重复较多的情况比较有效。例如,如果待压缩字符串为“AAABBBBCBB”,则压缩的结果是(A,3)(B,4)(C,1)(B,2)。现要求根据输入的字符串(长度在1000以内),全部由数字和字母组成,得到大小写不敏感压缩后的结果(即所有小写字母均视为相应的大写字母)。如:原字符串为 aAABBbBCCcAaaaa,缩后的结果为(a,3)(B,4)(C,3)(A,5)。实现这一功能的程序代码如下,运行界面如图所示。

(1) 原始数据是 TTtcTTCcc,则压缩数据为
(2) 在划线处填入适当的语句或表达式,将程序补充完整。

Private Sub Command1_Click ( )

Dim s As single, sl As single

Dim tmp As String, ans As String

Dim i As Integer, j As Integer

s = Text1. Text

s1 = “”

For i =1 To Len (s)

    s1 =s1 & ToUpcase (     ①       )

Next i

i = i

Do While i < Len(s1)

  tmp = Mid(sl, i, 1)

  ans = ans &“(”& tmp & “,”

  j = i+1

  Do While j < = Len(s1) And Mid(s, j, 1)=tmp

    j = j+1

  Loop

  ans =ans &     ②      & “)”

    ③  

Loop

Text2. Text = ans

End sub

Function ToUpcase (c As String) As string

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

    ToUpcase= Chr(Asc(c)-32)

  Else

    ToUpcase= c

  End if

End Function

 ② ③ 

综合题 普通
2. 校服烘干。五校联考要求学生统一穿校服参加,但是不幸的是,考试前所有考生的校服全都打湿了。一件衣服在自然条件下用一秒的时间可以晒干a点湿度。现在学校里有且仅有一台烘衣机,且目前烘衣机全部断货(即无法购入新机器)使用用一秒烘衣机可以让一件衣服额外烘干b点湿度(一秒晒干a+b湿度),但在同一时间内只能烘一件衣服。现在有n件衣服,第i衣服的湿度为w(i)(保证互不相同),要你求出弄干所有衣服的最少时间(湿度为0为干)。编写VB程序,实现上述功能。运行程序,显示窗体From1,在文本框Text1输入衣服总数n,在文本框Text2中输入a,在文本框Text3中输入b,在文本框Text4中输入各件衣服的湿度(共n个数据,数据与数据使用空格隔开),点击命令按钮Command1后,在标签Label1中显示弄干所有衣服的最少时间。程序运行界面如图所示。请回答下列问题:

(1) 若要使程序运行时,命令按钮Command1上显示为“计算”,可以在事件处理过程中添加语句Command1.Caption="计算"。(单选,填字母:A .Form_Load/B .Form1_Load/C .Command1_Click/D .Form1_Start)
(2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

Const maxn = 500005

Dim n As Long, a As Long, b As Long

Dim f(1 To maxn) As Long

Dim i As Long, tby As Long

Private Sub Command1_Click()

    tby = 1

    n = Val(Text1.Text) : a = Val(Text2.Text) : b = Val(Text3.Text)

    For i = 1 To n

        f(i) = Getin()

    Next i

    Dim l As Long, r As Long, m As Long

    l = 0: r = n

    Do While l <= r

        m = (l + r) / 2

        If Then

            r = m - 1

        Else

            l = m + 1

        End If

    Loop

    Label1.Caption = Str(r + 1)

End Sub

Function check(x As Long)

    Dim y As Long

    y = x

    For i = 1 To n

    Dim tmp As Long

   

    If tmp > 0 Then

        If y < 0 Then

            check = True

            Exit Function

        End If

    Next i

    check = False

End Function

Function Getin() As Long

    Dim aaa As String

    aaa = Mid(Text4.Text, tby, 1)

    If aaa = " " Then tby = tby + 1

    aaa = Mid(Text4.Text, tby, 1)

    Dim bbb As Long

    bbb = 0

    Do While aaa <> " " And tby <= Len(Text4.Text)

        bbb = bbb * 10 + Val(aaa) : tby = tby + 1

        aaa = Mid(Text4.Text, tby, 1)

    Loop

    Getin = bbb

End Function

(3) 程序中加框处代码有错,请改正。
综合题 困难