试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省“山水联盟”2021届高三上学期信息技术开学考试试卷

暑假小明的弟弟问了他一道小学一年的数学题,题目是:“小红去超市买东西,里面有:巧克力一盒28元、火腿肠一包24元、皮球一个16元、毛巾一条4元、N95口罩一包15元、笔记本一本8元、铅笔盒一个7元、水晶泥一盒12元、水彩笔一盒24元、牛奶一瓶5元等很多商品。小红带的钱刚好购买其中的两样东西。请问她可以买哪两样东西,有几种组合?”为解决这个问题,小明专门编写了一个VB程序。在文本框中text1输入商品和价格,在文本框text2中输入带的钱,单击“挑选”按钮,在列表框list1中输出查询结果。程序运行界面如下图:

请回答下面问题:

(1)、下列对象中,有Caption属性的是(单选,填字母:A .Command1/B .Text1/C .Lis1)。
(2)、实现挑选两样商品功能的VB程序如下,请在划线处填入合适的代码。

Private Sub Command1_Click()

Dim n,i,j,k,x,L,R,c As Integer

Dim goods(1 To 20)As String      'goods(i)存储商品的名称

Dim price(1To 20)As Integer       'price(i)存储商品的价格

Dim s,ch As String

s=Text1.Text:x=Val(Text2. Text)

j=1:k=0

For i=1 To Len(s)

    ch=Mid(s,i,1)

    If ch="," Then

      k=k+1

      If k Mod 2=1 Then

       

      Else

          price(k\2)=Val(Mid(s,j,i-j))

      End If

      j=i+1

    End If

Next i

n=k\2

For i=1 To n-1

    For i=1 To n-i

      If price(j)>price(j+1)Then

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

       

      End If

    Next j

Next i

For i=2 To n

 

  L=i:R=n

  Do While L<=R

    m=(L+R)\2

    If price(m)+price(k)=x Then

        c=c+1

        List1. Addltem goods(k)& Str(price(k))&"元 和" & goods(m)& Str(price(m))& "元"

        j=m

        Do While price(j)=price(j-1)

          j=j-1

          c=c+1

          Listl. Addltem goods(k)& Str(price(k))& "元 和" & goods(j)& Str(price(j))& "元"

        Loop

        Do While

          m=m+1

          c=c+1

          List1. Addltem goods(k)& Str(price(k))& "元 和" & goods(m)& Str(price(m))& "元"

        Loop

        Exit Do    ‘Exit Do 表示退出Do循环

    Elself price(m)+price(k)>x Then

        R=m-1

    Else

        L=m+1

    End If

   Loop

Next i

List1. Addltem"共有:" & Str(c)& "种组合"

End Sub

(3)、程序中加框处代码有错,请改正。
举一反三
用VB编写一个字符串分行程序,功能如下:单击“分行”按钮Command1将文本框Text1中的英文文本在列表框List1中分行显示(分行时单词不得跨行,每行字符尽可能多但不超过40个)并在标签Label1中输出总行数,运行效果如图所示。分行算法如下:

⑴将文本框中的字符串保存到变量s中;

⑵当s中字符个数超过40时,循环执行下列①、②、③步,否则跳转到(3):

①如果第41个字符不是英文字母,则分行位置p = 40;否则,向左逐个查找,直至找到第一个非英文字母,将其位置作为分行位置p;

②截取s的前p个字符,作为新增行显示在列表框List1中,同时总行数加1 ;

③将s中未分行部分重新赋值给变量s。

⑶将s作为新增行显示在列表框List1中,同时总行数加1。

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

Private Sub Commandl_Click()

Dim s As String,c As String

Dim r As Integer, total As Integer,p As Integer

total = 0

s ={#blank#}1{#/blank#}

Do While Len(s) > 40

r = 41

c = Mid(s,r,1)

If  Not((c>= "a"And c<="z" ) Or (c>="A"Andc<="Z")) Then

p = 40

Else

’从第41个字符幵始向左找到第1个非英文字母,并将其位置值赋给p

     Do While (c >= "a" And c <= "z") Or (c >= "A"  

                 And c <= "Z")

r ={#blank#}2{#/blank#}

c = Mid(s,r,1)

Loop

p = r

End If

List1. Addltem  Mid(s,1,p)

total = total + 1

s ={#blank#}3{#/blank#}

Loop

List1. AddItem  s

total = total + 1

Labell. Caption ="共"+ Str(total) + "行"

End Sub

返回首页

试题篮