试题

试题 试卷

logo

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

浙江省高一下学期信息技术期末考试试卷

数制转换。将一个K进制(k<=10)数x转换成十进制数可采用如下方法:主要方法是从右向左,依次取数x的各位数字,分别计算出该数从右边数起的第i位数字与k(i-1)的积,再将其累加,直到所有的数字取完为止。例如,将五进制数1231转换成十进制数的方法如下:

下列Visual Basic程序的功能是将K进制(k<=10)数x转换成十进制数。界面如图所示,在文本框Text1中输入数制k,在文本框Text2中输入数x,单击"转换"按钮(Command1)后,在标签Label4中输出转换的结果。

 

解决此问题的算法流程图如图所示,相应的Visual Basic程序如下:

Private Sub Command1_Click()

Dim b As Long, i As Integer, k As Integer, x As Long, t As Integer

b = 0: i = 1

k = Val(Text1.Text)

x = Val(Text2.Text)

t = x Mod 10

    Do While      ①    

        b =       ②     

        x = x \ 10

        t = x Mod 10

        i = i + 1

    Loop

Label4.Caption = Str(k) + "进制数" + Text2.text + "转换成十制数为" + Str(b)

End Sub

在程序①和②划线处,填入适当的语句或表达式,把程序补充完整:

(1)、程序中①划线处应填入
(2)、程序中②划线处应填入
举一反三
【加试题】小张设计了一个“加减运算测试”程序。程序启动时运行界面如右图所示。在文本框Text1中输人计算结果后单击“下一题”按钮Command1,如计算结果正确,则得分加10分,否则不加分,同时显示下一试题内容并计数,直至完成10题测试。实现上述功能的VB程序如下,但加下划线代码有错,请改正。

   Dim n As Integer    '为试题计数器
   Dim s As Integer    's为测试得分
   Dim a As Integer, b As Integer  'a,b 为运箅数
   Dim c As String 'c为运算符:"+ "表示加运算,"一"表示减运算
   Private Sub Command1Click()
   If c ="+"  Then
      If a + b = Val(Text1.Text) Then
         s = s + 10
      End If
   Else
      If c ="-"  Then       ①                
         s = s + 10
      End If
   End If
   Label2.Caption = "得分:" + Str(s)
   DispTest
   End Sub
   Private Sub FormLoad()
  Randomize
  n = 0
  s = 0
  DispTest
  End Sub
  Private Sub DispTest()
  n = n + 10       ②       
  If n < 11 Then
    Label1.Caption = "试题" + Str(n)    'a,b为运算数,且要求a不小于b
    a = Int(Rnd() * 100)
    b = Int(Rnd() * 100)
      If Rnd() > 0.5 Then c = "+" Else c = "-"
      Label3.Caption = Str(a) + c + Str(b) + "="
     Text1.Text = ""
Else
   Command1.Caption = "完成测试"
End If
End Sub
①处正确的代码是{#blank#}1{#/blank#}。
②处正确的代码是{#blank#}2{#/blank#}。
【加试题】某加密程序,对输入的原始字符串进行加密处理,输入加密后得到的字符串。数据加密方法为对原始字符串中的每个字符进行如下处理:

  ①将该字符的ASCII码值转化为8位二进制数;

  ②将后4位二进制数进行按位取反(1变0,0变1);

  ③将操作②生成的4位二进制数均左移1位(原第1位变为新的第4位);

  ④原高4位二进制数连接到新的后4位二进制数成为最终加密后字符的内码。

  例如:字符“a”经过上述加密运算,可得到字符“m”。

ASCII码值

转二进制

后四位取反

后四位左移

拼合

转十进制

转字符

97D

01100001B

1110

1101

01101101B

109D

“m”

程序运行界面如图所示,请改正加框处有误的代码:

Private Sub Command1_Click()

    Dim s As String:Dim sl As String:Dim jg As String

    Dim n As Integer:Dim x As Integer:Dim i As Integer:Dim j As Integer

    Dim a(15)As String

    a(0)=“0000”:a(1)=“0001”:a(2)=“0010”:a(3)=“0011”

    a(4)=“0100”:a(5)=“0101”:a(6)=“0110”:a(7)=“0111¨

    a(8)=“1000”:a(9)=“1001”:a(10)=“1010”:a(11)=“1011¨

    a(12)=“1100”:a(13)=“1101”:a(14)“1110”:a(15)=“1111”

    jg=“ ”

    s=Text1.Text

    For i=1 To Len(s)

        n=Asc(Mid(s,i,1))

        low=n Mod 16

        low=15-low          ‘执行步骤②

        s1=Mid(a(low),2,3)&Mid(a(low),1,1)  ‘执行步骤③

        For i=l To 4

            x=x+Val(Mid(s1,j,1))*         ‘⑴{#blank#}1{#/blank#}

        Next j

        x= *16+x                        ‘⑵{#blank#}2{#/blank#}

jg=jg&Chr(x)

    Next i

    Text2.Text=jg

End Sub

返回首页

试题篮