浙江省金华第一中学2017-2018学年高二上学期第二次段考信息技术试题

适用年级:高二
试卷号:549563

试卷类型:月考
试卷考试时间:2019/4/24

1.选择题(共10题)

1.
VB程序中表达式 33 mod 17\3*2的值为(   )
A.10B.1C.2D.3
2.
有如下程序段:
For i = 5 To 4 step -1
For j = 1 To i-1
If a(j) > a(i) Then
t = a(j): a(j) = a(i): a(i) = t
End If
Next j
Next i
数组元素a(1)到a(5)的值依次为“3,1,4, 2 ,5”,经过该程序段“加工”后,数组元素a(1)到a(5)的值依次为(   )
A.1,2,3,4,5B.2,1,3,4,5C.3,1,2,4,5D.1,3,2,4,5
3.
有序(非降序)数组A有n个元素,用对分查找算法在数组A中查找key值所在的位置,如果有重复的元素,则显示最早出现该key值的位置。相应的VB程序段如下:
key = Val(Text1.Text)
i = 1: j = n
Do While i <= j
m = (i + j) \ 2
If a(m) > key Then
j = m - 1
ElseIf a(m) < key Then
i = m + 1
Else
If ① Then
j = m - 1
Else
Label2.Caption = Str(key) + "的起始位置是" + Str(m)
Exit Do
End If
End If
Loop
If i > j Then
Label2.Caption = "找不到" + Str(key)
End If
要使程序实现上述算法思想,则方框中的语句是
A.a(m - 1) = keyB.a(m) = keyC.m - 1 >= 0 And a(m - 1) = keyD.m - 1 >= 0 And a(m) = key
4.
能正确判断三个整数型变量a、b、c值相等的VB表达式是(   )
A.a = b = cB.a = b  And  a = c
C.a = c Or b = c Or a = bD.a – b - c = 0
5.
下列Visual Basic表达式中,能产生80到100之间(包括80和100)随机整数的是(   )
A.Rnd() * 100B.Rnd() * 100 - 20
C.Int(Rnd() * 20) + 80D.Int(Rnd()*21)+80
6.
有如下VB程序段:
Dim a(l To 5) As Integer, i As Integer, c As Integer
a(1) = 2 : a(2) = 4 : a(3) = 6 : a(4)=36 : a(5) = 72
s=0
For i = 2 To 5
If a(i - 1) ^2 = a(i) Then s = s + a(i)
Next i
Text1.Text = Str(s)
该程序段运行后,文本框Text1中显示的内容是(   )
A.4B.6C.8D.40
7.
有如下程序段:
tail = 6:i = 1:r = Val(Text1.Text)
Do While i < r
For j = tail To i + 1 Step -1
If a(j) > a(j - 1) Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
End If
Next j
i = i + 1
For j = i To tail - 1
If a(j) < a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
tail = tail - 1
Loop
数组元素a(1)到a(6)的值依次为“73、56、28、61、44、92”,若在文本框Text1中输入“2”,则经过该程序段“加工”后,数组元素a(1)到a(6)的值依次为
A.73,61,56,92,44,28B.92,73,56,61,44,28
C.92,73,61,56,28,44D.92,73,61,56,44,28
8.
某算法的部分流程如图所示,执行这部分流程,结束时n的值为(    )
A.1B.2C.3D.4
9.
若要在列表框lst_MC中显示文本“金华一中”,下列语句正确的是(    )
A.list1.additem = “金华一中”B.list1.additem(“金华一中”)
C. lst_MC.additem = “金华一中”
C.lst_MC.additem “金华一中”
10.
某VB程序使用了递归函数,代码如下:
Private Sub Command1_Click()
N= val(Text1.Text)

Text2.Text = f(n)

 End Sub
Function f(x As Integer) As String
Dim t as integer

If x = 1 Then  t = 1  Else  t = val(f(x - 1)) + 2

f=str(t)

 End Function
在文本框Text1中输入3,运行程序并点击按钮Command1后,文本框Text2中显示的内容是(   )
A.1B.5C.135D.531

2.填空题(共5题)

11.
编码工作常被运用于密文或压缩传输。有一种最简单的编码方式,把一些有规律的单词编成数字。编码方法如下:
字母表中共有26个字母{a,b,…,z},把符合“长度不超过6”的所有字符组合升序排列,一个单词的编码就对应着它排序后的位置。例如:a→1    b→2    z→26    aa→27    ab→28    az → 52  ba → 53  bb →54…

小何为此编写了VB程序,将该编码理解为26进制数值,求该编码对应的数值。程序运行,从文本框Text1输入要查询的单词,单击按钮Command1,如果输入的单词符合编码条件,则在Label3上显示对应的编码值否则在Label3中显示“不符合编码条件”。

实现上述功能的VB程序和程序运行界面如下所示,请补充完善代码。

Function c(n As Long, r As Long) As Long 
Dim i As Long, cc As Long
cc = 1
For i = 1 To r
cc = cc * n
Next i

End Function
Private Sub Command1_Click()
Dim s As String, ch As String
Dim bm As Long, qz As Long
Dim xh As Integer
s = Text1.Text
bm = 0
flag = True
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If  ②    Then     
flag = False
Exit For
End If
xh = Asc(ch) - Asc("a")+1
  ③   
