2017届信息技术必修3算法与程序设计 第1单元算法及VB语言复习题

适用年级:高三
试卷号:549260

试卷类型:单元测试
试卷考试时间:2017/3/8

1.选择题(共7题)

1.
有如下VB程序:
Dim i As Integer,j As Integer,k As String,n As Integer
n=3
List1.Clear
For i=1 To n
k=“”
For j=1 To i
k=k+“*”
Next j
List1.AddItem k
Next i
该程序运行中,在列表框List1中显示的是(  )
A.B.
C.D.
2.
在VB数组说明语句Dim d(3 To 8,4 To 9)As Boolean中,数组d的变量类型是(  )
A.长整数型B.字符串型
C.单精度实数型D.逻辑型
3.
下列VB程序段用于比较两个等长的字符串a和b,并在标签Label1中显示比较结果:如果a和b完全相同,则输出“完全相同”,否则在输出结果中指出第1个不相同字符的位置。
k=0 ’整数型变量k用于记录第1个不相同字符的位置
For i=1 To Len(a) ’字符串变量a用于存储第1个字符串
key=Mid(a,i,1)
If key<>Mid(b,i,1) Then ’字符串变量b用于存储第2个字符串
Exit For
End If
Next i
If k=0 Then
Label1.Caption=“完全相同”
Else
Label1.Caption=“第”+Str(k)+“个字符不相同”
End If
方框中的正确语句是(  )
A.k=iB.k=0 
C.k=1D.k=len(a)
4.
某宾馆的房间号由5位字符组成(例如A0823表示A幢8层33号房间),末位数字为奇数时表示房间朝南、为偶数时表示房间朝北。字符串变量s中存储了1个房间号,下列能正确判断房间朝南的VB表达式是(  )
A.Val(Mid(s,5,1))Mod 2=1
B.Val(Mid(s,5,1))Mod 2=0
C.Val(Mid(s,5,1))\2=1
D.Val(Mid(s,5,1))\2=0
5.
下列VB表达式的值等于3的是(  )
A.Sqr(2)+1B.Abs(-1)-2
C.Asc(“1”)+2D.Len(“-2”)+1
6.
下列问题不能用算法描述的是(  )
A.已知a、b、c的值,求一元二次方程ax2+bx+c=0(a≠0)的实数根
B.计算某个班级学生身高的平均值
C.列出方程y=2x+1的所有实数解
D.根据三角形三边长度求三角形面积
7.
下列VB函数返回值为数值的是(  )
A.Chr(x)B.Str(x)
C.Val(x)D.Mid(x,n,k)

2.填空题(共4题)

8.
下面VB程序的功能是求100~999间被3除多2,被5除多3的所有整数,并统计符合条件的数的个数。
Private Sub Command1_Click( )
Dim i As Integer,P As Integer
p=0
For i=100 To 999
If ____ Then
List1.AddItem Str(i)
__
End If
Next i
List1.AddItem Str(p)
End Sub
为实现上述功能,请在程序划线处填入合适的语句:
划线①处应填入的语句为:_____________________________________;
划线②处应填入的语句为:_____________________________________。
9.
下面VB程序的功能是判断一个整数是否为素数。在文本框Text1中输入一个整数x,如果x是素数,则在标签Label1中显示“Y”,否则显示“N”。程序中有两处错误,请改正。
Private Sub Command1_Click( )
Dim i As Integer,x As Integer,pd As Boolean
Val(Text1.Text)=x
pd=True
i=1
Do While i<x And pd=True
If x Mod i=0 Then
pd=False
Else
i=i+1
End If
Loop
If pd=True Then
Label1.Caption=“Y”
Else
Label1.Caption=“N”
End If
End Sub
错误语句1:________改为:________;
错误语句2:________改为:________。
10.
用VB编写一个字符串分行程序,功能如下:单击“分行”按钮Command1,将文本框Text1中的英文文本在列表框List1中分行显示(分行时单词不得跨行,每行字符尽可能多但不超过40个),并在标签Label1中输出总行数,运行效果如图所示。分行算法如下:
(1)将文本框中的字符串保存到变量s中;
(2)当s中字符个数超过40时,循环执行下列①②③步,否则跳转到(3):
①如果第41个字符不是英文字母,则分行位置p=40;否则,向左逐个查找,直至找到第一个非英文字母,将其位置作为分行位置p;
②截取s的前p个字符,作为新增行显示在列表框List1中,同时总行数加1;
③将s中未分行部分重新赋值给变量s。
(3)将s作为新增行显示在列表框List1中,同时总行数加1。

实现上述功能的VB程序如下,请在画线处填入合适代码。
Private Sub Command1_Click( )
Dim s As String,c As String
Dim r As Integer,total As Integer,p As Integer
total=0
s=__(1)__
Do While Len(s)>40
r=41
c=Mid(s,r,1)
If Not((c>=“a” And c<=“z”)Or(c>=“A” And c<=“Z”)) Then
p=40
Else
’从第41个字符开始向左找到第1个非英文字母,并将其位置值赋给p
Do While(c>=“a” And c<=“z”)Or(c>=“A”And c<=“Z”)
r=__(2)__
c=Mid(s,r,1)
Loop
p=r
End If
List1.AddItem Mid(s,1,p)
total=total+1
s=__(3)__
Loop
List1.AddItem s
total=total + 1
Label1.Caption=“共”+Str(total)+“行”
End Sub
11.
下列VB程序实现如下功能:程序运行时,在文本框Text1和Text2中分别输入x和n的值,单击命令按钮Command1后,调用函数f计算s=x+++…+的值,并在文本框Text3中显示计算结果。请在划线上填入合适的代码。
Private Sub Command1_Click( )
Dim x As Single,n As Integer,s As ____
x=Val(Text1.Text)
n=Val(Text2.Text)
s=f(x,n)
Text3.Text=str(s)
End Sub
Private Function f(x As Single,n As Integer) As Single
Dim sum As Single,i As Integer,t As Single
sum = 0
t=1
For i=1 To n
t=t*x/i
sum=sum+t
Next i
________
End Function
填写划线①处代码_____________________________________。
填写划线②处代码______________________________________。
试卷分析
  • 【1】题量占比

    选择题:(7道)

    填空题:(4道)

  • 【2】:难度分析

    1星难题:0

    2星难题:0

    3星难题:0

    4星难题:0

    5星难题:0

    6星难题:0

    7星难题:0

    8星难题:0

    9星难题:11