试题详情
操作题 适中0.65 引用1 组卷18
江雪彤用VB编写一个能自动计算水电气费的程序运行该程序输入用水量、用电量和用气量,单击“计价”按钮,即可计算出用户应缴费用如下图所示。但江雪彤编写的程序有几处错误,请帮她修改。(注:应缴费用=水费×水价+电费×电价+气费×气价)
Private Sub Command1_ Click()
Dim a, b, c As single
Dim As Single
a=Val(Text1.Text)
b= Val(Tex2.Text)
c=Val(Text3.Text)
s=a×2.75+b*0.56+c*1.85
Text4.Caption=s
End Sub
(1)修改“Dim as Single”行中的1处错误;
(2)修改“s=a×2.75+b*0.56+c*1.85”行中的1处错误;
(3)修改“Text4. Caption=s”行中的1处错误;
(4)保存文件。
2020高三·浙江·学业考试
知识点:VB程序的调试 答案解析 【答案】很抱歉,登录后才可免费查看答案和解析!
类题推荐
某城市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案:

在搭乘一次地铁后可以获得一张面额为本次地铁价格的优惠券,有效期为60分钟,在有效期内可以使用这张优惠券,免费搭乘一次票价不超过这张优惠券的公交车。在有效期内指开始乘公交车的时间与开始乘地铁的时间之差小于等于60分钟。搭乘地铁获得的优惠券可以累积,即可以连续搭乘若干次地铁后再连续使用优惠券搭乘公交车,但每次搭乘公交车只能使用一张优惠券。搭乘公交车时,如没有合适的优惠券,则自己全额支付;如果有多张优惠券满足条件,则优先消耗获得最早的优惠券。

小叶同学根据优惠政策,编写了计算优惠后需要支付费用的程序,同时将乘车记录按时间先后顺序逐行显示。在Text1里输入乘车记录的数量n,Text2里输入n组数据,每组乘车记录有3个数据,依次是车型(1表示地铁、2表示公交)、开始乘车时间、乘车票价。每个数据以逗号结尾。不会有两次乘车记录出现在同一分钟。数组d存储乘车记录的结构如图a所示:

第1条乘车记录

第2条乘车记录

……

数组中的位置

1

2

3

4

5

6

……

对应的值

2

200

3

1

3

7

……

车型

开始时间

票价

车型

开始时间

票价

……


程序界面如图b所示:
图b
(1)在VB表达式Val(Text1.Text)中,Val、Text1、Text依次表示________(单选,填字母:A.方法名、属性名、事件名/B.函数名、对象名、方法名/C.函数名、对象名、属性名)。
(2)实现上述功能的程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有误,请改正。
Dim yh(1 To 100)As Integer,flag(1 To 100)As Boolean,dt As Integer
Dim d(1 To 100)As Integer’存储乘车的记录
Private Sub Command1_Click()
   Dim i As Integer,j As Integer,k As Integer
   Dim sum As Integer,n As Integer,c As String,s As String
   n=Val(Text1.Text):s=Text2.Text:j=1:k=1
   For i=1 To Len(s)
     c=Mid(s,i,1)
     If c="," Then
       ___
       j=i+1:k=k+1
     End If
   Next i
   For i=1 To n-1
     For j=3*n-1 To ___Step-3
If d(j)<d(j-3)Then
   temp=d(j+1):d(j+1)=d(j-2):d(j-2)=temp
   temp1=d(j):d(j)=d(j-3):d(j-3)=temp1
          temp2=d(j-1):d(j-1)=d(j-4):d(j-4)=temp2
       End If
     Next j
   Next i
’按行输出乘车记录,代码略
   dt=0
   For i=1 To k-1 Step 3’yh(dt)存储第dt张优惠券的乘车记录在数组d中的起始位置
        If d(i)=1 Then dt=dt+1:yh(dt)=i
     Next i
     sum=d(3)
     For i=2 To n
       For j=1 To dt
          If yh(j)3<i Then
             If(d((i-1)*3+1)=2)And(d((i-1)*3+2)-d(yh(j)+1)<=60)And flag(j)=False And()Then___
                  flag(j)=True:Exit For
             End If
          End If
        Next j
        If j=dt+1 Then sum=sum+d(3*i)
     Next i
     Label1.Caption=Text1.Text+"次乘车支付的总费用是:"Str(sum)
   End Sub
算法设计与程序实现
判断车牌的单双号
【背景知识】

 为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。

如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。(提示:(1)所有车牌号中都含有数字,并且车牌号的长度都是6;(2)以车牌中最后一位阿拉伯数字的奇、偶来决定单双号。)

(1)输入:AD2367

