相关试卷

  • 1、将十六进制数2FH的2倍转化为二进制数,结果是(  )
    A、1011110B B、1100000B C、1000000B D、1011100B
  • 2、下列数中,数值最大的是(  )
    A、209D B、D3H C、11010010B D、(210)10
  • 3、二进制数(1111010)2转换成十六进制数是(  )
    A、6AH B、6BH C、7AH D、710H
  • 4、下列将二进制数(1101)2转换成十进制数的算式中,正确的是(  )
    A、1×23+1×22+0×21+1×20 B、1×23+0×22+1×21+1×20 C、1×24+1×23+0×22+1×21 D、1×24+0×23+1×22+1×21
  • 5、编写VB程序,实现如下功能:在文本框Text1和Text2中分别输入一个整数,单击命令按钮Command1,在列表框List1中显示结果,运行效果如图1所示。结果包含两列数据,第1列为两数之间的摄氏温度值(间隔1度、升序),第2列为对应的华氏温度值。

    (1)、要使命令按钮Command1上显示的文本改为“转换”,可在其属性窗口(图2)中将属性的属性值修改为“转换”。
    (2)、为实现上述功能,请在划线处填入合适代码或选项。

    Private Sub Command1_Click( )

    Dim t1 As Integer, t2 As Integer

    Dim i As Integer, t As Integer

    Dim f As Single    ‘f存储华氏温度值

    List1.Clear

    t1=Val(Text1.Text)

    t2=Val(Text2.Text)

    If  ①  Then   ‘(选填字母,从下列A、B、C、D四个选项中选取一项)

      t=t1:t1=t2:t2=t

    End If

    i=t1

    Do While  ②     ‘(选填字母,从下列A、B、C、D四个选项中选取一项)

      f=i*9/5+32       ‘摄氏温度转换为华氏温度

      List1.AddItem Str(i)+“ ”+Str(f)

      i=  ③       ‘(填程序代码)

    Loop

    End Sub

    划线处应填① ② ③ 

    A.i<=t2   B.f<=t2   C.t1>t2   D.i<f

  • 6、将一个十进制正整数x转换成十六进制数的方法和转换成二进制类似,反复除16取余法,它的算法如下:

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

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

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

    第四步:对x1重复第一、二、三步,直至商为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=(1)     

         If r >=10 Then       ‘如果base>10,r可能>10

          s=Chr(65+(r-10))+s     ‘Chr(65)=“A”,16进制数A对应10;

         Else

          s=Str(r)+s      ‘余数r<10时,十进制数和十六进制基数相同

         End If      ‘Chr(65+( r-10))或str(r)在s左边,实现了反次序输出

         dec=(2)     

      Loop

     Text2.Text=s

    End Sub

    在(1)处应填入 , 在(2)处应填入

    A.base Mod dec   B.dec/base

    C.dec Mod base   D.dec\base

  • 7、将一个十进制正整数转化为二进制数可以采用“除二取余法”,主要方法就是将十进制数用2除,保存所得余数,然后将商的整数部分作为下次运算的被除数,重复上述“除二取余”操作,直到商的整数部分为零时停止。

    程序界面如图所示,在文本框Text1中输入一个正整数,单击“转换”按钮(Command1)后,对应的二进制数在文本框Text2中显示出来。

    解决此问题的Visual Basic程序如下,在程序①和②划线处,填入适当的语句或表达式,把程序补充完整。

    Private Sub Command1_Click()

     Dim x As Integer,s As String,r As Integer,t As Integer

    x=Val(Text1.text)

    s=“”

    Do While ①      

     r=x Mod 2

    s=Str(r)+s

    x=②   

     Loop

     Text2.text=s

    End Sub

    (1)、解决此问题所用的算法是。(选填:解析算法或枚举算法)
    (2)、程序中划线处①应填入
    (3)、程序中划线处②应填入
  • 8、用VB编写十六进制转换为十进制的程序,运行界面如图所示,程序功能如下:在文本框Text1中输入待转换的十六进制数值(字母必须大写),单击按钮Command1,进行转换,并将结果显示在文本框Text2中。

    (1)、结合运行界面,当前窗体标题文字“进制转换”是From1对象的属性。
    (2)、请根据题意将下列程序补充完整。

    Private Sub Command1_Click()

      Dim i As Integer, n As Integer, dec As Integer

      Dim ch As String, s As String

      dec=0

     

      For i=1 To Len(s)

        ch=Mid(s, i, 1)

        If then 

          n=Asc(ch)-Asc("A")+10

        Else

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

        End If

        dec=dec+n * 16 ^ (Len(s)-i)

      Next i

      Text2.Text=str(dec)

    End Sub

    (3)、若在文本框Text1中输入“31”,则文本框Text2输出的值是
  • 9、“角谷猜想”规则:对任意一个大于1的正整数n,若n 是奇数,则n的值改为3n+1;若n是偶数,则n的值改为n/2,重复以上操作,n 的值最终会变为1。使用VB验证这个猜想。程序界面如图所示,在文本框Text1中输入一个大于1的正整数,单击“验证”按钮Command1,在列表框List1中输出每一步的运算过程。

    (1)、在界面设计时,没有使用到的控件为(填字母)。

    (2)、为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1_Click()

     Dim n As Integer, i As Integer

     List1.Clear

     

     If n > 1 Then

      List1.AddItem “步数对应值”

      i=1

      Do While

      If n Mod 2=1 Then

       n=n * 3+1

      Else

       n=

      End If

      List1.AddItem Str(i)+“ ”+Str(n)

      i=i+1

     Loop

    Else

     List1.AddItem “输入有误!”

    End If

    End Sub

  • 10、下列程序的功能是将text1中输入的自然数分解为3个互不相同的质数(三个质数的和等于输入的自然数),并把分解产生的质数按升序顺序显示在左边的列表框中。例如,输入20,那么在列表框中会显示如图所示结果。其中,界面中“开始处理”按钮的名称是“Command1”,程序中函数f(x)的功能是判断x是否为质数,如果是质数则返回值为true,否则返回值为false。

    请在下列程序代码的基础上按照要求设计该程序,完善程序中的划线部分。

    Dim n As Integer, a1 As Integer, a2 As Integer, a3 As Integer

    Function f(x as integer) As Boolean

     f=True

     For i=2 To Sqr(x)

       If x Mod i=0 Then

     Next i

    End Function

    Private Sub Command1_Click()

    n=

    For a1=2 To n

     For a2=a1 To n

      For a3=a2 To n

       IfAnd f(a1) And f(a2) And f(a3) Then

        List1.AddItem(Str(a1)+“ ”+Str(a2)+“ ”+Str(a3))

       End If

      Next a3

     Next a2

    Next a1

    End Sub

  • 11、珠心算是在大脑中以算珠表象作为载体,运用珠算法则所进行的计算。某学校的珠心算老师采用一种快速考查珠心算加法能力的测验方法。他随机给出一个正整数集合,集合中的数各不相同,然后要求学生回答:其中共有多少个数恰好等于集合中另外两个(不同的)数之和?例如对于集合{1,2,3,4},一共有2个数等于集合中另外两个数之和,它们是3、4(4=3+1,3=2+1)。将上述算法编写成程序,其功能如下:程序运行时产生n个范围在[1,100]内的不同的随机整数存储在数组a中,并在列表框List1中显示。单击按钮Command1后,在标签Label1上输出结果,如图所示。

    (1)、对于集合{1,2,3,4,5,6},一共有个数等于集合中另外两个数之和。
    (2)、实现上述功能的VB程序如下,请在划线处填入合适代码。

    Const n=12

    Dim a(1 To n) As Integer

    Dim flag(1 To 100) As Boolean

    Private Sub Form_Load()

    Dim i As Integer, t As Integer

    For i=1 To 100

      flag(i)=False

    Next i

    i=1

    Do While i <=n

      t=Int(Rnd * 100)+1

      If Not flag(t) Then

      

        List1.AddItem Str(t)

        flag(t)=True

        i=i+1

      End If

    Loop

    End Sub

    Private Sub Command1_Click()

    Dim i As Integer, j As Integer, ans As Integer

    ans=0

    For i=1 To n

      For j=i+1 To n

       If a(i)+a(j) <=100 Then

         IfThen

           ans=ans+1

           flag(a(i)+a(j))=False

         End If

      

      Next j

    Next i

    Label1.Caption="共有"+Str(ans)+"个数!"

    End Sub

  • 12、火柴算术游戏,给定n(n<=24)根火柴,恰好用尽n根火柴拼凑出A+B=C形式的算式,问一共有多少种可行方案,请输出方案的总数,已知0~9每个数字所需的火柴根数如下表所示:

    注意:⑴其中A+B=C 等式中的“+”“=”需要用去4根火柴。

    ⑵0+4=4与4+0=4算作一种方案。

    例如n=18,符合条件的算式共有5个:0+4=4,0+11=11,1+10=11,2+2=4,2+7=9。

    小明设计了一个程序,在Text1中输入火柴数量,单击“计算”按钮,在Label1中输出总的可行方案数,并在List1中输出所有可行的算式。

    程序代码如下,加框处代码有误,请修改。

    Dim s(0 To 9) As Integer

    Private Sub Command1_Click()

     Dim n As Integer, a As Integer, b As Integer, count As Integer

      count=0

      n=Val(Text1.Text)

      For a=0 To 999 Step 1

        For b=a To 999 Step 1

           If   Then   '①

            List1.AddItem Str(a)+"+"+Str(b)+"="+Str(a+b)

            count=count+1

          End If

        Next b

      Next a

      Label2.Caption="共"+Str(count)+"种方案"

    End Sub

    Function gs(ByVal x As Integer) As Integer

      Dim tmp As Integer

      tmp=0

      If x=0 Then tmp=s(0)

      Do While x > 0

             '②

        x=x \ 10

      Loop

      gs=tmp

    End Function

    Private Sub Form_Load()

      s(0)=6: s(1)=2: s(2)=5: s(3)=5: s(4)=4

      s(5)=5: s(6)=6: s(7)=3: s(8)=7: s(9)=6

    End Sub

  • 13、一个十进制整数的二进制表示中,如果数字“1”的个数多于数字“0”的个数,则称该整数为A类数。如十进制整数26的二进制表示为11010,26是一个A类数。下列VB程序的功能是:寻找前1 000个自然数中所有A类数在List1中输出,并将统计个数在Text1中输出。

    请回答以下问题。

    (1)、十进制数37(选填:是/不是)A类数。
    (2)、请在划线处填入合适的代码。

    Private Sub Command1_Click()

      Dim i As Integer, n As Integer

      Dim s As Integer  's为A类数的个数

      Dim t As Integer   't为二进制数中“1”的个数

      Dim k As Integer   'k为二进制数中“0”的个数

      s=0

      For i=1 To 1000

       n=i:t=0:k=0

       Do While n > 0

        If Then t=t+1 Else k=k+1

       

       Loop

       If t>k Then

        List1.Additem str(i)

        s=s+1

       End If

     Next i

     Text1.Text=Str(s)

    End Sub

  • 14、一个VB工程的部分设计界面如图所示。下列说法不正确的是(  )

    ①工程文件名是“工程1.vbp”

    ②该工程只有1个窗体

    ③窗体文件名是“Form.frm”

    ④窗体名称是“寻找水仙花数”

    A、①② B、②③ C、①③ D、③④
  • 15、小李在设计VB程序时所使用复选框对象的属性窗口如图所示,他想编制该复选框单击事件的处理过程,则该事件处理过程名是(  )

     

    A、CheckBox_Click() B、加粗_Click() C、Check1_Click() D、复选框_Click()
  • 16、有如下Visual Basic语句,书写格式正确的是(  )
    A、Label1.caption=“Hello!” B、Label1.caption=(-b+sqr(b^2-4ac))/2 C、List1.AddItem=“Hello!” D、Text1.text=str(“Hello!”)
  • 17、某Visual Basic程序的一个事件过程如下:

    Private Sub Form_Load()

     Command1.Caption=“计算”

    End Sub

    在程序运行时,能触发该事件的是(  )

    A、窗体装载 B、单击窗体 C、单击命令按钮Command1 D、双击窗体
  • 18、一个VB程序的运行界面如图所示。下列说法不正确的是(  )

    A、文本框Text1的Caption属性值为“H” B、标签Label1的Caption属性值为“输入字符” C、命令按钮Command1的Caption属性值为“查询” D、窗体的Caption属性值为“查询字符ASCII码”
  • 19、小王在研究n个数的冒泡排序算法,发现可以从两个方面进行优化:

    ⑴在每遍冒泡过程中,若最后一次交换的是last与last-1位置,则last位置之前的相邻数据均已有序。进行下一遍冒泡时,无序区域设置[last, n],这样可使无序区域缩小。

    ⑵若在某一遍排序中没有数据交换,说明待排序数据都已经有序,冒泡排序过程可在此遍排序后结束。因此可以引入一个变量flag,记录在每遍排序过程中是否发生了交换。

    小王设计了如下VB程序,功能如下:按Cominandl“生成数据”后,生成一组随机的两位整数存入数组a,并输出在列表框List1中。单击Command2“排序”后,a中的数据进行降序排序,排序后的数据显示在列表框List2中,排序过程中实际的冒泡遍数显示在Label2上。程序运行界面如下所示。

    实现上述功能的VB程序如下,回答下列问题:

    (1)、若按小王优化后的冒泡排序算法,数据28,15,10,8,12进行降序排序,冒泡的遍数(填数字)。
    (2)、在画线处填入合适的代码。

    Dim a(1 To 20) As Integer

    Private Sub Commandl_Click()

    Dim i As Integer, j As Integer

    List1. Clear: List2. Clear

    Randomize

    For i=1 To 20

     

     For j=1 To i-1

      If a(i)=a(j) Then i=i-1: Exit For

     Next j

    Next i

    For i=1 To 20

     Listl. Addltem Str(a(i))

    Next i

    End Sub

    Private Sub Commandl2_Click()

    Dim flag As Boolean, i As Integer, j As Integer

    Dim temp As Integer, nuui As Integer, last As Integer

    nuin=0: last=1

    flag=True

    Do While flag=True

     

     For j=20 To last+1 Step-1

      If a(j) > a(j-1) Then

       temp=a(j): a(j)=a(j-1): a(j-1)=temp

     

       flag=True    ‘有交换发生

      End If

     Next j

     num=num+1

    Loop

    For i=1 To 20

     List2. Addltem Str(a(i))

    Next i

    Label3. Caption=“本次排序的冒泡遍数为:” & Str (num)

    End Sub

  • 20、小李基于选择排序算法编写了一个VB程序,功能如下:在文本框Text1中显示排序前的数据,单击“排序”按钮Command1,在文本框Text2中显示剔除重复数据后的升序排序结果。程序运行界面如下图所示。算法的思路:第i趟排序从a(i)……a(bottom)中查找最小值并记录其下标k,同时将后面的每个元素与a(i)比较是否重复,若发现重复数据,进行剔除处理;找到最小值与a(i)交换。

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

    Const n=10

    Dim a(1 To n)As Integer

    Private Sub Command1_Click()

    Dim i As Integer, j As Integer, t As Integer

    Dim k As Integer, bottom As Integer

    ‘获取排序前数据,依次存储在数组a中,并在文本框Text1中显示。代码略

    bottom = n: i = 1

    Do While i <= bottom - 1

     k = i: j = bottom

     Do While j > i

      If a(j) < a(k) Then

       k = j

      Elself a(j) = a(i) Then

       a(j) = a(bottom)

       IfThen k=j

       bottom = bottom - 1

     End If

     j = j - 1

     Loop

     If k <> i Then

      t = a(k): a(k) = a(i): a(i) = t

     Else

     

      End If

    Loop

    For i = 1 To

     Text2. Text = Text2.Text + Str(a(i))

    Next i

    End Sub

上一页 1497 1498 1499 1500 1501 下一页 跳转