试题

试题 试卷

logo

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

浙江省台州中学2016-2017学年高一下学期信息技术第四次统练试题

小李父母开了一家农家乐,顾客可以到桔园自摘桔子,收费标准是门票每人20元,采摘的桔子每斤10元,付费时若能完成小游戏则有优惠。

用VB软件设计的自摘收费程序,功能如下:在文本框Textl中输入自摘的人数n,在文本框Text2中输入摘得桔子重量w。界面右上方是小游戏部分,程序在文本框Text3显示随机产生的桔子层数m,根据图中所示的堆桔子方法(第1层1个;第2层4个;第3层9个……),请顾客计算出m层桔子总数s,输入到文本框Text4中,单击“是否优惠计算”按钮Command1,就会在标签Label4中输出最后的费用f,并在标签Label7中给出提示是否“优惠后的费用”。运行效果如图所示: 

             

(1)、自摘收费程序所用的算法是(填:解析算法/枚举算法)。
(2)、为实现上述功能,请在划线①和②处填入合适的代码。

Dim m As Integer

Private Sub Command1_Click() 

Dim n As Integer, s As Integer

Dim w As Single, f As Single

n = Val(Text1.Text)              '输入大人人数n

w = Val(Text2.Text)             '输入重量w

f = 20 * n + 10 * w              '计算无优惠的费用f

s = 0

For i = 1 To m                            '计算桔子总数

 s = s + i * i

Next i

If  s=  Then  '判断是否拿到优惠计算费用

     f = f * 0.5 + s * 0.3'计算优惠后的费用

     Label7.Caption = "恭喜你,这是优惠后的费用!"

Else

     Label7.Caption = "很遗憾,你没有算对哦!"

End If

Label4.Caption = Str(f)        '输出最后的费用f

End Sub

Private Sub Form_Load()

Randomize

m =               '随机产生15层及以内的桔子层数不含0

Text3.Text = Str(m)

End Sub

(3)、若3位顾客摘得5斤桔子,游戏中需要计算出3层桔子的总个数,但是他们没有算对桔子个数,在text4中输入了16,那么这3位顾客需付总费用元。
举一反三
【根据宁波效实中学2012学年第一学期高一信息技术期末试卷改编】将一个十进制正整数x转换成十六进制数的方法和转换成二进制类似,反复除16取余法,它的算法如下

    第一步:x被除16取余数r1,r1是所求的十六进制数的一个数(第一次就是个位数);

    第二步:r1转换成十六进制数的一个基数并转换成字符,追加到十六进制数S的左边;

    第三步:求出x被除16的商x1;

    第四步:对x1重复(1)、(2)、(3)过程,直至商为0;

    第五步:最后的S即为所求的十六进制数;

下列Visual Basic程序的功能是将一个十进制正整数x转换成十六进制数。界面如图所示,在文本框Text1中输入一个十进制数制,单击“十进制转十六进制按钮”(Command1)后,在文本框Text2中输出转换的结果。 相应的Visual Basic程序如下:

Private Sub Command1_Click()

  Dim s As String, r As Integer

  dec = val(Text1.Text)                  ’dec得到一个十进制整数,例如:255;

  base = 16                               ’base表示16

     s = ""                                ’s变量存放要转换到的十六进制整数;

     Do While dec <> 0

          r =        ①   

          If r >= 10 Then                     ’如果base>10进制,r可能>10;

             s = Chr(65 + (r - 10)) + s   ’Chr (65)="A", 16进制数A对应10;

          Else                            ’Chr(66)="B", 16进制数B对应11;
             s = Str(r) + s      ‘余数r<10时,十进制数和十六进制基数相同;
          End If                   ‘Chr (65 +( r - 10))或str(r)在s左边,实现了反次序输出;
          dec =     ②              
    Loop
   Text2.Text = s
End Sub
返回首页

试题篮