(2)输入:A8888A

(3)输入:A8963C

输出:单号

输出:双号

输出:单号

【算法描述】

(1)自然语言

第1步:输入车牌号

第2步:取车牌号的最后一位x;

第3步:判断x是否为数字,如果是,转第4步;如果不是,则依次取得倒数第二、三……位判断,直到找到数字为止;

第4步:判断x 是奇数还是偶数,然后输出相应的结果。

(2)流程图

                         

请根据上述算法描述补全代码

  Dim n As Integer

  Dim s As String       ‘定义s 为字符串类型

  Dim x As String

  s=InputBox(“s=”,s)   ‘将输入的车牌号赋值给s

  n=6                                              ‘车牌号的长度为6

  x=Mid(s,n,1)     ‘取车牌号s的第n位

  Do While x<”0” Or x>”9”  ‘x不是数字字符,则取x的前一位

   

   x=Mid(s,n,1)          ‘取车牌号s的第n位

  Loop

  If              then

        Print “双号”

   Else

        Print “单号”

   End If

(提示:Mid(s,m,n)的功能:从字符串s的第m位开始,截取长度为n的子串。例如:Mid(“A8963C”,5,1)的返回值是“3”。)

1. 根据题意,程序中空白①处应填写:_______________________________ 。
2. 根据题意,程序中空白②处应填写:______(填写字母:A/B/C/D)。
A、Val(x)\ 2= 0     B、Val(x)Mod 2 = 1     C、Val(x) Mod 2=0     D、Val(x) Mod 2 <> 0
将一段只含大小写字母与空格,不含其它字符的字符串加密,加密算法描述如下
(1).将明文中的字母 E 替换为 A,F 替换为 B,G 替换为 C,… A 替换为 W,B 替换为 X,C 替换 为 Y,…,小写字符的替换方法同理。

如:明文:I Love China     加密为:E Hkra Ydejw
(2).将加密后的英文字母,按顺序依次放入每个字符串段落中,第 1 个加密字母 E 放在第 1 个段落,第 2 个字母 H 放在第 2 个段落,依次类推(如下图),段落间用逗号分隔并以逗号结 尾。当遇到空格,在段落末尾“,”前,插入“+”号作为标记。

第 1 段

第 2 段

第 3 段

第 4 段

第 5 段

第 6 段

第 7 段

第 8 段

第 9 段

第 10 段

E+,

H,

k,

r,

a+,

Y,

d,

e,

j,

w+,


(3).每个段落中,随机插入字母形成新的字母序列段,当段号小于 8 时加密字母在字母序列中存放位置刚好是该段落号,位置以 8 为周期,第 9 段时,加密字母存放位置回到字母序列的 第 1 位,第 10 段加密字母存放位置回到第 2 位,依次类推。(位置号<=8)

第 1 段

第 2 段

第 3 段

第 4 段

第 5 段

Etc+,

mHfryh,

oTkrestf,

rfir,

Ccfta+,

第 6 段

第 7 段

第 8 段

第 9 段

第 10 段

iynhyYf,

tqswjyd,

nrtesiueh,

jnytq,

Uwccdb+,


(4).在每一段中随机插入除英文字母之外的 ASCII 字符码,形成一串密文。如图所示:

①若密文字符串为: “!@8G+*y/$#r~!s,f?[:a34c33!<e=w,123#r@/{t++*%&M2s7s,+h@f$5/j+*^e.? i*,/6*+e$(c3~/: p-)h->w%&3@w!@,4/*i#$@+m!j65&*(kr+^$k++k#l,”
则根据加密算法,解密后的明文为_________
②为了寻找密文中隐藏的信息,小明编写了一段 VB 解密程序,代码如下,请在划线处 填入合适的代码。

Private Sub Command1_Click() Dim i As Integer, k As Integer

Dim s As String, c As String, ch As String

Dim letter As String, ret As String       'letter 用于存放字母序列

s = Text1.Text k = 1

For i = 1 To Len(s)

c = Mid(s, i, 1)

If c >= "A" And c <= "Z" Or c >= "a" And c <= "z" Then letter = letter + c

ElseIf c = "," Then

________

ch = Chr(Asc(ch) + 4)

If Not (ch >= "A" And ch <= "Z" Or ch >= "a" And

ch <= "z") Then ch = Chr(Asc(ch) - 26)

End If

If ______ Then ret = ret + ch + " "

Else

ret = ret + ch

End If

______

k = k + 1

End If

Next i

Text 2.Text = ret

End Sub

组卷网是一个信息分享及获取的平台,不能确保所有知识产权权属清晰,如您发现相关试题侵犯您的合法权益,请联系组卷网