bm = bm + xh * qz
Next i
If flag Then
Text2.Text = s + " 的编码值为:" +
Else
Text2.Text = "输入内容不符合编码规则"
End If
End Sub
12.
一个十进制整数的二进制表示中,如果数字“1”的个数多于数字“0”的个数,则称该整数为A类数。如十进制整数26的二进制表示为11010,26是一个A类数。下列VB程序的功能是:统计前1000个自然数中A类数的个数,并在文本框中输出。请在划线处填入合适代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim s As Integer, t As Integer, k As Integer
s = 0
For i = 1 To  1000

t = 0 : k = 0
Do While n > 0
If  n mod 2=0  Then t = t + 1 Else k = k + 1

Loop
If Then s = s + 1
Next i
Text1.Text = Str(s)
End Sub
13.
用物理天平测量物体的质量。待测物体的质量为X克(X为小于1000的整数),以下程序功能为计算天平砝码盘中所需的砝码。已知天平可用的砝码为500克1个,200克1个,100克2个,50克1个,20克1个,10克2个,5克1个,2克2个,1克1个。程序界面如图所示。

Private Sub Command1_Click()

Dim a(1 To 12) As Integer, i As Integer, x As Integer

a(1) = 500: a(2) = 200: a(3) = 100: a(4) = 100: a(5) = 50: a(6) = 20

a(7) = 10: a(8) = 10: a(9) = 5: a(10) = 2: a(11) = 2: a(12) = 1

i = 1

x = Val(Text1.Text)

List1.Clear

Do While  ①   

If x >= a(i) Then

List1.AddItem Str(a(i))

   ②   

End If

i = i + 1

Loop   

End Sub

(1)上述代码中“List1.Clear”中的Clear是对象List1的
(选填: 属性 / 事件 / 方法)。
(2)为实现以上功能,画线①处应填入的代码为   
画线②处应填入的代码为  
(3)程序运行正确后,在文本框内输入708,并单击“计算”按钮。则程序运行结果为
(选字母A/B/C)。

 

 

A
 
B
 
C
 
14.
小明用 VB编写了一个连续高温天数的统计软件。小明采集了金华市 7-8 月的每日最高气温,并存放在 ACCESS数据库中。程序运行时,读取日期和最高气温并显示在列表框 List1 中,在文本框 Text1 中输入温度值,单击“统计”按钮 Command1,程序自动统计运行在该温度值及以上的最长连续天数,并显示在 Text3 中,同时在 Text2 中显示日期区间,运行界面如下图所示。

实现上述功能的 VB 代码如 下,在划线处填入合适代码。
Dim rq(1 To 100) As String ‘ 存放日期
Dim qw(1 To 100) As Integer ‘ 存放最高气温值
Dim n As Integer '总天数
Private Sub Form_Load()
' 读取数据库内容,其中日期数据存放在数组 rq 中,最高气温数据存放在 qw 中,第 i 个日期保存在 rq(i)中,对应的气温保存在 qw(i)中,并显示在列表框 List1 中,代码略
End Sub
Private Sub Command1_Click()
Dim ntempend As Integer ‘ 记录当前结束日期的下标
Dim max As Integer   ‘ 记录最大连续天数
Dim nend As Integer ‘ 记录最大连续天数下的结束日期的下标
Dim ncount As Integer ‘ 统计连续天数
Dim tjqw As Integer   ‘ 存放输入的温度
tjqw = Val(Text1.Text)
ncount = 0
max = 0
For i = 1 To n
If  ___________①___________ Then
ncount = ncount + 1
ntempend =i
Else
ncount = 0
End If
If max < ncount Then
max = ncount
___________②___________
End If
Next
If max <> 0 Then Text2.Text = ___________③___________ & "-" & rq(nend)
15.
某同学编写一个“查找子串出现位置”的程序。功能如下:在文本框Text1中输入字符串s1,在文本框Text2中输入字符串s2,点击按钮Command1后在标签Label3上显示查找的结果。运行界面所示。

(1)在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的 属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。

Private Sub Command1_Click()

Dim s1 As String, s2 As String

Dim i as integer , j as integer

s1 = Text1.Text

s2 = Text2.Text

For i = 1 To Len(s1) - Len(s2) + 1

     

    Do While  Mid(s1, i + j, 1) = Mid(s2, j + 1, 1)  And  j < Len(s2)

j = j + 1

    Loop

    If j = Len(s2) Then Exit For

 Next i

   If  j=Len(s2)  Then

Label3.Caption = "找到,起始位置:" +  

    Else

Label3.Caption = "不存在该子串"

    End If

End Sub

(3)运行该程序,在文本框Text1中输入“10100101”,在Text2中输入“01”(两次输入均不包含引号),点击“查找子串位置”按钮后,在label3上显示   
试卷分析
  • 【1】题量占比

    选择题:(10道)

    填空题:(5道)

  • 【2】:难度分析

    1星难题:0

    2星难题:0

    3星难题:0

    4星难题:0

    5星难题:0

    6星难题:0

    7星难题:0

    8星难题:0

    9星难题:15