高中信息组卷1
一.选择题(共7小题)
1.小明在VB中定义了以下函数,功能是求a和b的最大公约数.
Function gcd(a As Integer,b A s Integer)As Integer
Do While b>0
c=a Mod b
a=b
b=c
Loop
End Function
调试中发现计算结果一直是0.经过仔细观察与分析,发现错误的原因是( )
A.函数名有错 B.变量c没有定义
C.函数没有返回值 D.b>0应该改为b>=0
2.某查找算法的部分VB代码如下:
t=False
i=0
Do While i<7And t=False
i=i+1
If a(i)=Key Then t=True
Loop
If t=False Then i=0
数组元素a(1)到a(7)的数据依次为“3,5,1,5,8,9,5”当变量key值为5时,运用该算法处理后,变量i的值是( )
A.0 B.2 C.4 D.7
3.在VB程序中,假定有以下循环结构,则正确的描述是( )
Do While条件
循环体
Loop.
A.如果“条件“是一个为0的常数,则一次循环体也不执行
B.如果“条件“是一个为0的常数,则执行无穷次循环体
C.如果“条件“是一个为0的常数,则至少执行一次循环体
D.不论“条件“是否为“真“,至少执行一次循环体
4.下列为部分VB程序语句代码:
s=32
For i=1To 10Step
s=s/2
Next i
上述程序语句执行结束后,s的值为2,则循环语句的步长应为( )
A.1 B.2 C.3 D.4
5.如下VB程序段:
For i=0To 100
s=s+i
Next i
它的基本结构属于( )
A.顺序结构 B.选择结构 C.循环结构 D.树型结构
6.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现( )
A. B. C. D.
7.有如下Visual Basic 程序,该程序通过For循环计算sum的值,下列表达式的值与sum相等的是( )
A.1+1/2+2/3+3/4+4/5 B.1+1/2+2/3+3/4
C.1/2+2/3+3/4+4/5 D.1+1/2+1/3+1/4+1/5
二.填空题(共1小题)
8.有如下Visual Basic程序段:
s=10
For i=1To 20Step 3
s=s+i
Next i
For j=1To 3
s=s*j
Next j
问:该程序段运行后,
(1)语句“s=s*j“执行的次数为 .
(2)变量s的值为 .
2018年01月04日王政的高中信息组卷
参考答案与试题解析
一.选择题(共7小题)
1.小明在VB中定义了以下函数,功能是求a和b的最大公约数.
Function gcd(a As Integer,b A s Integer)As Integer
Do While b>0
c=a Mod b
a=b
b=c
Loop
End Function
调试中发现计算结果一直是0.经过仔细观察与分析,发现错误的原因是( )
A.函数名有错 B.变量c没有定义
C.函数没有返回值 D.b>0应该改为b>=0
【分析】[Private|Public][Static]Function<函数过程名>([<形参表>])[As<类型>]
<语句系列>
[<函数名>=<表达式>]
[Exit Function]
[<语句系列>]
[<函数名>=<表达式>]
End Function
其中函数体内的“函数名”是用来返回函数值.因为每一个函数必须有一个返回值.
【解答】A选项函数名的命名规则同变量名.VB中如果变量未定义在调试程序时会提示错误.影响程序的运行.D选项变量b是被除数,并能为零,否则会出现错误.所以正确答案是C,每一个自定义的函数必须有一个返回值.
故选:C.
【点评】本题考查函数的定义.函数必须有一个返回值,否则在调用的时默认为零.
2.某查找算法的部分VB代码如下:
t=False
i=0
Do While i<7And t=False
i=i+1
If a(i)=Key Then t=True
Loop
If t=False Then i=0
数组元素a(1)到a(7)的数据依次为“3,5,1,5,8,9,5”当变量key值为5时,运用该算法处理后,变量i的值是( )
A.0 B.2 C.4 D.7
【分析】DO While循环语句的一般格式:
DO While(条件)
循环体
LOOP
条件控制着循环的次数,而循环体内必有一个变量控制着循环的退出与否.
【解答】按照数组a下标从1到7顺序查找并比较,如果找到有符合条件的相等的数据,就退出循环.此题中a(2),a(4),a(7)均为5,但程序找到第一个相等的数据就结束了,此时变量i的值为2.
故选:B.
【点评】此题考查顺序查找的程序实现过程,根据程序判断何时退出循环.
3.在VB程序中,假定有以下循环结构,则正确的描述是( )
Do While条件
循环体
Loop.
A.如果“条件“是一个为0的常数,则一次循环体也不执行
B.如果“条件“是一个为0的常数,则执行无穷次循环体
C.如果“条件“是一个为0的常数,则至少执行一次循环体
D.不论“条件“是否为“真“,至少执行一次循环体
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为真,Do…While循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
当VB遇到这个循环时,它首先条件的真假,如果条件为假,循环内部的语句就不会被执行,VB将继续执行关键字Loop后面的第一条语句.如果条件为真,循环里面的语句则会被一条一条地执行,直到遇到Loop语句.Loop语句告诉VB重复这个过程,只要Do While语句里的条件为真的话.
【解答】分析题目中的Do While条件,满足条件才执行循环体,如果不满足则不执行循环体,如果条件为0,则不满足,所以循环不执行,故选:A.
【点评】本题考查do while循环语句的使用,同时还需掌握其他结构语句.
4.下列为部分VB程序语句代码:
s=32
For i=1To 10Step
s=s/2
Next i
上述程序语句执行结束后,s的值为2,则循环语句的步长应为( )
A.1 B.2 C.3 D.4
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,程序循环的初值为1,终值为10,执行一次循环s/2,第一次循环,s=16;第二次循环,s=8;第三次循环,s=4;第四次循环,s=2,说明进行第5次循环的时候,i的值大于终值,所以步长为2,故选:B.
【点评】本题考查For的使用,同时还需掌握其他结构语句的用法.
5.如下VB程序段:
For i=0To 100
s=s+i
Next i
它的基本结构属于( )
A.顺序结构 B.选择结构 C.循环结构 D.树型结构
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】在VB语言中,有三种类型的循环语句:for语句、while语句和do While语句.
故选:C.
【点评】本题考查常用的三种基本结构的理解.
6.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现( )
A. B. C. D.
【分析】循环结构语句do while的循环条件对循环次数的影响,以及执行过程:
do while 条件
循环体
loop
程序从前面语句执行到do while时要比较条件值是否为true,如果条件值为true就执行循环体,在返回do 进行比较,如果条件值为false,就到loop的后面语句执行程序,不执行此循环结构.
【解答】A.利用了枚举法,i从1循环到100,步长为1,当i mod 7 为0(即i能被7整除)时输出i,也就是输出了100以内能被7整除的数字,可以实现题目要求;
B.变量i从7开始循环到100,步长为7,输出的刚好是100以内所有7的倍数,也就是100以内能被7整除的数字;可以实现题目要求
C.变量i的值从1开始步长为1不断变化循环,每次输出的是i*7的值,即7的倍数(即能被7整除的数字),直到s大于100停止,(即100以内的数),可以实现题目要求;
D.变量s从0开始步长为7不断变化,输出变化后的s,正好是7的倍数,当s接近100时进入循环,执行循环体s+7并且输出s,此时已经s大于100,也被输出了,与题目要求100以内数不符,此程序有缺陷;
故选:D
【点评】本题考查学生对循环结构的掌握,理解循环结构的程序执行过程.
7.有如下Visual Basic 程序,该程序通过For循环计算sum的值,下列表达式的值与sum相等的是( )
A.1+1/2+2/3+3/4+4/5 B.1+1/2+2/3+3/4
C.1/2+2/3+3/4+4/5 D.1+1/2+1/3+1/4+1/5
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】i=1,x=0,n=1,sum=0;
i=2,x=1/2,n=2,sum=1/2;
i=3,x=2/3,n=3,sum=1/2+2/3;
i=4,x=3/4,n=4,sum=1/2+2/3+3/4;
i=5,x=4/5,n=5,sum=1/2+2/3+3/4+4/5;故选:C.
【点评】本题考查FOR的使用,同时还需掌握其他结构语句的用法.
二.填空题(共1小题)
8.有如下Visual Basic程序段:
s=10
For i=1To 20Step 3
s=s+i
Next i
For j=1To 3
s=s*j
Next j
问:该程序段运行后,
(1)语句“s=s*j“执行的次数为 3 .
(2)变量s的值为 480 .
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】题中的程序代码有两个for next循环,第一个for next循环变量是i从初值1到终值20,步长是3,因为s=10,所以s依次要加上1、4、7、10、13、16、19,当i=22时第一个循环结束,不能继续执行循环体,此时s=10+1+4+7+10+13+16+19=80;接下来执行第二个for next循环,循环变量j从初值1到终值3,步长为1,共执行3次循环,s分别要与1、2、3相乘,最终s=80*1*2*3=480.
故答案为:(1)3;(2)480.
【点评】本题考查了FOR NEXT循环程序的理解.FOR NEXT循环是一种预知循环次数的循环体,它通过一个初值,一个终值,一个步长来控制循环次数.
第1页(共1页)
高中信息组卷7
一.选择题(共60小题)
1.有如下VB程序段
a=12
b=54
a=b
b=a
a,b的值分别是( )
A.12,54 B.54,12 C.12,12 D.54,54
2.小明在VB中定义了以下函数,功能是求a和b的最大公约数.
Function gcd(a As Integer,b A s Integer)As Integer
Do While b>0
c=a Mod b
a=b
b=c
Loop
End Function
调试中发现计算结果一直是0.经过仔细观察与分析,发现错误的原因是( )
A.函数名有错 B.变量c没有定义
C.函数没有返回值 D.b>0应该改为b>=0
3.下列VB表达式的值等于3的是( )
A.Sqr(2)+1 B.Abs(﹣1)﹣2 C.Asc(“1”)+2 D.Len(“﹣2”)+1
4.某查找算法的部分VB代码如下:
t=False
i=0
Do While i<7And t=False
i=i+1
If a(i)=Key Then t=True
Loop
If t=False Then i=0
数组元素a(1)到a(7)的数据依次为“3,5,1,5,8,9,5”当变量key值为5时,运用该算法处理后,变量i的值是( )
A.0 B.2 C.4 D.7
5.用下列哪个变量名作为姓名变量命名较符合规范?( )
A.strName B.intName C.lngName D.blnName
6.能随机产生一个(10,100)之间整数的表达式是( )
A.Int(Rnd*89)+11 B.Int(Rnd*89)+10 C.Int(Rnd*90)+11 D.Int(Rnd*90)+10
7.整型与长整型数据的取值范围相比,下列说法中正确的是( )
A.长整型比整型取值范围大
B.整型比长整型取值范围大
C.整型与长整型取值范围一样大
D.正数部分整型取值范围大,负数部分长整型取值范围大
8.VB 6.0数据类型Integer表示整型,占用的字节数为( )
A.2 B.4 C.6 D.8
9.VB 6.0中Integer表示整型,其取值范围是( )
A.0到32767 B.1到32767
C.﹣32768到32767 D.﹣65536到65535
10.在VB中,表达式 5\2的结果是( )
A.2 B.3 C.2.5 D.1
11.在VB中,下列声明变量的语句正确的是( )
A.Dim score As Integer B.Dim 3name As String
C.Dim sub As Single D.Dim end As Long
12.下列VB表达式的值等于5的是( )
A.Len(“study“) B.Int(4.5) C.25 Mod 5 D.25\10
13.在VB中,要将字符串“2012年伦敦奥运会“中的“奥运会“截取出来,可以实现的操作是( )
A.InStr(“2012年伦敦奥运会“,“奥运会“)
B.Mid(“2012年伦敦奥运会“,8,3)
C.right(“2012年伦敦奥运会“,6)
D.Replace(“2012年伦敦奥运会“,“奥运会“,““)
14.在VB中,条件“x是小于100的非负数”的正确表示是( )
A.0≤x<100 B.0<=x<100
C.x>=0 And x<100 D.0<=x Or x<100
15.下列哪个选项不是VB中合法的变量名?( )
A.sum B.a007 C.cd* D.no_1
16.下列VB表达式的值为“false”的是( )
A.Sqr(4)>0 And 9>4 B.Not 3>2 Or 5>3
C.Asc(“A”)﹣57>0 D.5>3 And 3>5 Or 6>8
17.在VB中,关于数组声明语句:dim s(5to 15)as Single,下列叙述正确的是( )
A.该数组最多能够存放10个单精度实数
B.该数组最多能够存放11个单精度实数
C.该数组最多能够存放15个单精度实数
D.该数组最多能够存放16个单精度实数
18.下列VB程序段运行后,变量x的值为( )
x=1
Select Case x
Case 1
x=x+1
Case 2
x=x*2
End Select
Print x.
A.2 B.1 C.3 D.4
19.下列哪个选项是正确的赋值语句?( )
A.n1=n+1 B.n+1=n C.n<n+1 D.n+1
20.在VB中,表达式(21Mod 4)+5的值是( )
A.2 B.6 C.10 D.3
21.根据提供的《常用字符与ASCII码对照表》(部分),下列逻辑表达式的值为真的是( )
A.“four“>“five“ B.“Windows“>“window“
C.“small“>“smaller“ D.“301“>“three hundred“
22.下列VB表达式中,结果为数值1的是( )
A.Sin(90) B.Int(0.8) C.Abs(Int(﹣0.6)) D.Str(1)
23.在VB中,设a=2,b=3,表达式Not ((a+b)>=3)值是( )
A.1 B.﹣1 C.True D.False
24.已知字符B的ASCII码是66,运行下列VB程序段,在窗体上显示( )
Dim x As String,y As String
y=“32“
x=Asc(“B“)
Print x+y.
A.98 B.66 C.6632 D.66 32
25.将数学关系式5≤x<14表示成VB表达式,正确的是( )
A.5<=x<14 B.5≤x and x<14
C.x>=5 or x<14 D.x>=5 and x<14
26.在VB中,若a是一个整型数组,a(1)、…、a(4)分别为130、45、278、59,则执行下列程序段后,数组a中各元素的值为( )
For i=1To 3
For j=i+1To 4
If a(i)>a(j) Then
a(0)=a(i)
a(i)=a(j)
a(j)=a(0)
End If
Next j
Next i.
A.45 59 130 278 B.130 278 45 59
C.278 130 59 45 D.59 45 278 130
27.下列VB代码段的功能是计算( )
a=10
s=0
Do
s=s+a*a*a
a=a﹣1
Loop Until a<=0
Print s.
A.13+23+33+…+103的值 B.1!+2!+3!…+10!的值
C.(1+2+3+…+10)3的值 D.10个103的和
28.下列选项中,逻辑表达式的结果为真的是( )
A.Int(﹣1.8)=﹣Abs(2) B.Cos(0)=Sin(90)
C.Sin(0)=Rnd﹣1 D.Int(1.8)=Sqr(4)
29.将代数式改为VB表达式,正确的写法是( )
A.(x﹣y)/(x+y) B.x﹣y/x+y C.(x﹣y)/x+y D.x﹣y/(x+y)
30.如下VB程序段
s=0
t=1
For i=1To 10
t=t*i
s=s+1/t
Next i
变量s的值可表示为( )
A.1/1+1/2+1/3+…1/10
B.1/1*1/2*1/3*…1/10
C.1/1!+1/2!+1/3!…1/10!
D.1/1+1/2*1/3+1/3*1/4+…1/9*1/10
31.将代数式改为VB表达式,正确写法是( )
A.(2a+b)/(4ab) B.(2*a+b)/4*a*b C.(2*a+b)/(4*a*b) D.2*a+b/4*a*b
32.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现( )
A. B. C. D.
33.下面四个程序段中,运行后变量a的值最小的是( )
A. B. C. D.
34.在Visual Basic只可以定义只能包含10个元素一维数组的语句是( )
A.Dim a(10)As Integer B.Dim a(1,10)As Integer
C.Dim a(1 To 10)As Integer D.Dim a(11)As Integer
35.某Visual Basic程序段如下:
Dim s As String,t As Integer,i As Integer
s=“Information Technology“
t=4
For i=3To 1Step﹣1
s=Mid(s,i,t)
t=t﹣1
Next i
Text1.Text=s
该程序段运行后,文本框Text1中显示的内容为( )
A.form B.orm C.or D.for
36.VB表达式9\8/2+12Mod 3*3 的值是( )
A.0.5 B.7 C.3.5 D.5
37.已知a=1,b=2,c=3,则下列表达式结果一定为真的是( )
A.(a>b)or(b>c) B.not(b>c)and not(c>a)
C.(a<=b)and(b﹣a<c)or(a+b>c) D.(a+b=c)and not(a<b)
38.下列VB表达式中,结果为True的是( )
A.5>=2^3 And 3>Sqr(8)
B.Int(4.5)=Fix(4.5)And Int(﹣4.5)=Fix(﹣4.5)
C.Asc(“a”)>=Asc(“A”)
D.Len(“abcd”)>Len(“ABCD”)
39.【加试题】VB表达式str(3 mod 5*7+5\2)+mid(“456“,2,1)的值为( )
A.235 B.55 C.“55“ D.“235“
40.下列运算结果为True的是( )
A.Not 3+1<=9 B.“123”+123=“123123”
C.0<=1<=﹣1 D.Int(4.3)And Int(2.3)=3
41.在字符串s1中,查找指定的一个字符并替换为其他字符的VB程序段如下:
si=Textl.Text
cl=Text2.Text
c2=Text3.Text
s2=“”
For i=1 To Len(sl)
If Mid(sl,i,1)<>cl Then
①
Else
②
End If
Next i
Text4.Text=“查找替换的结果为”& s2
下列①、②处代码填写正确的是( )
A.①处代码为s2=s2 & cl
B.①处代码为s1=s1& Mid(sl,i,1)
C.②处代码为s2=s2 & c2
D.②处代码为s2=s2 & Mid(sl,i,1)
42.有如下VB程序段:
x=﹣4
Do While x<0
x=x+3
Loop
该程序运行后,变量x的值是( )
A.5 B.2 C.﹣1 D.﹣4
43.某方程的实数根为x=,则用来计算x的VisualBasic表达式是( )
A.b^2/(2*a) B.Sqr(b)/2*a C.Sqr(b/2*a) D.b^0.5/(2*a)
44.【加试题】下列VB表达式的值等于2015的是( )
A.Sqr(2000)+15 B.Mid(“2011“,1,2)+“4“
C.Abs(﹣2011)+Len(“view“) D.Str(“2000“)+Str(“15“)
45.在物理学中,两个物体质量分别为m1和m2,计算它们的万有引力可以用下面的公式:F=G,若用V表达式来表示,则正确的是( )
A.F=Gm1m2/r*2 B.F=Gm1m2/r^2
C.F=G*m1*m2/r^2 D.F=G*m1*m2/r*r
46.下列VB表达式的值等于2016的是( )
A.2016 Mod 2^20\10 B.Len(“2015”)+1
C.Str(2008)+“8” D.Mid(“20160501”,1,4)
47.平面上有5个点,编号分别为1到5,点之间共有6条边连接,现用一个二维数组map描述6条边的长度,map(i,j)表示连接点i和点j的边的长度,且map(i,j)=map(j,i).数组元素的值为map(1,3)=5;map(1,4)=1;map(1,5)=7;map(2,3)=1;map(2,4)=1;map(3,5)=3.则点1到点5的最短路径长度,即点1到点5经过的边的总长度的最小值为( )
A.5 B.6 C.7 D.8
48.数组元素a(1)到a(9)的值依次为10,15,30,32,38,42,45,48,68,若通过如下程序段查找数据43则在执行该程序段的过程中,依次访问的数据是( )
A.38,45,42 B.38,45,48 C.38,15,30,32 D.38,48,45
49.有如下程序段,运行后A(10)=( )
Dim a(30)As Integer
a(1)=1
a(2)=1
i=2
Do While i<10
i=i+1
a(i)=a(i﹣1)+a(i﹣2)
Loop.
A.0 B.34 C.55 D.空
50.在Visual Basic中,用变量存储560位学生的身高数据(如:1.76),下列最合适的变量说明是( )
A.将560个变量说明为整数型
B.将560个变量说明为单精度实数型
C.将一个元素个数为560的一维数组说明为整数型
D.将一个元素个数为560的一维数组说明为单精度实数型
51.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息.发生”下标越界”错误时所执行的语句是( )
Private Sub Command1_Click( )
Dim a(0To 5)As Integer
Dim i As Integer'①
a(0)=1'②
For i=1To 5
a(i)=2*a(i﹣1)+1'③
Next i
Text1.Text=Str(a(6))'④
End Sub.
A.① B.② C.③ D.④
52.下列Visual Basic表达式的值等于127的是( )
A.Val(“123“)+4 B.Len(“123“)+4 C.Sqr(123)+4 D.Str(“123“)+“4“
53.在Visual Basic中,表达式12345\100的值是( )
A.123 B.45 C.12 D.5
54.VB中,设x=298,能得到其个位数字“8”的正确表达式是( )
A.Int(x/100)*100 B.Int(x/10)*10 C.Int(x/100) D.x﹣Int(x/10)*10
55.设x是正数,下列能用于描述“x是否为偶数“的Visual Basic条件表达式是( )
A.x\2=0 B.x/2=0 C.x Mod 2=0 D.x=Abs(x)
56.设a=1,b=3,c=5,表达式a*3<c OR b>c AND 2*b<c的值是( )
A.1 B.﹣1 C.False D.True
57.如下数组声明语句:Dim a(3,﹣2To 2,5),则数组a包含的元素的个数为( )
A.120 B.75 C.60 D.13
58.在Visual Basic中程序段是计算( )公式的.
s=0
For i=1To 10
t=1
for j=1to i
t=t*j
next j
s=s+t
Next i.
A.s=1+2+3+4+5+6+7+8+9+10
B.s=1*2*3*4*5*6*7*8*9*10
C.s=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!
D.s=1+2*3+3*4+4*5+5*6+6*7+7*8+8*9+9*10
59.下列 Visual Basic 表达式 Abs(Int(﹣3.1))+11mod 5\2 的值是( )
A.5 B.4 C.3 D.2 12.
60.VB表达式Len(“Tai zhou“)+1 Mod 5\2+Int(3.9999)的值为( )
A.10 B.11 C.12 D.13
2017年12月20日越崎中学的高中信息组卷
参考答案与试题解析
一.选择题(共60小题)
1.有如下VB程序段
a=12
b=54
a=b
b=a
a,b的值分别是( )
A.12,54 B.54,12 C.12,12 D.54,54
【分析】VB语言的程序代码由语句、常数和声明部分组成,其中使用率最高的语句就是赋值语句,使用赋值语句可以在程序运行中改变对象的属性和变量的值.
【解答】a=b执行后,a=54;b=a 执行后,b=54.故选:D.
2.小明在VB中定义了以下函数,功能是求a和b的最大公约数.
Function gcd(a As Integer,b A s Integer)As Integer
Do While b>0
c=a Mod b
a=b
b=c
Loop
End Function
调试中发现计算结果一直是0.经过仔细观察与分析,发现错误的原因是( )
A.函数名有错 B.变量c没有定义
C.函数没有返回值 D.b>0应该改为b>=0
【分析】[Private|Public][Static]Function<函数过程名>([<形参表>])[As<类型>]
<语句系列>
[<函数名>=<表达式>]
[Exit Function]
[<语句系列>]
[<函数名>=<表达式>]
End Function
其中函数体内的“函数名”是用来返回函数值.因为每一个函数必须有一个返回值.
【解答】A选项函数名的命名规则同变量名.VB中如果变量未定义在调试程序时会提示错误.影响程序的运行.D选项变量b是被除数,并能为零,否则会出现错误.所以正确答案是C,每一个自定义的函数必须有一个返回值.
故选:C.
3.下列VB表达式的值等于3的是( )
A.Sqr(2)+1 B.Abs(﹣1)﹣2 C.Asc(“1”)+2 D.Len(“﹣2”)+1
【分析】sqr求表达式的算术平方根;Abs求绝对值;Asc 函数返回一个字符的ASCII码值(整型数);Len求表达式的长度.
【解答】A的值不为3;B的值为﹣1;1的ASCII码不为1,所以C的值也不为3;﹣2的长度是2,所以D的值为3.
故选:D.
4.某查找算法的部分VB代码如下:
t=False
i=0
Do While i<7And t=False
i=i+1
If a(i)=Key Then t=True
Loop
If t=False Then i=0
数组元素a(1)到a(7)的数据依次为“3,5,1,5,8,9,5”当变量key值为5时,运用该算法处理后,变量i的值是( )
A.0 B.2 C.4 D.7
【分析】DO While循环语句的一般格式:
DO While(条件)
循环体
LOOP
条件控制着循环的次数,而循环体内必有一个变量控制着循环的退出与否.
【解答】按照数组a下标从1到7顺序查找并比较,如果找到有符合条件的相等的数据,就退出循环.此题中a(2),a(4),a(7)均为5,但程序找到第一个相等的数据就结束了,此时变量i的值为2.
故选:B.
5.用下列哪个变量名作为姓名变量命名较符合规范?( )
A.strName B.intName C.lngName D.blnName
【分析】匈牙利命名法:开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写.
帕斯卡命名法:每个单词第一个字母都大写.
【解答】姓名是string类型.int是整型,lng是长整形,bln是布尔型.
故选:A.
6.能随机产生一个(10,100)之间整数的表达式是( )
A.Int(Rnd*89)+11 B.Int(Rnd*89)+10 C.Int(Rnd*90)+11 D.Int(Rnd*90)+10
【分析】Rnd 函数返回小于 1 但大于或等于 0 的值,int(x)函数是取不大于x的最大整数.
【解答】A.Int(Rnd*89)+11产生[11,100)的整数;B.Int(Rnd*89)+10产生[10,99)的整数;C.Int(Rnd*90)+11产生[11,101)的整数;D.Int(Rnd*90)+10产生[10,100)的整数;(10,100)之间整数,不包含10和100,故选:A.
7.整型与长整型数据的取值范围相比,下列说法中正确的是( )
A.长整型比整型取值范围大
B.整型比长整型取值范围大
C.整型与长整型取值范围一样大
D.正数部分整型取值范围大,负数部分长整型取值范围大
【分析】Integer表示整型,占用2个字节,表示﹣32768~32767.
Long表示长整型,占用4个字节,表示﹣2147483648~2147483647.
Single表示单精度型,占用4个字节,表示负数:﹣3.402823E38~1.401298E﹣45正数:1.401298E﹣45~3.402823E38.
Double表示双精度型,占用8个字节,表示负数:﹣1.79769313486232D308~﹣4.94065645841247D﹣324正数:4.94065645841247D﹣324~1.79769313486232D308.
【解答】整型的取值范围是:﹣32768~32767.
长整型的取值范围:﹣2147483648~2147483647.
故选:A.
8.VB 6.0数据类型Integer表示整型,占用的字节数为( )
A.2 B.4 C.6 D.8
【分析】VB基本数据类型,数据是信息的一种记录形式.常用的基本数据类型有以下几种:Integer(整数型)、Long(长整数型)、Single(单精度实数型)、Double(双精度实数型)、String(字符串型)、Boolean(逻辑型)、Date(日期型).
【解答】在VB中,整型Integer占2个字节,16位,十进制整型数的取值范围:﹣32768~+32767,故选:A.
9.VB 6.0中Integer表示整型,其取值范围是( )
A.0到32767 B.1到32767
C.﹣32768到32767 D.﹣65536到65535
【分析】VB基本数据类型,数据是信息的一种记录形式.常用的基本数据类型有以下几种:Integer(整数型)、Long(长整数型)、Single(单精度实数型)、Double(双精度实数型)、String(字符串型)、Boolean(逻辑型)、Date(日期型).
【解答】在VB中,整型Integer占2个字节,16位,十进制整型数的取值范围:﹣32768~+32767,故选:C.
10.在VB中,表达式 5\2的结果是( )
A.2 B.3 C.2.5 D.1
【分析】“\”位整除运算符.“/”为除法运算符.
【解答】5\2=2,取结果的整数部分.
故选:A.
11.在VB中,下列声明变量的语句正确的是( )
A.Dim score As Integer B.Dim 3name As String
C.Dim sub As Single D.Dim end As Long
【分析】VB变量与自定义常量的命名规则:
(1)变量必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,且第一个字符必须是英文字母或者汉字,最后一个字符可以是类型说明符,变量名中不能有空格.
(2)变量名不能包含+﹣*/!@#¥?小数点等字符,且长度不能超过255.
(3)不能用VB的保留字(例如End、Len、Sub等)作为变量名,但可以把保留字嵌入变量名中,同时变量名也不能是末尾带有说明符的保留字.
(4)VB不区分变量名和其他名字中字母的大小写,但习惯上,符号常量一般用大写字母定义.
【解答】变量不能以数字开始,sub和end是保留字,不能作为变量.故选:A.
12.下列VB表达式的值等于5的是( )
A.Len(“study“) B.Int(4.5) C.25 Mod 5 D.25\10
【分析】在VB中,Len( )求表达式的长度,mod取余函数,int(x)函数是取不大于x的最大整数.
【解答】A.Len(“study“)=5;B.Int(4.5)=4;C.25 Mod 5=0;D.25\10=2,故选:A.
13.在VB中,要将字符串“2012年伦敦奥运会“中的“奥运会“截取出来,可以实现的操作是( )
A.InStr(“2012年伦敦奥运会“,“奥运会“)
B.Mid(“2012年伦敦奥运会“,8,3)
C.right(“2012年伦敦奥运会“,6)
D.Replace(“2012年伦敦奥运会“,“奥运会“,““)
【分析】InStr指定一字符串在另一字符串中最先出现的位置,Right 函数从字符串右边返回指定数目的字符,Mid(a,b,c) 从a中的第b个开始,取c个字符的子串,Replace是替换函数.
【解答】A.InStr(“2012年伦敦奥运会“,“奥运会“)的值是8;
B.Mid(“2012年伦敦奥运会“,8,3)的值是“奥运会”;
C.right(“2012年伦敦奥运会“,6)的值是“年伦敦奥运会”;
D.Replace(“2012年伦敦奥运会“,“奥运会“,““)的值是“2012年伦敦”.
故选:B.
14.在VB中,条件“x是小于100的非负数”的正确表示是( )
A.0≤x<100 B.0<=x<100
C.x>=0 And x<100 D.0<=x Or x<100
【分析】And:条件都为“true”,结果为“true”.
Or:只要有一个条件为“true”,结果为“true”.
Not:取反.
【解答】0≤x<100和0<=x<100是数学表达式,程序汇能这样用.
x是小于100的非负数,x大于等于零且x小于100.
故选:C.
15.下列哪个选项不是VB中合法的变量名?( )
A.sum B.a007 C.cd* D.no_1
【分析】VB变量与自定义常量的命名规则:
(1)变量必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,且第一个字符必须是英文字母或者汉字,最后一个字符可以是类型说明符,变量名中不能有空格.
(2)变量名不能包含+﹣*/!@#¥?小数点等字符,且长度不能超过255.
(3)不能用VB的保留字(例如End、Len、Sub等)作为变量名,但可以把保留字嵌入变量名中,同时变量名也不能是末尾带有说明符的保留字.
(4)VB不区分变量名和其他名字中字母的大小写,但习惯上,符号常量一般用大写字母定义.
【解答】变量中不能含有*,所以C不合法,故选:C.
16.下列VB表达式的值为“false”的是( )
A.Sqr(4)>0 And 9>4 B.Not 3>2 Or 5>3
C.Asc(“A”)﹣57>0 D.5>3 And 3>5 Or 6>8
【分析】And:条件都为“true”,结果为“true”.
Or:只要有一个条件为“true”,结果为“true”.
Not:取反.
【解答】5>3 为true,3>5为false,6>8为false.所以5>3 And 3>5 Or 6>8为false.
故选:D.
17.在VB中,关于数组声明语句:dim s(5to 15)as Single,下列叙述正确的是( )
A.该数组最多能够存放10个单精度实数
B.该数组最多能够存放11个单精度实数
C.该数组最多能够存放15个单精度实数
D.该数组最多能够存放16个单精度实数
【分析】VB的基本数据类型:数值型数据 (主要数据类型)、日期型、字节型、货币型、逻辑型、字符串型、对象型、变体型.
【解答】5到15,是11个,Single是单精度实数数据类型,故选:B.
18.下列VB程序段运行后,变量x的值为( )
x=1
Select Case x
Case 1
x=x+1
Case 2
x=x*2
End Select
Print x.
A.2 B.1 C.3 D.4
【分析】Select Case testExpression
[Case expression
[statements]]
[Case expression
[statements]]
[…]
[Case Else
[elseStatements]]
End Select
testExpression:必要参数.任何数值表达式或字符串表达式.
expression:如果有Case出现,则为必要参数.To 关键字可用来指定一个数值范围.如果使用To关键字,则较小的数值要出现在 To之前.
statements:可选参数.一条或多条语句,当 testExpression 匹配 expression 中的任何部分时执行.
elseStatements:可选参数.一条或多条语句,当 testExpression 不匹配 Case 子句的任何部分时执行.
【解答】x=1,执行Case 1中的语句,即x=x+1.x=2.
故选:A.
19.下列哪个选项是正确的赋值语句?( )
A.n1=n+1 B.n+1=n C.n<n+1 D.n+1
【分析】赋值语句,就是把赋值语句左边表达式的运算结果送给右侧的变量.
【解答】C是判断语句,D是直接变量.故选:A.
20.在VB中,表达式(21Mod 4)+5的值是( )
A.2 B.6 C.10 D.3
【分析】
【解答】21 mod 4=1,所以(21Mod 4)+5的值为:6.
故选:B.
21.根据提供的《常用字符与ASCII码对照表》(部分),下列逻辑表达式的值为真的是( )
A.“four“>“five“ B.“Windows“>“window“
C.“small“>“smaller“ D.“301“>“three hundred“
【分析】从左向右逐个比较,只要有了大小区别,立刻停止,给出答案.比如:123cd 要大于 123ab.前面的123是相同的,需要继续向右,到了c发现大于a,就立刻停止,给出结论.而后面的d和b没有参与比较过程.
【解答】“o”>“i”,所以“four>“five””;“W”<“w”,所以“Windows”<“window”.“3”<“t”,所以301“<“three hundred“.
“small“比“smaller“少字母,所以“small“<“smaller“
故选:C.
22.下列VB表达式中,结果为数值1的是( )
A.Sin(90) B.Int(0.8) C.Abs(Int(﹣0.6)) D.Str(1)
【分析】在VB中,int(x)函数是取不大于x的最大整数.Abs求绝对值函数,Str(参数)函数是指将参数强行转换为:空格+字符串类型.
【解答】Sin(90)≈0.89,Int(0.8)=0,Abs(Int(﹣0.6))=Abs(﹣1)=1,Str(1)=“1“,只有C返回数值1,故选:C.
23.在VB中,设a=2,b=3,表达式Not ((a+b)>=3)值是( )
A.1 B.﹣1 C.True D.False
【分析】And:条件都为“true”,结果为“true”.
Or:只要有一个条件为“true”,结果为“true”.
Not:取反.
【解答】a=2,b=3
(a+b)>=3为true,所以Not ((a+b)>=3)的值是false.
故选:D.
24.已知字符B的ASCII码是66,运行下列VB程序段,在窗体上显示( )
Dim x As String,y As String
y=“32“
x=Asc(“B“)
Print x+y.
A.98 B.66 C.6632 D.66 32
【分析】VB中有两种拼接符号,一种为“&“符,另一种则为“+“符.其中&连接运算符用于强制将两个表达式作为字符串连接,重点是强制,即使有一边为字符串,一边为数字类型都可以.如:Label1.Caption=“abc“& 123.
而+连接运算符,有两中用途,如果两边都为数字类型,则进行运算,如果两边都为字符串类型,则进行拼接,如下:
Lable1.Caption=520+1351,结果为1871; Lable1.Caption=“520”+“1351”,结果为5201351.
【解答】x,y数据类型为string.所以x+y为字符的拼接.
x=Asc(“B”)=“66”,y=“31”,所以x+y=“6632”.
故选:C.
25.将数学关系式5≤x<14表示成VB表达式,正确的是( )
A.5<=x<14 B.5≤x and x<14
C.x>=5 or x<14 D.x>=5 and x<14
【分析】And:条件都为“true”,结果为“true”.
Or:只要有一个条件为“true”,结果为“true”.
Not:取反.
【解答】5≤x<14,x大于等于5且小于14,即x>=5 and x<14.
故选:D.
26.在VB中,若a是一个整型数组,a(1)、…、a(4)分别为130、45、278、59,则执行下列程序段后,数组a中各元素的值为( )
For i=1To 3
For j=i+1To 4
If a(i)>a(j) Then
a(0)=a(i)
a(i)=a(j)
a(j)=a(0)
End If
Next j
Next i.
A.45 59 130 278 B.130 278 45 59
C.278 130 59 45 D.59 45 278 130
【分析】题中利用for循环的嵌套实现排序功能.
For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】根据 a(i)>a(j)可知,排序的具体方法是:
数组a的第一个元素开始,比较相邻的元素,如果前面的元素a(i)大于后面的元素a(j),则交换元素的值.每次循环找到一个最小值,并放在本轮比较数据的头部.循环三次后完成排序工作,此时数组a中各元素的值为:45 59 130 278.
故选:A.
27.下列VB代码段的功能是计算( )
a=10
s=0
Do
s=s+a*a*a
a=a﹣1
Loop Until a<=0
Print s.
A.13+23+33+…+103的值 B.1!+2!+3!…+10!的值
C.(1+2+3+…+10)3的值 D.10个103的和
【分析】只要条件为真,Do While…Loop循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
【解答】循环体中语句s=s+a*a*a实现将a立方值累加至S变量中,a初值为10,循环一次a减1,直到a<=0,所以共执行10次,即求出13+23+33+…+103的值.
故选:A.
28.下列选项中,逻辑表达式的结果为真的是( )
A.Int(﹣1.8)=﹣Abs(2) B.Cos(0)=Sin(90)
C.Sin(0)=Rnd﹣1 D.Int(1.8)=Sqr(4)
【分析】INT(x)函数是取不大于x的最大整数;ABS是取绝对值函数;RND是产生[0,1)的随机数;SQR求算术平方根函数.Sin 函数是取一角度为参数值,返回角的对边长度除以斜边长度的比值. Cos 函数的参数为一个角,返回直角三角形两边的比值. 该比值为角的邻边长度除以斜边长度之商. 将角度转换为弧度,请将角度乘以 π/180. 将弧度转换为角度,将弧度乘以 180/π.
【解答】Int(﹣1.8)=﹣2,﹣Abs(2)=﹣2,因此Int(﹣1.8)=﹣Abs(2)的结果为真;选项B中是弧度,结果为假;选项C中右边结果为随机,结果一定为假;选项D中Int(1.8)=1,Sqr(4)=2,结果为假.
故选:A.
29.将代数式改为VB表达式,正确的写法是( )
A.(x﹣y)/(x+y) B.x﹣y/x+y C.(x﹣y)/x+y D.x﹣y/(x+y)
【分析】在VB中,乘法使用“*”表示,除法使用“/”表示.
【解答】分析代数数,VB的正确表达方式为A,由于除法运算的优先级大于加法和减法,所以要加括号,故选:A.
30.如下VB程序段
s=0
t=1
For i=1To 10
t=t*i
s=s+1/t
Next i
变量s的值可表示为( )
A.1/1+1/2+1/3+…1/10
B.1/1*1/2*1/3*…1/10
C.1/1!+1/2!+1/3!…1/10!
D.1/1+1/2*1/3+1/3*1/4+…1/9*1/10
【分析】VB语言中程序的循环语句的理解,归纳总结程序的解决的问题
【解答】据题意,程序执行过程如下:
s=0:t=1
进入i循环:
i=1,t=1*1=1,s=0+1/1=1;
i=2,t=1*2=2,s=0+1+1/2;
i=3,t=1*2*3=6,s=0+1+1/2+1/6;
i=4,t=1*2*3*4=24,s=0+1+1/2+1/6+1/24;
i=5,t=1*2*3*4*5=120,s=0+1+1/2+1/6+1/24+1/120
…
i=10,t=1*2*3*4*…*10,s=0+1+1/2+1/6+1/(1*2*3*…*10)
i=11退出循环
可以看出s=0+1/1!+1/2!+1/3!+…+1/10!
故选:C
31.将代数式改为VB表达式,正确写法是( )
A.(2a+b)/(4ab) B.(2*a+b)/4*a*b C.(2*a+b)/(4*a*b) D.2*a+b/4*a*b
【分析】程序中不能直接使用数学表达式,必须使用相应的函数转化成程序中的表达式.
【解答】在程序中表示为:(2*a+b)/(4*a*b).
故选:C.
32.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现( )
A. B. C. D.
【分析】循环结构语句do while的循环条件对循环次数的影响,以及执行过程:
do while 条件
循环体
loop
程序从前面语句执行到do while时要比较条件值是否为true,如果条件值为true就执行循环体,在返回do 进行比较,如果条件值为false,就到loop的后面语句执行程序,不执行此循环结构.
【解答】A.利用了枚举法,i从1循环到100,步长为1,当i mod 7 为0(即i能被7整除)时输出i,也就是输出了100以内能被7整除的数字,可以实现题目要求;
B.变量i从7开始循环到100,步长为7,输出的刚好是100以内所有7的倍数,也就是100以内能被7整除的数字;可以实现题目要求
C.变量i的值从1开始步长为1不断变化循环,每次输出的是i*7的值,即7的倍数(即能被7整除的数字),直到s大于100停止,(即100以内的数),可以实现题目要求;
D.变量s从0开始步长为7不断变化,输出变化后的s,正好是7的倍数,当s接近100时进入循环,执行循环体s+7并且输出s,此时已经s大于100,也被输出了,与题目要求100以内数不符,此程序有缺陷;
故选:D
33.下面四个程序段中,运行后变量a的值最小的是( )
A. B. C. D.
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长 语句块 Next 变量 在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析各程序段可知,AC选项中循环体相同,先做乘法再整除,a值不变,最终a的值为35,BD选项虽然循环体相同,但先做整除运算中除数不同取整产生差异,实现运算后B选项运算结果为a=32,D选项运算结果为a=30.所以运行后变量a的值最小是30.
故选:D.
34.在Visual Basic只可以定义只能包含10个元素一维数组的语句是( )
A.Dim a(10)As Integer B.Dim a(1,10)As Integer
C.Dim a(1 To 10)As Integer D.Dim a(11)As Integer
【分析】VB里有两种方法定义数组:
1.知道数组的元素个数,直接定义:dim a(9)as integer
2.暂时不知道元素个数,或者该数组应用在多个地方时,定义:dim a( ) as integer
在使用的时候,再重定义一下:Redim a(9)
【解答】A、Dim a(10)As Integer,定义的数组a的下标从0到10,共11个元素,此选项错误;
B、Dim a(1,10)As Integer,定义的是一个二维数组a,第1个下标是0到1,第2个下标是0到10,共2*11=22个元素.此选项错误;
C、Dim a(1 To 10)As Integer,定义的是一个下标从1到10的数组a,共10个元素,此选项正确;
D、Dim a(11)As Integer,定义的数组a的下标从0到11,共12个元素,此选项错误;
故选:C.
35.某Visual Basic程序段如下:
Dim s As String,t As Integer,i As Integer
s=“Information Technology“
t=4
For i=3To 1Step﹣1
s=Mid(s,i,t)
t=t﹣1
Next i
Text1.Text=s
该程序段运行后,文本框Text1中显示的内容为( )
A.form B.orm C.or D.for
【分析】程序段为循环结构,循环条件为i=3 To 1,步长为﹣1,循环体为s=Mid(s,i,t),t=t﹣1.
【解答】Mid函数的功能是从一个字符串中截取一个子串出来,第一个参数为主字符串,第二个参数为开始位置,第三个参数为总共截取字符的个数.初始值:s=“Information Technology“,t=4,i=3;一次循环:s=Mid(s,3,4)=“form“,t=t﹣1=3;二次循环:i=2,s=Mid(s,2,3)=“orm“,t=t﹣1=2;三次循环:i=1,s=Mid(s,1,2)=“or“,至此循环结束,最终文本框中显示的内容为字符串s,即or.故选:C.
36.VB表达式9\8/2+12Mod 3*3 的值是( )
A.0.5 B.7 C.3.5 D.5
【分析】在VB算术运算中,算术运算符有^、+、﹣、*、/、\、mod,^,它们的运算优先级顺序是先^,再*、/、\、其次mod,再次+、﹣,同一级的位置在前面的先算.
【解答】VB表达式9\8/2+12Mod 3*3,这里按优先级先分别算出+前后式子的结果,再把二者加起来,先算9\8/2,其中9\8=1(9除以8得1.125,取商的整数部分1)1/2=0.5,再算12Mod 3*3,其中按顺序先算3*3=9,再算12mod 9=3(12除以9得数为1,余数为3),最后算0.5+3=3.5
故选:C.
37.已知a=1,b=2,c=3,则下列表达式结果一定为真的是( )
A.(a>b)or(b>c) B.not(b>c)and not(c>a)
C.(a<=b)and(b﹣a<c)or(a+b>c) D.(a+b=c)and not(a<b)
【分析】一个表达式中可能包括算术运算、关系运算和逻辑运算等多种基本运算.而本题考查的是关系运算和逻辑运算,其结果只能是True或False.基本运算的优先级从高到低为( )(1级),^(2级),﹣(负号,3级),*、/(4级),\(5级),Mod(6级),+、﹣(7级),=、<>、<、>、<=、>=(8级),Not(9级),And(10级),Or(11级).
【解答】A、表达式a>b或b>c的结果都为FALSE,经过or运算结果依然为假;
B、not (b>c)=1,not (c>a)=0,1 and 0=0,结果为假;
C、a<=b为真,b﹣a<c也为真,因此or前半部分的运算结果为真,无需考虑后半部分表达式,or 运算只要有一边为真,结果即为真;
D、a+b=c为真,not(a<b)为假,and运算后,结果为假;
故选:C.
38.下列VB表达式中,结果为True的是( )
A.5>=2^3 And 3>Sqr(8)
B.Int(4.5)=Fix(4.5)And Int(﹣4.5)=Fix(﹣4.5)
C.Asc(“a”)>=Asc(“A”)
D.Len(“abcd”)>Len(“ABCD”)
【分析】VB表达式就是由常量、变量、运算、圆括号和函数等连接形成的一个有意义的运算式.VB包括算术表达式、字符串表达式、关系表达式、逻辑表达式、日期表达式和对象表达式6种表达式,根据表达式的运算符和运算结果来确定表达式的类型.
【解答】分析2^3表示2的3次方;sqr(8)表示8的算术平方根;fix(x)表示对实数x进行截尾,Int(x)表示求不大于x的最大整数,Int(﹣4.5)=﹣5,Fix(﹣4.5)=﹣4,Asc表示求字符的ASCII编码,小写字符的编码比大写字符的编码大,Len表示求字符串的长度,大小写字符的长度均为1.
故选:C.
39.【加试题】VB表达式str(3 mod 5*7+5\2)+mid(“456“,2,1)的值为( )
A.235 B.55 C.“55“ D.“235“
【分析】VB表达式就是由常量、变量、运算、圆括号和函数等连接形成的一个有意义的运算式.VB包括算术表达式、字符串表达式、关系表达式、逻辑表达式、日期表达式和对象表达式6种表达式,根据表达式的运算符和运算结果来确定表达式的类型.
【解答】根据题意,分析优先级,故计算顺序为:5*7=35,3 mod 35=3,5\2=2,str(3+2)=“5“.Mid(m,n,k)函数表示字符串m中截取从n位置开始k个长度的字符子串.故mid(“456“,2,1)=“5“. 答案为“55”.故选:C.
40.下列运算结果为True的是( )
A.Not 3+1<=9 B.“123”+123=“123123”
C.0<=1<=﹣1 D.Int(4.3)And Int(2.3)=3
【分析】在VB中False的值为0,True的值为﹣1.
【解答】False的值为0,True的值为﹣1,“+”进行数字字符串与数字之间的连接只会进行算术运算,int的功能为取不大于该数的最大整数.
A:3+1<=9 为真,所以Not 3+1<=9为假,;B:“123”+123=“123123”值为假;C:0<=1为真,所以C为真;D:And右边的是假,所以整个值为假.
故选:C.
41.在字符串s1中,查找指定的一个字符并替换为其他字符的VB程序段如下:
si=Textl.Text
cl=Text2.Text
c2=Text3.Text
s2=“”
For i=1 To Len(sl)
If Mid(sl,i,1)<>cl Then
①
Else
②
End If
Next i
Text4.Text=“查找替换的结果为”& s2
下列①、②处代码填写正确的是( )
A.①处代码为s2=s2 & cl
B.①处代码为s1=s1& Mid(sl,i,1)
C.②处代码为s2=s2 & c2
D.②处代码为s2=s2 & Mid(sl,i,1)
【分析】利用for循环语句实现截取字符串s1中i位置的字符,并和字符c1比较;如果不相同,把这个字符连接到字符串s2上;如果相同,把字符c2连接到s2上;循环结束s2即为查找替换后的字符串.For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】初始化s2=“”.
①处为把s1第i个字符连接到s2上,即s2=s2+Mid(s1,i,1)或者s2=s2 & Mid(s1,i,1)
②处为把字符c2连接到s2上,即s2=s2+c2或者s2=s2 & c2.
故选:C.
42.有如下VB程序段:
x=﹣4
Do While x<0
x=x+3
Loop
该程序运行后,变量x的值是( )
A.5 B.2 C.﹣1 D.﹣4
【分析】程序段为Do While循环,循环条件为x<0,循环体为x=x+3.
【解答】当x<0时,x=x+3,直到x>=0.x初始值为﹣4,第一次循环,x=﹣1,第二次循环,x=2.程序终止,所以程序运行后,x的值为2.
故选:B.
43.某方程的实数根为x=,则用来计算x的VisualBasic表达式是( )
A.b^2/(2*a) B.Sqr(b)/2*a C.Sqr(b/2*a) D.b^0.5/(2*a)
【分析】VB中算术表达式的书写规则.
算式表达式的运算符号有:+,﹣,*,/,sqr,^,mod等.
【解答】据题意:数学式子分子转换成VB式子写成sqr(b)或者b^0.5(即b的0.5次方),分数线是除号,分母2a要写成2*a 并且用括号括起来,2*a是一个整体,计算出结果后作VB中的除数部分,故写成:sqr(b)/(2*a)或者b^0.5/(2*a);
故选:D.
44.【加试题】下列VB表达式的值等于2015的是( )
A.Sqr(2000)+15 B.Mid(“2011“,1,2)+“4“
C.Abs(﹣2011)+Len(“view“) D.Str(“2000“)+Str(“15“)
【分析】在VB中,Mid(a,b,c) 从a中的第b个开始,取c个字符的子串,Str(参数) 函数是指将参数强行转换为:空格+字符串类型,Abs( )求表达式绝对值,sqr( )平方根函数.
【解答】A的值不是2015,B的值是204,C的值是2015,D的值是“2015”,故选:C.
45.在物理学中,两个物体质量分别为m1和m2,计算它们的万有引力可以用下面的公式:F=G,若用V表达式来表示,则正确的是( )
A.F=Gm1m2/r*2 B.F=Gm1m2/r^2
C.F=G*m1*m2/r^2 D.F=G*m1*m2/r*r
【分析】VB表达式就是由常量、变量、运算、圆括号和函数等连接形成的一个有意义的运算式.VB包括算术表达式、字符串表达式、关系表达式、逻辑表达式、日期表达式和对象表达式6种表达式,根据表达式的运算符和运算结果来确定表达式的类型.
【解答】书写算术表达式时,应注意以下几点:1,算术表达式中的所有符号都必须逐个产排地写在同一水平线上,不能写成上标或下标的形式.2,不能省略乘法.例如2X要写成2*X.3,表达式中所有的括号一律使用圆括号,并且括号左右必须配对.4,数学表达式中表示特定含义的符号要写成具体的数值,如pai要写成3.1415926.故选:C.
46.下列VB表达式的值等于2016的是( )
A.2016 Mod 2^20\10 B.Len(“2015”)+1
C.Str(2008)+“8” D.Mid(“20160501”,1,4)
【分析】表达式是由常量、变量、运算、圆括号和函数等连接形成的一个有意义的运算式.VB包括算术表达式、字符串表达式、关系表达式、逻辑表达式、日期表达式和对象表达式6种表达式.
【解答】A选项优先级最高的是“^”,其次是“\”,最后是“Mod”,所以可得结果是2016;B选项的值为5;C选项结果是“20088”;D选项结果为字符串型“2016”,不符合题意.
故选:A.
47.平面上有5个点,编号分别为1到5,点之间共有6条边连接,现用一个二维数组map描述6条边的长度,map(i,j)表示连接点i和点j的边的长度,且map(i,j)=map(j,i).数组元素的值为map(1,3)=5;map(1,4)=1;map(1,5)=7;map(2,3)=1;map(2,4)=1;map(3,5)=3.则点1到点5的最短路径长度,即点1到点5经过的边的总长度的最小值为( )
A.5 B.6 C.7 D.8
【分析】二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式].二维数组又称为矩阵,行列数相等的矩阵称变方阵.对称矩阵a[i][j]=a[j][i],对角矩阵:n阶方阵主对角线外都是零元素.
【解答】据题意:map(i,j)表示连接点i和j的边的长度,点1到点5的最短路径为1→4→2→3→5,即map(1,4)到map(4,2)到map(2,3)再到map(3,5)的路径长度为1+1+1+3=6.故选:B.
48.数组元素a(1)到a(9)的值依次为10,15,30,32,38,42,45,48,68,若通过如下程序段查找数据43则在执行该程序段的过程中,依次访问的数据是( )
A.38,45,42 B.38,45,48 C.38,15,30,32 D.38,48,45
【分析】本题考察的是折半查找算法,首先查找到数组中处于中间位置的数值与查找的数据进行比较,如果相等就找到了该值,否则比较数组数值与查找数据的大小,如果数组数值小于查找数据,则从后半段数组中继续使用折关查找算法,否则从前半段数组中继续使用折半查找算法,如此循环直到找到或直到for循环条件停止代表没有找到该数据.
【解答】(1)第一次折半查找,访问的数据是a(5)=38,各变量的值为:i=1 j=9 m=5 a(5)<key,所以i=6;
(2)38<43,因此从后半段数组继续开始,这次访问的是a(7)=45,各变量的值为:i=6 j=9 m=7 a(7)>key,所以j=6;
(3)45>43,因此从折半后的前半段开始再查找,访问的是a(6)=42,各变量的值为:i=6 j=6 m=6 a(6)<key,所以i=7;
(4)至此,i=7,j=6,循环条件已经无法满足,最终没有找到数据43.
故选:A.
49.有如下程序段,运行后A(10)=( )
Dim a(30)As Integer
a(1)=1
a(2)=1
i=2
Do While i<10
i=i+1
a(i)=a(i﹣1)+a(i﹣2)
Loop.
A.0 B.34 C.55 D.空
【分析】通过观察可以看出本程序出现了Do语句,要计算a(10)的值,细心观察Do语句循环几次,即可得出.
Do Loop语句一般格式:
Do {While|Until }<条件表达式>或 Do
【语句块】【语句块】
【Exit Do】【Exit Do】
【语句块】【语句块】
Loop Loop {While|Until }<条件表达式>
在Do语句中,当条件表达式前置时,先计算表达式的值,当表达式值为False,循环体一次也不执行.当条件表达式后置时,先执行一次循环体再计算表达式的值,因此循环体至少被执行一次.
【解答】当i=2时,i<10为True,i=i+1=2+1=3,a(i)=a(i﹣1)+a(i﹣2)=a(2)+a(1)=1+1=2,即a(3)=2
当i=3时,i<10为True,i=i+1=3+1=4,a(i)=a(i﹣1)+a(i﹣2)=a(3)+a(2)=2+1=3,即a(4)=3
当i=4时,i<10为True,i=i+1=3+1=5,a(i)=a(i﹣1)+a(i﹣2)=a(4)+a(3)=3+2=5,即a(5)=5
…
当i=9时,i<10为True,i=i+1=9+1=10,a(i)=a(i﹣1)+a(i﹣2)=a(9)+a(8)=34+21=55,即a(10)=55
此时,i=10,表达式i<10为False,跳出循环,
故选:C.
50.在Visual Basic中,用变量存储560位学生的身高数据(如:1.76),下列最合适的变量说明是( )
A.将560个变量说明为整数型
B.将560个变量说明为单精度实数型
C.将一个元素个数为560的一维数组说明为整数型
D.将一个元素个数为560的一维数组说明为单精度实数型
【分析】在VB中,表示浮点数可以使用single和double,single和double占用的内存长度不同,single是4字节,double是8字节,single能表示最大精度是小数点后约六位,double能表示的精度是小数点后14位.
【解答】用变量存储560位学生的身高数据,需要使用数组来存储,由于身高是1.76,小数后两位小数,所以选用single.故选:D.
51.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息.发生”下标越界”错误时所执行的语句是( )
Private Sub Command1_Click( )
Dim a(0To 5)As Integer
Dim i As Integer'①
a(0)=1'②
For i=1To 5
a(i)=2*a(i﹣1)+1'③
Next i
Text1.Text=Str(a(6))'④
End Sub.
A.① B.② C.③ D.④
【分析】下标越界表示程序中某一个数组元素的下标超出了数组定义的下标范围.
【解答】程序中定义了数组a的下标范围为[0,5],而在程序的中Text1.Text=Str(a(6)),a(6)超出了范围.
故选:D.
52.下列Visual Basic表达式的值等于127的是( )
A.Val(“123“)+4 B.Len(“123“)+4 C.Sqr(123)+4 D.Str(“123“)+“4“
【分析】Val返回包含于字符串内的数字,字符串中任一个适当类型的数值;Len(X) 计算字符串X的长度;Sqr(X) 函数可返回X的算术平方根;Str(X) 可以将数字型变量或常量改变成字符型变量或常量.
【解答】A项VAL(“123“)返回字符串的数字,结果为123,再加上4,最后等于127;
B项Len(“123“)返回字会串的长度,结果为3,再加上4,最后等于7;
C项Sqr(123)返回123的算术平方根,其结果加上4肯定小于127;
D项Str将数字型常量转换成字符变量,最终结果为字符串,而非数值;
故选:A.
53.在Visual Basic中,表达式12345\100的值是( )
A.123 B.45 C.12 D.5
【分析】“\“运算符用来对两个数作除法并返回一个整数.
【解答】表达式12345\100的值123.故选:A.
54.VB中,设x=298,能得到其个位数字“8”的正确表达式是( )
A.Int(x/100)*100 B.Int(x/10)*10 C.Int(x/100) D.x﹣Int(x/10)*10
【分析】得到一个数的个位数的方法很多,不如对10求余.
【解答】A:Int(x/100)为2,所以A选项的值为200;B:Int(x/10)值为29,B选项的值为290;C:Int(x/100)值为2;D:Int(x/10)*10的值为290,x﹣290=8.故选:D.
55.设x是正数,下列能用于描述“x是否为偶数“的Visual Basic条件表达式是( )
A.x\2=0 B.x/2=0 C.x Mod 2=0 D.x=Abs(x)
【分析】“\“运算符用来对两个数作除法并返回一个整数,mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数,Abs(x)用来求数的绝对值.
【解答】A和B只能说明x为0,C表示对X对2求余,如果为0说明是偶数,D求绝对值.故选:C.
56.设a=1,b=3,c=5,表达式a*3<c OR b>c AND 2*b<c的值是( )
A.1 B.﹣1 C.False D.True
【分析】VB表达式:所谓表达式就是由常量、变量、运算、圆括号和函数等连接形成的一个有意义的运算式.
VB包括算术表达式、字符串表达式、关系表达式、逻辑表达式、日期表达式和对象表达式6种表达式,根据表达式的运算符和运算结果来确定表达式的类型.
【解答】题中的表达式是逻辑表达式,逻辑运算符的运算优先级从高到低是:NOT→AND→OR.
本题的表达式选执行时相当于 a*3<c OR (b>c AND 2*b<c)=true or false=true.
故选:D.
57.如下数组声明语句:Dim a(3,﹣2To 2,5),则数组a包含的元素的个数为( )
A.120 B.75 C.60 D.13
【分析】所谓数组,是无序的元素序列.若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标.数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式.这些无序排列的同类数据元素的集合称为数组.
【解答】数组中默认是“0 to 数字”,如dim a(3)实际是“dim a(0 to 3)“有四个元素;此题中为dim a(0 to 3,﹣2 to 2,0 to 5)“元素为4*5*6=120.
故选:A.
58.在Visual Basic中程序段是计算( )公式的.
s=0
For i=1To 10
t=1
for j=1to i
t=t*j
next j
s=s+t
Next i.
A.s=1+2+3+4+5+6+7+8+9+10
B.s=1*2*3*4*5*6*7*8*9*10
C.s=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!
D.s=1+2*3+3*4+4*5+5*6+6*7+7*8+8*9+9*10
【分析】程序中使用了两个for循环语句,每层for语句执行求阶乘,外层for语句实现求和.
For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】外部for语句取值i,每一次循环,内部for循环都会进行i循环,执行t=t*j,即为求i的阶乘,同时会执行s=s+t.
所以外部for循环结束后s表示1﹣10阶乘的和.
故选:C.
59.下列 Visual Basic 表达式 Abs(Int(﹣3.1))+11mod 5\2 的值是( )
A.5 B.4 C.3 D.2 12.
【分析】所谓表达式就是由常量、变量、运算、圆括号和函数等连接形成的一个有意义的运算式.VB包括算术表达式、字符串表达式、关系表达式、逻辑表达式、日期表达式和对象表达式6种表达式,根据表达式的运算符和运算结果来确定表达式的类型.
【解答】Abs表示取绝对值,Int(x)返回值为小于等于X的整数的最大值,mod 表示取余数.Abs(Int(﹣3.1))+11mod 5\2=Abs(﹣4)+1\2=4+1=5.故选:A.
60.VB表达式Len(“Tai zhou“)+1 Mod 5\2+Int(3.9999)的值为( )
A.10 B.11 C.12 D.13
【分析】(1)VB中算术表达式的书写规则和运算法则.
算式表达式的运算符号有:+,﹣,*,/,\,sqr,^,mod等.
(2)VB中常用函数的使用方法:
len(str)表示求字符串str的长度.
int(x)表示不大于给定数x的最大整数.
【解答】据题意:
len(“Tai zhou“)=8(字符串“Tai zhou”的长度是8)
1mod 5\2=1(先算5\2=2,即5整除2,得数为2,再算1 mod 2=1,即1除以2的余数是1)
int(3.9999)=3(不大于3.9999的最大整数是3)
8+1+3=12
故选:C
第1页(共1页)
高中信息组卷3
第Ⅰ卷(选择题)
请点击修改第I卷的文字说明
一.选择题(共60小题)
1.下列关于对象的描述中,错误的是( )
A.对象的属性用于描述对象的状态
B.对象的属性与方法可以有多个
C.对象事件的发生会驱动该对象相应事件处理过程的执行
D.对象的属性值只能在属性窗口中设置
2.在VB窗体中有一个对象,该对象的属性窗口如图所示.下列说法中,不正确的是( )
A.Interval为属性名
B.1800为属性值
C.该对象的名称为Timer1
D.根据“Timer1 Timer”可判断窗体名为Timer
3.下列关于程序设计语言发展三个过程的叙述中,正确的是( )
A.自然语言、伪代码、流程图
B.机器语言、高级语言、面向对象
C.自然语言、机器语言、人工智能
D.机器语言、汇编语言、高级语言
4.在VB中,若希望在窗体标题栏显示文字“韩信点兵程序”,则在程序设计时,应将哪个对象的什么属性值改为“韩信点兵程序”?( )
A.命令按钮的Caption属性 B.标签的Caption属性
C.文本框的Text属性 D.窗体的Caption属性
5.“对象”是面向对象程序设计中的重要概念,下列选项中不是VB对象的是( )
A.代码框 B.文本框 C.窗体 D.命令按钮
6.如图所示的代码窗口中,哪个关键字代表事件?( )
A.Click B.cmdok C.Print D.Private
7.设置命令按钮Command1的标题为“start”,应在代码窗口中输入语句( )
A.Command1.Name=“start“ B.Command1.Caption=“start“
C.Command1.Text=“start“ D.Command1.Command=“start“
8.如图所示的VB文字界面,下列关于对象、类的说法正确的是( )
①图中有8个对象分别属于4个类;
②图中的“请输入半径”是对象的某一属性值;
③图中有9个对象分别属于5个类
④图中类似于“圆面积”是对象的名称.
A.①② B.②③ C.③④ D.①④
9.为了运行时在文本框Text1中显示“运行成功”,在代码编辑窗口输入以下程序:
Private Sub Command1_Click
Text1.Caption=“运行成功“
End Sub
运行程序时会报错,则应修改代码为( )
A.Text1.Font=“运行成功“ B.Form1.Caption=“运行成功“
C.Text1.Visible=True D.Text1.Text=“运行成功“
10.某同学编写了如下VB程序段:
Private Sub Command1_Click( )
Dim x As Double,Dim y As Double
x=Val(Text1.Text)
y=Abs(x)
x=Exp(y)
Text2.Text=Str(x)
End Sub
该应用程序执行后,出现了如图所示的错误提示,请问产生错误的原因是( )
A.语句y=Abs(x)错误
B.语句x=Exp(y)错误
C.缺少文本框Text1或文本框Text2
D.缺少对象‘424’
11.有如下Visual Basic程序:
Private Sub Command1_Click( )
Dim p As String,d As String
p=Val(Text1.Text)
d=Val(Text2.Text)
Do While d>1
p=2*( p+1 )
d=d﹣1
Loop
Label1.Caption=Str(d)
End Sub
运行该程序,在文本框Text1中输入1,在文本框Text2中输入5,单击命令按钮Command1,在标签Label1中显示的结果是( )
A.1 B.0 C.94 D.46
12.某VB程序在调试中弹出如图所示的错误窗口,产生该错误的可能原因是( )
A.该VB程序代码中,某个过程名书写错误
B.该VB程序窗体界面中,缺少某控件
C.该VB程序代码中,某个常量或变量没有声明
D.该VB程序设计软件没有正确安装
13.“红色的皮球漏气了.”在这句话中,“红色”描述的是对象“皮球”的( )
A.属性 B.方法 C.事件 D.类
14.Caption是命令按钮的( )
A.属性 B.方法 C.事件 D.过程
15.如下VB程序段
Private Sub Command1_Click( )
Dim x As Integer
Dim y As Integer
x=Val(Text1.Text)
y=10
If x<0Then
y=5
Else
If x<100Then
y=100
Else
y=200
End If
End If
Print y
End Sub
运行后,在文本框Text1中输入5,程序输出的结果是( )
A.5 B.10 C.100 D.200
16.在VB中,若要在文本框中输入密码(内容只显示“*”),则应当设置( )
A.Text属性值为“*“ B.Caption属性值为“*“
C.Name属性值为“*“ D.Passwordchar属性值为“*“
17.对于窗体,Click(单击)是它的一个( )
A.对象 B.方法 C.事件 D.属性
18.下列选项中,属于窗体对象Form1方法的是( )
A.Caption B.Print C.Click D.Name
19.有如下VB程序段:
Private Sub Command1_Click( )
Dim i As Integer,x As Integer
x=1
For i=1To 5Step 2
x=x+i
Text1.Text=Str(x)
Next i
End Sub
则该程序运行后,文本框Text1中显示的数据个数是( )
A.1个 B.2个 C.3个 D.5个
20.某VB程序功能:输入正整数n,单击命令按钮Command1后,则会衍生出一串有规律的数字,形式为“1 2 3…n﹣1n n﹣1…3 2 1”.例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1”.
Private Sub Command1_Click( )
Dim a As intger,i As intger,s As String
n=Val(text1.Text)
s=““
For i=1To 2*n﹣1
If i>n Then ① Else ②
Next i
text2.Text=s
End Sub
为实现以上功能,①②处分别填写( )
A.①s=Str(2*n﹣i) ②s=Str(i)
B.①s=s+Str(2*n﹣i) ②s=s+Str(i)
C.①s=s+Str(2*n﹣1)②s=s+Str(2*n)
D.①s=Str(2*n﹣1)②s=Str(2*n)
21.【加试题】有如下程序段:
改程序运行后,文本框TsxtI中显示的内容是( )
A.55 B.126 C.259 D.385
22.有一个VB程序,其程序界面中有一个按钮Command1及一个文本框Text1,并且其程序代码如下:
当点击Command1后,Text1中将显示( )
A.3 B.4 C.5 D.6
23.有如下VB程序段:
Dim d(1 To 9)As Integer,s As String
Dim L As Integer,R As Integer,M As Integer,key As Integer
d(1)=2:d(2)=3:d(3)=5:d(4)=7:d(5)=11
d(6)=13:d(7)=17:d(8)=19:d(9)=23
L=1:R=9
s=““:key=17
Do While L<=R
M=(L+R+1)\2
If d(M)=key Then L=10
If d(M)<key Then L=M+1 Else R=M﹣1
s=s+Str(M)
Loop
Label1.Caption=s
该程序段运行后,标签框Label1中显示的内容是( )
A.5 8 7 B.5 7 C.11 19 17 D.11 17
24.有如下程序段:
程序运行后,标签Label1中显示的内容是( )
A.10 20 30 40 B.10 30 20 40 C.40 30 20 10 D.40 20 30 10
25.有如下VB程序,在文本框Text1中输入“100”,单击命令按钮Command1后,标签Label1中显示的内容是( )
A.25 B.6 C.12 D.50
26.[加试题]循环升序数组指的是将一个升序数组循环右移动若干距离之后变成的数组.如[1,2,3,4,5]循环右移1位,就成为[5,1,2,3,4],再右移1位,就成为[4,5,1,2,3],…,其中[5,1,2,3,4]和[5,1,2,3]都是循环升序数组.该数组的特点是:将循环升序数组从中间分开,肯定有一边是有序数组,另外一边是循环有序数组.上杜研究发现对分查找算法适当优化后也适用于循环升序数组.在文本框输入被查找数据key,查找循环升序数组a中是否有相同的元素存在.编写的VB程序段如下:
i=1:j=n’数组a下标从1到n为止
Key=Val(Text1.Text)
Do While i<=j
m=(i+j)\2
If a(m)=Key Then Exit Do
If Then j=m﹣1 Else i=m+1
Else
If Key>a(m) And Key<=a(j) Then i=m+1 Else j=m﹣1
End If
Loop
If i<=j Then Text2.Text=“查找成功”Else Text2.Text=“查找失败”
要使程序实现对分查找过程,则方框中的语句是( )
A.Key>=a(i) And Key<a(m) B.Key<=a(i) And Key>a(m)
C.Key>=a(i) And Key<=a(m) D.Key>a(i) And Key=<a(m)
27.有如下Visual Basic程序段:
该程序段运行后,语句“s=s+j*j“执行的次数为( )
A.29 B.36 C.45 D.55
28.【加试题】某递归算法的VB程序段如下:
如在对象“Text1”中输入“12345”,则“Text1”的最终结果为( )
A.1234554321 B.531 C.135 D.54321
29.有如下VB程序段:
该程序段运行后,循环体s=s+k被执行了30次,则循环变量k的初值是( )
A.﹣82 B.﹣24 C.﹣85 D.﹣25
30.【加试题】Visual Basic程序段如下:
该程序段运行后,文本框Text1、Text2分别输入3,2后,单击命令按钮Command1,文本框Text3中显示的是( )
A.2 B.3 C.6 D.9
31.【加试题】某Visual Basic程序如下:
Private Sub Command1_Click( )
Dim a(1To 10)As Integer
Dim i As Integer
For i=1 To 10
a(i)=i*i
Next i
List1.AddItem Str(a(i))
End Sub
运行程序,单击命令按钮Command1后,出现的错误提示为( )
A.下标越界 B.子程序或函数未定义
C.溢出 D.类型不匹配
32.用VB模拟设计某软件的登录界面,如图所示,当鼠标单击“<请输入帐号>”所在的文本框Text1,文字内容就消失.则此事件处理的过程名应该是( )
A.登录窗口_CliCk B.Text1_KeyPress
C.CommAnD1_CliCk D.Text1_CliCk
33.阅读如下程序段,程序运行结束后,k和s的值分别是( )
A.k=10,s=10 B.k=10,s=11 C.k=11,s=10 D.k=11,s=11
34.某VB程序如下:
运行该程序段,会出现的错误提示为( )
A.下标越界 B.子程序或函数未定义
C.要求对象 D.溢出
35.有如下VB程序段:
程序运行后,文本框Text1显示的内容是( )
A.20 B.12 C.10 D.8
36.有如下Visual Basic 程序:
运行该程序,在文本框Text1、文本框Text2、文本框Text3中分别输入2、﹣5、6后,单击命令按钮Command1,文本框Text5中显示的是( )
A.﹣5 B.2 C.6 D.24
37.阅读如下程序,Label1中显示的是( )
Dim a(1To 10)As Integer,Dim s As String,For i=1To 10,a(i)=1,Next i,For j=1To 5,For i=1To 10,If i Mod j=0Then,a(i)=1﹣a(i),End If,Next i,Next j,For i=1To 10,Label1.Caption=Label1.Caption & a(i),Next i)
A.0110100010 B.0110100000 C.1010100000 D.1001011101
38.【加试题】有一组数据23、12、56、34、10分别存放在一组变量数组a(1)~a(5)中,以下程序段执行后,i的最终结果是( )
Dim a(1To 5)As Integer
Dim f As Boolean
a(1)=23:a(2)=12:a(3)=56:a(4)=34:a(5)=10
i=1:f=True
Do While i<=5And f=True
If a(i)=56Then
f=False
i=i+1
Loop
Label1.Caption=Str(i)
A.6 B.3 C.4 D.5
39.将十进制数转化为二进制数的 VB 程序段如下:DimyAsInteger,s AsString,rAsInteger
y=Val(Text1.Text):s=““'输入十进制数
DoWhile y<>0
Loop
Text2.Text=s'显示出二进制数
方框中的代码由以下三部分组成:
①s=CStr(r)+s'CStr(r)自动去掉字符前的空格
②y=y\2
③r=yMod2 代码顺序正确的选项是( )
A.②③① B.②①③ C.①③② D.③②①
40.有如下程序,运行后,输出的结果是( )
A.120 B.25 C.15 D.10
41.【加试题】编写VB程序,实现如下功能:在文本框Text1中输入一个大于1000的正整数,单击按钮Command1后,会去除其中3个数字,保证余下的数字在不改变顺序的情况下其数值最大,然后在文本框Text2中输出该数.
Private Sub Command1_Click
Dim s As String
Dim n As Integer,w As Integer
s=Text1.Text
For i=1 To 3
n=Len(s):w=1
For j=2 To n
If Then w=j Else Exit For
Next j
s=Mid(s,1,w﹣1)+Mid(s,w+1,n﹣w)
Next i
Text2.Text=s
End Sub
划线处的正确代码为( )
A.Val(Mid(s,w,1))<=Val(Mid(s,j,1))
B.Val(Mid(s,j,1))<=Val(Mid(s,j+1,1))
C.Val(Mid(s,w,1))>=Val(Mid(s,j,1))
D.Val(Mid(s,j,1))>=Val(Mid(s,j+1,1))
42.【加试题】有如下VB程序段:
n=0
For i=1To Len(Text1.Text)
c=Mid(Text1.Text,i,1)
If c>=“0“And c<=“9“Then m=1Else m=2
a(m)=a(m)+1
If a(m)=1Then n=n+1
Next i
数组a各元素的初始值都为0,文本框Textl的内容为“Happy2017”.执行程序后,变量n的值为( )
A.1 B.2 C.4 D.9
43.在VB中,双击名为count的时钟后,默认出现的事件是( )
A.timerl﹣Timer( ) B.timerl﹣Click( ) C.count﹣Timer( ) D.count﹣Click( )
44.【加试题】有如下程序段:
该程序段运行后,文本框Text1中显示的内容是( )
A.4 B.6 C.8 D.9
45.某VB程序的一个事件过程代码如图所示:
程序运行时在文本框Text1中输入﹣1,单击命令按钮Command1,弹出如图所示的错误提示信息,产生此错误的语句是( )
A.A=Val(Text1.Text) B.x=(A+10)/(A*A+8)
C.y=(A﹣1)/(x+A) D.z=Sqr(x﹣y)
46.小明做好了一个VB程序,希望带到班级的电脑上展示给其他同学,则下列做法最适合的是( )
A.保存成vbp文件 B.保存成frm文件
C.生成exe文件 D.保存成vbw文件
47.有如下程序段:
输出的数字文本图案为( )
A. B. C. D.
48.运行下列VB程序,在文本框Text1中输入“台州”,单击命令按钮Command1后弹出如图所示的出错信息提示.
Private Sub Command1_Click( )
Dim City As String,file1 As String
City=Text1.Text
file1=City+“.jpg“
Image1.Picture=LoadPicturt(file1)
List1.AddItem City
End Sub
此时程序正在执行的语句是( )
A.City=Text1.Text
B.file=City+“.jpg“
C.Image1.Picture=LoadPicture(file1)
D.List.AddItem City
49.数组a共由6个元素构成:49、45、61、46、58、57,经过如下程序处理后,m和n的值分别为( )
A.15,4 B.15、5 C.30、4 D.30、5
50.【加试题】某VB程序如下:
语句s=s+k共执行的次数是( )
A.4 B.3 C.2 D.5
51.阅读下面程序,在Text1、Text2中分别输入30、6,则Text3中的值为( )
A.1 B.3 C.6 D.9
52.【加试题】一个Visual Basic程序的部分设计界面如图所示,下列选项中正确的是( )
A.窗体的Caption属性值是Form1
B.当前选中的对象类型是图象Image
C.工程文件是cool.frm
D.当前选中对象的名称是Command1
53.运行如下VB程序,单击命令按钮Commandl,出现如图所示的错误提示.
其中提示“无效的过程调用或参数”是执行下列哪处的语句( )
A.① B.② C.③ D.④
54.如下VB程序段:
x=text1.text
p=0
for i=1 to len(x)
if mid(x,i,1)=”a”then p=p+1
next i
print p
若程序运行时,在文本框Text1中输入“Are you happy”,则运行结果是( )
A.0 B.1 C.2 D.11
55.某VB程序段如下所示:
Dim x As String
Private Sub Form_Load( )
x=““
End Sub
Private Sub Text1_Change( )
Dim s As String,k As String
Dim i As Integer
s=“0123456789ABCDEF“
k=Text1.Text
For i=1To Len(s)
If Mid(s,i,1)=k Then x=x+k
Next i
If x=““Then x=“没有找到!“
Label1.Caption=x
End Sub
若在文本框Text1中依次输入“2”和“9”,则Label1上显示的内容为( )
A.11 B.2 C.9 D.29
56.有如下Visual Basic程序,输入n的值为11.在调试时程序首先出现的错误是.Private Sub Command1_Click( )
Dim n As Integer
Dim a(1To 10)As Integer
n=Val(Text1.Text)
s=1
For i=1To n
s=s*i
a(i)=s
List1.AddItem Str(a(i))
Next i
End Sub.
A. B. C. D.
57.【加试题】将11个数据43、26、34、76、45、16、56、90、13、45、81依次存放在数组a(1)到a(11)中,部分VB程序段如下:
min=a(1)
n=Val(Text1.Text)
For i=2to n
If a(i)<min Then
min=a(i)
Next i
Text2.Text=Str(min)
假设在文本框Text1中输入“8”,则文本框Text2输出的值是( )
A.90 B.26 C.16 D.13
58.某Visual Basic程序如下:
Private Sub Command1_Click
Dim num(1To 100)As Integer
Dim i As Integer
For i=1To 100'①
num(i)=i'②
Next i'③
List1.Addltem Str(num(i))'④
End Sub
运行程序,单击命令按钮Command1后,出现的错误提示及引起错误的语句分别为 ( )
A.类型不匹配 ① B.溢出 ②
C.子程序或函数未定义 ③ D.下标越界 ④
59.对分查找的VB程序段如下:
key=Val(Text2.Text)
i=1
j=16
Do While i<=j
m=①
if d(m)=key Then
Label6.Caption=”在数组中”+Str(m)+”位置中”
Exit Sub
End if
If d(m)<key Then
i=m+1
else
j=m﹣1
End If
Loop
Label6.Caption=”在数组中没有找到”+Str(key)
横线①处应填写( )
A.(i+j)/2 B.fix((i+j)/2) C.fix(i+j)/2 D.int(i+j)/2
60.在Visual Basic代码编辑窗口中,输入了“Text1.”后出现了如图所示的信息:其中的“Text”是Text1的( )
A.属性名 B.事件名 C.对象名 D.方法
2017年12月20日越崎中学的高中信息组卷
参考答案与试题解析
一.选择题(共60小题)
1.下列关于对象的描述中,错误的是( )
A.对象的属性用于描述对象的状态
B.对象的属性与方法可以有多个
C.对象事件的发生会驱动该对象相应事件处理过程的执行
D.对象的属性值只能在属性窗口中设置
【分析】在VB中,对象的使用非常广泛,如我们将常用的窗体以及各种控件,是具有特殊属性(数据)和行为方式(方法)的实体,属性、方法、事件构成对象的三要素.
【解答】对象的属性可以在属性窗口中设置.也可以在程序中设置,如Label1.Caption=“这是标签”.
属性是对象的特征或者特性,用来描述对象的状态,如按钮Command1的width、height、Caption等;
事件触发后,都会执行相应的事件处理程序,如Command1_click( )等.
每一个对象都有多个方法来实现具体的功能,对象Form1.hide用来隐藏窗体、form1.show用来显示窗体等.
故选:D.
2.在VB窗体中有一个对象,该对象的属性窗口如图所示.下列说法中,不正确的是( )
A.Interval为属性名
B.1800为属性值
C.该对象的名称为Timer1
D.根据“Timer1 Timer”可判断窗体名为Timer
【分析】VB程序设计的窗口主要由(对象窗口)、(控件工具箱)、(属性窗口)、(工程窗口)组成.属性窗口包含如下的元素:
1.对象框﹣显示可设置属性的对象的名字.单击对象框右边的箭头,显示当前窗体的对象列表.
2.排序﹣从按字母顺序排列的属性列表中进行选取,或从按逻辑(诸如与外观、字体或位置有关的)分类页的层次结构视图中进行选取.
3.属性列表﹣左列显示所选对象的全部属性,右列可以编辑和查看设置值.
【解答】在VB属性窗口中,下拉按钮左边显示的是对象名(Timer1),右边显示其属于的类(Timer),下方分成左右两列,左边一列显示对象的属性名,如当前选中的是“Interval”属性,右边为其对应的属性值.由此图可以看出Timer1.Interval=0.Left属性值为1800.
故选:D.
3.下列关于程序设计语言发展三个过程的叙述中,正确的是( )
A.自然语言、伪代码、流程图
B.机器语言、高级语言、面向对象
C.自然语言、机器语言、人工智能
D.机器语言、汇编语言、高级语言
【分析】程序设计语言发展三个阶段:机器语言、汇编语言、高级语言.
【解答】计算机的第一代语言是机器语言,是计算机唯一识别语言,为了方便记忆,用助记符代替了操作码.
用地址符
号或标号代替地址码
用助记符和地址符合代替操作码和地址码,就出现了计算机二代语言即汇编语言,计算机语言发展到第三代时,就进入了面向人类的高级语言,它是接近于人使用习惯的程序设计语言,所以计算机程序设计语言发展经历了机器语言、汇编语言、高级语言三个过程,故选D.
4.在VB中,若希望在窗体标题栏显示文字“韩信点兵程序”,则在程序设计时,应将哪个对象的什么属性值改为“韩信点兵程序”?( )
A.命令按钮的Caption属性 B.标签的Caption属性
C.文本框的Text属性 D.窗体的Caption属性
【分析】Caption:设置对象标题栏中或图标下的文本.
【解答】Caption:设置对象标题栏中或图标下的文本,所以修改窗体的标题栏显示的文字“韩信点兵程序”,应修改窗体的Caption属性的值为“韩信点兵程序”.故选:D.
5.“对象”是面向对象程序设计中的重要概念,下列选项中不是VB对象的是( )
A.代码框 B.文本框 C.窗体 D.命令按钮
【分析】对象是机会具有特殊属性(数据)和行为方式(方法)的实体.VB中的对象包含文本框,窗体和命令按钮等.
【解答】代码框不属于VB的对象,故选:A.
6.如图所示的代码窗口中,哪个关键字代表事件?( )
A.Click B.cmdok C.Print D.Private
【分析】事件是指对象对于外部动作的响应,当对象发生了某个事件,就会执行与此对象的这个事件相应的代码,这段代码被称为“事件过程”.事件过程的命名格式为:Private Sub 控件名_事件名( )
【解答】A代表鼠标单击事件;B代表控件名名字;C代表输出信息;D代表过程或函数访问级别.故选:A.
7.设置命令按钮Command1的标题为“start”,应在代码窗口中输入语句( )
A.Command1.Name=“start“ B.Command1.Caption=“start“
C.Command1.Text=“start“ D.Command1.Command=“start“
【分析】VB语言的程序代码由语句、常数和声明部分组成,其中使用率最高的语句就是赋值语句,使用赋值语句可以在程序运行中改变对象的属性和变量的值.vb对对象属性的修改:对象名.属性=属性值.
【解答】根据题意,命令按钮上面的标题文字属于按钮对象的Caption属性,所以赋值语句应Command1.Caption=“start“.
故选:B.
8.如图所示的VB文字界面,下列关于对象、类的说法正确的是( )
①图中有8个对象分别属于4个类;
②图中的“请输入半径”是对象的某一属性值;
③图中有9个对象分别属于5个类
④图中类似于“圆面积”是对象的名称.
A.①② B.②③ C.③④ D.①④
【分析】(1)VB编程语言里的各个控件的使用方法;
(2)在VB程序语言属性面板里修改对象的属性值的方法,对着要修改的属性名后面的属性值进行修改.
【解答】据题意图中有1个窗体Form1控件;有两个标签label控件,是“请输入半径”和“请输入边长”文字的两个是标签;有两个文本框text控件,是两白色矩形框,用来输入数据的;有两个形状shape控件,是名为shape1和shape2的圆形和矩形的两个;有两个按钮command控件,是写着“圆面积”和“正方形面积”的两个;所以共有5类控件,9个对象;图中的“请输入半径”是label对象上显示的文字内容,是对象的caption属性的属性值,“圆面积”也是command对象显示的文字内容,是对象的caption属性的属性值,不是对象的名称,对象的名称一般在设计程序界面时是看不到的,只有在程序代码里可以看到;
故选:B
9.为了运行时在文本框Text1中显示“运行成功”,在代码编辑窗口输入以下程序:
Private Sub Command1_Click
Text1.Caption=“运行成功“
End Sub
运行程序时会报错,则应修改代码为( )
A.Text1.Font=“运行成功“ B.Form1.Caption=“运行成功“
C.Text1.Visible=True D.Text1.Text=“运行成功“
【分析】文本框(TextBox)是一种通用控件,可以提供用户输入文本或显示文本.默认时,文本框中输入的字符最多为2048个.若将控件的Multiline属性设置为True,则可输入多达32KB的文本.
主要属性:Text属性
通过Text属性,可以实现人机的交互操作.程序运行时,从键盘向文本框内输入字符,字符内容由该文本框的Text属性获得,然后可以将这些内容赋值给变量,从而实现输入操作.也可以将变量的值赋给文本框,从而实现数据的输出.
【解答】运行时在文本框Text1中显示“运行成功”,代码为Text1.Text=“运行成功“.所以ABC都不是,故选:D.
10.某同学编写了如下VB程序段:
Private Sub Command1_Click( )
Dim x As Double,Dim y As Double
x=Val(Text1.Text)
y=Abs(x)
x=Exp(y)
Text2.Text=Str(x)
End Sub
该应用程序执行后,出现了如图所示的错误提示,请问产生错误的原因是( )
A.语句y=Abs(x)错误
B.语句x=Exp(y)错误
C.缺少文本框Text1或文本框Text2
D.缺少对象‘424’
【分析】在对程序进行编译时,如果程序中有语法错误,就会在编译阶段报出,在调试中弹出错误窗口.
【解答】题目中错误信息对话框提示“要求对象”,说明程序界面设计时少了程序代码中要求的某个控件对象.结合程序段代码,应是缺少文本框Text1或文本框Text2.A、B选项中语句均正确,D选项中‘424’是错误类型代号,不是对象名.
故选:C.
11.有如下Visual Basic程序:
Private Sub Command1_Click( )
Dim p As String,d As String
p=Val(Text1.Text)
d=Val(Text2.Text)
Do While d>1
p=2*( p+1 )
d=d﹣1
Loop
Label1.Caption=Str(d)
End Sub
运行该程序,在文本框Text1中输入1,在文本框Text2中输入5,单击命令按钮Command1,在标签Label1中显示的结果是( )
A.1 B.0 C.94 D.46
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为真,Do…While循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
Do
语句1
语句2
语句N
Loop While 条件
【解答】分析程序,变量p、d分别被赋值对应Text1、Text2文本框中的输入值,根据题意,p=1,d=5;Do循环当d>1时,每执行一次循环d减1,所以循环体共执行4次,5﹣4=1,由语句Label1.Caption=Str(d)
可知,最终Label1中显示的结果是d的数字,即标签Label1中显示的结果是1.
故选:A.
12.某VB程序在调试中弹出如图所示的错误窗口,产生该错误的可能原因是( )
A.该VB程序代码中,某个过程名书写错误
B.该VB程序窗体界面中,缺少某控件
C.该VB程序代码中,某个常量或变量没有声明
D.该VB程序设计软件没有正确安装
【分析】在对程序进行编译时,如果程序中有语法错误,就会在编译阶段报出,在调试中弹出错误窗口.
【解答】错误信息对话框提示“要求对象”,说明程序界面设计时少了程序代码中要求的某个控件对象,即该VB程序窗体界面中,缺少某控件.故选:B.
13.“红色的皮球漏气了.”在这句话中,“红色”描述的是对象“皮球”的( )
A.属性 B.方法 C.事件 D.类
【分析】Visual Basic 语言中的所有对象都有它们自己的属性、方法和事件,其中包括窗体和控件.可以将属性视为对象的特性,将方法视为对象的操作,而将事件视为对象的响应.
【解答】根据题意:皮球是对象,红色皮球的属性,漏气是事件
故选:A.
14.Caption是命令按钮的( )
A.属性 B.方法 C.事件 D.过程
【分析】Visual Basic 语言中的所有对象都有它们自己的属性、方法和事件,其中包括窗体和控件.可以将属性视为对象的特性,将方法视为对象的操作,而将事件视为对象的响应.
【解答】Caption属性是命令按钮的一个基本属性,属性值为显示在按钮上的文本.
故选:A.
15.如下VB程序段
Private Sub Command1_Click( )
Dim x As Integer
Dim y As Integer
x=Val(Text1.Text)
y=10
If x<0Then
y=5
Else
If x<100Then
y=100
Else
y=200
End If
End If
Print y
End Sub
运行后,在文本框Text1中输入5,程序输出的结果是( )
A.5 B.10 C.100 D.200
【分析】If语句有三种基本形式,一种是单分支结构,一种是双分支结构,还有一种是多分支经构.单分支结构,其基本语法结构为:if(条件)then语句 endif,解释为如果条件成立就执行语句,否则什么也不干,就执行下面的语旬.双分支结构,其基本语法结构为if(条件)then语句一else语句二endif,解释为如果条件成立则执行语句一内容,如果不成立就执行语句二内容.多分支结构相对来说复杂一些,其基本结构为if(条件)then语句一else if(条件)then 语句二 else if(条件)语句三…endif.
【解答】分析程序的选择语句,判断输入值小于0,则y=5;否则继续判断小于100,则y=100,其余第三种情况则y=200.根据题意输入为5,则y=100.
故选:C.
16.在VB中,若要在文本框中输入密码(内容只显示“*”),则应当设置( )
A.Text属性值为“*“ B.Caption属性值为“*“
C.Name属性值为“*“ D.Passwordchar属性值为“*“
【分析】TextBox组件(文本框组件)是一种常用的,也是比较容易掌握的组件.应用程序主要使用它来接收使用者于输入文字信息.
【解答】修改文本框的PasswordChar属性可以做到使文本框中输入的内容以设定的属性值形式显示.
故选:D.
17.对于窗体,Click(单击)是它的一个( )
A.对象 B.方法 C.事件 D.属性
【分析】VB中窗体常用的事件有:
(1)Click 事件.在程序运行时单击窗体内的某个位置,Visual Basic将调用窗体的Form_Click事件.如果单击的是窗体内的控件,则只能调用相应控件的Click事件.
示例代码:Private Sub Form_Click( ) Caption=鼠标单击 Print 欢迎使用VB End Sub 代码说明:标题栏显示“鼠标单击”,窗体显示欢迎使用VB.
(2)DblClick 事件.程序运行时双击窗体内的某个位置,就触发了两个事件,第一次按动鼠标时,触发Click事件,第二次产生DblClick事件.
(3)Initialize初始化事件与 Load事件. 在程序运行时,当窗体被装入工作区时开始为Initialize之后才触发它的Load事件.所以该事件通常用来在启动应用程序时,对控件属性和变量初始化.
(4)Unload事件.卸载窗体时触发该事件.
(5)Resize事件.当窗体大小发生改变时,将触发一个Resize事件.
(6)Activate和Deactivate事件.Activate,当一个对象成为活动窗口时发生.Deactivate,当一个对象变为非活动(Deactivate)事件当在程序运行过程中,一个窗体变为非活动窗体时,则产生该事件.
(7)MouseDown事件.按下鼠标任意键时产生
(8)MouseMove事件.按下鼠标任意键,并移动鼠标时产生.
(9)MouseUp事件.放开鼠标任意键时产生.
(10)DragDrop事件.鼠标点住某一对象并拖动,直到放开鼠标键时才发生该事件,在拖放过程中,不发生DragDrop事件.
(11)KeyDown事件和KeyUp事件.按下键盘上的任意一个键,就会引发当前具有焦点的对象的KeyDown事件.释放时,则会引发该对象的KeyUp事件.
(12)KeyPress事件.按下键盘上与ASCII字符对应的键时,触发KeyPress事件.KeyPress事件能识别的ASCII字符包括:字母键、数字键、标点符号键以及Enter键、Tab键和Backspace键.也就是说,在键盘上除了按这些键以外,按其它键不会引发KeyPress事件. ASCII码值是以按键上的字符为准.同一按键上的字符有大小之分,所以按下同一个键时,ASCII码值是不一样的.例如,“A”和“a”的ASCII码值不一样.
(13)Paint事件.窗体重绘事件,窗体被移动或放大之后,或在一个覆盖该窗体的窗体被移开之后,该对象部分或全部暴露时,此事件发生.如果需要代码中各种图形方法的输出,则 Paint 事件过程就很有用.使用 Paint 过程,可以确保这样的输出在必要时能被重绘.
【解答】对于窗体,Click(单击)是它的一个事件.
故选:C.
18.下列选项中,属于窗体对象Form1方法的是( )
A.Caption B.Print C.Click D.Name
【分析】vb窗体常用的方法有print、cls、show、hide、setfocus.
【解答】Caption、Name是窗体的属性,Click是窗体的事件,只有Print是窗体的方法.
故选:B.
19.有如下VB程序段:
Private Sub Command1_Click( )
Dim i As Integer,x As Integer
x=1
For i=1To 5Step 2
x=x+i
Text1.Text=Str(x)
Next i
End Sub
则该程序运行后,文本框Text1中显示的数据个数是( )
A.1个 B.2个 C.3个 D.5个
【分析】本题是一个陷阱题,问的是Text1中显示的数据个数;
【解答】i和x都定义为整数型;
在for循环中x每次加上i的值,最后循环结束x的值也是整数型;
最后用Str函数把x转换成字符串类型,此时不管x的值为多少作为字符串也是1个数据
故选:A
20.某VB程序功能:输入正整数n,单击命令按钮Command1后,则会衍生出一串有规律的数字,形式为“1 2 3…n﹣1n n﹣1…3 2 1”.例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1”.
Private Sub Command1_Click( )
Dim a As intger,i As intger,s As String
n=Val(text1.Text)
s=““
For i=1To 2*n﹣1
If i>n Then ① Else ②
Next i
text2.Text=s
End Sub
为实现以上功能,①②处分别填写( )
A.①s=Str(2*n﹣i) ②s=Str(i)
B.①s=s+Str(2*n﹣i) ②s=s+Str(i)
C.①s=s+Str(2*n﹣1)②s=s+Str(2*n)
D.①s=Str(2*n﹣1)②s=Str(2*n)
【分析】(1)根据问题内容提示,理解题意并编写程序代码解决问题
(2)字符串连接运算的使用方法
【解答】据题意:输入一个正整数n后,s变量里存放最后的结果字符串,起始S是空串,想得到1234…n﹣1 n n﹣1…4 3 2 1时,用变量i从1变化到n时s=s+str(i)就可以出现1234…n﹣1 n的字符串,字符串的后半段,让变量i从n+1变化到2*n﹣1,用2*n﹣i可以表示出n﹣1 n﹣2…4 3 2 1,再用s=s+str(2*n﹣i)就可以出现字符串的后半段 n﹣1…4 3 2 1时,整个字符串就是1234…n﹣1 n n﹣1…4 3 2 1时,程序代码中①处要填的就是i>n时,字符串的连接运算方法s=s+str(2*n﹣i),②处填i<n时的字符串的连接运算方法s=s+str(i).
故选:B.
21.【加试题】有如下程序段:
改程序运行后,文本框TsxtI中显示的内容是( )
A.55 B.126 C.259 D.385
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,for循环的初始值是1,终值是10,步长是1,只有a(i)mod 3=0 时,才执行ans=ans+a(i),只有当i为3、6、9时才执行,所以ans=9+36+81=126,故选:B.
22.有一个VB程序,其程序界面中有一个按钮Command1及一个文本框Text1,并且其程序代码如下:
当点击Command1后,Text1中将显示( )
A.3 B.4 C.5 D.6
【分析】质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数.虽然VB提供了常用的标准函数,可以使用这些标准函数来实现某些数学计算或数据类型的转换,但许多应用程序常常需要自己来定义函数,以实现某种特定的计算.可以按下面的方式自己来构造(规定)一个函数:
Function 函数名(参数表) As 数据类型名
语句块
End Function
【解答】由程序代码可见,主程序为Command1的单击事件过程,在过程中调用自定义函数f( ),函数f( )中通过Do…Loop循环判断传递来的参数p的因数个数,如果不为0则返回False,表明p是质数,主程序循环判断数列2至10中质数的个数并累加在变量c中.10以内的质数有2、3、5、7,所以最终c=4.当点击Command1后,Text1中将显示4.
故选:B.
23.有如下VB程序段:
Dim d(1 To 9)As Integer,s As String
Dim L As Integer,R As Integer,M As Integer,key As Integer
d(1)=2:d(2)=3:d(3)=5:d(4)=7:d(5)=11
d(6)=13:d(7)=17:d(8)=19:d(9)=23
L=1:R=9
s=““:key=17
Do While L<=R
M=(L+R+1)\2
If d(M)=key Then L=10
If d(M)<key Then L=M+1 Else R=M﹣1
s=s+Str(M)
Loop
Label1.Caption=s
该程序段运行后,标签框Label1中显示的内容是( )
A.5 8 7 B.5 7 C.11 19 17 D.11 17
【分析】do﹣while循环先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环.因此,do﹣while循环至少要执行一次循环语句.
【解答】分析程序,L=1,R=9,key=17
L<R,M=(L+R+1)\2=5,d(M)<key,执行then,L=M+1=6,s=“5“;
L<R,M=(L+R+1)\2=8,d(M)>key,执行else,R=M﹣1=7,s=“5 8“;
L<R,M=(L+R+1)\2=7,d(M)=key,L=10,s=“5 8 7“,程序结束,故选:A.
24.有如下程序段:
程序运行后,标签Label1中显示的内容是( )
A.10 20 30 40 B.10 30 20 40 C.40 30 20 10 D.40 20 30 10
【分析】递归算法是把问题转化为规模缩小了的同类问题的子问题.然后递归调用函数(或过程)来表示问题的解.一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数).
【解答】递归调用的过程为:doit(4)=doit(3)&“40”=doit(2)&“20”&“40”=doit(1)&“30”&“20”&“40”=“10”&“30”&“20”&“40”,故选:B.
25.有如下VB程序,在文本框Text1中输入“100”,单击命令按钮Command1后,标签Label1中显示的内容是( )
A.25 B.6 C.12 D.50
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,Text1输入100,a(5)=100,a(4)=50,a(3)=25,a(2)=12,a(1)=6,故选:B.
26.[加试题]循环升序数组指的是将一个升序数组循环右移动若干距离之后变成的数组.如[1,2,3,4,5]循环右移1位,就成为[5,1,2,3,4],再右移1位,就成为[4,5,1,2,3],…,其中[5,1,2,3,4]和[5,1,2,3]都是循环升序数组.该数组的特点是:将循环升序数组从中间分开,肯定有一边是有序数组,另外一边是循环有序数组.上杜研究发现对分查找算法适当优化后也适用于循环升序数组.在文本框输入被查找数据key,查找循环升序数组a中是否有相同的元素存在.编写的VB程序段如下:
i=1:j=n’数组a下标从1到n为止
Key=Val(Text1.Text)
Do While i<=j
m=(i+j)\2
If a(m)=Key Then Exit Do
If Then j=m﹣1 Else i=m+1
Else
If Key>a(m) And Key<=a(j) Then i=m+1 Else j=m﹣1
End If
Loop
If i<=j Then Text2.Text=“查找成功”Else Text2.Text=“查找失败”
要使程序实现对分查找过程,则方框中的语句是( )
A.Key>=a(i) And Key<a(m) B.Key<=a(i) And Key>a(m)
C.Key>=a(i) And Key<=a(m) D.Key>a(i) And Key=<a(m)
【分析】二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x.
【解答】将循环升序数字从中间分开,肯定有一遍是有序数组,另一边是循环有序数组,吐过中间元素和key相等,则查找成功,退出循环,
如果a(i)<a(m),则意味着左边是有序数组,如果key>=a(i)And Key<a(m),表示key在左边有序数组中,下次查找范围为[i,m﹣1],否则在左边循环数组中查找,查找范围为[m+1,j];
如果a(i)<a(m)不成立,意味着右边是有序数组,如果key>a(m)And Key<=a(j)成立,下次查找范围为[m+1,j],否则在左边循环数组中查找,查找范围为[i,m﹣1]. 故选:A.
27.有如下Visual Basic程序段:
该程序段运行后,语句“s=s+j*j“执行的次数为( )
A.29 B.36 C.45 D.55
【分析】(1)For 循环变量=初值 To 终值 Step 步长 语句块Next 循环变量在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.(2)通过阅读程序,得到程序解决问题结果
【解答】分析题中程序代码,里层循环变量j的终值与外层循环变量i的值相关,其循环次数是1+2+3+4+5+6+7+8+9+10=55.故选:D.
28.【加试题】某递归算法的VB程序段如下:
如在对象“Text1”中输入“12345”,则“Text1”的最终结果为( )
A.1234554321 B.531 C.135 D.54321
【分析】If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】分析程序,y=flog(5)=flog(4)﹣1=flog(3)﹣2=flog(2)﹣3=flog(1)﹣4=1﹣4=﹣3
根据这个可知,flog被调用5次,x的值分别为5,4,3,2,1,所以Text1.Text=“”+“5”+“4”+“3”+“2”+“1”=“54321”,故选:D.
29.有如下VB程序段:
该程序段运行后,循环体s=s+k被执行了30次,则循环变量k的初值是( )
A.﹣82 B.﹣24 C.﹣85 D.﹣25
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长 语句块 Next 变量 在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】根据题意,for循环每循环一次循环变量增加一个步长,执行30次后超出循环变量范围,即k+30×3>5且k+29*3<=5,解得﹣82>=k>﹣85,A选项符合要求.
故选:A.
30.【加试题】Visual Basic程序段如下:
该程序段运行后,文本框Text1、Text2分别输入3,2后,单击命令按钮Command1,文本框Text3中显示的是( )
A.2 B.3 C.6 D.9
【分析】If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】分析程序,a=3,b=2,
y>0,执行else语句,f=3*1=3,故选:B.
31.【加试题】某Visual Basic程序如下:
Private Sub Command1_Click( )
Dim a(1To 10)As Integer
Dim i As Integer
For i=1 To 10
a(i)=i*i
Next i
List1.AddItem Str(a(i))
End Sub
运行程序,单击命令按钮Command1后,出现的错误提示为( )
A.下标越界 B.子程序或函数未定义
C.溢出 D.类型不匹配
【分析】通过观察可以看出本程序出现了For语句和整型的数组a(1 To 10).
要计算数组中a(i)的值,我们要仔细观察For语句循环几次,再看循环体中表达式a(i)=i*i的值,即可得出变量a(i)的值.
For语句一般格式:
For 循环变量=初值 To 终值【Step 步长】
【语句块】
【Exit For】
【语句块】
Next【循环变量】
在For语句中要判断循环变量是否超出终值,如果未超出,则执行语句块.
一维数组的定义格式为:
Dim 数组名(下标)【As 数据类型】
说明:1、下标必须为常数,不可以为表达式或变量;2、一维数组的大小为上界﹣﹣﹣下界+1;
【解答】本题定义了数组a下标范围为1~10,数组元素的数据类型为整型,在列表框中输出数组元素的值.因为的For循环语句中,先执行“next i”,再输出,所以列表框当中输出的数组元素为a(2),a(3),a(4),…,a(10),a(11),超过了数组下标范围a(10),运行程序后,VB会提示“下标越界”,故选A.
32.用VB模拟设计某软件的登录界面,如图所示,当鼠标单击“<请输入帐号>”所在的文本框Text1,文字内容就消失.则此事件处理的过程名应该是( )
A.登录窗口_CliCk B.Text1_KeyPress
C.CommAnD1_CliCk D.Text1_CliCk
【分析】程序中的事件是由用户操作触发或由系统触发,能被特定对象所识别并作出相应的动作.事件过程的处理用代码,事件过程由对象名、下划线(﹣)和事件名组合而成
【解答】事件过程由对象名、下划线(﹣)和事件名组合而成,这题目里的对象是text1,事件是鼠标单击(click).
故选:D.
33.阅读如下程序段,程序运行结束后,k和s的值分别是( )
A.k=10,s=10 B.k=10,s=11 C.k=11,s=10 D.k=11,s=11
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为真,Do…While循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
当VB遇到这个循环时,它首先条件的真假,如果条件为假,循环内部的语句就不会被执行,VB将继续执行关键字Loop后面的第一条语句.如果条件为真,循环里面的语句则会被一条一条地执行,直到遇到Loop语句.Loop语句告诉VB重复这个过程,只要Do While语句里的条件为真的话.
【解答】程序段中,k和s初值为0.每循环一次,s加1,循环k是从0开始,一直到10,所以一共循环11次,所以循环结束,s=11,当k=11时不满足循环条件,循环结束,故选:D.
34.某VB程序如下:
运行该程序段,会出现的错误提示为( )
A.下标越界 B.子程序或函数未定义
C.要求对象 D.溢出
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,a(1)=1,a(2)=1*2,a(3)=1*2*3,…,a(10)=1*2*3*…*10,所以程序求10的阶乘,A选项当数组下标超出定义返回报的错误,B当系统无法识别函数名报的错误,C当系统无法识别对象名报的错误,故选:D.
35.有如下VB程序段:
程序运行后,文本框Text1显示的内容是( )
A.20 B.12 C.10 D.8
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】本题采用筛选法求质数的思想,用p(i)=0表示i为质数,p(i)=﹣1表示i为合数,变量t的值表示i到20之间内质数个数,故选:D.
36.有如下Visual Basic 程序:
运行该程序,在文本框Text1、文本框Text2、文本框Text3中分别输入2、﹣5、6后,单击命令按钮Command1,文本框Text5中显示的是( )
A.﹣5 B.2 C.6 D.24
【分析】If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】Max函数表示返回两个数中的最大数,变量d等于a,b中的最大数,变量z等于d,c中的最大数,因此z是a,b,c中的最大数,故选:C.
37.阅读如下程序,Label1中显示的是( )
Dim a(1To 10)As Integer,Dim s As String,For i=1To 10,a(i)=1,Next i,For j=1To 5,For i=1To 10,If i Mod j=0Then,a(i)=1﹣a(i),End If,Next i,Next j,For i=1To 10,Label1.Caption=Label1.Caption & a(i),Next i)
A.0110100010 B.0110100000 C.1010100000 D.1001011101
【分析】在块形式中,If 语句必须是第一行语句.其中的 Else、ElseIf,和 End If 部分可以只在之前加上行号或行标签.If 块必须以一个 End If 语句结束.
【解答】分析程序可知,数组a初始值都是1,每次执行语句a(i)=1﹣a(i),a(i)的值都是0,1的交替变化.程序执行过程中相关变量的变化过程如下表所示:
j i 数组a
1 1~10 0000000000
2 1~10 0101010101
3 1~10 0111000111
4 1~10 0110000011
5 1~10 0110100010
故选:A.
38.【加试题】有一组数据23、12、56、34、10分别存放在一组变量数组a(1)~a(5)中,以下程序段执行后,i的最终结果是( )
Dim a(1To 5)As Integer
Dim f As Boolean
a(1)=23:a(2)=12:a(3)=56:a(4)=34:a(5)=10
i=1:f=True
Do While i<=5And f=True
If a(i)=56Then
f=False
i=i+1
Loop
Label1.Caption=Str(i)
A.6 B.3 C.4 D.5
【分析】VB中循环语句包括For﹣Next、While﹣Wend、Do﹣Loop语句比较常用的是For﹣Next和Do﹣Loop语句;For循环只能用在循环次数已知的情况下.
【解答】根据题意,Do While…Loop循环语句中只有当数组内容为“56”时,将f的值设置为“false”,同时数组的下标i加1.因此当i=3时,f=false,而且i的值还要加1,这样循环条件不再成立(循环条件是i<=5 And f=True),循环结束,因此最后的结果是i=4.
故选:C.
39.将十进制数转化为二进制数的 VB 程序段如下:DimyAsInteger,s AsString,rAsInteger
y=Val(Text1.Text):s=““'输入十进制数
DoWhile y<>0
Loop
Text2.Text=s'显示出二进制数
方框中的代码由以下三部分组成:
①s=CStr(r)+s'CStr(r)自动去掉字符前的空格
②y=y\2
③r=yMod2 代码顺序正确的选项是( )
A.②③① B.②①③ C.①③② D.③②①
【分析】十进制整数转换为二进制整数采用“除2取余,逆序排列“法.具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来.也叫“倒序取余”
十进制整数转二进制 如:15=(10001)B
17/2=8═余1
8/2=4═余0
4/2=2═余0
2/2=1═余0
1/2=0═余1
【解答】根据题意,变量y定义为整型,本题编写的整数的十进制转二进制,采用“除2取余,逆序排列“法,所以步骤③先取得第一位余数,步骤②将整数整除2后重新赋值给y,步骤①再其逆向累加在S变量中字符串的前端.
故选:D.
40.有如下程序,运行后,输出的结果是( )
A.120 B.25 C.15 D.10
【分析】递归算法是把问题转化为规模缩小了的同类问题的子问题.然后递归调用函数(或过程)来表示问题的解.一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数).
【解答】分析程序,使用的是递归函数,p(5 )=p(4 )+5=p(3 )+4+5=p(2 )+3+4+5=p(1 )+2+3+4+5=p(0)+1+2+3+4+5=15,故选:C.
41.【加试题】编写VB程序,实现如下功能:在文本框Text1中输入一个大于1000的正整数,单击按钮Command1后,会去除其中3个数字,保证余下的数字在不改变顺序的情况下其数值最大,然后在文本框Text2中输出该数.
Private Sub Command1_Click
Dim s As String
Dim n As Integer,w As Integer
s=Text1.Text
For i=1 To 3
n=Len(s):w=1
For j=2 To n
If Then w=j Else Exit For
Next j
s=Mid(s,1,w﹣1)+Mid(s,w+1,n﹣w)
Next i
Text2.Text=s
End Sub
划线处的正确代码为( )
A.Val(Mid(s,w,1))<=Val(Mid(s,j,1))
B.Val(Mid(s,j,1))<=Val(Mid(s,j+1,1))
C.Val(Mid(s,w,1))>=Val(Mid(s,j,1))
D.Val(Mid(s,j,1))>=Val(Mid(s,j+1,1))
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
在VB中,Mid(a,b,c) 从a中的第b个开始,取c个字符的子串.
【解答】分析程序,w用于记录输入整数中的位数中最小的值,开始最小值赋值为第一位数的下标i,然后把w位上的数和j位置上的数比较,如果j位置的小于w位置,把j赋值给w,内层循环结束,找到一个最小的w,然后去除w位置上的数,
把w位上的数和j位置上的数比较的代码为:Val(Mid(s,w,1))>=Val(Mid(s,j,1)),故选:C.
42.【加试题】有如下VB程序段:
n=0
For i=1To Len(Text1.Text)
c=Mid(Text1.Text,i,1)
If c>=“0“And c<=“9“Then m=1Else m=2
a(m)=a(m)+1
If a(m)=1Then n=n+1
Next i
数组a各元素的初始值都为0,文本框Textl的内容为“Happy2017”.执行程序后,变量n的值为( )
A.1 B.2 C.4 D.9
【分析】If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】文本框Textl的内容为“Happy2017”.循环是从1到9,只有i的值为7时,a(m)=1才成立,所以n=1.故选:A.
43.在VB中,双击名为count的时钟后,默认出现的事件是( )
A.timerl﹣Timer( ) B.timerl﹣Click( ) C.count﹣Timer( ) D.count﹣Click( )
【分析】在VB中,双击控件会出现对应的默认事件过程代码,其中事件名由对象名、下划线、事件类型组成.
【解答】事件的对象名为count,事件类型为timer事件,故选:C.
44.【加试题】有如下程序段:
该程序段运行后,文本框Text1中显示的内容是( )
A.4 B.6 C.8 D.9
【分析】For语句的一般格式:For 循环变量=初值 To 终值 Step 步长 语句块 Next 变量 在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
if语句有三种基本形式:
一种是单分支结构,一种是双分支结构,还有一种是多分支经构.单分支结构,其基本语法结构为:if(条件)then语句 endif,解释为如果条件成立就执行语句,否则什么也不干,就执行下面的语旬.
双分支结构,其基本语法结构为if(条件)then语句一else语句二endif,解释为如果条件成立则执行语句一内容,如果不成立就执行语句二内容.
多分支结构相对来说复杂一些,其基本结构为if(条件)then语句一else if(条件)then 语句二 else if(条件)语句三…endif.
【解答】分析程序中主要由For循环语句结合选择语句构成,循环变量i从2至9循环8次,依次比较数组两邻两元素大小,如果连续出现后一元素大于前一元素,则累计后一元素大于前一元素的出现次数存储于变量k,并判断k与m的关系,将较大值赋给m,如果后一元素不大于前一元素,则将k重置为1.循环结束后文本框Text1中显示输出m的数字,最终实现将连续出现后一元素大于前一元素的次数的最大值输出.观察数组元素可知后一元素大于前一元素的情况共有6次,其中连续的次数最多三次,即在a(3)至a(6)之间.因为k变量初值为1,所以连续三次累加后k=1+3=4.
故选:A.
45.某VB程序的一个事件过程代码如图所示:
程序运行时在文本框Text1中输入﹣1,单击命令按钮Command1,弹出如图所示的错误提示信息,产生此错误的语句是( )
A.A=Val(Text1.Text) B.x=(A+10)/(A*A+8)
C.y=(A﹣1)/(x+A) D.z=Sqr(x﹣y)
【分析】在VB中,Sqr( )函数用于求表达式的平方根,Val( )函数将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据.
【解答】输入﹣1,A的值是﹣1,计算得出x的值为1,y为﹣2/0,所以报了除数为0的错误,故选:C.
46.小明做好了一个VB程序,希望带到班级的电脑上展示给其他同学,则下列做法最适合的是( )
A.保存成vbp文件 B.保存成frm文件
C.生成exe文件 D.保存成vbw文件
【分析】VB程序可以保存成vbp和frm两个文件,分别记录下窗体、工程的信息,打开后可以继续进行编辑,但是必须利用VB软件才能打开.
【解答】Exe是windows下的可执行文件,生成后无法编辑,但是不需要VB软件就能打开,实例中小明的需要是放在其他电脑上,为了确保可以打开文件,最好生成exe文件,故选:C.
47.有如下程序段:
输出的数字文本图案为( )
A. B. C. D.
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】外循环7次,决定了输出的行数,每行的字符合数由内层循环次数决定,内循环的循环变量的初、终值及循环体的代码决定了每行显示的字符,Tab( )定位函数内的参数表达式决定了每行的缩进,因其输出的是数字,数字有符号位,本身位加尾随格,所以当i=1,j循环第17列输出的是符号位,18列输出数字,19列输出尾随格,故选:A.
48.运行下列VB程序,在文本框Text1中输入“台州”,单击命令按钮Command1后弹出如图所示的出错信息提示.
Private Sub Command1_Click( )
Dim City As String,file1 As String
City=Text1.Text
file1=City+“.jpg“
Image1.Picture=LoadPicturt(file1)
List1.AddItem City
End Sub
此时程序正在执行的语句是( )
A.City=Text1.Text
B.file=City+“.jpg“
C.Image1.Picture=LoadPicture(file1)
D.List.AddItem City
【分析】一个VB工程有许多类型的文件.工程文件(*.vbp)、窗体文件(*.frm)、窗体的二进制数据文件(*.frx)、标准模块文件(*.bas)、类模块文件(*.cls)、资源文件(*.res)、ActiveX控件的文件(*.ocx),当然可能会有其他的文件,比如vbw vbg等.
【解答】分析对话框,提示文件未找到,说明加载文件的时候出现了问题,所以执行的语句是:Image1.Picture=LoadPicture(file1),故选:C.
49.数组a共由6个元素构成:49、45、61、46、58、57,经过如下程序处理后,m和n的值分别为( )
A.15,4 B.15、5 C.30、4 D.30、5
【分析】选择排序:第一次从下标为0的开始下标为0的这个数与后面的n﹣1个进行比较;找出最小或者最大的放在下标为0的这个位置;第二次从下标为1的开始比较;查询剩下的最大或者最小值;放在 下标为1的位置;以此类推;直到排序完成
【解答】通过程序可知该程序是实现数组的递增排序,m存放的比较次数,n存放数据交换次数,
i=1,m=5,n=1,数组变为:45、49、61、46、58、57;
i=2,m=9,n=2,数组变为:45、46、61、49、58、57;
i=3,m=12,n=3,数组变为:45、46、49、61、58、57;
i=4,m=14,n=4,数组变为:45、46、49、58、61、57;
i=5,m=15,n=5,数组变为:45、46、49、58、57、61;故选:B.
50.【加试题】某VB程序如下:
语句s=s+k共执行的次数是( )
A.4 B.3 C.2 D.5
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,for循环的初始值是1,终值是9,步长是3,所以k的取值为,1、4、7、10,k为10时,不执行循环,所以语句s=s+k共执行3次,故选:B.
51.阅读下面程序,在Text1、Text2中分别输入30、6,则Text3中的值为( )
A.1 B.3 C.6 D.9
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为真,Do…While循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
当VB遇到这个循环时,它首先条件的真假,如果条件为假,循环内部的语句就不会被执行,VB将继续执行关键字Loop后面的第一条语句.如果条件为真,循环里面的语句则会被一条一条地执行,直到遇到Loop语句.Loop语句告诉VB重复这个过程,只要Do While语句里的条件为真的话.
【解答】分析程序,a=30,b=6,a Mod b=0,不执行do while语句,所以Text3上显示6,故选:C.
52.【加试题】一个Visual Basic程序的部分设计界面如图所示,下列选项中正确的是( )
A.窗体的Caption属性值是Form1
B.当前选中的对象类型是图象Image
C.工程文件是cool.frm
D.当前选中对象的名称是Command1
【分析】图中3幅图分别为工程目录,图片,属性(右上,左下,右下)
Caption是题目标签,工程文件名是cool.vbp,当前选中对象的名称是“image”,对象类型是“CommandButton”
【解答】A,窗体的Caption属性值就是窗体左上角的内容,选项A的描述正确.
B,当前选中的对象类型是“CommandButton”,而不是“image”(此处“image”对象名起到了误导的作用).
C,工程文件名是“cool.vbp”(“cool.frm”是窗体文件).
D,当前选中对象的名称是“image”,而不是“Command1”.
故选:A
53.运行如下VB程序,单击命令按钮Commandl,出现如图所示的错误提示.
其中提示“无效的过程调用或参数”是执行下列哪处的语句( )
A.① B.② C.③ D.④
【分析】Sqr( )函数的作用是求算术平方根.
【解答】阅读程序段,发现③处c=Sqr(b),b=a﹣11=2﹣11=﹣9为负数,Sqr(b)函数求的是b的算术平方根,而负数无法求解,从而产生“无效的过程调用或参数”的错误.其余选项语句均正确.
故选:C.
54.如下VB程序段:
x=text1.text
p=0
for i=1 to len(x)
if mid(x,i,1)=”a”then p=p+1
next i
print p
若程序运行时,在文本框Text1中输入“Are you happy”,则运行结果是( )
A.0 B.1 C.2 D.11
【分析】题中利用for循环获取Text1中字母“a”出现的次数.
For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】mid(x,i,1)=”a”,依次获取x中的单个字母并判断是否等于“a”,条件满足执行p=p+1,计算出现的次数,可以看出只有一个字母a.
故选:B.
55.某VB程序段如下所示:
Dim x As String
Private Sub Form_Load( )
x=““
End Sub
Private Sub Text1_Change( )
Dim s As String,k As String
Dim i As Integer
s=“0123456789ABCDEF“
k=Text1.Text
For i=1To Len(s)
If Mid(s,i,1)=k Then x=x+k
Next i
If x=““Then x=“没有找到!“
Label1.Caption=x
End Sub
若在文本框Text1中依次输入“2”和“9”,则Label1上显示的内容为( )
A.11 B.2 C.9 D.29
【分析】Len函数用于获取字符串的长度;
Mid(str,start,length) 函数:从一个字符串返回包含指定数量字符的字符串.str 必选.String表达式,从该表达式返回字符.
start 必选.Integer表达式.要返回字符的开始位置.如果 Start 大于 str 中的字符数,Mid 函数将返回零长度字符串 (““).Start 从一开始.
length 可选.Integer表达式.要返回的字符数.如果 Length 省略或超过文本的字符(包括 Start 处的字符)数,则返回从字符串开始位置到结尾的所有字符;
【解答】分析题目代码得k的值为用户输入Text1中的值,题目代码含义为for循环遍历字符串s,如果字符串s中的第i位等于输入k的值,则x=x+k,最后输出x的内容;
当输入2的时候,for循环遍历i=3时候满足条件.x=x+k,此时k为2,故x为2;
当输入9的时候,for循环遍历i=10时候满足条件.x=x+k,此时k为9,故x为29;
因为x是字符串,字符串之间的+代表拼接.所以为:29;
故选:D
56.有如下Visual Basic程序,输入n的值为11.在调试时程序首先出现的错误是.Private Sub Command1_Click( )
Dim n As Integer
Dim a(1To 10)As Integer
n=Val(Text1.Text)
s=1
For i=1To n
s=s*i
a(i)=s
List1.AddItem Str(a(i))
Next i
End Sub.
A. B. C. D.
【分析】(1)理解VB程序代码的意思,读懂VB程序.
(2)VB中程序的各种错误信息的理解与处理方法.
【解答】阅读程序,这段程序是输入一个整数n,把1到n之间的数累乘到S变量里,并且每次的乘积都放在数组a(1)到a(n)里,同时每个a(i)在list1里列出来.题目中的n和数组a(1)到a(10)中都是整数,在VB语言中整数的表示范围是:﹣32768~32767之间,题目中输入了数字11,当程序执行1*2*3*4*5*6*7*8=40320,超出了32767的整数范围,数组a(i)放不了这个数,就会出现“溢出”错误.
故选:C.
57.【加试题】将11个数据43、26、34、76、45、16、56、90、13、45、81依次存放在数组a(1)到a(11)中,部分VB程序段如下:
min=a(1)
n=Val(Text1.Text)
For i=2to n
If a(i)<min Then
min=a(i)
Next i
Text2.Text=Str(min)
假设在文本框Text1中输入“8”,则文本框Text2输出的值是( )
A.90 B.26 C.16 D.13
【分析】对程序代码进行分析,该程序段的作用是求解数组a中的最小数,并将其在文本框中进行输出.
【解答】在文本框Text1中输入8,则决定循环比较的终止条件是i=8,先假设a(1)的值最小,然后用a(2)到a(8)依次和min的值进行对比,如果发现还有比min小的数,则将该值赋值给min.由于数组的前8项中“a(6)=16”最小,因此本题答案是C.
故选:C.
58.某Visual Basic程序如下:
Private Sub Command1_Click
Dim num(1To 100)As Integer
Dim i As Integer
For i=1To 100'①
num(i)=i'②
Next i'③
List1.Addltem Str(num(i))'④
End Sub
运行程序,单击命令按钮Command1后,出现的错误提示及引起错误的语句分别为 ( )
A.类型不匹配 ① B.溢出 ②
C.子程序或函数未定义 ③ D.下标越界 ④
【分析】本题考查For语句使用后变量值得变化和数组的定义中下标含义.
For语句一般格式:
For 循环变量=初值 To 终值【Step 步长】
【语句块】
【Exit For】
【语句块】
Next【循环变量】
在For语句中要判断循环变量是否超出终值,如果未超出,则执行语句块,超出,则终止循环.
【解答】若Step为正数,循环结束后循环变量必然大于终值;若Step为负数,循环结束后循环变量必然小于终值,题中Step为正数,循环变量i的值在循环语句结束后为101,语句④中的num(i)为num(101),超过数组下标范围1To 100,程序运行后提示:实时错误 9,下标越界.
故选:D.
59.对分查找的VB程序段如下:
key=Val(Text2.Text)
i=1
j=16
Do While i<=j
m=①
if d(m)=key Then
Label6.Caption=”在数组中”+Str(m)+”位置中”
Exit Sub
End if
If d(m)<key Then
i=m+1
else
j=m﹣1
End If
Loop
Label6.Caption=”在数组中没有找到”+Str(key)
横线①处应填写( )
A.(i+j)/2 B.fix((i+j)/2) C.fix(i+j)/2 D.int(i+j)/2
【分析】通过观察可以看出本程序出现了Do Loop语句和If语句,我们细心观察Do Loop语句的循环了几次,If语句的判断情况,另外就是对分查找算法的基本思路,即可解答.
Do Loop语句一般格式:
Do {While|Until }<条件表达式>或 Do
【语句块】【语句块】
【Exit Do】【Exit Do】
【语句块】【语句块】
Loop Loop {While|Until }<条件表达式>
在Do语句中,当条件表达式前置时,先计算表达式的值,当表达式值为False,循环体一次也不执行.当条件表达式后置时,先执行一次循环体再计算表达式的值,因此循环体至少被执行一次.
If语句的一般格式:
If<条件表达式>Then
<语句块1>
Else
<语句块2>
End If
该语句作用是当条件表达式值为True时,程序执行语句块1,当条件表达式值为False时,程序执行语句块2.
【解答】本程序段缺少的是对分查找中值的确定.对分查找若两数平均值为整数,中值为平均值,否则对平均数进行取整操作,结果作为中值,所以①处为fix((i+j)/2).故选B.
60.在Visual Basic代码编辑窗口中,输入了“Text1.”后出现了如图所示的信息:其中的“Text”是Text1的( )
A.属性名 B.事件名 C.对象名 D.方法
【分析】在VB代码窗口,每当我们输入“对象名.”的时候,会弹出该对象的“属性”和“方法”,其中前面为绿色图标的为“方法”,前面为手形图标的为“属性”.
【解答】Text前面有手形图标,表示Text是Text1的属性.
故选:A.
第1页(共1页)
高中信息组卷2
一.选择题(共56小题)
1.在Visual Basic代码编辑窗口中,输入了“Text1.”后出现了如图所示的信息:其中的“Text”是Text1的( )
A.属性名 B.事件名 C.对象名 D.方法
2.在Visual Basic代码编辑窗口中,将窗体Form1的Caption属性值设置为“时钟”,正确的代码是( )
A.Form1.Caption”时钟” B.Form1.Caption(”时钟”)
C.Caption(时钟) D.Form1.Caption=”时钟”
3.在Visual Basic中,语句form1.Caption=“欢迎使用本系统!“中的“Caption“是( )
A.属性值 B.属性名 C.对象名 D.类名
4.下列程序设计语言中,哪一个不是面向对象的程序设计语言?( )
A.C B.C++ C.C# D.VC++
5.在Visual Basic中,有如下程序:
Private Sub Command1_Click( )
Dim a As Integer,b As Integer,c As Integer
Dim d As Integer,z As Integer
a=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)
d=max(a,b)
z=max(d,c)
Text4.Text=Str(d)
Text5.Text=Str(z)
End Sub
Function max(x As Integer,y As Integer) As Integer
If x>y Then max=x Else max=y
End Function
运行该程序,在文本框Text1、文本框Text2、文本框Text3中分别输入2、﹣5、6后,单击命令按钮Command1,文本框Text5中显示的是( )
A.﹣5 B.2 C.6 D.24
6.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息.发生“下标越界“错误时所执行的语句是( )
Private Sub Command1_Click( )
Dim a(0To 5)As Integer
Dim i As Integer'①
a(0)=1'②
For i=1To 5
a(i)=2*a(i﹣1)+1'③
Next i
Text1.Text=Str(a(i))'④
End Sub.
A.① B.② C.③ D.④
7.某VB程序功能如下:输入正整数n,单击命令按钮Command1后,则会生成一串有规律的数字序列,形式为“n n﹣1 n﹣2 …3 2 1 2 3 …n﹣2 n﹣1 n”.例如n=8时,生成的数字序列如图所示.代码如下:
Private Sub Command1_Click( )
Dim n As Integer,i As Integer,s As String
n=Val(Text1.Text)
s=““
For i=1To 2*n﹣1
If i<=n Then ① Else ②
Next i
Label1.Caption=s
End Sub
为实现以上功能,划线①②处应分别填写( )
A.①s=s & Str(n﹣i+1)②s=s & Str(i﹣n+1)
B.①s=Str(n﹣i+1)②s=Str(i﹣n+1)
C.①s=s & Str(i﹣n+1)②s=s & Str(n﹣i+1)
D.①s=Str(i﹣n+1)②s=Str(n﹣i+1)
8.如下VB程序段,在调试过程中出现了如图所示的信息,出现此错误信息的注释语句序号是( )
Private Sub Commandl_Click( )
Dim n As Long,s As Long
Dim i As Long
n=Val(Text.Caption)'①
s=0
For i=1 To n Step 2′②
s=s+i*i′③
Next i
Lab.Caption=Str(s)′④
End Sub.
A.① B.② C.③ D.④
9.有如下Visual Basic程序段:
a=9
b=“Command Button“
c=Len(b)
If a>0And a<c Then
Label1.Caption=Mid(b,a,6)
Else
Label1.Caption=“error“
End If
该程序段运行后,在标签Label1上显示的是( )
A.error B.6 C.Button D.Command
10.小明使用 控件设计一个秒表,倒计时时间精确到0.01秒,如图,设置该控件的interval属性值为( )
A.0 B.1 C.10 D.100
11.VB程序的工程文件名、窗体文件名以及生成的可执行文件名分别是( )
A.vb、.frm、.exe B.vbw、.exe、.frm
C.vbw、.frm、.exe D.vbp、.frm、.exe
12.有如下程序段:
a(1)=False
For i=2To 20
a(i)=True
Next i
For i=2To 20
If a(i)=True Then
For j=2To 20\i
a(i*j)=False
Next j
End If
Next i
t=0
For i=1To 20
If a(i)=True Then
t=t+1
End If
Next i
经过该程序段运行后,变量t的值为( )
A.5 B.6 C.7 D.8
13.下列 VB 程序段中:
Dim i as Integer,max as Integer Dim a(1to 10)as Integer
‘代码略,随机产生 10 个不重复的数存于数组 a 的 10 个元素 a(1)~a(10)中 max=a(1)
For i=2to 10
If a(i)>a(max) then max=i
Next i
变量 max 用于存储( )
A.a(2)~a(10)的最大值
B.a(1)~a(10)的最大值
C.a(2)~a(10)的最大值在数组中的下标值
D.a(1)~a(10)的最大值在数组中的下标值
14.某Visual Basic程度如下:
Private Sub Command1_Click( )
Dim num(1 To 100)As Integer
Dim i As Integer
For i=1 To 100'①
num(i)=i'②
Next i'③
List1.AddItem Str(num(i))'④
End Sub
运行程序,单击命令按钮Command1后,出现的错误提示及引起错误的语句分别为 ( )
A.类型不匹配 ① B.溢出 ②
C.子程序或函数未定义 ③ D.下标越界 ④
15.【加试题】有如下VB程序段:
For i=5To 4Step﹣1
k=i
For j=6﹣i To 1Step﹣1
If a(j)<a(k) Then k=j
Next j
If i<>k Then
t=a(i):a(i)=a(k):a(k)=t
End If
Next i
数组元素a(1)到a(5)的值依次为“41,66,70,83,31”,经过该程序段“加工”后,数组元素a(1)到a(5)的值依次为( )
A.31,41,66,83,70 B.83,70,66,41,31
C.83,66,70,41,31 D.31,41,66,70,83
16.一个Visual Basic工程的部分设计界面如图所示,下列选项中正确的是( )
A.窗体的Caption属性值是cool
B.当前选中的对象类型是图象Image
C.工程文件是cool.vbp
D.当前选中对象的名称是Command1
17.有如下VB代码:
Dim a As Integer,b As Integer
a=Val(Text1.Text)
If a Mod 2=0Then
b=a+1
ElseIf a Mod 3=0Then
b=a+2
ElseIf a Mod 5=0Then
b=a+4
Else
b=a
End If
Label1.Caption=Str(b)
运行该程序,在文本框Text1中输入25,单击命令按钮Command1,在标签Label1中显示的是( )
A.50 B.29 C.51 D.30
18.有如下VB程序段:
该程序段运行后,标签Label1中显示的内容是( )
A.0123 B.4567 C.01234567 D.04152637
19.【加试题】某VB程序段如下:
For i=1 To 6
j=7
Do While j>1
If a(j)>a(j﹣1)Then
a(j)=a(j)+a(j﹣1):a(j﹣1)=a(j)﹣a(j﹣1):a(j)=a(j)﹣a(j﹣1)
End If
j=j﹣1
Loop
Next i
For i=3 To 6
s=s+a(i)
Next i
Label1.Caption=Str(s)
已知数组元素a(1)到a(7)的值依次为“8,2,3,7,10,6,5”,则执行该程序段后,标签Label1中显示的是( )
A.21 B.26 C.41 D.18
20.【加试题】某个进行素数判断的VB程序段如下:
Private Sub Command1_Click
Dim x As Integer
x=Val(Text1.Text)
Label1.Caption=Str(x) & prime(x,2)
End Sub
Function prime(n As Integer,m As Integer) As String
If n=m Then
prime=“是素数“
ElseIf n<2 Or n Mod m=0 Then
prime=“不是素数“
Else
prime=prime(n,m+1)
End If
End Function
在文本框Text1中输入的值是123,并执行程序后,自定义函数prime( )被执行的次数是( )
A.1次 B.2次 C.122次 D.123次
21.有如下程序段:
Dim i As Integer,Sum As Integer
Dim a(1To 11)As Integer
Sum=6
a(11)=49
For i=10To 1Step﹣1
a(i)=a(i+1)﹣1
If a(i) Mod 3=0Then Sum=Sum+a(i)
Next i
Text1.Text=Str(Sum)
该程序段运行后,文本框text1中显示的内容是( )
A.174 B.180 C.36 D.42
22.单击窗体后,文本框Text1、Text2中显示的内容是( )
Private Sub Form_Click( )
Dim x as Integer,n as Integer
x=1
n=0
Do While x<20
n=n+1
x=x*3
Loop
Text1.Text=Str(x)
Text2.Text=Str(n)
End Sub.
A.27 3 B.3 27 C.20 3 D.3 21
23.[加试题]字符串中任意个连续的字符组在的子序列称为该字符串的子串,如字符串“123”的子串有“1”、“2”、“3”、“12”、“23”、“123”.输出字符串s的所有子串的VB程序段如下:
s=Text1.Text
List1.Clear
len 1=len(s)'①
For i=1 To len 1②
For j=1 To len 1﹣i ③
List1.AddItem Mid(s,j,i)'④
Next j
Next i
运行时发现未输出所有子串,则修改( )
A.①处所在行的语句为len l=dn(Text1.text)
B.②处所在行的语句为For i=1 to len 1+1
C.③处所在行的语句为For j=1 To len 1+1﹣i
D.④处所在行的语句为List1.AddlItem Mid (s,i,j)
24.在VB中,某对象的属性窗口如图所示:
如果要使该对象在窗体加载时不显示,可设置下列哪个属性( )
A.Caption B.Text C.Enabled D.Visible
25.某对象的一个事件过程代码如下:
Private Sub strlink_Click( )
Dim a As String,b As String
a=“100”
b=“200”
Text1.Text=a+b
End Sub
下列说法正确的是( )
A.该过程的过程名为“Sub”
B.Click是对象的方法
C.该事件过程执行后,在文本框Text1中显示100200
D.该事件过程执行后,在文本框Text1中显示300
26.某Visual Basic程序段如下:
Function f(n As Integer) As Long
If n=1 Then f=1 Else f=f(n﹣1)*n
End Function
Private Sub Command1_click( )
Dim n As Integer
n=Val(Tet1.Text)
Text2.Text=Str(f(n))
End Sub
该程序段运行后,在文框Text1中输入5之后,单击命令按钮Command1后文本框Text2中显示的是( )
A.20 B.30 C.60 D.120
27.有如下VB程序段:
Private Sub Command1_Click( )
Dim i As Integer,j As Integer,n As Integer,st as String
n=Val(Text1.Text)
For i=1To n
For j=1To i Step 2
st=st+“*“
Next j
List1.AddItem st
Next i
End Sub
该程序段运行时,在文本框Text1中输入5,则在列表框输出的内容为.
A. B. C. D.
28.一只白色的足球踢进球门,则白色、足球、踢、进球门对应的是( )
A.对象、属性、方法、事件 B.属性、对象、方法、事件
C.对象、属性、事件、方法 D.属性、对象、事件、方法
29.某VB程序如下:
Private Sub Command1_Click( )
a=10
b=20
c=a*a+b
Text1.Text=Str(c)
End Sub
运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,此时程序正执行的语句是( )
A.a=10 B.b=20
C.c=a*a+b D.Text1.Text=Str(c)
30.【加试题】在VB程序设计时,若需要在文本框Text1内判断用户是否按下了回车键,应编写程序代码的事件名称是( )
A.Text1_Change B.Text1_Click
C.Text1_KeyPress D.Text1_DblClick
31.VB 语句 List1.AddItem a(i)的作用是把数组 a 的数据添加得到列表框对象 List1 中.该语句中的“AddItem”是( )
A.属性名 B.方法 C.事件 D.属性
32.某VB程序窗体设计及代码窗口如图所示,运行程序单击命令按钮Command1后,弹出错误提示,提示的信息是( )
A.下标越界 B.要求对象
C.参数不可选 D.未找到方法或数据成员
33.在Visual Basic的代码窗口中,如图在输入“Form1.”后出现了一个下拉菜单,菜单中的“Circle”是Form1的( )
A.名称 B.事件 C.属性 D.方法
34.下列控件中既可输入文本,又可显示文本的是( )
A.Timer B.TextBox C.CommandBox D.Label
35.在Visual Basic中,要在标签对象Label3上显示文字“正确”,下列语句正确的是( )
A.Label3=“正确“ B.Lable3.Caption=“正确“
C.Label3.Caption=“正确“ D.Caption.Label3=“正确“
36.在VB中,某对象的属性窗口如图所示,该对象的名称是( )
A.Text1 B.Text C.TextBox D.TextGetData
37.某VB程序如图所示,运行这段程序,在文本框Text1中输入10,文本框Text2中输入的是( )
A.10 B.25 C.30 D.55
38.某VB程序设计界面如图所示,下列说法正确的是( )
①工程文件是“工程 1.vbp”②该工程只有1个窗体
③窗体文件是“forml.frm”④窗体名称是“整除问题”
A.①② B.②③ C.①③ D.②④
39.某VB程序的一个事件过程如下:
Private Sub Command1_Click( )
Dim a As Integer
a=Val(Text1.Text)
Text1.Text=Str(Sqr(a))
End Sub
程序运行时,单击命令按钮command1后弹出如图所示的错误信息提示.出现错误的原因是( )
A.变量a类型定义错误 B.界面缺少文本框Text1
C.Command1属性设置错误 D.Sqr函数计算时出错
40.用一个二维数组s(m,n)存储列车第n车厢m号座位售票状态,如果s(i,j)=0,则该位置车票未售出.下面程序段的功能是统计售票情况:
Dim s(1To 8,1To 60)As Integer
'以下是给数组s所有元素赋值的语句
'略
t=0
For i=1To 8
For j=1To 60
If s(i,j)=0Then
t=t+1
End If
Next j
Next i
则该程序段功能是统计( )
A.第8车厢已售出的座位数 B.第8车厢未售出的座位数
C.8个车厢已售出的座位数 D.8个车厢未售出的座位数
41.在窗体上画一个命令按钮Command1,然后编写如下代码:
Private Sub Command1_Click( )
Dim arr1(10),arr2(10)As Integer
n=3
For i=1To 5
arr1(n)=i
arr2(i)=2*arr1(n)+1
Next i
Print arr1(n),arr2(n);
End Sub
程序运行后,单击命令按钮,输出结果是( )
A.3 7 B.5 7 C.3 5 D.5 5
42.某Visual Basic工程的相关视图如图所示:
从图中信息可知,下列说法不正确的是( )
A.窗体中有一个按钮对象,名称为Command1
B.该程序中用到了Timer控件
C.当前代码窗口中显示的事件处理过程名为“Command1_Click”
D.该工程的窗体文件名“snow.vbp”
43.小庄编写了一个统计数组元素a(l)到a(n)中的“升序段”个数s(如图所示的数据序列,其“升序段”的个数等于3)的VB程序.部分程序如下:
k=0:s=0
For i=2To n
If a(i)>a(i﹣1)Then
Else
If k=1then
s=s+1
k=0
end if
End If
Next i
Textl.Text=Str(s)
方框中的正确语句是( )
A.k=k﹣1 B.k=1 C.k=﹣1 D.k=k+1
44.某VB程序的一个事件过程如下:
Private sub command1_click( )
Dim i as integer
Dim a(1to 8 ) as integer
List1.clear
For i=1 to 99
a(i)=i+1
Next i
For i=1to 8
list1.AddItem str(a(i))
Next i
End sub
程序运行时,单击命令按钮command1后,将会出现的提示信息是( )
A.溢出 B.下标越界
C.类型不匹配 D.无效的过程调用或参数
45.有以下VB程序段:
const n=10
For i=1 To n
a(i)=i
Next i
a(1)=0
For i=2 To Int(Sqr(n))
For j=i+1 to n
If a(j)<>0 And a(j)Mod i=0 Then a(j)=0
Next j
Next i
For i=1 To n
If a(i)<>0 Then c=c+1
Next i
运行上述程序段后,变量c的值是( )
A.2 B.3 C.4 D.5
46.在Visual Basic中,下列循环程序段输出“*”的个数最小的是( )
A.a=5:b=8
Do
Print“*“
a=a+1
Loop While a<b
B.a=5:b=8
Do
Print“*“
a=a+1
Loop Until a<b
C.a=5:b=8
Do Until a>b
Print“*“
b=b+1
Loop
D.a=5:b=8
Do Until a>b
Print“*“
a=a+1
Loop
47.能被对象所识别的动作是( )
A.事件 B.过程 C.属性 D.属性值
48.小金编写了一个统计随机数分布的VB程序,部分程序如图所示,在调试程序的时候出现如右图所示的错误信息:
n=0
m=0
For i=1To 100
If Rnd>0.5Then
n=n+1
Else
m=m+1
Next i
…
小金仔细分析该程序段后,发现其中缺少了( )
A.For B.End If C.Next D.If
49.根据如图程序输出界面,我们设计一种模拟抛硬币并统计概率的代码如下:
Private Sub Command1_Click( )
Randomize
n=Val(Text1.Text)
For I=1To n
A=Int(Rnd*2+1)
If A=1Then
List1.AddItem“正面“
c=c+1
Else
List1.AddItem“反面“
(1)___
Next i
(2)___
List1.AddItem“正面的概率是“+Str(m)+“%“
End Sub
应该在( )位置,添加什么语句( )
A.EndIf、m=c B.EndIf、m=c/n
C.Next i、m=c/n*100 D.EndIf、m=int(c/n*100)
50.程序运行界面如图所示.要求在文本框Text1中输入字符串,单击“翻转”按钮Command1后,在标签Text2中显示处理后的字符串.需要编写的VB事件处理过程的名称为( )
A.Command1_Click B.Text1_Click
C.Form_Click D.Label2_Click
51.Visual Basic程序设计环境中的部分控制如图所示要将某图片加载到窗体中,则必须使用的控件是( )
A.① B.② C.③ D.④
52.Visual Basic中,添加一个标签,在工具箱中要单击的控件是…( )
A. B.A C. D.
53.下列图标中,表示VB控件工具箱中的文本框控件的是( )
A. B. C. D.
54.有如下程序段:
Private Sub Command1_Click( )
Dim i As Integer,s As Integer,n As Integer
n=Val(Text1.Text)
s=0
For i=1To n
s=s+i\4
Next i
Label1.Caption=Str(s)
End Sub
运行该程序,在文本框Text1中输入8,单击命令按钮Command1,在标签Label1中显示的是( )
A.9.1 B.7.5 C.6 D.4
55.下面程序段的功能是在Text1中输入一个字符串,将字符一个个分离出来并输到List1中:
Dim s As String,i As Integer
s=Text1.Text
i=1
Do While i<=Len(s)
List1.AddItem _________
i=i+1
Loop
则程序划线处应填入是( )
A.Mid(s,1,i) B.Mid(1,s,i) C.Mid(i,s,1) D.Mid(s,i,1)
56.控制工具箱中的工具是( )
A.文件列表 B.单选按钮 C.图片框 D.标签
2017年12月20日越崎中学的高中信息组卷
参考答案与试题解析
一.选择题(共56小题)
1.在Visual Basic代码编辑窗口中,输入了“Text1.”后出现了如图所示的信息:其中的“Text”是Text1的( )
A.属性名 B.事件名 C.对象名 D.方法
【分析】在VB代码窗口,每当我们输入“对象名.”的时候,会弹出该对象的“属性”和“方法”,其中前面为绿色图标的为“方法”,前面为手形图标的为“属性”.
【解答】Text前面有手形图标,表示Text是Text1的属性.
故选:A.
2.在Visual Basic代码编辑窗口中,将窗体Form1的Caption属性值设置为“时钟”,正确的代码是( )
A.Form1.Caption”时钟” B.Form1.Caption(”时钟”)
C.Caption(时钟) D.Form1.Caption=”时钟”
【分析】VB语言的程序代码由语句、常数和声明部分组成,其中使用率最高的语句就是赋值语句,使用赋值语句可以在程序运行中改变对象的属性和变量的值.
【解答】VB对对象属性的修改方法:对象名.属性=属性值. 本题对象为Form1,属性为Caption,值设置为“时钟”,赋值语句为:Form1.Caption=”时钟”
故选:D.
3.在Visual Basic中,语句form1.Caption=“欢迎使用本系统!“中的“Caption“是( )
A.属性值 B.属性名 C.对象名 D.类名
【分析】本题要求掌握VB对象属性的设置.通过对VB对象窗口信息的观察,获取VB对象属性窗口中反映的对象名、属性名、属性值等信息.
【解答】Form1标题上显示的内容是由Caption(标题)属性来确定的,故答案为Caption.
4.下列程序设计语言中,哪一个不是面向对象的程序设计语言?( )
A.C B.C++ C.C# D.VC++
【分析】面向对象程序设计(Object Oriented Programming,OOP)的实质是选用一种面向对象程序设计语言(OOPL),采用对象、类及其相关概念所进行的程序设计.
【解答】常用的有面向对象的程序设计语言有:C++(很强大,结合面向过程和面向对象为一体);java、c#(这两个是纯面向对象的语言),VC++、VB等.
故选:A.
5.在Visual Basic中,有如下程序:
Private Sub Command1_Click( )
Dim a As Integer,b As Integer,c As Integer
Dim d As Integer,z As Integer
a=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)
d=max(a,b)
z=max(d,c)
Text4.Text=Str(d)
Text5.Text=Str(z)
End Sub
Function max(x As Integer,y As Integer) As Integer
If x>y Then max=x Else max=y
End Function
运行该程序,在文本框Text1、文本框Text2、文本框Text3中分别输入2、﹣5、6后,单击命令按钮Command1,文本框Text5中显示的是( )
A.﹣5 B.2 C.6 D.24
【分析】max函数为题目中自定义的函数,作用为比较两个数并返回较大的数;
【解答】分析题目代码得知a,b,c的值分别对应Text1,Text2,Text3所输入的值,根据题目输入a=2,b=﹣5,c=6;
d的值为a和b中较大的,因为 2>﹣5,故d=2;
z的值为d和c中较大的,因为 6>2,故z=6;
题目问的是Text5中所显示的内容,而Text5的值是通过Str(z)进行赋值,所以Text5.Text=6;
故选:C.
6.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息.发生“下标越界“错误时所执行的语句是( )
Private Sub Command1_Click( )
Dim a(0To 5)As Integer
Dim i As Integer'①
a(0)=1'②
For i=1To 5
a(i)=2*a(i﹣1)+1'③
Next i
Text1.Text=Str(a(i))'④
End Sub.
A.① B.② C.③ D.④
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
for循环结束时,循环变量=终值+步长.
【解答】程序中数组a的下标为0﹣5,而当for循环语句结束时i=6.所以当执行Text1.Text=Str(a(i))会提示“下标越界”的错误.
故选:D.
7.某VB程序功能如下:输入正整数n,单击命令按钮Command1后,则会生成一串有规律的数字序列,形式为“n n﹣1 n﹣2 …3 2 1 2 3 …n﹣2 n﹣1 n”.例如n=8时,生成的数字序列如图所示.代码如下:
Private Sub Command1_Click( )
Dim n As Integer,i As Integer,s As String
n=Val(Text1.Text)
s=““
For i=1To 2*n﹣1
If i<=n Then ① Else ②
Next i
Label1.Caption=s
End Sub
为实现以上功能,划线①②处应分别填写( )
A.①s=s & Str(n﹣i+1)②s=s & Str(i﹣n+1)
B.①s=Str(n﹣i+1)②s=Str(i﹣n+1)
C.①s=s & Str(i﹣n+1)②s=s & Str(n﹣i+1)
D.①s=Str(i﹣n+1)②s=Str(n﹣i+1)
【分析】(1)字符串连接符号的使用方法
(2)选择结构if…条件…then…else…end if,中条件的选择对then和else之间内容的影响.当条件值为逻辑值true时,程序执行then到else之间的语句,条件值为逻辑值false时,程序执行else到end if之间的语句,即条件反过来,then与else后面的语句要调换位置.
【解答】A:当i<=n时输出的数位于中点左侧n,n﹣1,n﹣2,…,1的内容,使用n﹣i+1可以得到这些数,当i>n 时,输出的是1右边的2,3,4…n的内容,使用i﹣n+1可以得到这些数,并且用s & str(x)可以将单个数字拼接起来成为一串数字.
B和D选项中的str(x)都只会输出单个数字,而不能将各个数字拼接显示.
C.把i<=n与i>n这两个关系表达式做条件时,then 后面的语句与else后的语句些反了.
故选:A.
8.如下VB程序段,在调试过程中出现了如图所示的信息,出现此错误信息的注释语句序号是( )
Private Sub Commandl_Click( )
Dim n As Long,s As Long
Dim i As Long
n=Val(Text.Caption)'①
s=0
For i=1 To n Step 2′②
s=s+i*i′③
Next i
Lab.Caption=Str(s)′④
End Sub.
A.① B.② C.③ D.④
【分析】未找到方法或数据成员集合、对象或用户定义类型不包含引用的成员.该错误发生的原因和解决方法如下:对象或成员名称拼写错误.
【解答】分析题中程序代码,n=Val(Text.Caption)处错误,该句用于将文本框中输入的数值型字符串转换为数值赋值给变量n,正确的语句应该是n=Val(Text.text).故选:A.
9.有如下Visual Basic程序段:
a=9
b=“Command Button“
c=Len(b)
If a>0And a<c Then
Label1.Caption=Mid(b,a,6)
Else
Label1.Caption=“error“
End If
该程序段运行后,在标签Label1上显示的是( )
A.error B.6 C.Button D.Command
【分析】f语句的一般格式:
If<条件表达式>Then
<语句块1>
Else
<语句块2>
End If
该语句作用是当条件表达式值为True时,程序执行语句块1,当条件表达式值为False时,程序执行语句块2.
Len(x):求字符串的字符长度.
Min(string,start[,length]):从文本string中的第start位开始取length长个字符.
【解答】根据程序知,“Command Button“,字符串长度为14,c=Len(b)=14,a=9,条件表达式a>0And a<c位True,执行语句Label1.Caption=Mid(b,a,6)即从字符串“Command Button“中第9个字符开始取6个字符,结果为“Button“.
故选:C.
10.小明使用 控件设计一个秒表,倒计时时间精确到0.01秒,如图,设置该控件的interval属性值为( )
A.0 B.1 C.10 D.100
【分析】计时器interval属性值是毫秒为单位,1秒=1000毫秒.
【解答】计时器interval属性是返回或设置两次调用Timer控件的Timer事件间隔的毫秒数,题中要求精确到0.01秒,所以设置该控件的interval属性值为10,故选C.
11.VB程序的工程文件名、窗体文件名以及生成的可执行文件名分别是( )
A.vb、.frm、.exe B.vbw、.exe、.frm
C.vbw、.frm、.exe D.vbp、.frm、.exe
【分析】本题VB程序文件的保存,回忆一下工程文件名和窗体文件名之间的区别和联系.
【解答】在“文件”菜单中选“保存工程”,该应用程序的窗体和工程分别存储到文件中,其对应的文件扩展名分别是“.frm”和“.vbp”.也可以选“文件”菜单中的“生成工程xxx.exe”命令,生成可执行文件,该文件可以在Windows环境中直接运行.所以答案是D
12.有如下程序段:
a(1)=False
For i=2To 20
a(i)=True
Next i
For i=2To 20
If a(i)=True Then
For j=2To 20\i
a(i*j)=False
Next j
End If
Next i
t=0
For i=1To 20
If a(i)=True Then
t=t+1
End If
Next i
经过该程序段运行后,变量t的值为( )
A.5 B.6 C.7 D.8
【分析】①VB中For循环语法:
For 循环变量=初值 To 终值 Step 步长
程序段
Next 循环变量
(当循环变量没超出终值时,执行程序段)
②If逻辑判断语法:
If (条件) Then‘满足条件时
Do1‘执行程序
Else‘不满足条件时
Do2‘执行程序
END IF‘结束If
【解答】本题的解法较为复杂,主要是根据数组a(i)的值来执行,过程如下:
①首先,初始设置,a(1)=False,a(2﹣20)=True;
②从For i=2 To 20,如果a(i)=True,执行For j=2 To 20/i:a(i*j)=False
③所有循环结束后计算a(i)=True的个数
具体执行过程:
i=2时,a(2)=True,执行For j=2 To 20/i a(i*j)=False,执行后的结果为:a(4)=a(6)=a(8)=a(10)=a(12)=a(14)=a(16)=a(18)=False;
i=3时,a(3)=True,执行For j=2 To 20/i a(i*j)=False,执行后的结果为:a(6)=a(9)=a(12)=a(15)=a(18)=False;
i=4时,a(4)=False;
i=5时,a(5)=True,…执行后的结果为:a(10)=a(15)=a(18)=False;
i=6时,a(6)=False;
i=7时,a(7)=True,…执行后的结果为:a(14)=False;
i=8﹣10时,a(i)=False;
i=11时,a(11)=True,但当j=2开始a(i*j)=a(22)已经超出数组长度,故不执行;
i=13、17、19同理;
最终结果为False 的为:i=1、4、6、8、9、10、12、14、15、16、18、20;
结果为True的为:i=2、3、5、7、11、13、17、19(共8个);
故选:D.
13.下列 VB 程序段中:
Dim i as Integer,max as Integer Dim a(1to 10)as Integer
‘代码略,随机产生 10 个不重复的数存于数组 a 的 10 个元素 a(1)~a(10)中 max=a(1)
For i=2to 10
If a(i)>a(max) then max=i
Next i
变量 max 用于存储( )
A.a(2)~a(10)的最大值
B.a(1)~a(10)的最大值
C.a(2)~a(10)的最大值在数组中的下标值
D.a(1)~a(10)的最大值在数组中的下标值
【分析】VB中常量的定义用const,变量定义使用Dim.常量定义的语法格式为:const 常量名=表达式[,常量名=表达式];在VB中,变量定义的语法格式为:Dim 变量名 As 数据类型.
【解答】分析程序,max首先存的是a(1)的值,然后比较a(i)>a(max),满足条件的话把i赋值给max,所以max存的是最大值的下标,故选:D.
14.某Visual Basic程度如下:
Private Sub Command1_Click( )
Dim num(1 To 100)As Integer
Dim i As Integer
For i=1 To 100'①
num(i)=i'②
Next i'③
List1.AddItem Str(num(i))'④
End Sub
运行程序,单击命令按钮Command1后,出现的错误提示及引起错误的语句分别为 ( )
A.类型不匹配 ① B.溢出 ②
C.子程序或函数未定义 ③ D.下标越界 ④
【分析】通过观察可以看出本程序出现了For 语句和数组,仔细观察For语句循环几次,清楚数组的定义,即可解答.
For语句一般格式:
For 循环变量=初值 To 终值【Step 步长】
【语句块】
【Exit For】
【语句块】
Next【循环变量】
在For语句中要判断循环变量是否超出终值,如果未超出,则执行语句块,超出,则终止循环.
【解答】题中,For语句循环变量i是从1到100,当i=100时,循环体最后一次执行,此时,Next i后,i的值为101,所以执行语句④时,超出语句中数组num(i)的下标,程序会提示“下标越界”.故选:D.
15.【加试题】有如下VB程序段:
For i=5To 4Step﹣1
k=i
For j=6﹣i To 1Step﹣1
If a(j)<a(k) Then k=j
Next j
If i<>k Then
t=a(i):a(i)=a(k):a(k)=t
End If
Next i
数组元素a(1)到a(5)的值依次为“41,66,70,83,31”,经过该程序段“加工”后,数组元素a(1)到a(5)的值依次为( )
A.31,41,66,83,70 B.83,70,66,41,31
C.83,66,70,41,31 D.31,41,66,70,83
【分析】选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完.选择排序是不稳定的排序方法.对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一下值,这样就找到整个数组中最小的数了.然后找到数组中第二小的数,让他跟数组中第二个元素交换一下值,以此类推.
【解答】分析程序代码可知该段程序运用选择排序的算法思想,由外循环语句For i=5To 4Step﹣1可知,该程序段只对数组的后两位元素进行选择排序交换,当i=5时,内循环只循环一次,经判断a(1)=41,a(5)=31,a(1)>a(5)所以不交换;当i=4时,内循环j=2 to 1循环两次,即判断a(1)、a(2)中较小值与a(4)交换,a(1)<a(2),所以将41与83交换其余位置不变,即得83,66,70,41,31.
故选:C.
16.一个Visual Basic工程的部分设计界面如图所示,下列选项中正确的是( )
A.窗体的Caption属性值是cool
B.当前选中的对象类型是图象Image
C.工程文件是cool.vbp
D.当前选中对象的名称是Command1
【分析】Visual Basic是一种面向对象的编程语言,他继承了Basic语言简单易懂的特性,采用了面向对象、事件驱动的编程机制,提供了所见即所得的可视化程序设计方法.在使用VB的时候,我们会看到很多浮动窗口,如工具栏、属性窗口等,通过这些窗可以进行一系列的操作.
【解答】A:窗体的Caption属性值为Form1.
B:对象类型是按钮CommandButtom.
C:工程窗口内可以看到工程文件名和窗口文件名.
D:对象名称是Image.
故选:C.
17.有如下VB代码:
Dim a As Integer,b As Integer
a=Val(Text1.Text)
If a Mod 2=0Then
b=a+1
ElseIf a Mod 3=0Then
b=a+2
ElseIf a Mod 5=0Then
b=a+4
Else
b=a
End If
Label1.Caption=Str(b)
运行该程序,在文本框Text1中输入25,单击命令按钮Command1,在标签Label1中显示的是( )
A.50 B.29 C.51 D.30
【分析】通过观察可以看出本程序出现了If…Then..ElseIf语句,知道If语句的判断情况,即可解答.
If…Then…ElseIf语句格式:
If<条件表达式1>Then
<语句块1>
ElseIf<条件表达式2>Then
<语句块2>
…
【Else
语句块n+1】
End If
该语句作用是VB测试条件的顺序为当条件表达式1、条件表达式2…每当遇到某个表达式的值为True时,就执行该条件下的语句块.
【解答】当文本框1中输入25时,变量a的值为25,此时If语句的判断条件a Mod 2=0的值为False,故执行ElseIf语句的判断条件 a Mod 3=0,其值也为False,故执行第二个ElseIf语句的判断条件 a Mod 5=0,其值为True,所以执行其后Then语句b=a+4=25+4=29,然后执行语句Label1.Caption=Str(b),即在标签Label1中显示变量b的值29.故选:B.
18.有如下VB程序段:
该程序段运行后,标签Label1中显示的内容是( )
A.0123 B.4567 C.01234567 D.04152637
【分析】选择排序:第一次从下标为0的开始下标为0的这个数与后面的n﹣1个进行比较;找出最小或者最大的放在下标为0的这个位置;第二次从下标为1的开始比较;查询剩下的最大或者最小值;放在 下标为1的位置;以此类推;直到排序完成.
【解答】本题是选择排序的变形,步长为2,数组ch元素的值依次是:2,6,1,7,0,5,3,4
I=1时,从ch(1)、ch(3)、ch(5)、ch(7)找最小值和ch(1)交换;
I=2时,从ch(2)、ch(4)、ch(6)、ch(8)找最小值和ch(2)交换;
I=3时,从ch(3)、ch(5)、ch(7)找最小值和ch(3)交换…最终数组ch的元素依次为:0,41,5,2,6,3,7.
故选:D.
19.【加试题】某VB程序段如下:
For i=1 To 6
j=7
Do While j>1
If a(j)>a(j﹣1)Then
a(j)=a(j)+a(j﹣1):a(j﹣1)=a(j)﹣a(j﹣1):a(j)=a(j)﹣a(j﹣1)
End If
j=j﹣1
Loop
Next i
For i=3 To 6
s=s+a(i)
Next i
Label1.Caption=Str(s)
已知数组元素a(1)到a(7)的值依次为“8,2,3,7,10,6,5”,则执行该程序段后,标签Label1中显示的是( )
A.21 B.26 C.41 D.18
【分析】冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.
【解答】j=7,j>1,a(j)<a(j﹣1),j=6;
j>1,a(j)<a(j﹣1),j=5;
j>1,a(j)>a(j﹣1),a(j)=a(j)+a(j﹣1)=17:a(j﹣1)=a(j)﹣a(j﹣1)=10:a(j)=a(j)﹣a(j﹣1)=7,数组变为:8,2,3,10,7,6,5,j=4;
j=4,3,2时,a(j)>a(j﹣1),交换,数组变为:10,8,2,3,7,6,5;
到此,我们直到该程序是对数组进行降序排序的,所以排序结束的数组为:10,8,7,6,5,3,2;
所以s的值为a(3)到a(6)相加,故为:7+6+5+3=21,故选:A.
20.【加试题】某个进行素数判断的VB程序段如下:
Private Sub Command1_Click
Dim x As Integer
x=Val(Text1.Text)
Label1.Caption=Str(x) & prime(x,2)
End Sub
Function prime(n As Integer,m As Integer) As String
If n=m Then
prime=“是素数“
ElseIf n<2 Or n Mod m=0 Then
prime=“不是素数“
Else
prime=prime(n,m+1)
End If
End Function
在文本框Text1中输入的值是123,并执行程序后,自定义函数prime( )被执行的次数是( )
A.1次 B.2次 C.122次 D.123次
【分析】If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】分析程序,prime是递归函数,x为123时,123是质数,除了1和它本身没有其他公约数,所以需要执行2到123次,共122次prime( )函数,故选:C.
21.有如下程序段:
Dim i As Integer,Sum As Integer
Dim a(1To 11)As Integer
Sum=6
a(11)=49
For i=10To 1Step﹣1
a(i)=a(i+1)﹣1
If a(i) Mod 3=0Then Sum=Sum+a(i)
Next i
Text1.Text=Str(Sum)
该程序段运行后,文本框text1中显示的内容是( )
A.174 B.180 C.36 D.42
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】文本框中显示的是sum的值,通过for循环语句求取a(i)的值为上一个数组元素减一,a(11)=48,所以根据If a(i) Mod 3=0Then Sum=Sum+a(i)可知,Sum的值为48到39十个数中能被3整除的数的和再加上6,所以Sum=48+45+42+39+6=180.
故选:B.
22.单击窗体后,文本框Text1、Text2中显示的内容是( )
Private Sub Form_Click( )
Dim x as Integer,n as Integer
x=1
n=0
Do While x<20
n=n+1
x=x*3
Loop
Text1.Text=Str(x)
Text2.Text=Str(n)
End Sub.
A.27 3 B.3 27 C.20 3 D.3 21
【分析】do﹣while循环先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环.因此,do﹣while循环至少要执行一次循环语句.
【解答】分析程序,x=1,n=0,
x<20,n=n+1=1,x=x*3=3;
x<20,n=n+1=2,x=x*3=9;
x<20,n=n+1=3,x=x*3=27;
x>20,文本框Text1、Text2中显示的内容是27和3,故选:A.
23.[加试题]字符串中任意个连续的字符组在的子序列称为该字符串的子串,如字符串“123”的子串有“1”、“2”、“3”、“12”、“23”、“123”.输出字符串s的所有子串的VB程序段如下:
s=Text1.Text
List1.Clear
len 1=len(s)'①
For i=1 To len 1②
For j=1 To len 1﹣i ③
List1.AddItem Mid(s,j,i)'④
Next j
Next i
运行时发现未输出所有子串,则修改( )
A.①处所在行的语句为len l=dn(Text1.text)
B.②处所在行的语句为For i=1 to len 1+1
C.③处所在行的语句为For j=1 To len 1+1﹣i
D.④处所在行的语句为List1.AddlItem Mid (s,i,j)
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,外层循环的最大值为s的长度,变量为i,所以内层循环变量j应该比i小1,因而③处应该为:For j=1 To len 1+1﹣i,故选:C.
24.在VB中,某对象的属性窗口如图所示:
如果要使该对象在窗体加载时不显示,可设置下列哪个属性( )
A.Caption B.Text C.Enabled D.Visible
【分析】文本框的Visible属性:设置对象是否可见.
【解答】VB中,文本框的Visible属性:设置对象是否可见.当其值为True时表示可见,当其值为False时表示不可见,故选D.
25.某对象的一个事件过程代码如下:
Private Sub strlink_Click( )
Dim a As String,b As String
a=“100”
b=“200”
Text1.Text=a+b
End Sub
下列说法正确的是( )
A.该过程的过程名为“Sub”
B.Click是对象的方法
C.该事件过程执行后,在文本框Text1中显示100200
D.该事件过程执行后,在文本框Text1中显示300
【分析】事件过程的一般格式为:
Private Sub 对象名_事件名( )
处理事件的程序代码
End Sub
【解答】由事件过程的格式知,本过程的过程名为 strlink_Click,故A错误;Click是对象strlink的事件,故B错误,由字符串运算符知,文本框1中显示内容为100200,故C正确D错误.故选C.
26.某Visual Basic程序段如下:
Function f(n As Integer) As Long
If n=1 Then f=1 Else f=f(n﹣1)*n
End Function
Private Sub Command1_click( )
Dim n As Integer
n=Val(Tet1.Text)
Text2.Text=Str(f(n))
End Sub
该程序段运行后,在文框Text1中输入5之后,单击命令按钮Command1后文本框Text2中显示的是( )
A.20 B.30 C.60 D.120
【分析】递归算法是把问题转化为规模缩小了的同类问题的子问题.然后递归调用函数(或过程)来表示问题的解.一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数).
【解答】在文框Text1中输入5之后,n=5,f(n)=f(4)*5=f(3)*4*5=f(2)*3*4*5═f(1)*2*3*4*5=120,所以Text2上显示120,故选:D.
27.有如下VB程序段:
Private Sub Command1_Click( )
Dim i As Integer,j As Integer,n As Integer,st as String
n=Val(Text1.Text)
For i=1To n
For j=1To i Step 2
st=st+“*“
Next j
List1.AddItem st
Next i
End Sub
该程序段运行时,在文本框Text1中输入5,则在列表框输出的内容为.
A. B. C. D.
【分析】(1)VB中循环语句嵌套的使用方法,在循环语句中套用另一个循环语句,称为循环的嵌套,例如
For a=1 To 10
For a=1 To 20
循环体
Next b
Next a
注意:①外循环必须完全包含内循环,不能交叉;②内循环变量与外循环变量不能同名
(2)程序语句的执行过程的理解,程序的运行结果.
【解答】程序运行过程为:n=5;
外循环i=1,内循环j=1,st=*,j=3,内循环结束,list1里列出“*”(即1个*);
i=2,进入第2次外循环,内循环j=1,st=**,j=3,内循环结束,list1里第2行列出“**”(即2个*);
i=3,进入第3次外循环,内循环j=1,st=***,j=3,st=****,j=5,内循环结束,list1第3行里列出“****”(即4个*);
i=4,进入第4次外循环,内循环j=1,st=*****,j=3,st=******,j=5,内循环结束,list1第4行里列出“******”,(即6个*)
i=5,进入第5次外循环,内循环j=1,st=******,j=3,st=********,j=5,st=*********,j=7,内循环结束,list1第5行里列出“*********”(即9个*),
i=6,外循环结束,程序结束
故选:B.
28.一只白色的足球踢进球门,则白色、足球、踢、进球门对应的是( )
A.对象、属性、方法、事件 B.属性、对象、方法、事件
C.对象、属性、事件、方法 D.属性、对象、事件、方法
【分析】对象即为客观存在的事物;属性用于描述对象的状态,如颜色;方法是对象能产生的行为,如走路;事件强调一个过程,可以是对象产生某个行为的过程,能够作为条件触发某操作,注意和方法的区分,.
【解答】题中球是对象,白色是属性,踢是方法,球被踢进去是事件,故选:B.
29.某VB程序如下:
Private Sub Command1_Click( )
a=10
b=20
c=a*a+b
Text1.Text=Str(c)
End Sub
运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,此时程序正执行的语句是( )
A.a=10 B.b=20
C.c=a*a+b D.Text1.Text=Str(c)
【分析】VB中,错误代码提示“424”表示相应的窗口中缺少程序中必要的控件.
【解答】图中显示的错误提示:要求对象,即在VB界面上缺少程序代码中出现的对象.由程序分析得知,代码中只出现了Text1一个对象,可能窗体上缺少文本框Text1导致出错,此时程序应正执行语句Text1.Text=Str(c).
故选:D.
30.【加试题】在VB程序设计时,若需要在文本框Text1内判断用户是否按下了回车键,应编写程序代码的事件名称是( )
A.Text1_Change B.Text1_Click
C.Text1_KeyPress D.Text1_DblClick
【分析】通过观察可以看出本题中出现了VB的事件定义,我们了解了VB中事件的含义、事件过程的含义和常见一些事件,即可解答此题.
事件是由VB系统预先设置好的、能被对象识别的动作.常见的事件如鼠标单击(Click)或者双击(Dblclick)、窗体装载(Load)、按键(Keypress)、鼠标移动(MouseMove)等.
对象的事件是固定的、用户不能创建新的事件.不同对象能识别的事件也不一定相同.
事件过程是用来完成事件发生时所要执行的操作,事件过程命名格式:对象名_事件名.
【解答】从题中可以看出,编写的程序代码为文本框Txet1的按键事件的事件过程,VB中事件过程命名格式为:对象名_事件名,由题可知,本题代码的对象为Text1,事件为按键(Keypress).故程序代码应为:Text1_KeyPress.
Text1_Change:表示当Text1内容发生改变是触发事件;Text1_Click:表示当鼠标单击是触发事件;Text1_DblClick:表示当鼠标双击击是触发事件.
故选:C.
31.VB 语句 List1.AddItem a(i)的作用是把数组 a 的数据添加得到列表框对象 List1 中.该语句中的“AddItem”是( )
A.属性名 B.方法 C.事件 D.属性
【分析】VB语言中对象的方法调用一般为 A.B(C),其中A为对象名,B为方法,C为参数.
【解答】因为AddItem传入了参数a(i),所以AddItem为方法.
故选:B.
32.某VB程序窗体设计及代码窗口如图所示,运行程序单击命令按钮Command1后,弹出错误提示,提示的信息是( )
A.下标越界 B.要求对象
C.参数不可选 D.未找到方法或数据成员
【分析】窗体是计算机应用程序与人进行信息交互的图形界面.VB窗体是Visual Basic编译环境提供的用于开发桌面程序的通用窗体类,其中包含和设计好的属性和方法,开发人员可以直接使用,或基于窗体类(class Form)定制自己的程序界面,无需从底层去编写每一个细节,大大简化了开发人员的工作量和复杂度,使程序员将更多的精力投入到程序的业务功能的设计和实现.
【解答】分析程序,数组的下表为1到5,当i递减到1时,sz(i﹣1)=s(0),所以数组下标越界.故选:A.
33.在Visual Basic的代码窗口中,如图在输入“Form1.”后出现了一个下拉菜单,菜单中的“Circle”是Form1的( )
A.名称 B.事件 C.属性 D.方法
【分析】Visual Basic是一种面向对象的编程语言,他继承了Basic语言简单易懂的特性,采用了面向对象、事件驱动的编程机制,提供了所见即所得的可视化程序设计方法.VB中包含三个特殊的定义:属性,方法和事件.
【解答】事件是指对象对于外部动作的响应,例如:我们在窗体上按了一下鼠标左键,这样就发生了一个窗体的“Click”(即单击)事件,并执行与其对应的事件过程.这个的事件过程名称为:Form1_Click;
方法是对象在程序中执行的一种可执行的操作.circle方法就是一个执行“画圆或者椭圆”操作的方法,如Circle (1200,1000),750意思是以坐标(1200,1000)为圆心,750为半径画圆.属性是对象的某一种特征,如Form1的名称、大小等.(本题中也可以看图中circle前面的绿色标志,这个标志表示这是一个方法)
故选:D.
34.下列控件中既可输入文本,又可显示文本的是( )
A.Timer B.TextBox C.CommandBox D.Label
【分析】VB编程过程中,通过引发Timer事件,Timer控件可以有规律地间隔一段时间执行一次代码.
【解答】A.Timer控件既不可以输入也不能显示文本;
B.TextBox组件(文本框组件)是一种常用的,也是比较容易掌握的组件.应用程序主要使用它来接收使用者于输入文字信息;
C.没有CommandBox,只有ComboBox控件;ComboBox 是组合框,也叫下拉框CommandButton 则是命令按钮;
D.Label控件用于标识窗体上的对象(例如,描述单击某控件时该控件所进行的操作)或显示相应信息以响应应用程序中的运行时事件或进程.例如,可以使用标签向文本框、列表框和组合框等添加描述性标题,但程序运行中不接受文本输入.
故选:B.
35.在Visual Basic中,要在标签对象Label3上显示文字“正确”,下列语句正确的是( )
A.Label3=“正确“ B.Lable3.Caption=“正确“
C.Label3.Caption=“正确“ D.Caption.Label3=“正确“
【分析】VB的label控件用来显示文本,但用户不能编辑这些控件.对label控件赋值的方法是:对象名.属性名=属性值.Caption属性是按钮、标签、窗体标题等显示的文本.
【解答】控件对象是Label3,标签的文字属性可以用Caption表示,因此正确的语句是:Label3.Caption=“正确“.
故选:C.
36.在VB中,某对象的属性窗口如图所示,该对象的名称是( )
A.Text1 B.Text C.TextBox D.TextGetData
【分析】在 Visual Basic 操作界面中,TextBox(文本框)控件主要用来显示文本或用来输入文本,如 Windows 登陆时的“口令”窗口,或者记事本的整个编辑区域.
【解答】从图中可以看出,该对象名称为TextGetData.故选:D.
37.某VB程序如图所示,运行这段程序,在文本框Text1中输入10,文本框Text2中输入的是( )
A.10 B.25 C.30 D.55
【分析】DO WHILE…LOOP 用在循环时判断条件,条件满足执行,不满足就退出.
【解答】分析程序,n=10,i=1,1<=10,执行循环语句,s=s+i=1,i=i+2=3;
3<=10,执行循环语句,s=s+i=4,i=i+2=5;
5<=10,执行循环语句,s=s+i=9,i=i+2=7;
7<=10,执行循环语句,s=s+i=16,i=i+2=9;
9<=10,执行循环语句,s=s+i=25,i=i+2=11;
11>10,程序结束,Text2输出的是s的值,故选:B.
38.某VB程序设计界面如图所示,下列说法正确的是( )
①工程文件是“工程 1.vbp”②该工程只有1个窗体
③窗体文件是“forml.frm”④窗体名称是“整除问题”
A.①② B.②③ C.①③ D.②④
【分析】VB为可视化、面向对象、采用事件驱动的程序设计语言,我们可以方便地设计程序的界面,然后编写代码,解决问题.
【解答】分析题中程序界面可知:工程文件是“工程 1.vbp”;该工程只有1个窗体;窗体文件是“整除问题.frm”④窗体名称是“整除问题”.
故选:A.
39.某VB程序的一个事件过程如下:
Private Sub Command1_Click( )
Dim a As Integer
a=Val(Text1.Text)
Text1.Text=Str(Sqr(a))
End Sub
程序运行时,单击命令按钮command1后弹出如图所示的错误信息提示.出现错误的原因是( )
A.变量a类型定义错误 B.界面缺少文本框Text1
C.Command1属性设置错误 D.Sqr函数计算时出错
【分析】过程调用或参数无效代表调用的某些部分无法完成.
【解答】A:此题无法判断a类型是否错误
B:缺少文本框Text1的报错信息不是实时错误'5'
C:Command1属性设置和这个错误无关
D:Sqr函数调用了变量a,a的值是由Text1.Text获取,根据报错信息得可能是调用a时a的值为空,所以错误出现在Sqr函数计算时.
故选:D.
40.用一个二维数组s(m,n)存储列车第n车厢m号座位售票状态,如果s(i,j)=0,则该位置车票未售出.下面程序段的功能是统计售票情况:
Dim s(1To 8,1To 60)As Integer
'以下是给数组s所有元素赋值的语句
'略
t=0
For i=1To 8
For j=1To 60
If s(i,j)=0Then
t=t+1
End If
Next j
Next i
则该程序段功能是统计( )
A.第8车厢已售出的座位数 B.第8车厢未售出的座位数
C.8个车厢已售出的座位数 D.8个车厢未售出的座位数
【分析】循环嵌套就是在循环体中又有循环的结构,循环体外的循环称为外循环,循环体内的循环称为内循环.如果程序需要,还可以在内循环里再嵌入另一个循环,从而构成三重循环,甚至多重循环.循环嵌套应用中的常见错误及其注意事项:1.内循环与外循环的循环变量名称不能相同.2.外循环必须完全包含内循环,不可以出现交叉现象.
【解答】分析代码可知:统计算法采用两层For循环嵌套,对数组s(m,n)进行遍历,通过判断数组元素值为0的(车票未售出)将变量t加1.最终统计的是8个车厢未售出的座位数.
故选:D.
41.在窗体上画一个命令按钮Command1,然后编写如下代码:
Private Sub Command1_Click( )
Dim arr1(10),arr2(10)As Integer
n=3
For i=1To 5
arr1(n)=i
arr2(i)=2*arr1(n)+1
Next i
Print arr1(n),arr2(n);
End Sub
程序运行后,单击命令按钮,输出结果是( )
A.3 7 B.5 7 C.3 5 D.5 5
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析代码可知,变量n=3在循环过程中不变化,即最终输出arr1(3),arr2(3).由循环语句可知,循环内i终值取5,所以arr1(3)=i=5,arr2(3)=2*arr1(3)+1=2*3+1=7.
故答案为:B.
42.某Visual Basic工程的相关视图如图所示:
从图中信息可知,下列说法不正确的是( )
A.窗体中有一个按钮对象,名称为Command1
B.该程序中用到了Timer控件
C.当前代码窗口中显示的事件处理过程名为“Command1_Click”
D.该工程的窗体文件名“snow.vbp”
【分析】一个VB工程有许多类型的文件.工程文件(*.vbp)、窗体文件(*.frm)、窗体的二进制数据文件(*.frx)、标准模块文件(*.bas)、类模块文件(*.cls)、资源文件(*.res)、ActiveX控件的文件(*.ocx),当然可能会有其他的文件,比如vbw vbg等.
【解答】由图中信息可知,Command1_Click是一个按钮单击事件,并且在这个事件中用到了Timer.Enabled=True,说明此程序用到了Timer控件,此外,VB工程的窗体文件为:.frm.
故选:D.
43.小庄编写了一个统计数组元素a(l)到a(n)中的“升序段”个数s(如图所示的数据序列,其“升序段”的个数等于3)的VB程序.部分程序如下:
k=0:s=0
For i=2To n
If a(i)>a(i﹣1)Then
Else
If k=1then
s=s+1
k=0
end if
End If
Next i
Textl.Text=Str(s)
方框中的正确语句是( )
A.k=k﹣1 B.k=1 C.k=﹣1 D.k=k+1
【分析】程序中利用for循环语句统计“升序段”个数,循环中利用if语句判断哪一段数组元素为“升学段”.
For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
if语句的一般格式为:
If 条件表达式 then
语句块1
Else
语句块2
End if
【解答】k用来标记“升序段”,s用来统计“升序段”个数.
If a(i)>a(i﹣1)条件成立表示段”并用k=1标记,当条件不成立时,执行k=0,s=s+1说明这段数组元素不是“升序段”并将前面的升序段个数加1.
故选:B.
44.某VB程序的一个事件过程如下:
Private sub command1_click( )
Dim i as integer
Dim a(1to 8 ) as integer
List1.clear
For i=1 to 99
a(i)=i+1
Next i
For i=1to 8
list1.AddItem str(a(i))
Next i
End sub
程序运行时,单击命令按钮command1后,将会出现的提示信息是( )
A.溢出 B.下标越界
C.类型不匹配 D.无效的过程调用或参数
【分析】题目考查的是数组该知识点,数组:存放具有相同性质的一组数据,也就是数组中的数据必须是同一个类型和性质.
【解答】从Dim a(1to 8 ) as integer这条语句可以看出,数组元素的下标从1到8,但是i的值是从1 到99的,也就是说i=9的时候,a(i)就下标越界了.故选:B.
45.有以下VB程序段:
const n=10
For i=1 To n
a(i)=i
Next i
a(1)=0
For i=2 To Int(Sqr(n))
For j=i+1 to n
If a(j)<>0 And a(j)Mod i=0 Then a(j)=0
Next j
Next i
For i=1 To n
If a(i)<>0 Then c=c+1
Next i
运行上述程序段后,变量c的值是( )
A.2 B.3 C.4 D.5
【分析】质数(素数)定义为在大于1的自然数中,除了1和它本身以外不再有其他因数.If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】分析程序,本题主要筛选1﹣10之前的素数,数组的初始值为:1,2,3,4,5,6,7,8,9,10;
I=2,j=3﹣﹣》10内层循环后数组a的值为:0,2,3,0,5,0,7,0,9,0;
I=3,j=4﹣﹣》10内层循环后数组a的值为:0,2,3,0,5,0,7,0,0,0,最后统计数组元素不为哦的个数c为4,故选:C.
46.在Visual Basic中,下列循环程序段输出“*”的个数最小的是( )
A.a=5:b=8
Do
Print“*“
a=a+1
Loop While a<b
B.a=5:b=8
Do
Print“*“
a=a+1
Loop Until a<b
C.a=5:b=8
Do Until a>b
Print“*“
b=b+1
Loop
D.a=5:b=8
Do Until a>b
Print“*“
a=a+1
Loop
【分析】VB中Do While和Do…Until语句区别Do While(a=6)'当a=6的时候,执行…Do Until(a=6)‘执行…直到a=6.
【解答】选项A,当a=5、6、7的时候会Print“*“,所以是打印三个*;选项B,Print一个“*“后,就满足了 a<b,所以只打印了一个*;选项C,是一个死循环,因为a=5的值不变,b=b+1一直在递增,所以a>b永远满足不了,所以打印无限个*;选项D,当a=5、6、7、8的时候会Print“*“,直到a=9的时候停止循环,所以打印4个*.
故选:B.
47.能被对象所识别的动作是( )
A.事件 B.过程 C.属性 D.属性值
【分析】事件(Event)是由VB系统预先设置好的、能够被对象识别的动作.如鼠标单击(Click)或者双击(DblClick)就是最常见的事件.对象的事件是固定的,用户不能创建新的事件.
【解答】事件(Event)是由VB系统预先设置好的、能够被对象识别的动作.过程是当事件被用户触发或被系统触发时,对象就会响应某个事件后所执行的程序代码.属性是每个对象的特征.不同的对象有不同的属性,每一个对象属性一般都有一组默认值即属性值.因此,根据题意选A.
故选:A.
48.小金编写了一个统计随机数分布的VB程序,部分程序如图所示,在调试程序的时候出现如右图所示的错误信息:
n=0
m=0
For i=1To 100
If Rnd>0.5Then
n=n+1
Else
m=m+1
Next i
…
小金仔细分析该程序段后,发现其中缺少了( )
A.For B.End If C.Next D.If
【分析】一些编程语言中循环结构是三种基本结构之一,而循环结构肯定要用到循环语句,for﹣next语句就是最常使用的语句之一,也是最典型的语句.
【解答】题中的程序段里使用了for循环,与if语句要有对应的end if 结束,编译时的错误提示也是这个意思.
故选:B.
49.根据如图程序输出界面,我们设计一种模拟抛硬币并统计概率的代码如下:
Private Sub Command1_Click( )
Randomize
n=Val(Text1.Text)
For I=1To n
A=Int(Rnd*2+1)
If A=1Then
List1.AddItem“正面“
c=c+1
Else
List1.AddItem“反面“
(1)___
Next i
(2)___
List1.AddItem“正面的概率是“+Str(m)+“%“
End Sub
应该在( )位置,添加什么语句( )
A.EndIf、m=c B.EndIf、m=c/n
C.Next i、m=c/n*100 D.EndIf、m=int(c/n*100)
【分析】程序中利用for循环语句和if条件语句生成随机数并统计某随机数的个数.
For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
If语句的一般格式为:
If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
EndIf
【解答】(1)List1.AddItem“反面“执行后要结束if,即EndIf.
(2)此处计算的是“正面的概率”,因输出时时百分比格式且保留为整数,所以m=int(c/n*100).
故选:D.
50.程序运行界面如图所示.要求在文本框Text1中输入字符串,单击“翻转”按钮Command1后,在标签Text2中显示处理后的字符串.需要编写的VB事件处理过程的名称为( )
A.Command1_Click B.Text1_Click
C.Form_Click D.Label2_Click
【分析】VB中控件的事件名称格式为:控件名_事件名.
【解答】题中按钮的对象名为Command1,事件名称为:Click(单击事件名称).
故选:A.
51.Visual Basic程序设计环境中的部分控制如图所示要将某图片加载到窗体中,则必须使用的控件是( )
A.① B.② C.③ D.④
【分析】①是标签控件②复选框控件③是PictureBox控件 ④是按钮控件
【解答】将某图片加载到窗体中,则必须使用的控件是PictureBox控件,故选:C.
52.Visual Basic中,添加一个标签,在工具箱中要单击的控件是…( )
A. B.A C. D.
【分析】VB工具箱内工具从左至右、从上到下依次为:
1)、指针2)图片框(PictureBox)3)、标签(Label)4)、文本框(TextBox)5)、框架(Frame)6)、命令按钮(CommandButton)7)、复选框(CheckBox)8)、单选按钮(OptionButton)9)、下拉框(ComboBox)10)、列表框(ListBox)11)、水平滚动条(HScrollBar)12)、垂直流动条(VScrollBar)13)、时钟(Timer)14)、驱动器列表框(DriveListBox)15)、目录列表框(DirListBox)16)、文件列表框(FileListBox)17)、形状(Shape)18)、线条(Line)19)、图象框(Image)21)、对像(OLE)
【解答】根据题意,添加标签控件,应单击工具箱中“A”的按钮.故选:B.
53.下列图标中,表示VB控件工具箱中的文本框控件的是( )
A. B. C. D.
【分析】VB控件工具箱(内工具从左至右、从上到下依次为:1)指针2)图片框(PictureBox)3)标签(Label)4)文本框(TextBox)5)框架(Frame)6)命令按钮(CommandButton)7)复选框(CheckBox)8)单选按钮(OptionButton)9)下拉框(ComboBox)10)列表框(ListBox)11)水平滚动条(HScrollBar)12)垂直流动条(VScrollBar)13)时钟(Timer)14)驱动器列表框(DriveListBox)15)目录列表框(DirListBox)16)文件列表框(FileListBox)17)形状(Shape)18)线条(Line)19)图象框(Image)21)对像(OLE)
【解答】根据VB中图标表示可知,答案选项分别为:A列表框控件、B命令按钮控件、C标签控件、D文本框控件.
故选:D.
54.有如下程序段:
Private Sub Command1_Click( )
Dim i As Integer,s As Integer,n As Integer
n=Val(Text1.Text)
s=0
For i=1To n
s=s+i\4
Next i
Label1.Caption=Str(s)
End Sub
运行该程序,在文本框Text1中输入8,单击命令按钮Command1,在标签Label1中显示的是( )
A.9.1 B.7.5 C.6 D.4
【分析】通过观察可以看出本程序出现了For 语句,仔细观察For语句循环几次,即可求出S的值
For语句一般格式:
For 循环变量=初值 To 终值【Step 步长】
【语句块】
【Exit For】
【语句块】
Next【循环变量】
在For语句中要判断循环变量是否超出终值,如果未超出,则执行语句块,超出,则终止循环.
【解答】当i=1时,s=s+i\4=0+1\4=0,此时,i=2,s=0
当i=2时,s=s+i\4=0+2\4=0,此时,i=3,s=0
当i=3时,s=s+i\4=0+3\4=0,此时,i=4,s=0
当i=4时,s=s+i\4=0+4\4=1,此时,i=5,s=1
当i=5时,s=s+i\4=1+5\4=2,此时,i=6,s=2
当i=6时,s=s+i\4=2+6\4=3,此时,i=7,s=3
当i=7时,s=s+i\4=3+7\4=4,此时,i=8,s=4
当i=8时,s=s+i\4=4+8\4=6,此时,i=9,s=6
当i=9时,跳出循环,s的值为6
故选C.
55.下面程序段的功能是在Text1中输入一个字符串,将字符一个个分离出来并输到List1中:
Dim s As String,i As Integer
s=Text1.Text
i=1
Do While i<=Len(s)
List1.AddItem _________
i=i+1
Loop
则程序划线处应填入是( )
A.Mid(s,1,i) B.Mid(1,s,i) C.Mid(i,s,1) D.Mid(s,i,1)
【分析】MID字符串函数,作用是从一个字符串中截取出指定数量的字符.
MID(text,start_num,num_chars):text被截取的字符,start_num从左起第几位开始截取(用数字表达),num_chars从左起向右截取的长度是多少(用数字表达).
【解答】由程序知,变量s用来接受文本框1中的字符串,变量i来控制列表框1中每次输出的字符和循环的此时,当控制变量i的值小于字符串s中的长度Len(s)时,使用List1.AddItem 来输出相应的字符,所以划线出为:Mid(s,i,1),故选D.
56.控制工具箱中的工具是( )
A.文件列表 B.单选按钮 C.图片框 D.标签
【分析】VB工具箱是控件的集合,如文件列表控件FileListBox,单选按钮控件OptionButtom,图片框控件PictureBox,标签控件Label,文本框控件TextBox等,每个控件都有自己的特定的图标
【解答】表示文件列表控件FileListBox,表示单选按钮控件OptionButtom
表示图片框控件PictureBox,表示标签控件Label.
故选:D.
第1页(共1页)
高中信息组卷5
一.选择题(共28小题)
1.某查找算法的部分VB代码如下:
t=False
i=0
Do While i<7 And t=False
i=i+1
If a(i)=Key Then t=True
Loop
If t=False Then i=0
数组元素a(1)到a(7)的数据依次为“3,5,1,5,8,9,5”当变量key值为5时,运用该算法处理后,变量i的值是( )
A.0 B.2 C.4 D.7
2.将下列程序段中的Do While语句改写成For语句,正确的是( )
A. B. C. D.
3.如下VB程序段
x=0
Do While x<50
x=(x+2)*(x+3)
Loop
执行后,x的值为( )
A.0 B.72 C.50 D.168
8.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现( )
A. B. C. D.
9.下面四个程序段中,运行后变量a的值最小的是( )
A. B. C. D.
10.某Visual Basic程序段如下:
Dim s As String,t As Integer,i As Integer
s=“Information Technology“
t=4
For i=3To 1Step﹣1
s=Mid(s,i,t)
t=t﹣1
Next i
Text1.Text=s
该程序段运行后,文本框Text1中显示的内容为( )
A.form B.orm C.or D.for
11.有如下VB程序段:
n=Val(Text1.Text)
st=“”
For i=1To n
For j=1To i Step 2
st=st+“☆”
Next j
List1.AddItem st
Next i
该程序段运行时,在文本框Text1中输入5,则列表框输出的内容为( )
A. B. C. D.
12.有如下Visual Basic 程序,该程序通过For循环计算sum的值,下列表达式的值与sum相等的是( )
A.1+1/2+2/3+3/4+4/5 B.1+1/2+2/3+3/4
C.1/2+2/3+3/4+4/5 D.1+1/2+1/3+1/4+1/5
13.某VB程序代码如下:
n=73
s=1
Do While n>1
s=s+n/4
n=n/4
Loop
执行该程序段后,变量s的值是( )
A.19 B.20 C.23 D.24
14.有如下Visal Basic程序段:
s=1
For i=20 To ___ Step﹣2
s=s+i
Next i
若要使语句s=s+i执行5次,则可循环变量i终值应为( )
A.12 B.11 C.10 D.9
15.有如下程序段,运行后a(10)=( )
Dim a(30)As Integer
a(1)=1
a(2)=1
i=2
Do While i<10
i=i+1
a(i)=a(i﹣1)+a(i﹣2)
Loop.
A.0 B.34 C.55 D.空
16.有如下Visual Basic程序段:
Dim a(1To 4)As Integer
a(1)=1
For i=2To 3
a(i)=2*a(i﹣1)+1
Next i
该程序段运行后,数组元素a(4)的值为( )
A.15 B.7 C.3 D.0
17.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息.发生”下标越界”错误时所执行的语句是( )
Private Sub Command1_Click( )
Dim a(0To 5)As Integer
Dim i As Integer'①
a(0)=1'②
For i=1To 5
a(i)=2*a(i﹣1)+1'③
Next i
Text1.Text=Str(a(6))'④
End Sub.
A.① B.② C.③ D.④
18.在Visual Basic中程序段是计算( )公式的.
s=0
For i=1To 10
t=1
for j=1to i
t=t*j
next j
s=s+t
Next i.
A.s=1+2+3+4+5+6+7+8+9+10
B.s=1*2*3*4*5*6*7*8*9*10
C.s=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!
D.s=1+2*3+3*4+4*5+5*6+6*7+7*8+8*9+9*10
19.有如下程序段:
i=1
Do While i<=5
If i=0or a(i﹣1)<=a(i) Then
i=i+1
Else
t=a(i):a(i)=a(i﹣1):a(i﹣1)=t
i=i﹣1
End If
Loop
For i=1To 5
List2.AddItem a(i)
Next i
数组元素a(0)到a(5)的值依次为“0,71,22,48,79,27”,经过该程序段“加工”后,数组元素a(4)的值为( )
A.0 B.71 C.48 D.27
20.有如下Visual Basic程序段:
Dim x As Integer
x=2
Do While x<20
x=x∧2
Loop
运行这段程序段,循环体的循环次数为( )
A.0 B.2 C.3 D.4
21.【加试题】有如下 VB 程序:Private Sub Command1_Click( )
Dim s1As String,s2As String,i As Integer,ch As String s1=Text1.Text
For i=1To Len(s1)
ch=Mid(s1,i,1)
If Asc(ch)>=65And Asc(ch)<=90Then ch=Chr(Asc(ch)+3)
End If
s2=ch+s2Next i Label1.Caption=s2
End Sub
已知大写字母 A 的 ASCII 码为 65.运行上述程序,若文本框 Text1 中的内容为“A1b2C3”,单击命令按钮 Command1,标签 Label1 中显示的是.
A.A1b2C3 B.3C2b1A C.D1b2F3 D.3F2b1D
22.有如下一段VB代码:
s=0
For i=1 To 5 Step﹣2
s=s+i
Next i
执行上述代码后,下列说法正确的是( )
A.该循环执行了3次
B.该循环是无限循环
C.执行该循环后,s,i的值分别为0,1
D.循环体s=s+i仅被执行了1次
23.有如下VB程序:
Private Sub Commandl﹣ Click( )
Dim a(1 To 5)As Integer,i As Integer
a(1)=1
For i=2 To 5
a(i)=i*a(i﹣1)
Next i
Textl.Text=Str(Sqr(a(i)))
End Sub
运行该程序后,单击按钮Commandl,将会出现的错误提示是( )
A.溢出 B.下标越界
C.无效的过程调用或参数 D.子程序或函数未定义
24.阅读如下程序段,下列选项的计算结果与该程序段运行结果相同的是( )
A.1/2﹣1/(2×3)+1/(3×4)﹣1/(4×5)+1/(5×6)
B.1/2﹣1/3+1/4﹣1/5+1/6
C.1/2+1/(2×3)+1/(3×4)+1/(4×5)+1/(5×6)
D.1/2+1/3+1/4+1/5+1/6
25.有如下一段VB程序:
k=﹣20
Do While k=0
k=k+1
Loop
以下说法正确的是( )
A.do while 语句执行了20次 B.do While 循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
26.有如下VB程序段:
Dim a(0 To 10)As Integer,b(0 To 2)As Integer,i As Integer
For i=0 To 2
b(i)=0
Next i
a(0)=0:a(1)=1:a(2)=3:a(3)=2:a(4)=1:a(5)=2
a(6)=2:a(7)=3:a(8)=2:a(9)=1:a(10)=2
For i=1 To 10
a(i)=a(i)﹣a(i﹣1)
b(a(i))=b(a(i))+1
Next i
该程序段运行后,数组元素b(0)、b(1)、b(2)的值分别为( )
A.1 5 4 B.2 6 2 C.3 3 4 D.4 2 4
27.寻找数组元素a(1)到a(10)中最小值min程序段如下:
For i=2To 10
If a(i)<min Then min=a(i)
Next i
方框中最合适的语句是( )
A.a(1)=min B.a(1)=0 C.min=a(1) D.min=0
28.有如下VB程序段:
Dim a(0 To 10)As Integer,b(0 To 2)As Integer,i As Integer
For i=0 To 2
b(i)=0
Next i
a(0)=0:a(1)=1:a(2)=3:a(3)=2:a(4)=1:a(5)=2
a(6)=2:a(7)=3:a(8)=2:a(9)=1:a(10)=2
For i=1 To 10
a(i)=a(i)﹣a(i﹣1)
b(a(i))=b(a(i))+1
Next i
该程序段运行后,数组元素b(0)、b(1)、b(2)的值分别为( )
A.1 5 4 B.2 6 2 C.3 3 4 D.4 2 4
二.填空题(共1小题)
29.有如下Visual Basic程序段:
Dim a As Integer,b As Integer,c As Integer
a=20
b=0
c=2
Do While a>b And a>c
b=b+1
c=c+b
Loop
问:该程序段运行后,
(1)语句“b=b+1”执行的次数为 .
(2)变量c的值为 .
三.简答题(共2小题)
30.将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?
Dim i,j,k As Integer′i,j,k用于记录5元,1元,0.5元的张数
Print“5元 1元 0.5元”
For i=1To 20
For j=1To 100﹣i
k=
If Then
Print i,j,k′分别输出i,j,k三个变量.
End If
Next j
Next i.
31.若干个字符,终止符是“#”,计算输入的字符中“a”出现的次数.(包括大小写)
Private Sub Command1﹣Click ( )
Dim s As String
Dim i As Integer,n As Integer
s=Text1.Text
i=1
n=0
Do While (1)
If Mid(s,i,1)=”a”Then n=n+1 (2)
Loop
Label1.Caption=”a的个数为”+Str(n)
End Sub
为了使程序能正常运行,上述程序中空格处应填入(1) ;(2) .
2018年01月04日高中信息组卷
参考答案与试题解析
一.选择题(共28小题)
1.某查找算法的部分VB代码如下:
t=False
i=0
Do While i<7And t=False
i=i+1
If a(i)=Key Then t=True
Loop
If t=False Then i=0
数组元素a(1)到a(7)的数据依次为“3,5,1,5,8,9,5”当变量key值为5时,运用该算法处理后,变量i的值是( )
A.0 B.2 C.4 D.7
【分析】DO While循环语句的一般格式:
DO While(条件)
循环体
LOOP
条件控制着循环的次数,而循环体内必有一个变量控制着循环的退出与否.
【解答】按照数组a下标从1到7顺序查找并比较,如果找到有符合条件的相等的数据,就退出循环.此题中a(2),a(4),a(7)均为5,但程序找到第一个相等的数据就结束了,此时变量i的值为2.
故选:B.
【点评】此题考查顺序查找的程序实现过程,根据程序判断何时退出循环.
2.将下列程序段中的Do While语句改写成For语句,正确的是( )
A. B. C. D.
【分析】(1)循环结构语句do while的循环条件对循环次数的影响,以及执行过程
do while 条件
循环体
loop
程序从前面语句执行到do while时要比较条件值是否为true,如果条件值为true就执行循环体,在返回do 进行比较,如果条件值为false,就到loop的后面语句执行程序,不执行此循环结构.
(2)循环结构语句for…next的循环变量起始值和终止值以及步长对循环次数的影响,以及执行过程;
For 循环变量=初始值 To 终止值 step 步长
循环体
Next 循环变量
程序从前面语句执行到for时把循环变量的初始值与终止值比较,如果起始小于终止值并且步长为整数,就执行循环体,在返回 进行比较,如果起始值大于终止值并且步长为整数,就不执行此循环结构,到next的后面语句执行程序.
【解答】据题意,分析可知:程序i变量从1开始到n控制循环次数为n次,没有参与循环体计算,语句s=s+p是变量s从0开始把每个变量p累加计和,第1次s=s+1,语句p=p*2是p由do循环外面的赋值1开始在循环里每次*2,变化n次,所以p在循环中的变化过程为2,4,8…,s变量就把循环中变化的p的值累加,即s=0+1+2+4+8+….
A.此for循环结构分析得:变量i从1开始到n控制循环次数为n次,没有参与循环体计算,语句p=p*2先执行,s=s+p后执行,即当p=2时,s=0+2,没有s=s+1的语句,故结果中的s=0+2+4+8,少加了1,所以此选项错误;
B.此for循环的起始值大于终止值并且步长为整数,不执行此循环结构,所以无法实现题目中的程序结果,此选项错误;
C.此for循环中:变量i从n开始到1,步长为﹣1,控制循环次数为n次,没有参与循环体计算,变量s=0+1,变量p才从1变化到2,变量再把2累加得到s=0+1+2,之后p的变化过程为,4,8…,后面循环在s把p变化的其他数累加,得到s=0+1+2+4+8+…,与题目一样,故此选项正确
D.此for循环中:变量i从n开始到1,步长为﹣1,控制循环次数为n次,没有参与循环体计算,语句p=p*2先执行,s=s+p后执行,即当p=2时,s=0+2,没有s=s+1的语句,故结果为:s=0+2+4+8,少加了1,所以此选项错误.
故选:C
【点评】VB编程语言里循环结构语句for…next的步长的循环变量起始值和终止值使用方法,以及与do while…loop循环结构的区别.
3.如下VB程序段
x=0
Do While x<50
x=(x+2)*(x+3)
Loop
执行后,x的值为( )
A.0 B.72 C.50 D.168
【分析】DO WHILE…LOOP 用在在循环时判断条件,条件满足执行,不满足就退出.
【解答】本题答案:B0<50,满足条件,x=(x+2)*(x+3)=6;6<50,满足条件,x=(x+2)*(x+3)=8*9=72;72<50,条件为假,程序结束.故选:B.
【点评】本题考查循环结构循环语句的DO WHILE…LOOP使用,同时还需掌握for循环.
4.如下VB程序段中,数组a中a(1)至a(5)依次存储的是8、1、25、41、11.
m=a(1)
For i=2To 5
a(i﹣1)=a(i)
Next i
a(5)=m
运行后,数组a中a(1)至a(5)的值依次是( )
A.11 41 25 1 8 B.1 25 41 11 8 C.11 8 1 25 41 D.1 8 11 25 41
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】i=2,a(1)=a(2)=1;i=3,a(2)=a(3)=25;i=4,a(3)=a(4)=41;i=5,a(4)=a(5)=11,循环结束,a(5)=m=8,所以程序结束,数组a中a(1)至a(5)依次存储的是1、25、41、11、8.故选:B.
【点评】本题考查循环结构循环语句的for使用,同时还需掌握DO WHILE…LOOP循环.
5.如下VB程序段
x=Text1.Text
p=0
For i=1To Len(x)
If Mid(x,i,1)=“a“Then p=p+1
Next i
Print p
若程序运行时,在文本框Text1中键入“Are you happy”,则运行结果是( )
A.0 B.1 C.2 D.11
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】Len(x)=Len(“Are you happy”)=13,Mid(a,b,c) 从a中的第b个开始,取c个字符的子串.
只有i=10时,满足Mid(x,10,1)=“a“,所以p=1.
故选:B.
【点评】在VB语言中,有三种类型的循环语句:for语句、while语句和do While语句.
6.在VB中,若i、m、n均是整型变量,则下列代码段的输出结果是( )
m=0
n=0
For i=1To 2
m=m+1
For j=1To 3
n=n+1
Next j
Next i
Print m,n.
A.2 5 B.2 6 C.6 2 D.5 2
【分析】For语句的一般格式:For 循环变量=初值 To 终值 Step 步长 语句块 Next 变量 在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.循环嵌套就是在循环体中又有循环的结构,循环体外的循环称为外循环,循环体内的循环称为内循环.如果程序需要,还可以在内循环里再嵌入另一个循环,从而构成三重循环,甚至多重循环.循环嵌套应用中的常见错误及其注意事项:1.内循环与外循环的循环变量名称不能相同.2.外循环必须完全包含内循环,不可以出现交叉现象.
【解答】分析语句中m、n初值为0,外循环i=1 to 2,执行两次m加1,则结果m=2;内循环j=1 to 3,内循环体执行三次n加1,由于内外循环的嵌套,内循环体共执行2*3=6次,则结果n=6.
故选:B.
【点评】本题考查VB中For循环语句的运用,难点在于循环嵌套过程中语句执行情况的分析.
7.下列VB代码段
s=0
a=﹣1
For i=1To 10
t=1
For j=1To i
t=t*j
Next j
a=﹣a
s=s+t*a
Next i
Print s
其功能是计算( )
A.1+2+3+4+5+6+7+8+9+10
B.1!+2!+3!+4!+5!+6!+7!+8!+9!+10!
C.1﹣2*3+3*4﹣4*5+5*6﹣6*7+7*8﹣8*9+9*10﹣10*11
D.1!﹣2!+3!﹣4!+5!﹣6!+7!﹣8!+9!﹣10!
【分析】循环嵌套就是在循环体中又有循环的结构,循环体外的循环称为外循环,循环体内的循环称为内循环.如果程序需要,还可以在内循环里再嵌入另一个循环,从而构成三重循环,甚至多重循环.循环嵌套应用中的常见错误及其注意事项:1.内循环与外循环的循环变量名称不能相同.2.外循环必须完全包含内循环,不可以出现交叉现象.
【解答】分析语句可知,内循环j=1 to i 表明内循环累乘j变量,得到i的阶乘存于变量t中;外循环i=1 to10表明循环10次,每次循环中执行a=﹣a实现取相反数,由s=s+t*a实现依次将t或﹣t累加至s变量中.
故选:D.
【点评】本题考查VB中for循环语句的嵌套使用.
8.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现( )
A. B. C. D.
【分析】循环结构语句do while的循环条件对循环次数的影响,以及执行过程:
do while 条件
循环体
loop
程序从前面语句执行到do while时要比较条件值是否为true,如果条件值为true就执行循环体,在返回do 进行比较,如果条件值为false,就到loop的后面语句执行程序,不执行此循环结构.
【解答】A.利用了枚举法,i从1循环到100,步长为1,当i mod 7 为0(即i能被7整除)时输出i,也就是输出了100以内能被7整除的数字,可以实现题目要求;
B.变量i从7开始循环到100,步长为7,输出的刚好是100以内所有7的倍数,也就是100以内能被7整除的数字;可以实现题目要求
C.变量i的值从1开始步长为1不断变化循环,每次输出的是i*7的值,即7的倍数(即能被7整除的数字),直到s大于100停止,(即100以内的数),可以实现题目要求;
D.变量s从0开始步长为7不断变化,输出变化后的s,正好是7的倍数,当s接近100时进入循环,执行循环体s+7并且输出s,此时已经s大于100,也被输出了,与题目要求100以内数不符,此程序有缺陷;
故选:D
【点评】本题考查学生对循环结构的掌握,理解循环结构的程序执行过程.
9.下面四个程序段中,运行后变量a的值最小的是( )
A. B. C. D.
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长 语句块 Next 变量 在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析各程序段可知,AC选项中循环体相同,先做乘法再整除,a值不变,最终a的值为35,BD选项虽然循环体相同,但先做整除运算中除数不同取整产生差异,实现运算后B选项运算结果为a=32,D选项运算结果为a=30.所以运行后变量a的值最小是30.
故选:D.
【点评】本题考查VB程序段的分析能力,重点要掌握For循环语句的运用.
10.某Visual Basic程序段如下:
Dim s As String,t As Integer,i As Integer
s=“Information Technology“
t=4
For i=3To 1Step﹣1
s=Mid(s,i,t)
t=t﹣1
Next i
Text1.Text=s
该程序段运行后,文本框Text1中显示的内容为( )
A.form B.orm C.or D.for
【分析】程序段为循环结构,循环条件为i=3 To 1,步长为﹣1,循环体为s=Mid(s,i,t),t=t﹣1.
【解答】Mid函数的功能是从一个字符串中截取一个子串出来,第一个参数为主字符串,第二个参数为开始位置,第三个参数为总共截取字符的个数.初始值:s=“Information Technology“,t=4,i=3;一次循环:s=Mid(s,3,4)=“form“,t=t﹣1=3;二次循环:i=2,s=Mid(s,2,3)=“orm“,t=t﹣1=2;三次循环:i=1,s=Mid(s,1,2)=“or“,至此循环结束,最终文本框中显示的内容为字符串s,即or.故选:C.
【点评】本题考查VB的循环结构,以及VB中常用的函数Mid.
11.有如下VB程序段:
n=Val(Text1.Text)
st=“”
For i=1To n
For j=1To i Step 2
st=st+“☆”
Next j
List1.AddItem st
Next i
该程序段运行时,在文本框Text1中输入5,则列表框输出的内容为( )
A. B. C. D.
【分析】(1)VB中循环语句嵌套的使用方法,在循环语句中套用另一个循环语句,称为循环的嵌套,例如
For a=1 To 10
For a=1 To 20
…
Next b
Next a
注意:①外循环必须完全包含内循环,不能交叉;②内循环变量与外循环变量不能同名;
(2)程序语句的执行过程的理解,程序的运行结果.
【解答】程序运行过程为:n=5;st=““,
外循环i=1,
内循环j=1,st=☆,j=3,内循环结束;list1里列出“☆”;
i=2,进入第2次外循环,
内循环j=1,st=☆☆,j=3,内循环结束;list1第2行里列出“☆☆”;
i=3,进入第3次外循环,
内循环j=1,st=☆☆☆,j=3,st=☆☆☆☆,j=5,内循环结束;第3行里列出“☆☆☆☆”;
i=4,进入第4次外循环,
内循环j=1,st=☆☆☆☆☆,j=3,st=☆☆☆☆☆☆,j=5,内循环结束;第4行里列出“☆☆☆☆☆☆”;
i=5,进入第5次外循环,
内循环j=1,st=☆☆☆☆☆☆,j=3,st=☆☆☆☆☆☆☆,j=5,st=☆☆☆☆☆☆☆☆,j=7,内循环结束;第5行里列出“☆☆☆☆☆☆☆☆”;
i=6,外循环结束,
程序结束;
故选:A
【点评】考查对VB中for…next 循环语句的嵌套的理解,对程序执行过程的解读,归纳总结,得到程序解决的问题
12.有如下Visual Basic 程序,该程序通过For循环计算sum的值,下列表达式的值与sum相等的是( )
A.1+1/2+2/3+3/4+4/5 B.1+1/2+2/3+3/4
C.1/2+2/3+3/4+4/5 D.1+1/2+1/3+1/4+1/5
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】i=1,x=0,n=1,sum=0;
i=2,x=1/2,n=2,sum=1/2;
i=3,x=2/3,n=3,sum=1/2+2/3;
i=4,x=3/4,n=4,sum=1/2+2/3+3/4;
i=5,x=4/5,n=5,sum=1/2+2/3+3/4+4/5;故选:C.
【点评】本题考查FOR的使用,同时还需掌握其他结构语句的用法.
13.某VB程序代码如下:
n=73
s=1
Do While n>1
s=s+n/4
n=n/4
Loop
执行该程序段后,变量s的值是( )
A.19 B.20 C.23 D.24
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为假,Do…While循环就结束操作.
【解答】程序运行的具体步骤如下:
n s
73 1+73/4=19
18 19+18/4=23
4 23+4/4=24
1 /
故选:D.
【点评】本题考查的是VB程序的理解.
14.有如下Visal Basic程序段:
s=1
For i=20 To ___ Step﹣2
s=s+i
Next i
若要使语句s=s+i执行5次,则可循环变量i终值应为( )
A.12 B.11 C.10 D.9
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】程序中,执行5次s=s+i,就执行5次Next i,只要第5次执行Next i(此时i=10)后退出循环即可.所以i的终值应为12.
故选:A.
【点评】本题考查了for循环语句中循环变量的变化情况,在使用for循环语句的时要注意退出循环前会执行一次Next i.
15.有如下程序段,运行后A(10)=( )
Dim a(30)As Integer
a(1)=1
a(2)=1
i=2
Do While i<10
i=i+1
a(i)=a(i﹣1)+a(i﹣2)
Loop.
A.0 B.34 C.55 D.空
【分析】通过观察可以看出本程序出现了Do语句,要计算a(10)的值,细心观察Do语句循环几次,即可得出.
Do Loop语句一般格式:
Do {While|Until }<条件表达式>或 Do
【语句块】【语句块】
【Exit Do】【Exit Do】
【语句块】【语句块】
Loop Loop {While|Until }<条件表达式>
在Do语句中,当条件表达式前置时,先计算表达式的值,当表达式值为False,循环体一次也不执行.当条件表达式后置时,先执行一次循环体再计算表达式的值,因此循环体至少被执行一次.
【解答】当i=2时,i<10为True,i=i+1=2+1=3,a(i)=a(i﹣1)+a(i﹣2)=a(2)+a(1)=1+1=2,即a(3)=2
当i=3时,i<10为True,i=i+1=3+1=4,a(i)=a(i﹣1)+a(i﹣2)=a(3)+a(2)=2+1=3,即a(4)=3
当i=4时,i<10为True,i=i+1=3+1=5,a(i)=a(i﹣1)+a(i﹣2)=a(4)+a(3)=3+2=5,即a(5)=5
…
当i=9时,i<10为True,i=i+1=9+1=10,a(i)=a(i﹣1)+a(i﹣2)=a(9)+a(8)=34+21=55,即a(10)=55
此时,i=10,表达式i<10为False,跳出循环,
故选:C.
【点评】本题考查VB中Do语句语句的使用,我们应当熟练掌握VB中循环语句的使用.
16.有如下Visual Basic程序段:
Dim a(1To 4)As Integer
a(1)=1
For i=2To 3
a(i)=2*a(i﹣1)+1
Next i
该程序段运行后,数组元素a(4)的值为( )
A.15 B.7 C.3 D.0
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】a(i)=2*a(i﹣1)+1,所以
a(2)=2*a(1)+1=3
a(3)=2*a(2)+1=7
a(4)=2*a(3)+1=15.
故选:A.
【点评】本题考查for语句的使用.使用for语句要掌握循环变量的变化情况.
17.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息.发生”下标越界”错误时所执行的语句是( )
Private Sub Command1_Click( )
Dim a(0To 5)As Integer
Dim i As Integer'①
a(0)=1'②
For i=1To 5
a(i)=2*a(i﹣1)+1'③
Next i
Text1.Text=Str(a(6))'④
End Sub.
A.① B.② C.③ D.④
【分析】下标越界表示程序中某一个数组元素的下标超出了数组定义的下标范围.
【解答】程序中定义了数组a的下标范围为[0,5],而在程序的中Text1.Text=Str(a(6)),a(6)超出了范围.
故选:D.
【点评】本题考查数组元素的下标.数组元素的下标不能超出定义时的下标范围.
18.在Visual Basic中程序段是计算( )公式的.
s=0
For i=1To 10
t=1
for j=1to i
t=t*j
next j
s=s+t
Next i.
A.s=1+2+3+4+5+6+7+8+9+10
B.s=1*2*3*4*5*6*7*8*9*10
C.s=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!
D.s=1+2*3+3*4+4*5+5*6+6*7+7*8+8*9+9*10
【分析】程序中使用了两个for循环语句,每层for语句执行求阶乘,外层for语句实现求和.
For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】外部for语句取值i,每一次循环,内部for循环都会进行i循环,执行t=t*j,即为求i的阶乘,同时会执行s=s+t.
所以外部for循环结束后s表示1﹣10阶乘的和.
故选:C.
【点评】本题考查for语句的嵌套.使用for语句的嵌套时要把握好循环的执行过程.
19.有如下程序段:
i=1
Do While i<=5
If i=0or a(i﹣1)<=a(i) Then
i=i+1
Else
t=a(i):a(i)=a(i﹣1):a(i﹣1)=t
i=i﹣1
End If
Loop
For i=1To 5
List2.AddItem a(i)
Next i
数组元素a(0)到a(5)的值依次为“0,71,22,48,79,27”,经过该程序段“加工”后,数组元素a(4)的值为( )
A.0 B.71 C.48 D.27
【分析】If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】当i=1时,数组不交换,此时i+1;
当i=2时,数组交换,0,22,71,48,79,27,此时i﹣1;
当i=1时,数组不交换,此时i+1;
当i=2时,数组不交换,此时i+1;
当i=3时,数组交换,0,22,48,71,79,27,此时i﹣1;
当i=2时,数组不交换,此时i+1;
当i=3时,数组不交换,此时i+1;
当i=4时,数组不交换,此时i+1;
当i=5时,数组交换,0,22,48,71,27,79,此时i﹣1;
当i=4时,数组交换,0,22,48,27,71,79,此时i﹣1;
当i=3时,数组不交换,此时i+1;
当i=4时,数组不交换,此时i+1;
当i=5时,数组不交换,此时i+1;
当i=6时,循环结束,程序结束后,数组为:0,22,48,27,71,79.
故选:B.
【点评】本题考查For循环的使用.
20.有如下Visual Basic程序段:
Dim x As Integer
x=2
Do While x<20
x=x∧2
Loop
运行这段程序段,循环体的循环次数为( )
A.0 B.2 C.3 D.4
【分析】程序段为Do While循环,循环条件为x<20,循环体为x=x^2.
【解答】初始值:x=2;
一次循环:x=x^2=4;
二次循环:x=x^2=16;
三次循环:x=x^2=256,至此循环结束,共执行循环体3次.
故选:C.
【点评】本题考查VB的循环结构,要求掌握算法的三种结构.
21.【加试题】有如下 VB 程序:Private Sub Command1_Click( )
Dim s1As String,s2As String,i As Integer,ch As String s1=Text1.Text
For i=1To Len(s1)
ch=Mid(s1,i,1)
If Asc(ch)>=65And Asc(ch)<=90Then ch=Chr(Asc(ch)+3)
End If
s2=ch+s2Next i Label1.Caption=s2
End Sub
已知大写字母 A 的 ASCII 码为 65.运行上述程序,若文本框 Text1 中的内容为“A1b2C3”,单击命令按钮 Command1,标签 Label1 中显示的是.
A.A1b2C3 B.3C2b1A C.D1b2F3 D.3F2b1D
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】程序中使用for循环语句判断输入的字符串中是否有大写字母,如果有则把该字母转换为其后面第三个大写字母,并把字符串输出.如输入A1b2C3时,输出的结果为:3F2b1D.
故选:D.
【点评】本题考查for循环语句的使用.使用for语句时要把握循环变量在运算时的作用.
22.有如下一段VB代码:
s=0
For i=1 To 5 Step﹣2
s=s+i
Next i
执行上述代码后,下列说法正确的是( )
A.该循环执行了3次
B.该循环是无限循环
C.执行该循环后,s,i的值分别为0,1
D.循环体s=s+i仅被执行了1次
【分析】(1)循环结构语句for…next的步长的设置对循环变量和循环次数的影响;
(2)循环结构的语句执行过程.
【解答】据题意:程序执行,s=0,
循环变量i从1开始,步长为﹣2,判断循环变量的开始值与终止值的大小,步长为负数时,开始值必须大于终止值才能执行循环体,本题里循环变量的开始值i=1小于终止值5,循环不进入循环体,直接退出循环,执行循环结构结束语句next后面的程序语句,故循环体被执行了0次.
故选:C
【点评】考查学生理解程序的能力,掌握VB编程语言里循环结构语句for…next的步长的循环变量起始值和终止值使用方法.
23.有如下VB程序:
Private Sub Commandl﹣ Click( )
Dim a(1 To 5)As Integer,i As Integer
a(1)=1
For i=2 To 5
a(i)=i*a(i﹣1)
Next i
Textl.Text=Str(Sqr(a(i)))
End Sub
运行该程序后,单击按钮Commandl,将会出现的错误提示是( )
A.溢出 B.下标越界
C.无效的过程调用或参数 D.子程序或函数未定义
【分析】(1)程序中使用循环语句的使用方法,for…next对应,do while (until)…loop对应,do…loop until (while) 对应;
(2)程序语句的执行过程的理解,程序的运行结果.
(3)VB数据类型的定义以及使用范围.
【解答】程序运行过程为:
定义整数数组a(1)到a(5),在定义整数变量i;
a(1)=1
进入for循环:
循环变量i=2,a(2)=i*a(2﹣1)=2*1=2;
i=3,a(3)=i*a(3﹣1)=3*2=6;
i=4,a(4)=i*a(4﹣1)=4*6=24;
i=5,a(5)=i*a(5﹣1)=5*24=120;
i=6,循环结束;
text1.text=str(sqr(a(i)))即:text1.text=str(sqr(a(6)))
题目中的数组下标只到5即a(1)到a(5),没有a(6)
所以程序执行到最后一句就不能执行下去了,会出现“下标越界”的错误报告对话框
故选:B
【点评】考查VB中不同数据类型的数值范围和for…next循环语句的使用方法,要求学生学会阅读程序语句,知道其执行过程和运行结果.
24.阅读如下程序段,下列选项的计算结果与该程序段运行结果相同的是( )
A.1/2﹣1/(2×3)+1/(3×4)﹣1/(4×5)+1/(5×6)
B.1/2﹣1/3+1/4﹣1/5+1/6
C.1/2+1/(2×3)+1/(3×4)+1/(4×5)+1/(5×6)
D.1/2+1/3+1/4+1/5+1/6
【分析】VB中有三种循环,只有理解每种循环执行过程,才能正确分析程序运行结果和正确在编程中使用.
【解答】当VB遇到题中程序的这种循环时,它首先条件的真假,如果条件为假,循环内部的语句就不会被执行,VB将继续执行关键字Loop后面的第一条语句.如果条件为真,循环里面的语句则会被一条一条地执行,直到遇到Loop语句.Loop语句告诉VB重复这个过程,只要Do While语句里的条件为真的话.
i=1时,第一次循环:s=0+1/(1*(1+1))=1/2;i=1+1=2;k=﹣1.
i=2时,第二次循环:s=1/2+(﹣1)(2*(2+1))=1/2﹣1(2*3);i=2+1=3;k=﹣(﹣1)=1.
i=3时,第三次循环:s=1/2﹣1/(2×3)+1/(3×4);i=3+1=4;k=﹣1.
i=4时,第四次循环:1/2﹣1/(2×3)+1/(3×4)﹣1/(4×5);i=4+1=5;k=1.
i=5时,第五次循环:1/2﹣1/(2×3)+1/(3×4)﹣1/(4×5)+1/(5×6);i=5+1=6;k=﹣1.
第五次循环执行后,i=6,不符合while后面的条件,因此循环结束.
故选:A.
【点评】本题考查循环语句执行过程的理解.
25.有如下一段VB程序:
k=﹣20
Do While k=0
k=k+1
Loop
以下说法正确的是( )
A.do while 语句执行了20次 B.do While 循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
【分析】DO While循环语句的一般格式:DO While(条件)循环体LOOP循环体内必须有能控制循环结束的变量或者表达式.
【解答】分析题中程序代码,变量k被赋值为﹣20,DO While 后的条件为k=0,当条件成立时才执行循环体语句,但是显然条件是不成立的,因此循环体语句一次也不执行.故选:C.
【点评】本题考查DO While循环.要根据循环体的执行结果判断循环条件是否成立.
26.有如下VB程序段:
Dim a(0 To 10)As Integer,b(0 To 2)As Integer,i As Integer
For i=0 To 2
b(i)=0
Next i
a(0)=0:a(1)=1:a(2)=3:a(3)=2:a(4)=1:a(5)=2
a(6)=2:a(7)=3:a(8)=2:a(9)=1:a(10)=2
For i=1 To 10
a(i)=a(i)﹣a(i﹣1)
b(a(i))=b(a(i))+1
Next i
该程序段运行后,数组元素b(0)、b(1)、b(2)的值分别为( )
A.1 5 4 B.2 6 2 C.3 3 4 D.4 2 4
【分析】所谓数组,是无序的元素序列.若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标.数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式.这些无序排列的同类数据元素的集合称为数组.
【解答】分析程序循环语句执行情况如下:
第1遍:a(1)=a(1)﹣a(0)=1﹣0=1,b(a(1))=b(1)=b(1)+1=0+1=1;
第2遍:a(2)=a(2)﹣a(1)=3﹣1=2,b(a(2))=b(2)=b(2)+1=0+1=1;
第3遍:a(3)=a(3)﹣a(2)=2﹣2=0,b(a(3))=b(0)=b(0)+1=0+1=1;
第4遍:a(4)=a(4)﹣a(3)=1﹣0=1,b(a(4))=b(1)=b(1)+1=1+1=2;
第5遍:a(5)=a(5)﹣a(4)=2﹣1=1,b(a(5))=b(1)=b(1)+1=2+1=3;
第6遍:a(6)=a(6)﹣a(5)=2﹣1=1,b(a(6))=b(1)=b(1)+1=3+1=4;
第7遍:a(7)=a(7)﹣a(6)=3﹣1=2,b(a(7))=b(2)=b(2)+1=1+1=2;
第8遍:a(8)=a(8)﹣a(7)=2﹣2=0,b(a(8))=b(0)=b(0)+1=1+1=2;
第9遍:a(9)=a(9)﹣a(8)=1﹣0=1,b(a(9))=b(1)=b(1)+1=4+1=5;
第10遍:a(10)=a(10)﹣a(9)=2﹣1=1,b(a(10))=b(1)=b(1)+1=5+1=6;
最终b(0)=2,b(1)=6,b(2)=2.
故选:B.
【点评】本题考查VB程序的分析理解能力,同时需要耐心地计算每次运算赋值的结果.
27.寻找数组元素a(1)到a(10)中最小值min程序段如下:
For i=2To 10
If a(i)<min Then min=a(i)
Next i
方框中最合适的语句是( )
A.a(1)=min B.a(1)=0 C.min=a(1) D.min=0
【分析】通过循环语句,实现查找数组中最小值,算法的思想是先假想第一个元素即为最小值,并赋值给min,然后从数组第二个元素开始与min进行比较,若发现更小的,则更新min的值.
【解答】根据算法的思想,在循环开始前,需首先将数组的第一个元素设想为最小值赋值给min,即min=a(1).
故选:C.
【点评】本题考查循环语句的使用,如何通过循环语句查找数组中的最小值.
28.有如下VB程序段:
Dim a(0 To 10)As Integer,b(0 To 2)As Integer,i As Integer
For i=0 To 2
b(i)=0
Next i
a(0)=0:a(1)=1:a(2)=3:a(3)=2:a(4)=1:a(5)=2
a(6)=2:a(7)=3:a(8)=2:a(9)=1:a(10)=2
For i=1 To 10
a(i)=a(i)﹣a(i﹣1)
b(a(i))=b(a(i))+1
Next i
该程序段运行后,数组元素b(0)、b(1)、b(2)的值分别为( )
A.1 5 4 B.2 6 2 C.3 3 4 D.4 2 4
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,i=1时,a(1)=1,b(1)=b(1)+1=1;i=2时,a(2)=2,b(2)=b(2)+1=1;i=3时,a(3)=0,b(0)=b(0)+1=1;i=4时,a(4)=1,b(1)=b(1)+1=2;i=5时,a(5)=1,b(1)=b(1)+1=3;i=6时,a(6)=1,b(1)=b(1)+1=4;i=7时,a(7)=2,b(2)=b(2)+1=2;i=8时,a(8)=0,b(0)=b(0)+1=2;i=9时,a(9)=1,b(1)=b(1)+1=5;i=10时,a(10)=1,b(1)=b(1)+1=6;所以b(0)、b(1)、b(2)的值分别为2、6、2,故选:B.
【点评】本题考查For语句使用,同时考查同学的程序分析能力.
二.填空题(共1小题)
29.有如下Visual Basic程序段:
Dim a As Integer,b As Integer,c As Integer
a=20
b=0
c=2
Do While a>b And a>c
b=b+1
c=c+b
Loop
问:该程序段运行后,
(1)语句“b=b+1”执行的次数为 6 .
(2)变量c的值为 23 .
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为真,Do…While循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
当VB遇到这个循环时,它首先条件的真假,如果条件为假,循环内部的语句就不会被执行,VB将继续执行关键字Loop后面的第一条语句.如果条件为真,循环里面的语句则会被一条一条地执行,直到遇到Loop语句.Loop语句告诉VB重复这个过程,只要Do While语句里的条件为真的话.
【解答】当a=20,b=0,c=2,a>b And a>c 为True,此时b=b+1=1,c=c+b=3;
当a=20,b=1,c=3,a>b And a>c 为True,此时b=b+1=2,c=c+b=5;
当a=20,b=2,c=5,a>b And a>c 为True,此时b=b+1=3,c=c+b=8;
当a=20,b=3,c=8,a>b And a>c 为True,此时b=b+1=4,c=c+b=12;
当a=20,b=4,c=12,a>b And a>c 为True,此时b=b+1=5,c=c+b=17;
当a=20,b=5,c=17,a>b And a>c 为True,此时b=b+1=6,c=c+b=23;
当a=20,b=6,c=23,a>b And a>c 为False,循环结束,所以b=b+1执行了6次,c的值为23.故答案为:6,23.
【点评】本题考查Do…While循环.
三.简答题(共2小题)
30.将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?
Dim i,j,k As Integer′i,j,k用于记录5元,1元,0.5元的张数
Print“5元 1元 0.5元”
For i=1To 20
For j=1To 100﹣i
k= 100﹣i﹣j
If 5×i+1×j+0.5×k=100 Then
Print i,j,k′分别输出i,j,k三个变量.
End If
Next j
Next i.
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】因为这是将100元换成100张5元、1元、0.5元的零钞,若全是5元的则需要20张,若全是1元的则需要100张.故i从1到20循环,j从1到100循环,从这20×100个组合中找出i+j+k=100(因为共100张)且5×i+1×j+0.5×k=100的组合,要求每种的张数不少于2,故①处为k=100﹣i﹣j,②处为5×i+1×j+0.5×k=100,
故答案为:①100﹣i﹣j ②5×i+1×j+0.5×k=100.
【点评】本题考查程序的设计能力.
31.若干个字符,终止符是“#”,计算输入的字符中“a”出现的次数.(包括大小写)
Private Sub Command1﹣Click ( )
Dim s As String
Dim i As Integer,n As Integer
s=Text1.Text
i=1
n=0
Do While (1)
If Mid(s,i,1)=”a”Then n=n+1 (2)
Loop
Label1.Caption=”a的个数为”+Str(n)
End Sub
为了使程序能正常运行,上述程序中空格处应填入(1) Mid(s,i,1)<>”#”或者i<len(s) ;(2) i=i+1 .
【分析】程序使用DO While循环语句计算输入的字符中“a”出现的次数.DO While循环语句的一般格式:
DO While(条件)
循环体
LOOP
【解答】(1)DO While循环语句用来扫描字符串s中的每一个字符,并判断此字符是否等于“a”.因为字符串以“#”结束,所以循环的条件应为Mid(s,i,1)<>“#”或者i<len(s).
(2)如果扫描的字符等于“a”,则用n记录“a”出现的次数,并使i指向下一个字符为下一次循环做准备,
即i=i+1.
故答案为:(1)Mid(s,i,1)<>”#”或者i<len(s)(2)i=i+1.
【点评】本题考查DO While循环语句的使用.DO While的条件是搜索答案的范围.
第28页(共29页)
高中信息组卷6
一.选择题(共49小题)
1.阅读如下程序段,下列选项的计算结果与该程序段运行结果相同的是( )
A.1/2﹣1/(2×3)+1/(3×4)﹣1/(4×5)+1/(5×6)
B.1/2﹣1/3+1/4﹣1/5+1/6
C.1/2+1/(2×3)+1/(3×4)+1/(4×5)+1/(5×6)
D.1/2+1/3+1/4+1/5+1/6
2.下列VB程序段中循环语句( )
Dim x As Integer
x=1
Do While x
x=x﹣1
Loop.
A.语法错误 B.死循环
C.循环体执行一次 D.循环体一次都不执行
3.有如下VB程序段:
Dim a(1To 10)As Integer
Private Sub Command1_Click( )
a(1)=1:a(2)=1
For i=3To 10
a(i)=a(i﹣2)+a(i﹣1)
Next i
j=0:Sum=0
Do While Sum<=88
j=j+1
Sum=Sum+a(j)
Loop
End Sub
该程序段运行后变量j 的值为( )
A.10 B.9 C.8 D.7
4.有如下一段VB程序:
k=﹣20
Do While k=0
k=k+1
Loop
以下说法正确的是( )
A.do while 语句执行了20次 B.do While 循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
5.有如下VB程序段:
Dim a(0 To 10)As Integer,b(0 To 2)As Integer,i As Integer
For i=0 To 2
b(i)=0
Next i
a(0)=0:a(1)=1:a(2)=3:a(3)=2:a(4)=1:a(5)=2
a(6)=2:a(7)=3:a(8)=2:a(9)=1:a(10)=2
For i=1 To 10
a(i)=a(i)﹣a(i﹣1)
b(a(i))=b(a(i))+1
Next i
该程序段运行后,数组元素b(0)、b(1)、b(2)的值分别为( )
A.1 5 4 B.2 6 2 C.3 3 4 D.4 2 4
6.如下VB程序段
For i=1To 2Step﹣0.1
Print i
Next i
运行后,循环体执行的次数是( )
A.一次也不执行 B.出错 C.2次 D.10次
7.X=9
For i=3 To 9 Step 3
If (X/3)>=i Then X=X+3
Next i
For i=22 To 2 Step 2
If (X/2)>=i Then X=X+2
Next i
MsgBox (X+i)
该程序的运行结果是( )
A.39 B.15 C.34 D.18
8.有如下VB程序段:
x=0
For k=1To 5
a(k)=Int(Rnd*90+10)'a(k)为[10,100)区间的随机整数
If a(k) Mod 2=0 Then x=x+a(k)
Next k
此程序段中,变量x用来表示( )
A.5个随机数中偶数的个数 B.5个随机数中奇数的个数
C.5个随机数中所有偶数的和 D.5个随机数中所有奇数的和
9.如下VB程序段:
x=InputBox(“输入x的值:“)
If x>3Then
If x<=6Then y=2*x Else y=3*x
Else
y=4*x
End If
Print y
若x、y均是整型变量,程序运行并输入6,则y的值是( )
A.24 B.18 C.12 D.6
10.如下VB程序段
Private Sub Form1_Click( )
Dim a As Integer
Dim b as Integer
a=5
If a>5Then
b=2*a
Else
b=a*a+1
End If
Print b
End Sub
运行结果是( )
A.26 B.25 C.10 D.5
11.下面程序段用于计算分段函数y=的值,不正确的是( )
A. B. C. D.
12.有如下VB程序段:
Dim a As Integer,b As Integer,c As Integer,y As Integer
a=3:b=4:c=4
If a<=b And c<=a Then
y=a+b
ElseIf a<=b or b<=c Then
y=b+c
ElseIf b=c Then
y=a mod c
Else
y=a+b+c
End If
该程序段运行之后,变量y的值为( )
A.3 B.7 C.8 D.11
13.下列可作为变量名的是( )
A.3D B.X_Y C.X+Y D.And
14.在VB中,如果要定义变量p用于存储年级学生总数,那么变量p的数据类型是( )
A.String B.Integer C.Boolean D.Date
15.下列可以作为VB变量名的是( )
A.Sub B.my_cat C.x@y D.3Q
16.下列可以作为 Visual Basic 的变量名的是( )
A.2Loveme B.Love_me C.Love@#me D.While
17.某商业公司2015年第一季度销售某产品29581件,而且保持后一季度销售额比前一季度增长5%的发展势头.小王想用Sum变量来存储公司2015年该产品总销售额,则Sum变量的数据类型应被定义为( )
A.Integer B.Long C.Single D.String
18.在VB中,下列选项属于字符串型数据的是( )
A.2356 B.“BX277“ C.BX277 D.2014﹣5﹣28
19.在Visual Basic中,用变量code存储学生的借阅卡编码(如“CH20130036”),则变量code的数据类型应说明为( )
A.Integer B.Single C.String D.Date
20.能随机产生一个(10,100)之间整数的表达式是( )
A.Int(Rnd*89)+11 B.Int(Rnd*89)+10 C.Int(Rnd*90)+11 D.Int(Rnd*90)+10
21.在VB中,表达式Mid(“程序设计“,2)的结果是( )
A.程序 B.序 C.序设计 D.程
22.在VB中,表达式Mid(“VB程序设计“,3,2)的结果是( )
A.VB B.B程 C.程序 D.设计
23.表达式:Not(2*3<Len(“basic“))的值是( )
A.False B.True C.0 D.﹣1
24.在VB中,表达式Left(“Basic“&“程序设计“,6)的结果是( )
A.序设计 B.Basic C.Basic程 D.ic程序设计
25.在VB中,若s是一个字符串变量,其值为“H“,则表达式Chr(Asc(s)+3)的结果是( )
A.“E“ B.“H“ C.“J“ D.“K“
26.已知一个直角三角形的两个直角边为a和b,则求斜边的表达式可以写成( )
A.Sqrt(a*a+b*b) B.Sqr(a*a+b*b) C.Abs(a*a+b*b) D.Trunc(a*a+b*b)
27.能得到一个大于等于20且小于50随机整数的VB表达式是( )
A.Int(rnd*50)﹣20 B.Int(rnd*30+20) C.Int(rnd*31+20) D.Int(rnd*30)+1
28.在Visual Basic 中,若x、y都是正整数且x能被y整除,则下列关系表达式值一定为真的是( )
A.x mod y=0 B.x<>y C.x mod 2=0 D.x/y=0
29.表达式 len(“Good Morning”)+2mod 3+int(3.9999)的值为( )
A.15 B.16
C.17 D.表达式运算出错
30.在Visual Basic中,将数字字串转换为数值的函数是( )
A.Str(x) B.Val(x) C.Abs(x) D.Int(x)
31.当a=“123”:b=val(a),则( )
A.a和b均是字符型变量
B.a是字符型变量,b是数值型变量
C.a是数值型变量,b是字符型变量
D.a和b均是数值型变量
32.表达式Int(198.555*100+0.5)/100的值为( )
A.198.56 B.199.6 C.198 D.200
33.VB表达式Int(﹣5.6)\2的值等于( )
A.﹣2 B.﹣3 C.2 D.3
34.表达式“37“+73的运算结果是( )
A.“110“ B.110 C.“37+73“ D.“3773“
35.下列能判断变量x是整数的条件表达式是( )
A.x Mod 2=1 B.x Mod 2=0 C.Int(x)=x D.Rnd(x)=x
36.VB表达式9\8/2+12Mod 3*3 的值是( )
A.0.5 B.7 C.3.5 D.5
37.设x是正数,下列能用于描述“x是否为偶数“的Visual Basic条件表达式是( )
A.x\2=0 B.x/2=0 C.x Mod 2=0 D.x=Abs(x)
38.在计算平均重量x时,结果中产生了8位小数,若要对x保留一位小数,并对第二位小数四舍五入,则下列表达式中正确的是( )
A.Int(x+0.5) B.Int(x*100+0.5)/100
C.Int(x*10)/10 D.Int(x*10+0.5)/10
39.设一个三位数是n,它的个位数字为a,十位数字为b,百位数字为c,则b的Visual Basic表达式是( )
A.n﹣a﹣c B.(n﹣a*100﹣c)/10
C.Int(n/10)﹣Int(n/100)*10 D.n﹣Int(n/100)﹣Int(n/10)
40.下列Visual Basic表达式中,值最大的是( )
A.3 Mod 7 B.3/7 C.3\7 D.7 Mod 3
41.在程序设计的过程中,有时需要将几个不同的字符串连接起来,这时需要用到字符串运算符号“+“.如:“ab“+“bc“的运算结果是“abbc“,那么“27“+“73“的运算结果是( )
A.“100“ B.False C.“27+73“ D.“2773“
42.在Visual Basic中,设x=4126,能得到其百位上数字“1”的正确表达式是( )
A.x Mod 100 B.x\100 Mod 10 C.x\100 Mod 100 D.x\10 Mod 10
43.下列运算结果为True的是( )
A.Not 3+1<=9 B.“123”+123=“123123”
C.0<=1<=﹣1 D.Int(4.3)And Int(2.3)=3
44.表达式Abs(﹣4)>3And Not 8>9的值是( )
A.T B.F C.9 D.4
45.在VB中,设a=2,b=3,表达式Not ((a+b)>=3)值是( )
A.1 B.﹣1 C.True D.False
46.在VB中,设a=2,b=3,表达式 Not (b﹣a>0)值是( )
A.1 B.﹣1 C.True D.False
47.在VB中,表达式Not(2*5<>11)的值为( )
A.10 B.11 C.True D.False
48.根据提供的《常用字符与ASCII码对照表》(部分),下列逻辑表达式的值为真的是( )
A.“one“<“two“ B.“thank“<“Thank“
C.“two“<“three“ D.“windows“<“window“
49.能正确表达“a≤1或a≥5”的VB逻辑表达式是( )
A.a<=1 或a>=5 B.a<=1,a>=5
C.a<=1 or a>=5 D.a<=1 and a>=5
2017年12月20日越崎中学的高中信息组卷
参考答案与试题解析
一.选择题(共49小题)
1.阅读如下程序段,下列选项的计算结果与该程序段运行结果相同的是( )
A.1/2﹣1/(2×3)+1/(3×4)﹣1/(4×5)+1/(5×6)
B.1/2﹣1/3+1/4﹣1/5+1/6
C.1/2+1/(2×3)+1/(3×4)+1/(4×5)+1/(5×6)
D.1/2+1/3+1/4+1/5+1/6
【分析】VB中有三种循环,只有理解每种循环执行过程,才能正确分析程序运行结果和正确在编程中使用.
【解答】当VB遇到题中程序的这种循环时,它首先条件的真假,如果条件为假,循环内部的语句就不会被执行,VB将继续执行关键字Loop后面的第一条语句.如果条件为真,循环里面的语句则会被一条一条地执行,直到遇到Loop语句.Loop语句告诉VB重复这个过程,只要Do While语句里的条件为真的话.
i=1时,第一次循环:s=0+1/(1*(1+1))=1/2;i=1+1=2;k=﹣1.
i=2时,第二次循环:s=1/2+(﹣1)(2*(2+1))=1/2﹣1(2*3);i=2+1=3;k=﹣(﹣1)=1.
i=3时,第三次循环:s=1/2﹣1/(2×3)+1/(3×4);i=3+1=4;k=﹣1.
i=4时,第四次循环:1/2﹣1/(2×3)+1/(3×4)﹣1/(4×5);i=4+1=5;k=1.
i=5时,第五次循环:1/2﹣1/(2×3)+1/(3×4)﹣1/(4×5)+1/(5×6);i=5+1=6;k=﹣1.
第五次循环执行后,i=6,不符合while后面的条件,因此循环结束.
故选:A.
2.下列VB程序段中循环语句( )
Dim x As Integer
x=1
Do While x
x=x﹣1
Loop.
A.语法错误 B.死循环
C.循环体执行一次 D.循环体一次都不执行
【分析】Do While循环语句的条件为x,而x的初始值为1,循环体为x=x﹣1.
【解答】第一次循环时,因x的值为1,可以进入循环内执行循环体x=x﹣1=0,即循环体执行后x的值变为0,不能满足循环条件,循环终止.因此,该循环体只被执行了一次.故选:D.
3.有如下VB程序段:
Dim a(1To 10)As Integer
Private Sub Command1_Click( )
a(1)=1:a(2)=1
For i=3To 10
a(i)=a(i﹣2)+a(i﹣1)
Next i
j=0:Sum=0
Do While Sum<=88
j=j+1
Sum=Sum+a(j)
Loop
End Sub
该程序段运行后变量j 的值为( )
A.10 B.9 C.8 D.7
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】a(3)=a(1)+a(2)=2,a(4)=3;a(5)=5;a(6)=8;a(7)=13;a(8)=21;a(9)=34;所以j的值为10,故选:A.
4.有如下一段VB程序:
k=﹣20
Do While k=0
k=k+1
Loop
以下说法正确的是( )
A.do while 语句执行了20次 B.do While 循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
【分析】DO While循环语句的一般格式:DO While(条件)循环体LOOP循环体内必须有能控制循环结束的变量或者表达式.
【解答】分析题中程序代码,变量k被赋值为﹣20,DO While 后的条件为k=0,当条件成立时才执行循环体语句,但是显然条件是不成立的,因此循环体语句一次也不执行.故选:C.
5.有如下VB程序段:
Dim a(0 To 10)As Integer,b(0 To 2)As Integer,i As Integer
For i=0 To 2
b(i)=0
Next i
a(0)=0:a(1)=1:a(2)=3:a(3)=2:a(4)=1:a(5)=2
a(6)=2:a(7)=3:a(8)=2:a(9)=1:a(10)=2
For i=1 To 10
a(i)=a(i)﹣a(i﹣1)
b(a(i))=b(a(i))+1
Next i
该程序段运行后,数组元素b(0)、b(1)、b(2)的值分别为( )
A.1 5 4 B.2 6 2 C.3 3 4 D.4 2 4
【分析】所谓数组,是无序的元素序列.若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标.数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式.这些无序排列的同类数据元素的集合称为数组.
【解答】分析程序循环语句执行情况如下:
第1遍:a(1)=a(1)﹣a(0)=1﹣0=1,b(a(1))=b(1)=b(1)+1=0+1=1;
第2遍:a(2)=a(2)﹣a(1)=3﹣1=2,b(a(2))=b(2)=b(2)+1=0+1=1;
第3遍:a(3)=a(3)﹣a(2)=2﹣2=0,b(a(3))=b(0)=b(0)+1=0+1=1;
第4遍:a(4)=a(4)﹣a(3)=1﹣0=1,b(a(4))=b(1)=b(1)+1=1+1=2;
第5遍:a(5)=a(5)﹣a(4)=2﹣1=1,b(a(5))=b(1)=b(1)+1=2+1=3;
第6遍:a(6)=a(6)﹣a(5)=2﹣1=1,b(a(6))=b(1)=b(1)+1=3+1=4;
第7遍:a(7)=a(7)﹣a(6)=3﹣1=2,b(a(7))=b(2)=b(2)+1=1+1=2;
第8遍:a(8)=a(8)﹣a(7)=2﹣2=0,b(a(8))=b(0)=b(0)+1=1+1=2;
第9遍:a(9)=a(9)﹣a(8)=1﹣0=1,b(a(9))=b(1)=b(1)+1=4+1=5;
第10遍:a(10)=a(10)﹣a(9)=2﹣1=1,b(a(10))=b(1)=b(1)+1=5+1=6;
最终b(0)=2,b(1)=6,b(2)=2.
故选:B.
6.如下VB程序段
For i=1To 2Step﹣0.1
Print i
Next i
运行后,循环体执行的次数是( )
A.一次也不执行 B.出错 C.2次 D.10次
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】当初值小于终值,步长大于0时或者初值大于终值,步长小于0时,执行循环体.反之
当初值小于终值,步长小于0时或者初值大于终值,步长大于0时,不执行循环体.
故选:A.
7.X=9
For i=3 To 9 Step 3
If (X/3)>=i Then X=X+3
Next i
For i=22 To 2 Step 2
If (X/2)>=i Then X=X+2
Next i
MsgBox (X+i)
该程序的运行结果是( )
A.39 B.15 C.34 D.18
【分析】该程序段使用了两个循环结构,并在循环结构内部嵌套了选择结构.
【解答】第一个For循环的执行过程:
初始值:X=9,i=3,步长为3;
一次循环:X/3=3>=i,因此,X=X+3=12,i=6;
二次循环:X/3=4<i,i=9;
三次循环:X/3=4<i,i=12,至次第一从此For循环结束,此时X=12;
第二个For循环的执行过程:
初始值:X=12,i=22,递减步长为2;
一次循环:X/2=6>=22为假,i=20;
二次循环:X/2=6>=20为假,i=18;
…直到i=6
X/2=6>=6为真,X=X+2=14,i=4;
X/2=7>=4为真,X=16,i=2;
X/2=8>=2为真,X=18,i=0,至此循环结束,此时X=18,i=0.结果为18.
8.有如下VB程序段:
x=0
For k=1To 5
a(k)=Int(Rnd*90+10)'a(k)为[10,100)区间的随机整数
If a(k) Mod 2=0 Then x=x+a(k)
Next k
此程序段中,变量x用来表示( )
A.5个随机数中偶数的个数 B.5个随机数中奇数的个数
C.5个随机数中所有偶数的和 D.5个随机数中所有奇数的和
【分析】通过观察可以看出本程序出现了For 语句和If语句,细心观察For语句循环几次,另外If语句的判断情况,随机函数的使用,即可解答.
For语句一般格式:
For 循环变量=初值 To 终值【Step 步长】
【语句块】
【Exit For】
【语句块】
Next【循环变量】
在For语句中要判断循环变量是否超出终值,如果未超出,则执行语句块,超出,则终止循环.
If语句的一般格式:
If<条件表达式>Then
<语句块1>
Else
<语句块2>
End If
该语句作用是当条件表达式值为True时,程序执行语句块1,当条件表达式值为False时,程序执行语句块2.
随机函数Rnd通常与Int函数配合使用,生产【a,b】区间范围内随机函数,可采用:Int((b﹣a+1)*Rnd+a),使用前,先用Randomize语句初始化随机生产器.
【解答】程序中,变量k用来控制循环次数和数组a(k)来接受随机产生的[10,100)区间的整数,If语句的条件表达式a(k) mod 2=0表示随机产生的数组中的元素是否是偶数,若表达式为True,则执行x=x+a(k),即累计随机整数中偶数的和.循环变量k的终值为5,所以变量x表示5个随机数中所有偶数的和,故选C.
9.如下VB程序段:
x=InputBox(“输入x的值:“)
If x>3Then
If x<=6Then y=2*x Else y=3*x
Else
y=4*x
End If
Print y
若x、y均是整型变量,程序运行并输入6,则y的值是( )
A.24 B.18 C.12 D.6
【分析】程序中使用到了if条件语句,格式为:
if 条件表达式 then
语句1
else
语句2
endif
当条件表达式的值为true时,执行语句1,否则执行语句2.
当if语句书写在一行的时候,不用endif.
【解答】程序运行并输入6,即x=6
x>3,条件满足,执行If x<=6Then y=2*x Else y=3*x,这是一个嵌套的if语句,x<=6为true,执行y=2*x,即y=12.
故选:C.
10.如下VB程序段
Private Sub Form1_Click( )
Dim a As Integer
Dim b as Integer
a=5
If a>5Then
b=2*a
Else
b=a*a+1
End If
Print b
End Sub
运行结果是( )
A.26 B.25 C.10 D.5
【分析】If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
…
根据If语句的用法分析哪组数据能测试所有的情况.
【解答】5>5,为假,执行else,b=a*a+1=26,故选:A.
11.下面程序段用于计算分段函数y=的值,不正确的是( )
A. B. C. D.
【分析】VB中选择结构有:
结构1:if 条件 then..语句1..end if,表示当条件值为逻辑值true时,程序执行then到end if 之间的语句1,条件值为逻辑值false时,没有语句执行,到end if后面执行程序.
结构2:if…条件 then 语句1…else 语句2…end if,表示当条件值为逻辑值true时,程序执行then到else之间的语句1,条件值为逻辑值false时,程序执行else到end if之间的语句2.
结构3:if…条件1 then …语句1 else if 条件2 then.语句2…else…语句3..end if,表示当条件1值为逻辑值true时,程序执行第1个then到elseif 之间的语句1,条件1值为逻辑值false时,再判断条件2的值,当条件2值为逻辑值true时,程序执行第2个then到else之间的语句2,条件2值为逻辑值false时,程序执行第2个else到end if之间的语句3.
【解答】A、程序段表示:第1个条件x<0值为true时,执行y=0,值为false时(即x>=0),再判断条件x<1,即此时的条件是0<=x<1,其值为true时,执行y=1,后面的语句else表示:如果前面提供的这些条件(即x<0和0<=x<1)值都为false,即x>=1时,执行y=x,可以计算分段函数的值,故此程序是正确的;
B、程序段表示:第1个条件x<0值为true时,执行y=0,值为false时(即x>=0),再利用一个if选择结构把x>=0分成两部分x<1和x>=1,其中的判断条件x<1的值为true时,执行y=1,即得到0<=x<1时的y 的结果,如果x<1条件值为false,即x>=1时,执行y=x,可以计算分段函数的值,故此程序是正确的;
C、程序段:执行第1个if语句,当条件x<0值为true时,执行y=0,再执行第2个if语句,当条件x<1值为true时,执行y=1,此条件包括了x<0的情况,这样就使得x<0时,y的值是1而不是0,与分段函数的值不符合,故此程序是错误的;
D、程序段:执行第1个if语句,当条件x<0值为true时,执行y=0,再执行第2个if语句,当条件x>=0 and x<1(就是0<=x<1)值为true时,执行y=1,再执行第3个if语句,当条件x>=1值为true,执行y=x 语句,这三个if语句的条件值没有重合的部分,可以计算分段函数的值,故此程序是正确的;
故选:C.
12.有如下VB程序段:
Dim a As Integer,b As Integer,c As Integer,y As Integer
a=3:b=4:c=4
If a<=b And c<=a Then
y=a+b
ElseIf a<=b or b<=c Then
y=b+c
ElseIf b=c Then
y=a mod c
Else
y=a+b+c
End If
该程序段运行之后,变量y的值为( )
A.3 B.7 C.8 D.11
【分析】if语句有三种基本形式,一种是单分支结构,一种是双分支结构,还有一种是多分支经构.单分支结构,其基本语法结构为:if(条件)then语句 endif,解释为如果条件成立就执行语句,否则什么也不干,就执行下面的语旬.双分支结构,其基本语法结构为if(条件)then语句一else语句二endif,解释为如果条件成立则执行语句一内容,如果不成立就执行语句二内容.多分支结构相对来说复杂一些,其基本结构为if(条件)then语句一else if(条件)then 语句二 else if(条件)语句三…endif.
【解答】由程序段中If语句分析可知:程序中共有三个判断条件生成四个分支语句,按先后顺序判断满足条件则执行该分支,因为初值:a=3,b=4,c=4可知第一分支条件c<=a不满足,第二分支条件a<=b,b<=c满足,则执行第二分支y=b+c=4+4=8.并结束分支语句执行,其余分支不再判断.
故选:C.
13.下列可作为变量名的是( )
A.3D B.X_Y C.X+Y D.And
【分析】VB变量的命名规则:(1)变量必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,且第一个字符必须是英文字母或者汉字,最后一个字符可以是类型说明符,变量名中不能有空格.(2)变量名不能包含+﹣*/!@#¥?小数点等字符,且长度不能超过255.(3)不能用VB的保留字(例如End、Len、Sub等)作为变量名,但可以把保留字嵌入变量名中,同时变量名也不能是末尾带有说明符的保留字.(4)VB不区分变量名和其他名字中字母的大小写,但习惯上,符号常量一般用大写字母定义.
【解答】A.变量的定义不能以数字开始.
B.X_Y以字母开头,由字母和下划线组成,符合变量命名规则.
C.X+Y中包含字符“+“,不符合变量命名规则.
D.And为VB的保留字,不能作为变量名.
故选:B.
14.在VB中,如果要定义变量p用于存储年级学生总数,那么变量p的数据类型是( )
A.String B.Integer C.Boolean D.Date
【分析】String是字符串类型,Integer是整型类型,Boolean为布尔类型,Date定义的是日期.
【解答】变量p用于存储年级学生总数,其值为整数,因此选整型类型.
故选:B.
15.下列可以作为VB变量名的是( )
A.Sub B.my_cat C.x@y D.3Q
【分析】VB变量的命名规则:
(1)变量必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,且第一个字符必须是英文字母或者汉字,最后一个字符可以是类型说明符,变量名中不能有空格.
(2)变量名不能包含+﹣*/!@#¥?小数点等字符,且长度不能超过255.
(3)不能用VB的保留字(例如End、Len、Sub等)作为变量名,但可以把保留字嵌入变量名中,同时变量名也不能是末尾带有说明符的保留字.
(4)VB不区分变量名和其他名字中字母的大小写,但习惯上,符号常量一般用大写字母定义.
【解答】A项Sub为VB的保留关键字,不能作为变量名.C项中含有特殊字符,不符合变量的命名规则.D项以数字开头,也不符合变量命名规则.B项由字母开头,由字母和下划线组成,且不包含特殊字符,符合命名规则.
故选:B.
16.下列可以作为 Visual Basic 的变量名的是( )
A.2Loveme B.Love_me C.Love@#me D.While
【分析】VB中变量名命名规则:
1 变量必须是以字母、汉字开头并且以字母、汉字、数字、下划线组成的字符串.最后一个字符可以是类型说明符,变量名中不能有空格.
2 变量名不能包含+﹣*/!@#¥?小数点 等字符,且长度不能超过255.
3 不能用 Visual Basic 的保留字(例如End、Len、Sub等)作为变量名,但可以把保留字嵌入变量名中,同时变量名也不能是末尾带有说明符的保留字.
4 Visual Basic 不区分变量名和其他名字中字母的大小写,但习惯上,符号常量一般用大写字母定义.
【解答】2Loveme以数字开头,Love@#me含有非常字符、While是VB中保留字,都不能作为VB变量使用;Love_me完全符合VB命名规则.
故选:B.
17.某商业公司2015年第一季度销售某产品29581件,而且保持后一季度销售额比前一季度增长5%的发展势头.小王想用Sum变量来存储公司2015年该产品总销售额,则Sum变量的数据类型应被定义为( )
A.Integer B.Long C.Single D.String
【分析】Integer代表整型类型,表示范围为﹣32768~32767(有符号),0~65536(无符号).
Long为长整型类型,表示范围为﹣2147483648~2147483647.
String为字符串类型,用来表示字符串.
Single为单精度浮点类型,表示浮点数.
【解答】题干中要求变量sun存储的是整数,应选择Integer或Long.而2015年第一季度的销售额已经高达29581件,且后一季度的增长额比前一季度增长5%,Integer的表示范围为0~65536,而预计该公司整年的销售额很容易超过65536,因此Long型更适用.
故选:B.
18.在VB中,下列选项属于字符串型数据的是( )
A.2356 B.“BX277“ C.BX277 D.2014﹣5﹣28
【分析】String为字符串类型,用来定义字符串变量.String文本必须放入引号(““)内,如果需要包括引号作为字符串中的字符,需作用两个连续的引号(““).
【解答】AC两项为整型类型数据;D项为Date数据;B项用引号括起来的为字符串型数据.
故选:B.
19.在Visual Basic中,用变量code存储学生的借阅卡编码(如“CH20130036”),则变量code的数据类型应说明为( )
A.Integer B.Single C.String D.Date
【分析】Integer为整形类型,用来存储整数;Single为单精度浮点类型,表示浮点数;String为字符串类型,用来表示字符串;Date用来存储日期和时间.
【解答】从题干中的要求来看,存储的数据为“CH20130036“,其为字符串类型,可用双引号括起来.
故选:C.
20.能随机产生一个(10,100)之间整数的表达式是( )
A.Int(Rnd*89)+11 B.Int(Rnd*89)+10 C.Int(Rnd*90)+11 D.Int(Rnd*90)+10
【分析】Rnd 函数返回小于 1 但大于或等于 0 的值,int(x)函数是取不大于x的最大整数.
【解答】A.Int(Rnd*89)+11产生[11,100)的整数;B.Int(Rnd*89)+10产生[10,99)的整数;C.Int(Rnd*90)+11产生[11,101)的整数;D.Int(Rnd*90)+10产生[10,100)的整数;(10,100)之间整数,不包含10和100,故选:A.
21.在VB中,表达式Mid(“程序设计“,2)的结果是( )
A.程序 B.序 C.序设计 D.程
【分析】在VB中,Mid(a,b,c) 从a中的第b个开始,取c个字符的子串.
【解答】Mid(a,b,c),当C缺省时,表示取从b到末尾的所有字符,所以表达式Mid(“程序设计“,2)=“序设计”,故选:C.
22.在VB中,表达式Mid(“VB程序设计“,3,2)的结果是( )
A.VB B.B程 C.程序 D.设计
【分析】在VB中,Mid(a,b,c) 从a中的第b个开始,取c个字符的子串.
【解答】表达式Mid(“VB程序设计“,3,2)=“程序”,故选:C.
23.表达式:Not(2*3<Len(“basic“))的值是( )
A.False B.True C.0 D.﹣1
【分析】And:条件都为“true”,结果为“true”.
Or:只要有一个条件为“true”,结果为“true”.
Not:取反.
【解答】Len(“basic“)的值为5,.
2*3<Len(“basic“)的值为false,
所以Not(2*3<Len(“basic“))的值为true.
故选:B.
24.在VB中,表达式Left(“Basic“&“程序设计“,6)的结果是( )
A.序设计 B.Basic C.Basic程 D.ic程序设计
【分析】left( )返回其中包含字符串中从左边算起指定数量的字符.
【解答】&表示连接的意思,所以Left(“Basic“&“程序设计“,6)=“Basic程”,故选:C.
25.在VB中,若s是一个字符串变量,其值为“H“,则表达式Chr(Asc(s)+3)的结果是( )
A.“E“ B.“H“ C.“J“ D.“K“
【分析】Asc 函数返回一个字符的ASCII码值(整型数) chr( )函数是将一个ASCII码转为相应的字符.
【解答】表达式Asc(s)+3表示给,H的ASCII码+3,也就是K的ASCII码,所以chr(Asc(s)+3)=“K”,故选:D.
26.已知一个直角三角形的两个直角边为a和b,则求斜边的表达式可以写成( )
A.Sqrt(a*a+b*b) B.Sqr(a*a+b*b) C.Abs(a*a+b*b) D.Trunc(a*a+b*b)
【分析】Sqrt不是VB的函数,在VB中sqr求平方根,Abs求绝对值函数.
【解答】直角三角形的两个直角边为a和b,斜边c,则,c*c=a*a+b*b,所以斜边表达式为:Sqr(a*a+b*b),故选:B.
27.能得到一个大于等于20且小于50随机整数的VB表达式是( )
A.Int(rnd*50)﹣20 B.Int(rnd*30+20) C.Int(rnd*31+20) D.Int(rnd*30)+1
【分析】Rnd 函数返回小于 1 但大于或等于 0 的值,int(x)函数是取不大于x的最大整数.
【解答】A.Int(rnd*50)﹣20最小值是﹣20,最大值小于10;
B.Int(rnd*30+20)最小值是20,最大值小于50;
C.Int(rnd*31+20)最小值是20,最大值小于51;
D.Int(rnd*30)+1 最小值是1,最大值小于31.故选:B.
28.在Visual Basic 中,若x、y都是正整数且x能被y整除,则下列关系表达式值一定为真的是( )
A.x mod y=0 B.x<>y C.x mod 2=0 D.x/y=0
【分析】x能被y整除,说明x除以y没有余数.
【解答】当x能被y整除时:A.x mod y=0一定为真;B.x<>y,x也可能等于y;C.x mod 2=0,x不一定是偶数;D.x/y=0 不一定为真.故选:A.
29.表达式 len(“Good Morning”)+2mod 3+int(3.9999)的值为( )
A.15 B.16
C.17 D.表达式运算出错
【分析】len( )求字符串长度,mod是求余函数,int(x)函数是取不大于x的最大整数.
【解答】len(“Good Morning”)+2mod 3+int(3.9999)=12+2+3=17.
故选:C.
30.在Visual Basic中,将数字字串转换为数值的函数是( )
A.Str(x) B.Val(x) C.Abs(x) D.Int(x)
【分析】Str(X) 可以将数字型变量或常量改变成字符型变量或常量;
Val返回包含于字符串内的数字,字符串中任一个适当类型的数值;
Abs(X) 返回数值X的绝对值;
Int(X) 返回X的整数部分,若X为负数,则返回第一个小于或等于X的整数.
【解答】B项Val可以将数字字符串转换为数值类型.Str返回字符串类型,Abs求绝对值,Int返回数字的整数部分.
故选:B.
31.当a=“123”:b=val(a),则( )
A.a和b均是字符型变量
B.a是字符型变量,b是数值型变量
C.a是数值型变量,b是字符型变量
D.a和b均是数值型变量
【分析】VB中有很多常用的标准函数,熟练掌握它们的功能是编程解决问题的基础.
【解答】VAL(字符串表达式)将数字字符串换成数值.
当a=“123”时,表明这时a不是数值,而是字符串(在双引号里面);b=val(a)=val(“123“)=123,表达式求出b的值是数值.
所以判断出:a是字符型变量,b是数值型变量.
故选:B.
32.表达式Int(198.555*100+0.5)/100的值为( )
A.198.56 B.199.6 C.198 D.200
【分析】int(x)函数是取不大于x的最大整数.
【解答】198.555*100+0.5=19856,Int(198.555*100+0.5)=19856,表达式Int(198.555*100+0.5)/100=198.56.
故选:A.
33.VB表达式Int(﹣5.6)\2的值等于( )
A.﹣2 B.﹣3 C.2 D.3
【分析】Int函数返回小于等于参数的第一个整数.
【解答】Int(﹣5.6)=﹣6.所以Int(﹣5.6)\2=﹣3.
故选:B.
34.表达式“37“+73的运算结果是( )
A.“110“ B.110 C.“37+73“ D.“3773“
【分析】+用在数值变量之间,表示数值相加,用在字符串之间,表示字符串连接.
【解答】“37“+73中的符号是连接符,“37“+73的值为“3773”,故选:D.
35.下列能判断变量x是整数的条件表达式是( )
A.x Mod 2=1 B.x Mod 2=0 C.Int(x)=x D.Rnd(x)=x
【分析】Rnd 函数返回小于 1 但大于或等于 0 的值,mod取余函数,int(x)函数是取不大于x的最大整数.
【解答】如果Int(x)=x,说明x是整数.
故选:C.
36.VB表达式9\8/2+12Mod 3*3 的值是( )
A.0.5 B.7 C.3.5 D.5
【分析】在VB算术运算中,算术运算符有^、+、﹣、*、/、\、mod,^,它们的运算优先级顺序是先^,再*、/、\、其次mod,再次+、﹣,同一级的位置在前面的先算.
【解答】VB表达式9\8/2+12Mod 3*3,这里按优先级先分别算出+前后式子的结果,再把二者加起来,先算9\8/2,其中9\8=1(9除以8得1.125,取商的整数部分1)1/2=0.5,再算12Mod 3*3,其中按顺序先算3*3=9,再算12mod 9=3(12除以9得数为1,余数为3),最后算0.5+3=3.5
故选:C.
37.设x是正数,下列能用于描述“x是否为偶数“的Visual Basic条件表达式是( )
A.x\2=0 B.x/2=0 C.x Mod 2=0 D.x=Abs(x)
【分析】“\“运算符用来对两个数作除法并返回一个整数,mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数,Abs(x)用来求数的绝对值.
【解答】A和B只能说明x为0,C表示对X对2求余,如果为0说明是偶数,D求绝对值.故选:C.
38.在计算平均重量x时,结果中产生了8位小数,若要对x保留一位小数,并对第二位小数四舍五入,则下列表达式中正确的是( )
A.Int(x+0.5) B.Int(x*100+0.5)/100
C.Int(x*10)/10 D.Int(x*10+0.5)/10
【分析】通过计算机进行四舍五入的算法是,首先将其数值乘以10/100/1000(由保留的小数位数决定)并加上0.5,取整后再除于10还原小数点位置.
【解答】题中要求保留一位小数,因此算法是Int(x*10+0.5)/10.
故选:D.
39.设一个三位数是n,它的个位数字为a,十位数字为b,百位数字为c,则b的Visual Basic表达式是( )
A.n﹣a﹣c B.(n﹣a*100﹣c)/10
C.Int(n/10)﹣Int(n/100)*10 D.n﹣Int(n/100)﹣Int(n/10)
【分析】求个位数、十位数及百位数的算法是:
个位数 n mod 10
十位数 Int(n*0.1)mod 10
百位数 Int(n*0.01)mod 10
但也可通过其它方法实现.
【解答】本题的选项中,没有通过求十位数的普通算法进行计算,C项首先求得百位和十位组成的数字a,再求出百位数字并乘以10得出b,再用a﹣b求出百位数字.其做法也实现了求出百位数了的目的,其它选项无法得出期待结果.
故选:C.
40.下列Visual Basic表达式中,值最大的是( )
A.3 Mod 7 B.3/7 C.3\7 D.7 Mod 3
【分析】VB中“\”运算符 用来对两个数作除法并返回一个整数,mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数.
【解答】A.3 Mod 7=3;
B.3/7=0.43;
C.3\7=0;
D.7 Mod 3=1.
故选:A.
41.在程序设计的过程中,有时需要将几个不同的字符串连接起来,这时需要用到字符串运算符号“+“.如:“ab“+“bc“的运算结果是“abbc“,那么“27“+“73“的运算结果是( )
A.“100“ B.False C.“27+73“ D.“2773“
【分析】字符串相加就是将字符串拼接起来.
【解答】“27“+“73“=“2773”,故选:D.
42.在Visual Basic中,设x=4126,能得到其百位上数字“1”的正确表达式是( )
A.x Mod 100 B.x\100 Mod 10 C.x\100 Mod 100 D.x\10 Mod 10
【分析】VB中,mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数,整除使用“\“表示.
【解答】A.x Mod 100=26;B.x\100 Mod 10=41 Mod 10=1;C.x\100 Mod 100=41 Mod 10=41;D.x\10 Mod 10=412 Mod 10=2.
故选:B.
43.下列运算结果为True的是( )
A.Not 3+1<=9 B.“123”+123=“123123”
C.0<=1<=﹣1 D.Int(4.3)And Int(2.3)=3
【分析】在VB中False的值为0,True的值为﹣1.
【解答】False的值为0,True的值为﹣1,“+”进行数字字符串与数字之间的连接只会进行算术运算,int的功能为取不大于该数的最大整数.
A:3+1<=9 为真,所以Not 3+1<=9为假,;B:“123”+123=“123123”值为假;C:0<=1为真,所以C为真;D:And右边的是假,所以整个值为假.
故选:C.
44.表达式Abs(﹣4)>3And Not 8>9的值是( )
A.T B.F C.9 D.4
【分析】该表达式中包含了关系运算符和逻辑运算符.关系运算符用于对两个表达式的值进行比较,返回逻辑值TRUE或FALSE.关系运算符优先级高于逻辑运算符.而逻辑运算符Not的优先级又高于And.Not为非运算,例如:Not 0=1,Not 1=0;And为与运算,例如:1 And 1=T,0 And 0=F,1 And 0=F.
【解答】该表达式的计算顺序为:((Abs(﹣4))>3)And (Not (8>9))=(4>3)And (Not 0)=1 and 1=T.故选:A.
45.在VB中,设a=2,b=3,表达式Not ((a+b)>=3)值是( )
A.1 B.﹣1 C.True D.False
【分析】And:条件都为“true”,结果为“true”.
Or:只要有一个条件为“true”,结果为“true”.
Not:取反.
【解答】a=2,b=3
(a+b)>=3为true,所以Not ((a+b)>=3)的值是false.
故选:D.
46.在VB中,设a=2,b=3,表达式 Not (b﹣a>0)值是( )
A.1 B.﹣1 C.True D.False
【分析】And:条件都为“true”,结果为“true”.
Or:只要有一个条件为“true”,结果为“true”.
Not:取反.
【解答】a=2,b=3
b﹣a>0 为true,所以Not (b﹣a>0)的值是false.
故选:D.
47.在VB中,表达式Not(2*5<>11)的值为( )
A.10 B.11 C.True D.False
【分析】And:条件都为“true”,结果为“true”.
Or:只要有一个条件为“true”,结果为“true”.
Not:取反.
【解答】2*5<>11为true.Not(2*5<>11)的值为false.
故选:D.
48.根据提供的《常用字符与ASCII码对照表》(部分),下列逻辑表达式的值为真的是( )
A.“one“<“two“ B.“thank“<“Thank“
C.“two“<“three“ D.“windows“<“window“
【分析】从左向右逐个比较,只要有了大小区别,立刻停止,给出答案.比如:123cd 要大于 123ab.前面的123是相同的,需要继续向右,到了c发现大于a,就立刻停止,给出结论.而后面的d和b没有参与比较过程.
【解答】A选项:“n”<“t”,所以“one”<“two.
B选项:“t”>“T”,所以“thank“>“Thank“
C选项:“w”>“h”,所以“two“>“three“
故选:A.
49.能正确表达“a≤1或a≥5”的VB逻辑表达式是( )
A.a<=1 或a>=5 B.a<=1,a>=5
C.a<=1 or a>=5 D.a<=1 and a>=5
【分析】常用的逻辑运算符:
And 运算符,如果两个表达式的值都是 True,则结果是 True;
Not 运算符,如果表达是为True,则结果为False,如果表达式为False,则结果为True;
Or 运算符,如果两个表达式中至少有一个为True,则结果为True.
【解答】VB中的或用or表示,所以“a≤1或a≥5”的VB逻辑表达式a<=1 or a>=5,故选:C.
第1页(共1页)
高中信息组卷4
一.选择题(共60小题)
1.某宾馆的房间号由5位字符组成(例郊.x0823表示A幢8层23号房间)末位数字为奇数时表示房间朝南,为偶数时表示房间朝北,字符串变量s中存储了一个房间号,下列能正确判断房间朝南的VB表达式是( )
A.Val(mid(s,5,1))mod 2=1 B.Val(Mid(s,5,1))mod 2=0
C.Val=1 D.Val =0
2.设一个三位数是n,它的个位数字为a,十位数字为b,百位数字为c,则b的Visual Basic表达式是( )
A.n﹣a﹣c B.(n﹣a*100﹣c)/10
C.Int(n/10)﹣Int(n/100)*10 D.n﹣Int(n/100)﹣Int(n/10)
3.在 Visual Basic 中,表达式 Mid(“20161111“,5,4)的值是( )
A.“2016“ B.“0161“ C.“1611“ D.“1111“
4.编号为1到13的纸牌顺时针排成一圈,现从编号为1的牌从数字1开始顺时针数下去,1、2、3、…、20、21、…,一圈又一圈,则当数到数字N时,所在纸牌的编号为( )
A.N Mod 13 B.(N+1)Mod 14 C.1+(N﹣1)Mod 12 D.1+(N﹣1)Mod 13
5.下列VB表达式的值等于34的是( )
A.Abs(﹣35)+1 B.Len(″33″)+1
C.Mid(″1234567″,3,4) D.Int(33.7)+1
6.化学老师安排小王设计一个简单的VB程序,用来记录并统计参加比赛辅导的40位同学的模考成绩.小王想定义一个包含40个整数的一维数组变量来记录同学成绩,下列语句最正确的是( )
A.Dim score(﹣20to 19)As Integer
B.Dim score(0to 40)As Integer
C.Dim score(1,40)As Integer
D.Dim score(40to 1)As Integer
7.小明观察字符“Baby”的内码如图所示,
则随机产生一个大写英文字母的VB表达式是( )
A.Chr(Int(Rnd( )*25+41)) B.Chr(Int(Rnd( )*26+41))
C.Chr(Int(Rnd( )*25+65)) D.Chr(Int(Rnd( )*26+65))
8.在VisualBasic中,如果要定义变量p用于存储身份证号码,那么变量p的数据类型是( )
A.String B.Integer
C.Boolean D.Date E.Boolean
9.已知字母“A”的ASCII码为65,则Visual Basic表达式结果为数值131的是( )
A.Asc(“A+B”) B.Chr(65)+Chr(66) C.“13”+“1” D.Abs(69﹣200)
10.假设b是布尔型变量,t是整数型变量,则下列赋值语句中正确的是( )
A.t=“good“ B.b=“True” C.b=#True# D.b=3<4
11.表达式 len(“Good Morning”)+2mod 3+int(3.9999)的值为( )
A.15 B.16
C.17 D.表达式运算出错
12.将两个数a=9,b=7交换,使a=7,b=9,下面语句正确一组是( )
A.a=b:b=a B.b=a:a=b C.c=b:b=a:a=c D.a=c:c=b:b=a
13.用变量x表示图中坐标轴上阴影部分的逻辑表达式是( )
A.(x<=a) and (x>=bor x<=c)
B.not x>a and x>b and x<c
C.x<=a orx>=b orx<=c
D.not (x>a and x<b) and x<=c
14.X=9
For i=3 To 9 Step 3
If (X/3)>=i Then X=X+3
Next i
For i=22 To 2 Step 2
If (X/2)>=i Then X=X+2
Next i
MsgBox (X+i)
该程序的运行结果是( )
A.39 B.15 C.34 D.18
15.下列VB表达式中:①Mid(“2015.10.1“,3,2)②Label1.caption ③Chr(x)④Val(“3.14“)值为字符串型的是( )
A.①②③④ B.①②③ C.①③ D.①③④
16.在Visual Basic中,语句Dim x As Single所说明的变量x属于( )
A.整数型 B.逻辑型 C.字符串型 D.单精度实数型
17.设计人口普查程序,用一个变量表示海南省的人口总数,这个变量的类型应是( )
A.整型 B.实型 C.长整型 D.双精度型
18.已知a=3.69,b=﹣6,则VB表达式int(﹣a)+b mod 5的值为( )
A.﹣3 B.﹣4 C.﹣5 D.﹣6
19.Private Sub Command1_Click( )
Dim a As String
Dim c As String
a=“zhejiangxiaoshi“
c=Mid(a,Len(a)\2+2,7)
Text1.Text=c
End Sub
该程序段运行后,在文本框Text1上显示的是( )
A.“xiaoshi“ B.“zhejiang“ C.zhejiang D.xiaoshi
20.在Visual Basic中,定义一个存储身份证号码(如“33071919801201088X”)的变量,则下列说明语句正确的是( )
A.Dim myID As String B.Dim 3307_ID As String
C.Const myID As Single D.Dim 3307_ID As Single
21.字符串变量x的值为“student”,要从中取出子串“den”,合适的VB函数表达式是( )
A.Val(x,4,3 ) B.Str(x,4,3) C.copy(x,4,3) D.Mid(x,4,3)
22.小明在VB中定义了以下函数,功能是求a和b的最大公约数.
Function gcd(a As Integer,b A s Integer)As Integer
Do While b>0
c=a Mod b
a=b
b=c
Loop
End Function
调试中发现计算结果一直是0.经过仔细观察与分析,发现错误的原因是( )
A.函数名有错 B.变量c没有定义
C.函数没有返回值 D.b>0应该改为b>=0
23.某查找算法的部分VB代码如下:
t=False
i=0
Do While i<7And t=False
i=i+1
If a(i)=Key Then t=True
Loop
If t=False Then i=0
数组元素a(1)到a(7)的数据依次为“3,5,1,5,8,9,5”当变量key值为5时,运用该算法处理后,变量i的值是( )
A.0 B.2 C.4 D.7
24.下列VB循环能正常结束的是( )
A. B. C. D.
25.下列关于循环结构的叙述,正确的是( )
A.For与Next语句必须成对使用,有一个For必有一个Next与之对应
B.循环体执行次数确定的情况,只能用For…Next循环
C.For…Next循环只能与For…Next嵌套使用,而不能与Do…Loop嵌套使用
D.在For…Next循环语句中,终值必须大于初值
26.在VB中,若a是一个整型数组,a(1)、…、a(4)分别为130、45、278、59,则执行下列程序段后,数组a中各元素的值为( )
For i=1To 3
For j=i+1To 4
If a(i)>a(j) Then
a(0)=a(i)
a(i)=a(j)
a(j)=a(0)
End If
Next j
Next i.
A.45 59 130 278 B.130 278 45 59
C.278 130 59 45 D.59 45 278 130
27.下列VB代码段的功能是计算( )
a=10
s=0
Do
s=s+a*a*a
a=a﹣1
Loop Until a<=0
Print s.
A.13+23+33+…+103的值 B.1!+2!+3!…+10!的值
C.(1+2+3+…+10)3的值 D.10个103的和
28.下列VB程序段运行后,变量a、b的值为( )
a=1
b=2
Do While a<b
b=a*b
a=2*a
Loop
Print a,b.
A.1 2 B.2 2 C.4 4 D.2 4
29.如下VB程序段
s=0
For i=0To 9
s=s+i
Next i
执行后,变量s的值是( )
A.10 B.9 C.45 D.55
30.如下VB程序段
s=0
For i=2To 4Step﹣2
s=s+i
Next i
运行程序后,变量s,i的值是( )
A.0,0 B.2,4 C.0,2 D.0,4
31.将下列程序段中的Do While语句改写成For语句,正确的是( )
A. B. C. D.
32.如下VB程序段
x=0
Do While x<50
x=(x+2)*(x+3)
Loop
执行后,x的值为( )
A.0 B.72 C.50 D.168
33.如下VB程序段
n=0
For i=1To 3
n=n+i
Next i
循环结束后,变量i的值为( )
A.4 B.3 C.6 D.1
34.如下程序段
a=2
b=1
Do While a>=b
b=a*b
a=2*a
Loop
执行后,a、b的值分别为( )
A.4、2 B.16、64 C.8、8 D.2、1
35.如下VB程序段
For i=1To 5Step 10
Print i
Next i
运行后,循环体语句执行的次数为( )
A.1 B.5 C.10 D.2
36.如下VB程序段
s=0
t=1
For i=1To 10
t=t*i
s=s+1/t
Next i
变量s的值可表示为( )
A.1/1+1/2+1/3+…1/10
B.1/1*1/2*1/3*…1/10
C.1/1!+1/2!+1/3!…1/10!
D.1/1+1/2*1/3+1/3*1/4+…1/9*1/10
37.如下VB程序段
Dim i As Single
For i=1To 2Step﹣0.1
Print i
Next i
运行后,循环体执行的次数是( )
A.0次 B.无法确定 C.2次 D.10次
38.如下VB程序段中,数组a中a(1)至a(5)依次存储的是8、1、25、41、11.
m=a(1)
For i=2To 5
a(i﹣1)=a(i)
Next i
a(5)=m
运行后,数组a中a(1)至a(5)的值依次是( )
A.11 41 25 1 8 B.1 25 41 11 8 C.11 8 1 25 41 D.1 8 11 25 41
39.下列VB代码段:
y=2
x=18
Do While x>=16
x=x﹣y
y=y+2
Loop
Print x
执行后,输出结果为( )
A.12 B.14 C.16 D.18
40.在VB中,若i、m、n均是整型变量,则下列代码段的输出结果是( )
m=0
n=0
For i=1To 2
m=m+1
For j=1To 3
n=n+1
Next j
Next i
Print m,n.
A.2 5 B.2 6 C.6 2 D.5 2
41.如下程序段
s=0
For i=1To 10
t=2*i﹣1
s=s+t
Next i
Print s
执行后,屏幕将输出( )
A.55 B.100 C.110 D.210
42.有如下VB程序段:
n=Val(Text1.Text)
st=“”
For i=1To n
For j=1To i Step 2
st=st+“☆”
Next j
List1.AddItem st
Next i
该程序段运行时,在文本框Text1中输入5,则列表框输出的内容为( )
A. B. C. D.
43.阅读如下程序段,该程序运地后数组元素a(5)的值为( )
A.5 B.10 C.11 D.15
44.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现( )
A. B. C. D.
45.下面四个程序段中,运行后变量a的值最小的是( )
A. B. C. D.
46.某Visual Basic程序段如下:
Dim s As String,t As Integer,i As Integer
s=“Information Technology“
t=4
For i=3To 1Step﹣1
s=Mid(s,i,t)
t=t﹣1
Next i
Text1.Text=s
该程序段运行后,文本框Text1中显示的内容为( )
A.form B.orm C.or D.for
47.有如下Visual Basic 程序,该程序通过For循环计算sum的值,下列表达式的值与sum相等的是( )
A.1+1/2+2/3+3/4+4/5 B.1+1/2+2/3+3/4
C.1/2+2/3+3/4+4/5 D.1+1/2+1/3+1/4+1/5
48.某VB程序代码如下:
n=73
s=1
Do While n>1
s=s+n/4
n=n/4
Loop
执行该程序段后,变量s的值是( )
A.19 B.20 C.23 D.24
49.有如下Visal Basic程序段:
s=1
For i=20 To ___ Step﹣2
s=s+i
Next i
若要使语句s=s+i执行5次,则可循环变量i终值应为( )
A.12 B.11 C.10 D.9
50.有如下VB程序段:
x=﹣4
Do While x<0
x=x+3
Loop
该程序运行后,变量x的值是( )
A.5 B.2 C.﹣1 D.﹣4
51.有如下程序段,运行后A(10)=( )
Dim a(30)As Integer
a(1)=1
a(2)=1
i=2
Do While i<10
i=i+1
a(i)=a(i﹣1)+a(i﹣2)
Loop.
A.0 B.34 C.55 D.空
52.下列Visual Basic程序段运行后,变量s的值等于55的是( )
A.s=0:i=1
Do While i<=10
s=s+i
i=i+1
Loop
B.s=0:i=1
Do While i<=10
i=i+1
s=s+i
Loop
C.s=0
For i=1 To 10
s=i
Next i
D.s=0
For i=1 To 10
i=i+s
Next i
53.有如下Visual Basic程序段:
Dim a(1To 4)As Integer
a(1)=1
For i=2To 3
a(i)=2*a(i﹣1)+1
Next i
该程序段运行后,数组元素a(4)的值为( )
A.15 B.7 C.3 D.0
54.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息.发生”下标越界”错误时所执行的语句是( )
Private Sub Command1_Click( )
Dim a(0To 5)As Integer
Dim i As Integer'①
a(0)=1'②
For i=1To 5
a(i)=2*a(i﹣1)+1'③
Next i
Text1.Text=Str(a(6))'④
End Sub.
A.① B.② C.③ D.④
55.有如下Visual Basic程序段:
k=1
For j=2To 100
If a(j)>a(k) Then k=j
Next j
x=a(k)
该程序段执行后,变量x中存储的是( )
A.a(1)至a(100)中的最小值 B.a(1)至a(100)中的最大值
C.a(2)至a(100)中的最小值 D.a(2)至a(100)中的最大值
56.有如下Visual Basic程序段:
Dim x As Integer
x=2
Do While x<20
x=x∧2
Loop
运行这段程序段,循环体的循环次数为( )
A.0 B.2 C.3 D.4
57.【加试题】有如下 VB 程序:Private Sub Command1_Click( )
Dim s1As String,s2As String,i As Integer,ch As String s1=Text1.Text
For i=1To Len(s1)
ch=Mid(s1,i,1)
If Asc(ch)>=65And Asc(ch)<=90Then ch=Chr(Asc(ch)+3)
End If
s2=ch+s2Next i Label1.Caption=s2
End Sub
已知大写字母 A 的 ASCII 码为 65.运行上述程序,若文本框 Text1 中的内容为“A1b2C3”,单击命令按钮 Command1,标签 Label1 中显示的是.
A.A1b2C3 B.3C2b1A C.D1b2F3 D.3F2b1D
58.已知数组a(1)到a(6)的原始数据为”118”,”36”,”98”,”15”,”88”,”2”,对该数组进行排序操作,某同学编写了以下VB程序:
For i=1to 3
For j=6to i+1step﹣1
If a(j)<a(j﹣1)then
t=a(j):a(j)=a(j﹣1):a(j﹣1)=t
End if
Next j
Next i
则程序运行之后,数组a(1)到a(6)的值依次为( )
A.”118”,”15”,”2”,”36”,”88”,”98”
B.”118”,”15”,”36”,”88”,”98”,”2”
C.”2”,”15”,”36”,”118”,”88”,”98”
D.”2”,”15”,”36”,”88”,”98”,”118”
59.有如下一段VB代码:
s=0
For i=1 To 5 Step﹣2
s=s+i
Next i
执行上述代码后,下列说法正确的是( )
A.该循环执行了3次
B.该循环是无限循环
C.执行该循环后,s,i的值分别为0,1
D.循环体s=s+i仅被执行了1次
60.有如下VB程序:
Private Sub Commandl﹣ Click( )
Dim a(1 To 5)As Integer,i As Integer
a(1)=1
For i=2 To 5
a(i)=i*a(i﹣1)
Next i
Textl.Text=Str(Sqr(a(i)))
End Sub
运行该程序后,单击按钮Commandl,将会出现的错误提示是( )
A.溢出 B.下标越界
C.无效的过程调用或参数 D.子程序或函数未定义
2017年12月20日越崎中学的高中信息组卷
参考答案与试题解析
一.选择题(共60小题)
1.某宾馆的房间号由5位字符组成(例郊.x0823表示A幢8层23号房间)末位数字为奇数时表示房间朝南,为偶数时表示房间朝北,字符串变量s中存储了一个房间号,下列能正确判断房间朝南的VB表达式是( )
A.Val(mid(s,5,1))mod 2=1 B.Val(Mid(s,5,1))mod 2=0
C.Val=1 D.Val =0
【分析】对题目进行简化,实际是要求从含5个字符的字符串中提取出最后一位数字表示的房间号,然后再将其转换为数值类型,最后判断其奇偶性.
【解答】解答此题,需要三个步骤:
(1)从含5个字符的字符串中提取最后一个字符,可以使用函数Mid实现,Mid(X,n,m) 读取字符串X中读取子字符串,从第n个字符开始,共读取m个字符,因此本题可以表示为:Mid(s,5,1);
(2)将提取出的字符转换成数值类型,可以用函数Val实现,Val返回包含于字符串内的数字,可以表示为Val(mid(s,5,1));
(3)对转换后的数字判断其是否为奇数(奇数代表方向朝南),可以用取模运算mod实现,当一个数除以2后的余数为1时,即为奇数,结果为:Val(mid(s,5,1)) mod 2=1;
故选:A.
2.设一个三位数是n,它的个位数字为a,十位数字为b,百位数字为c,则b的Visual Basic表达式是( )
A.n﹣a﹣c B.(n﹣a*100﹣c)/10
C.Int(n/10)﹣Int(n/100)*10 D.n﹣Int(n/100)﹣Int(n/10)
【分析】求个位数、十位数及百位数的算法是:
个位数 n mod 10
十位数 Int(n*0.1)mod 10
百位数 Int(n*0.01)mod 10
但也可通过其它方法实现.
【解答】本题的选项中,没有通过求十位数的普通算法进行计算,C项首先求得百位和十位组成的数字a,再求出百位数字并乘以10得出b,再用a﹣b求出百位数字.其做法也实现了求出百位数了的目的,其它选项无法得出期待结果.
故选:C.
3.在 Visual Basic 中,表达式 Mid(“20161111“,5,4)的值是( )
A.“2016“ B.“0161“ C.“1611“ D.“1111“
【分析】Mid(a,b,c) 从a中的第b个开始,取c个字符的子串.
【解答】表达式 Mid(“20161111“,5,4)的第五个字符为1,从1开始连续取出四个字符,四个字符为 1111.故选:D.
4.编号为1到13的纸牌顺时针排成一圈,现从编号为1的牌从数字1开始顺时针数下去,1、2、3、…、20、21、…,一圈又一圈,则当数到数字N时,所在纸牌的编号为( )
A.N Mod 13 B.(N+1)Mod 14 C.1+(N﹣1)Mod 12 D.1+(N﹣1)Mod 13
【分析】(1)VB 中分析题目,找出解题算法的能力;
(2)VB中算术运算符号 mod表示 两个数相除取余数.
【解答】A.当N为13的整数倍时,纸牌上会显示0,而据题意应该纸牌上应该显示13,故此答案不对;
B.当N为1时,纸牌上会显示2,而据题意应该纸牌上应该显示1;当N为2时,纸牌上会显示3,而据题意应该纸牌上应该显示2,…,当N为13时,纸牌上会显示0,而据题意应该纸牌上应该显示13,故此答案不对;
C.当N为13时,纸牌上会显示1,而据题意应该纸牌上应该显示13,故此答案不对;
D.此答案可以使得当数到数字N时,所在纸牌的编号正好是对应的1到13中的数字.
故选:D.
5.下列VB表达式的值等于34的是( )
A.Abs(﹣35)+1 B.Len(″33″)+1
C.Mid(″1234567″,3,4) D.Int(33.7)+1
【分析】VB中常用函数的使用方法如下:Mid(X,n,m) 读取字符串X中读取子字符串,从第n个字符开始,共读取m个字符;Int(X) 为取整函数,返回浮点数的整数值;Len(X) 计算字符串X的长度;Abs(X) 返回数值X的绝对值.
【解答】A.Abs是取绝对值函数,Abs(﹣35)+1=35+1=36;
B.Len返回字符串的长度,Len(“33“)+1=2+1=3;
C.Mid(″1234567″,3,4)从字符串“1234567“的第三个字符开始,总共提取4个字符,结果为“3456“,且为String类型;
D.Int取整函数,返回浮点数的整数部分,Int(33.7)+1=33+1=34.
故选:D.
6.化学老师安排小王设计一个简单的VB程序,用来记录并统计参加比赛辅导的40位同学的模考成绩.小王想定义一个包含40个整数的一维数组变量来记录同学成绩,下列语句最正确的是( )
A.Dim score(﹣20to 19)As Integer
B.Dim score(0to 40)As Integer
C.Dim score(1,40)As Integer
D.Dim score(40to 1)As Integer
【分析】数组定义:
Dim 数组名 ([下界TO]上界)[As 类型名]
其中,数组的下界和类型是可选的.所谓下界和上界,就是数组下标的最小值和最大值.缺省下界时,VB默认的下界是0,但通常人们习惯上是从1开始的,因此我们可以设置让数组的默认下界为1.
【解答】数组定义的方式为:Dim 数组名 ([下界TO]上界)[As 类型名]
A项错误,下界不能为负值,最小为0;
B项不符合题意,0到40为41个元素,题干要求数组的大小为40;
D项错误,数组的下界不能大于上界;
C项正确,1到40为40个元素;
故选:C.
7.小明观察字符“Baby”的内码如图所示,
则随机产生一个大写英文字母的VB表达式是( )
A.Chr(Int(Rnd( )*25+41)) B.Chr(Int(Rnd( )*26+41))
C.Chr(Int(Rnd( )*25+65)) D.Chr(Int(Rnd( )*26+65))
【分析】通过对图中内码表示的字母进行观察,最小的大小字母A可以用41表示,最大的Z用66表示.想要随机生成的大写字母,可以先生成41~66的随机数,再将其转换成字符类型.
【解答】首先,生成41~66的随机数,生成方法为:Int (Rnd( )*(66﹣41+1)+41),即Int(Rnd( )*26+41);
然后,再将生成的随机数转换成字符类型,Chr(X) 将ASCII码转换为字符,即结果为Chr(Int(Rnd( )*26+41)).
故选:B.
8.在VisualBasic中,如果要定义变量p用于存储身份证号码,那么变量p的数据类型是( )
A.String B.Integer
C.Boolean D.Date E.Boolean
【分析】VB中数据类型:字节型(较少用)、字符串型、数值型(包含长整型、单精度、双精度等)、布尔型、货币型、日期型、OLE型(主要用于流文件,例如保存图片等)等.
【解答】某些身份证中含有X,所以需要使用String来存储.
故选:A.
9.已知字母“A”的ASCII码为65,则Visual Basic表达式结果为数值131的是( )
A.Asc(“A+B”) B.Chr(65)+Chr(66) C.“13”+“1” D.Abs(69﹣200)
【分析】Abs( )求表达式绝对值,Asc 函数返回一个字符的ASCII码值(整型数),chr( )函数是将一个ASCII码转为相应的字符.
【解答】由函数的含义来看,A,B不符合要求;C中答案虽然为131,但是其值为字符串类型;所以只有求绝对值的Abs符合要求.
故选:D.
10.假设b是布尔型变量,t是整数型变量,则下列赋值语句中正确的是( )
A.t=“good“ B.b=“True” C.b=#True# D.b=3<4
【分析】赋值语言的变量应该根据定义来赋值,即整数赋值给整型变量.如果把小数赋值给整形变量就是不对的,把字符串赋值给整数也是不对的.
【解答】A把字符串赋值给整数型变量是错误的.
B把字符串赋值给布尔型变量是错误的.
C就是个错误的表达式.
D是一个正确的赋值语句.结果为TRUE.
故选:D.
11.表达式 len(“Good Morning”)+2mod 3+int(3.9999)的值为( )
A.15 B.16
C.17 D.表达式运算出错
【分析】len( )求字符串长度,mod是求余函数,int(x)函数是取不大于x的最大整数.
【解答】len(“Good Morning”)+2mod 3+int(3.9999)=12+2+3=17.
故选:C.
12.将两个数a=9,b=7交换,使a=7,b=9,下面语句正确一组是( )
A.a=b:b=a B.b=a:a=b C.c=b:b=a:a=c D.a=c:c=b:b=a
【分析】编程中经常需要交换两个变量的值最常用的方法就是利用一个临时变量作为中间值交换.
【解答】A选项b把a的值覆盖了;B选项a把b的值覆盖了;D选项不能实现交换;C选项,c=7,然后通过b=a,则b=9,再通过a=c,则a=7,这样实现了a和b的交换,只有C才能实现a和b的交换.故选:C.
13.用变量x表示图中坐标轴上阴影部分的逻辑表达式是( )
A.(x<=a) and (x>=bor x<=c)
B.not x>a and x>b and x<c
C.x<=a orx>=b orx<=c
D.not (x>a and x<b) and x<=c
【分析】图中阴影部分用变量x表示,即可表示为x要么小于等于a,要么大于等于b且小于等于c.
【解答】x的值可以表示为两个部分,即x<=a,或者x>=b and x<=c.最简单的表示方法为:x<=a or (x>=b and x<=c),但选项中没有这样的表达式,因此需要比较四个选项中哪个与该表达式意义相同,D项括号中x>a and x<b表示的为中间空白区域,再加上Not,即表示非中间的空白区域,再加上and x<=c,表示x为小于等于c的非空白区域,即阴影部分.
故选:D.
14.X=9
For i=3 To 9 Step 3
If (X/3)>=i Then X=X+3
Next i
For i=22 To 2 Step 2
If (X/2)>=i Then X=X+2
Next i
MsgBox (X+i)
该程序的运行结果是( )
A.39 B.15 C.34 D.18
【分析】该程序段使用了两个循环结构,并在循环结构内部嵌套了选择结构.
【解答】第一个For循环的执行过程:
初始值:X=9,i=3,步长为3;
一次循环:X/3=3>=i,因此,X=X+3=12,i=6;
二次循环:X/3=4<i,i=9;
三次循环:X/3=4<i,i=12,至次第一从此For循环结束,此时X=12;
第二个For循环的执行过程:
初始值:X=12,i=22,递减步长为2;
一次循环:X/2=6>=22为假,i=20;
二次循环:X/2=6>=20为假,i=18;
…直到i=6
X/2=6>=6为真,X=X+2=14,i=4;
X/2=7>=4为真,X=16,i=2;
X/2=8>=2为真,X=18,i=0,至此循环结束,此时X=18,i=0.结果为18.
15.下列VB表达式中:①Mid(“2015.10.1“,3,2)②Label1.caption ③Chr(x)④Val(“3.14“)值为字符串型的是( )
A.①②③④ B.①②③ C.①③ D.①③④
【分析】在VB中,Mid(a,b,c) 从a中的第b个开始,取c个字符的子串,chr( )函数是将一个ASCII码转为相应的字符,val(字符串表达式)将数字字符串换成数值.
【解答】①②③都是字符串,Label1.caption输出的是字符串,故选:B.
16.在Visual Basic中,语句Dim x As Single所说明的变量x属于( )
A.整数型 B.逻辑型 C.字符串型 D.单精度实数型
【分析】Single为单精度浮点数类型,可以精确到十进制的7位,在内存中占用四个字节.
【解答】Single为单精度浮点类型,表示浮点数.
故选:D.
17.设计人口普查程序,用一个变量表示海南省的人口总数,这个变量的类型应是( )
A.整型 B.实型 C.长整型 D.双精度型
【分析】VB的基本数据类型表示范围整数型分为:整型、长整型.
(1)整型(Integer,类型符%)
整型数在内存中占两个字节(16位),十进制整型数的取值范围:﹣32768~+32767,故选:A.
例如:15,﹣345,654%都是整数型.而45678%则会发生溢出错误.
(2)长整型(Long,类型符&)
长整数型在内存中占4个字节(32位).
十进制长整型数的取值范围:
﹣2147483648~+2147483647.
【解答】由于人数是整数的,需要使用整数类型,人数是数以万计的,所以需要使用长整型.故选:C.
18.已知a=3.69,b=﹣6,则VB表达式int(﹣a)+b mod 5的值为( )
A.﹣3 B.﹣4 C.﹣5 D.﹣6
【分析】VB表达式就是由常量、变量、运算、圆括号和函数等连接形成的一个有意义的运算式.VB包括算术表达式、字符串表达式、关系表达式、逻辑表达式、日期表达式和对象表达式6种表达式,根据表达式的运算符和运算结果来确定表达式的类型.
【解答】int是取整函数,mod是取余数.a=3.69,b=﹣6,int(﹣a)+b mod 5=(﹣4)+(﹣1)=﹣5.
故选:C.
19.Private Sub Command1_Click( )
Dim a As String
Dim c As String
a=“zhejiangxiaoshi“
c=Mid(a,Len(a)\2+2,7)
Text1.Text=c
End Sub
该程序段运行后,在文本框Text1上显示的是( )
A.“xiaoshi“ B.“zhejiang“ C.zhejiang D.xiaoshi
【分析】在VB中,Mid(a,b,c) 从a中的第b个开始,取c个字符的子串,在VB中,Len( )求表达式的长度.
【解答】Len(a)=15,所以Len(a)\2+2=9,c=Mid(a,Len(a)\2+2,7)=Mid(“zhejiangxiaoshi“,9,7)=“xiaoshi”,故选:D.
20.在Visual Basic中,定义一个存储身份证号码(如“33071919801201088X”)的变量,则下列说明语句正确的是( )
A.Dim myID As String B.Dim 3307_ID As String
C.Const myID As Single D.Dim 3307_ID As Single
【分析】VB变量是指在运行时 其值可以被改变的量.不同于常量,变量是可以多次赋值的,因此此变量常用于保存程序中的临时数据.变量在程序中使用是非常频繁的,对此变量的声明和使用应熟练掌握.
【解答】VB变量命名规则:
1 变量必须是以字母、汉字开头并且以字母、汉字、数字、下划线组成的字符串.最后一个字符可以是类型说明符,变量名中不能有空格.
2 变量名不能包含+﹣*/!@#¥?小数点 等字符,且长度不能超过255.
3 不能用 Visual Basic 的保留字(例如End、Len、Sub等)作为变量名,但可以把保留字嵌入变量名中,同时变量名也不能是末尾带有说明符的保留字.
4 Visual Basic 不区分变量名和其他名字中字母的大小写,但习惯上,符号常量一般用大写字母定义.
本题中要定义存储身份证号码的变量,应该使用字符串变量.
故选:A.
21.字符串变量x的值为“student”,要从中取出子串“den”,合适的VB函数表达式是( )
A.Val(x,4,3 ) B.Str(x,4,3) C.copy(x,4,3) D.Mid(x,4,3)
【分析】要从已知字符串截取中间部分字符串,可以使用mid(要截取的字符串,起点,结束).
【解答】字符串变量x的值为“student”,要从中取出子串“den”,因此是从字符串中间第4位开始,截取3个字符,合适的表达式是:Mid(x,4,3).
故选:D.
22.小明在VB中定义了以下函数,功能是求a和b的最大公约数.
Function gcd(a As Integer,b A s Integer)As Integer
Do While b>0
c=a Mod b
a=b
b=c
Loop
End Function
调试中发现计算结果一直是0.经过仔细观察与分析,发现错误的原因是( )
A.函数名有错 B.变量c没有定义
C.函数没有返回值 D.b>0应该改为b>=0
【分析】[Private|Public][Static]Function<函数过程名>([<形参表>])[As<类型>]
<语句系列>
[<函数名>=<表达式>]
[Exit Function]
[<语句系列>]
[<函数名>=<表达式>]
End Function
其中函数体内的“函数名”是用来返回函数值.因为每一个函数必须有一个返回值.
【解答】A选项函数名的命名规则同变量名.VB中如果变量未定义在调试程序时会提示错误.影响程序的运行.D选项变量b是被除数,并能为零,否则会出现错误.所以正确答案是C,每一个自定义的函数必须有一个返回值.
故选:C.
23.某查找算法的部分VB代码如下:
t=False
i=0
Do While i<7And t=False
i=i+1
If a(i)=Key Then t=True
Loop
If t=False Then i=0
数组元素a(1)到a(7)的数据依次为“3,5,1,5,8,9,5”当变量key值为5时,运用该算法处理后,变量i的值是( )
A.0 B.2 C.4 D.7
【分析】DO While循环语句的一般格式:
DO While(条件)
循环体
LOOP
条件控制着循环的次数,而循环体内必有一个变量控制着循环的退出与否.
【解答】按照数组a下标从1到7顺序查找并比较,如果找到有符合条件的相等的数据,就退出循环.此题中a(2),a(4),a(7)均为5,但程序找到第一个相等的数据就结束了,此时变量i的值为2.
故选:B.
24.下列VB循环能正常结束的是( )
A. B. C. D.
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为真,Do…While循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
或
Do
语句1
语句2
语句N
Loop While 条件
【解答】A选项因为i初值为1,循环体中i循环累加1,所以条件i>0永远成立,循环不能结束;
B选项因为i初值为10,循环体中i循环减2,所以条件i<>1永远成立,循环不能结束;
C选项因为i初值为10,循环体中i循环减1,直到条件i<0不成立,循环结束;
D选项因为i初值为1,循环体中i循环累加2,所以条件i=10永远不成立,循环不能结束;
故选:C.
25.下列关于循环结构的叙述,正确的是( )
A.For与Next语句必须成对使用,有一个For必有一个Next与之对应
B.循环体执行次数确定的情况,只能用For…Next循环
C.For…Next循环只能与For…Next嵌套使用,而不能与Do…Loop嵌套使用
D.在For…Next循环语句中,终值必须大于初值
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】For…Next构成一个完整的循环结构.
For…Next、Do…Loop等循环语句要根据情况使用,那种循环语句更适合实现算法,就用那种循环语句.循环语句之间可以相互嵌套,但是嵌套的时候要注意结构的完整性.
For…Next循环终值可以小于初值,但此时步长必须为负值.
故选:A.
26.在VB中,若a是一个整型数组,a(1)、…、a(4)分别为130、45、278、59,则执行下列程序段后,数组a中各元素的值为( )
For i=1To 3
For j=i+1To 4
If a(i)>a(j) Then
a(0)=a(i)
a(i)=a(j)
a(j)=a(0)
End If
Next j
Next i.
A.45 59 130 278 B.130 278 45 59
C.278 130 59 45 D.59 45 278 130
【分析】题中利用for循环的嵌套实现排序功能.
For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】根据 a(i)>a(j)可知,排序的具体方法是:
数组a的第一个元素开始,比较相邻的元素,如果前面的元素a(i)大于后面的元素a(j),则交换元素的值.每次循环找到一个最小值,并放在本轮比较数据的头部.循环三次后完成排序工作,此时数组a中各元素的值为:45 59 130 278.
故选:A.
27.下列VB代码段的功能是计算( )
a=10
s=0
Do
s=s+a*a*a
a=a﹣1
Loop Until a<=0
Print s.
A.13+23+33+…+103的值 B.1!+2!+3!…+10!的值
C.(1+2+3+…+10)3的值 D.10个103的和
【分析】只要条件为真,Do While…Loop循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
【解答】循环体中语句s=s+a*a*a实现将a立方值累加至S变量中,a初值为10,循环一次a减1,直到a<=0,所以共执行10次,即求出13+23+33+…+103的值.
故选:A.
28.下列VB程序段运行后,变量a、b的值为( )
a=1
b=2
Do While a<b
b=a*b
a=2*a
Loop
Print a,b.
A.1 2 B.2 2 C.4 4 D.2 4
【分析】DO While循环语句的一般格式:
DO While(条件)
循环体
LOOP
循环体内必须有能控制循环结束的变量或者表达式.
【解答】a=1:b=2
a<b成立,执行循环.
执行b=a*b:a=2*a,此时b=2,a=2,a<b不成立,退出循环.
故选:B.
29.如下VB程序段
s=0
For i=0To 9
s=s+i
Next i
执行后,变量s的值是( )
A.10 B.9 C.45 D.55
【分析】程序中利用for循环结束0﹣9的和.
For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】通过程序可知,for循环执行10,每一次都把i的值加到s中,即求0﹣9的和.所以s=45.
故选:C.
30.如下VB程序段
s=0
For i=2To 4Step﹣2
s=s+i
Next i
运行程序后,变量s,i的值是( )
A.0,0 B.2,4 C.0,2 D.0,4
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】For循环遵循“先检查,后执行”的原则,先检查循环变量是否超过终值,然后决定是否执行循环.下列情况循环体不被执行:步长为正数,初值大于终值时、步长为负数,初值小于终值时、当初值等于终值时,不管步长是正数还是负数,均执行一次循环体.分析程序,初值s=0,i初值为2,终值为4,步长为﹣2,所以循环体不被执行,变量保持初值即s=0,i=2.
故选:C
31.将下列程序段中的Do While语句改写成For语句,正确的是( )
A. B. C. D.
【分析】(1)循环结构语句do while的循环条件对循环次数的影响,以及执行过程
do while 条件
循环体
loop
程序从前面语句执行到do while时要比较条件值是否为true,如果条件值为true就执行循环体,在返回do 进行比较,如果条件值为false,就到loop的后面语句执行程序,不执行此循环结构.
(2)循环结构语句for…next的循环变量起始值和终止值以及步长对循环次数的影响,以及执行过程;
For 循环变量=初始值 To 终止值 step 步长
循环体
Next 循环变量
程序从前面语句执行到for时把循环变量的初始值与终止值比较,如果起始小于终止值并且步长为整数,就执行循环体,在返回 进行比较,如果起始值大于终止值并且步长为整数,就不执行此循环结构,到next的后面语句执行程序.
【解答】据题意,分析可知:程序i变量从1开始到n控制循环次数为n次,没有参与循环体计算,语句s=s+p是变量s从0开始把每个变量p累加计和,第1次s=s+1,语句p=p*2是p由do循环外面的赋值1开始在循环里每次*2,变化n次,所以p在循环中的变化过程为2,4,8…,s变量就把循环中变化的p的值累加,即s=0+1+2+4+8+….
A.此for循环结构分析得:变量i从1开始到n控制循环次数为n次,没有参与循环体计算,语句p=p*2先执行,s=s+p后执行,即当p=2时,s=0+2,没有s=s+1的语句,故结果中的s=0+2+4+8,少加了1,所以此选项错误;
B.此for循环的起始值大于终止值并且步长为整数,不执行此循环结构,所以无法实现题目中的程序结果,此选项错误;
C.此for循环中:变量i从n开始到1,步长为﹣1,控制循环次数为n次,没有参与循环体计算,变量s=0+1,变量p才从1变化到2,变量再把2累加得到s=0+1+2,之后p的变化过程为,4,8…,后面循环在s把p变化的其他数累加,得到s=0+1+2+4+8+…,与题目一样,故此选项正确
D.此for循环中:变量i从n开始到1,步长为﹣1,控制循环次数为n次,没有参与循环体计算,语句p=p*2先执行,s=s+p后执行,即当p=2时,s=0+2,没有s=s+1的语句,故结果为:s=0+2+4+8,少加了1,所以此选项错误.
故选:C
32.如下VB程序段
x=0
Do While x<50
x=(x+2)*(x+3)
Loop
执行后,x的值为( )
A.0 B.72 C.50 D.168
【分析】DO WHILE…LOOP 用在在循环时判断条件,条件满足执行,不满足就退出.
【解答】本题答案:B0<50,满足条件,x=(x+2)*(x+3)=6;6<50,满足条件,x=(x+2)*(x+3)=8*9=72;72<50,条件为假,程序结束.故选:B.
33.如下VB程序段
n=0
For i=1To 3
n=n+i
Next i
循环结束后,变量i的值为( )
A.4 B.3 C.6 D.1
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序i是从1到3,当i为3时,继续执行next i,此时i为4,不满足条件,程序结束.
故选:A.
34.如下程序段
a=2
b=1
Do While a>=b
b=a*b
a=2*a
Loop
执行后,a、b的值分别为( )
A.4、2 B.16、64 C.8、8 D.2、1
【分析】DO While循环语句的一般格式:
DO While(条件)
循环体
LOOP
循环体内,必须有能控制循环结束的变量或者表达式.
【解答】a=2:b=1
a>=b成立,执行循环
执行b=a*b:a=2*a,此时 b=2,a=4.a>=b成立,执行循环
执行b=a*b:a=2*a,此时b=8,a=8,a>=b成立,执行循环
执行b=a*b:a=2*a,此时b=64,a=16.a>=b不成立,退出循环.
故选:B
35.如下VB程序段
For i=1To 5Step 10
Print i
Next i
运行后,循环体语句执行的次数为( )
A.1 B.5 C.10 D.2
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
当初值小于终值,步长大于0时或者初值大于终值,步长小于0时,执行循环体.反之
当初值小于终值,步长小于0时或者初值大于终值,步长大于0时,不执行循环体.
【解答】当i=1时,执行一次Print i.然后执行Next i,此时i=1+10=11,超出循环变量的取值范围,结束循环.
故选:A.
36.如下VB程序段
s=0
t=1
For i=1To 10
t=t*i
s=s+1/t
Next i
变量s的值可表示为( )
A.1/1+1/2+1/3+…1/10
B.1/1*1/2*1/3*…1/10
C.1/1!+1/2!+1/3!…1/10!
D.1/1+1/2*1/3+1/3*1/4+…1/9*1/10
【分析】VB语言中程序的循环语句的理解,归纳总结程序的解决的问题
【解答】据题意,程序执行过程如下:
s=0:t=1
进入i循环:
i=1,t=1*1=1,s=0+1/1=1;
i=2,t=1*2=2,s=0+1+1/2;
i=3,t=1*2*3=6,s=0+1+1/2+1/6;
i=4,t=1*2*3*4=24,s=0+1+1/2+1/6+1/24;
i=5,t=1*2*3*4*5=120,s=0+1+1/2+1/6+1/24+1/120
…
i=10,t=1*2*3*4*…*10,s=0+1+1/2+1/6+1/(1*2*3*…*10)
i=11退出循环
可以看出s=0+1/1!+1/2!+1/3!+…+1/10!
故选:C
37.如下VB程序段
Dim i As Single
For i=1To 2Step﹣0.1
Print i
Next i
运行后,循环体执行的次数是( )
A.0次 B.无法确定 C.2次 D.10次
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析代码,i的值从1到2,步长是﹣0.1,所以步长for循环的初始值要大于终值,循环体不满足条件,执行0次,故选:A.
38.如下VB程序段中,数组a中a(1)至a(5)依次存储的是8、1、25、41、11.
m=a(1)
For i=2To 5
a(i﹣1)=a(i)
Next i
a(5)=m
运行后,数组a中a(1)至a(5)的值依次是( )
A.11 41 25 1 8 B.1 25 41 11 8 C.11 8 1 25 41 D.1 8 11 25 41
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】i=2,a(1)=a(2)=1;i=3,a(2)=a(3)=25;i=4,a(3)=a(4)=41;i=5,a(4)=a(5)=11,循环结束,a(5)=m=8,所以程序结束,数组a中a(1)至a(5)依次存储的是1、25、41、11、8.故选:B.
39.下列VB代码段:
y=2
x=18
Do While x>=16
x=x﹣y
y=y+2
Loop
Print x
执行后,输出结果为( )
A.12 B.14 C.16 D.18
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为真,Do…While循环就允许你重复某个操作.这个循环的语法如下:
Do While 条件
语句1
语句2
语句N
Loop
或
Do
语句1
语句2
语句N
Loop While 条件
【解答】分析语句执行过程:
第一次判断:x=18,y=2,x>=16,循环体执行 x=x﹣y=18﹣2=16,y=y+2=2+2=4;
第二次判断:x=16,y=4,x>=16,循环体执行 x=x﹣y=16﹣4=12,y=y+2=4+2=6;
第三次判断:x=12,y=6,x<16,循环结束.
故选:A.
40.在VB中,若i、m、n均是整型变量,则下列代码段的输出结果是( )
m=0
n=0
For i=1To 2
m=m+1
For j=1To 3
n=n+1
Next j
Next i
Print m,n.
A.2 5 B.2 6 C.6 2 D.5 2
【分析】For语句的一般格式:For 循环变量=初值 To 终值 Step 步长 语句块 Next 变量 在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.循环嵌套就是在循环体中又有循环的结构,循环体外的循环称为外循环,循环体内的循环称为内循环.如果程序需要,还可以在内循环里再嵌入另一个循环,从而构成三重循环,甚至多重循环.循环嵌套应用中的常见错误及其注意事项:1.内循环与外循环的循环变量名称不能相同.2.外循环必须完全包含内循环,不可以出现交叉现象.
【解答】分析语句中m、n初值为0,外循环i=1 to 2,执行两次m加1,则结果m=2;内循环j=1 to 3,内循环体执行三次n加1,由于内外循环的嵌套,内循环体共执行2*3=6次,则结果n=6.
故选:B.
41.如下程序段
s=0
For i=1To 10
t=2*i﹣1
s=s+t
Next i
Print s
执行后,屏幕将输出( )
A.55 B.100 C.110 D.210
【分析】(1)循环语句结构for…next的执行过程
(2)通过阅读程序,得到程序解决问题结果
【解答】据题意,程序执行如下:
s=0
进入i循环
i=1;t=2*1﹣1=1;s=0+1=1;
i=2;t=2*2﹣1=3;s=0+1+3=4;
i=3;t=2*3﹣1=5;s=0+1+3+5=9;
i=4;t=2*4﹣1=7;s=0+1+3+5+7=16;
…
i=10;t=2*10﹣1=19;s=0+1+3+5+7+…+19=100
i=11退出循环
故选:B
42.有如下VB程序段:
n=Val(Text1.Text)
st=“”
For i=1To n
For j=1To i Step 2
st=st+“☆”
Next j
List1.AddItem st
Next i
该程序段运行时,在文本框Text1中输入5,则列表框输出的内容为( )
A. B. C. D.
【分析】(1)VB中循环语句嵌套的使用方法,在循环语句中套用另一个循环语句,称为循环的嵌套,例如
For a=1 To 10
For a=1 To 20
…
Next b
Next a
注意:①外循环必须完全包含内循环,不能交叉;②内循环变量与外循环变量不能同名;
(2)程序语句的执行过程的理解,程序的运行结果.
【解答】程序运行过程为:n=5;st=““,
外循环i=1,
内循环j=1,st=☆,j=3,内循环结束;list1里列出“☆”;
i=2,进入第2次外循环,
内循环j=1,st=☆☆,j=3,内循环结束;list1第2行里列出“☆☆”;
i=3,进入第3次外循环,
内循环j=1,st=☆☆☆,j=3,st=☆☆☆☆,j=5,内循环结束;第3行里列出“☆☆☆☆”;
i=4,进入第4次外循环,
内循环j=1,st=☆☆☆☆☆,j=3,st=☆☆☆☆☆☆,j=5,内循环结束;第4行里列出“☆☆☆☆☆☆”;
i=5,进入第5次外循环,
内循环j=1,st=☆☆☆☆☆☆,j=3,st=☆☆☆☆☆☆☆,j=5,st=☆☆☆☆☆☆☆☆,j=7,内循环结束;第5行里列出“☆☆☆☆☆☆☆☆”;
i=6,外循环结束,
程序结束;
故选:A
43.阅读如下程序段,该程序运地后数组元素a(5)的值为( )
A.5 B.10 C.11 D.15
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,a(i)=2*i+1,所以a(5)=2*5+1=11,故选:C.
44.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现( )
A. B. C. D.
【分析】循环结构语句do while的循环条件对循环次数的影响,以及执行过程:
do while 条件
循环体
loop
程序从前面语句执行到do while时要比较条件值是否为true,如果条件值为true就执行循环体,在返回do 进行比较,如果条件值为false,就到loop的后面语句执行程序,不执行此循环结构.
【解答】A.利用了枚举法,i从1循环到100,步长为1,当i mod 7 为0(即i能被7整除)时输出i,也就是输出了100以内能被7整除的数字,可以实现题目要求;
B.变量i从7开始循环到100,步长为7,输出的刚好是100以内所有7的倍数,也就是100以内能被7整除的数字;可以实现题目要求
C.变量i的值从1开始步长为1不断变化循环,每次输出的是i*7的值,即7的倍数(即能被7整除的数字),直到s大于100停止,(即100以内的数),可以实现题目要求;
D.变量s从0开始步长为7不断变化,输出变化后的s,正好是7的倍数,当s接近100时进入循环,执行循环体s+7并且输出s,此时已经s大于100,也被输出了,与题目要求100以内数不符,此程序有缺陷;
故选:D
45.下面四个程序段中,运行后变量a的值最小的是( )
A. B. C. D.
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长 语句块 Next 变量 在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析各程序段可知,AC选项中循环体相同,先做乘法再整除,a值不变,最终a的值为35,BD选项虽然循环体相同,但先做整除运算中除数不同取整产生差异,实现运算后B选项运算结果为a=32,D选项运算结果为a=30.所以运行后变量a的值最小是30.
故选:D.
46.某Visual Basic程序段如下:
Dim s As String,t As Integer,i As Integer
s=“Information Technology“
t=4
For i=3To 1Step﹣1
s=Mid(s,i,t)
t=t﹣1
Next i
Text1.Text=s
该程序段运行后,文本框Text1中显示的内容为( )
A.form B.orm C.or D.for
【分析】程序段为循环结构,循环条件为i=3 To 1,步长为﹣1,循环体为s=Mid(s,i,t),t=t﹣1.
【解答】Mid函数的功能是从一个字符串中截取一个子串出来,第一个参数为主字符串,第二个参数为开始位置,第三个参数为总共截取字符的个数.初始值:s=“Information Technology“,t=4,i=3;一次循环:s=Mid(s,3,4)=“form“,t=t﹣1=3;二次循环:i=2,s=Mid(s,2,3)=“orm“,t=t﹣1=2;三次循环:i=1,s=Mid(s,1,2)=“or“,至此循环结束,最终文本框中显示的内容为字符串s,即or.故选:C.
47.有如下Visual Basic 程序,该程序通过For循环计算sum的值,下列表达式的值与sum相等的是( )
A.1+1/2+2/3+3/4+4/5 B.1+1/2+2/3+3/4
C.1/2+2/3+3/4+4/5 D.1+1/2+1/3+1/4+1/5
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】i=1,x=0,n=1,sum=0;
i=2,x=1/2,n=2,sum=1/2;
i=3,x=2/3,n=3,sum=1/2+2/3;
i=4,x=3/4,n=4,sum=1/2+2/3+3/4;
i=5,x=4/5,n=5,sum=1/2+2/3+3/4+4/5;故选:C.
48.某VB程序代码如下:
n=73
s=1
Do While n>1
s=s+n/4
n=n/4
Loop
执行该程序段后,变量s的值是( )
A.19 B.20 C.23 D.24
【分析】VB有两种Do循环语句,只要或者直到某个条件为真,它们就会重复一系列的语句.只要条件为假,Do…While循环就结束操作.
【解答】程序运行的具体步骤如下:
n s
73 1+73/4=19
18 19+18/4=23
4 23+4/4=24
1 /
故选:D.
49.有如下Visal Basic程序段:
s=1
For i=20 To ___ Step﹣2
s=s+i
Next i
若要使语句s=s+i执行5次,则可循环变量i终值应为( )
A.12 B.11 C.10 D.9
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】程序中,执行5次s=s+i,就执行5次Next i,只要第5次执行Next i(此时i=10)后退出循环即可.所以i的终值应为12.
故选:A.
50.有如下VB程序段:
x=﹣4
Do While x<0
x=x+3
Loop
该程序运行后,变量x的值是( )
A.5 B.2 C.﹣1 D.﹣4
【分析】程序段为Do While循环,循环条件为x<0,循环体为x=x+3.
【解答】当x<0时,x=x+3,直到x>=0.x初始值为﹣4,第一次循环,x=﹣1,第二次循环,x=2.程序终止,所以程序运行后,x的值为2.
故选:B.
51.有如下程序段,运行后A(10)=( )
Dim a(30)As Integer
a(1)=1
a(2)=1
i=2
Do While i<10
i=i+1
a(i)=a(i﹣1)+a(i﹣2)
Loop.
A.0 B.34 C.55 D.空
【分析】通过观察可以看出本程序出现了Do语句,要计算a(10)的值,细心观察Do语句循环几次,即可得出.
Do Loop语句一般格式:
Do {While|Until }<条件表达式>或 Do
【语句块】【语句块】
【Exit Do】【Exit Do】
【语句块】【语句块】
Loop Loop {While|Until }<条件表达式>
在Do语句中,当条件表达式前置时,先计算表达式的值,当表达式值为False,循环体一次也不执行.当条件表达式后置时,先执行一次循环体再计算表达式的值,因此循环体至少被执行一次.
【解答】当i=2时,i<10为True,i=i+1=2+1=3,a(i)=a(i﹣1)+a(i﹣2)=a(2)+a(1)=1+1=2,即a(3)=2
当i=3时,i<10为True,i=i+1=3+1=4,a(i)=a(i﹣1)+a(i﹣2)=a(3)+a(2)=2+1=3,即a(4)=3
当i=4时,i<10为True,i=i+1=3+1=5,a(i)=a(i﹣1)+a(i﹣2)=a(4)+a(3)=3+2=5,即a(5)=5
…
当i=9时,i<10为True,i=i+1=9+1=10,a(i)=a(i﹣1)+a(i﹣2)=a(9)+a(8)=34+21=55,即a(10)=55
此时,i=10,表达式i<10为False,跳出循环,
故选:C.
52.下列Visual Basic程序段运行后,变量s的值等于55的是( )
A.s=0:i=1
Do While i<=10
s=s+i
i=i+1
Loop
B.s=0:i=1
Do While i<=10
i=i+1
s=s+i
Loop
C.s=0
For i=1 To 10
s=i
Next i
D.s=0
For i=1 To 10
i=i+s
Next i
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
DO While循环语句的一般格式:
DO While(条件)
循环体
LOOP
循环体内必须有能控制循环结束的变量或者表达式.
【解答】A选项s=1+2+3+4+5+6+7+8+9+10=55.
B选项因i=i+1在s=s+i前,所以计算的是1至11的和.
故选:A.
53.有如下Visual Basic程序段:
Dim a(1To 4)As Integer
a(1)=1
For i=2To 3
a(i)=2*a(i﹣1)+1
Next i
该程序段运行后,数组元素a(4)的值为( )
A.15 B.7 C.3 D.0
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】a(i)=2*a(i﹣1)+1,所以
a(2)=2*a(1)+1=3
a(3)=2*a(2)+1=7
a(4)=2*a(3)+1=15.
故选:A.
54.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息.发生”下标越界”错误时所执行的语句是( )
Private Sub Command1_Click( )
Dim a(0To 5)As Integer
Dim i As Integer'①
a(0)=1'②
For i=1To 5
a(i)=2*a(i﹣1)+1'③
Next i
Text1.Text=Str(a(6))'④
End Sub.
A.① B.② C.③ D.④
【分析】下标越界表示程序中某一个数组元素的下标超出了数组定义的下标范围.
【解答】程序中定义了数组a的下标范围为[0,5],而在程序的中Text1.Text=Str(a(6)),a(6)超出了范围.
故选:D.
55.有如下Visual Basic程序段:
k=1
For j=2To 100
If a(j)>a(k) Then k=j
Next j
x=a(k)
该程序段执行后,变量x中存储的是( )
A.a(1)至a(100)中的最小值 B.a(1)至a(100)中的最大值
C.a(2)至a(100)中的最小值 D.a(2)至a(100)中的最大值
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,当a(2)>a(k)时,把j赋值给k,说明k存的时数组中的最大值,故选:B.
56.有如下Visual Basic程序段:
Dim x As Integer
x=2
Do While x<20
x=x∧2
Loop
运行这段程序段,循环体的循环次数为( )
A.0 B.2 C.3 D.4
【分析】程序段为Do While循环,循环条件为x<20,循环体为x=x^2.
【解答】初始值:x=2;
一次循环:x=x^2=4;
二次循环:x=x^2=16;
三次循环:x=x^2=256,至此循环结束,共执行循环体3次.
故选:C.
57.【加试题】有如下 VB 程序:Private Sub Command1_Click( )
Dim s1As String,s2As String,i As Integer,ch As String s1=Text1.Text
For i=1To Len(s1)
ch=Mid(s1,i,1)
If Asc(ch)>=65And Asc(ch)<=90Then ch=Chr(Asc(ch)+3)
End If
s2=ch+s2Next i Label1.Caption=s2
End Sub
已知大写字母 A 的 ASCII 码为 65.运行上述程序,若文本框 Text1 中的内容为“A1b2C3”,单击命令按钮 Command1,标签 Label1 中显示的是.
A.A1b2C3 B.3C2b1A C.D1b2F3 D.3F2b1D
【分析】For语句的一般格式:
For 循环变量=初值 To 终值 Step 步长
语句块
Next 循环变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】程序中使用for循环语句判断输入的字符串中是否有大写字母,如果有则把该字母转换为其后面第三个大写字母,并把字符串输出.如输入A1b2C3时,输出的结果为:3F2b1D.
故选:D.
58.已知数组a(1)到a(6)的原始数据为”118”,”36”,”98”,”15”,”88”,”2”,对该数组进行排序操作,某同学编写了以下VB程序:
For i=1to 3
For j=6to i+1step﹣1
If a(j)<a(j﹣1)then
t=a(j):a(j)=a(j﹣1):a(j﹣1)=t
End if
Next j
Next i
则程序运行之后,数组a(1)到a(6)的值依次为( )
A.”118”,”15”,”2”,”36”,”88”,”98”
B.”118”,”15”,”36”,”88”,”98”,”2”
C.”2”,”15”,”36”,”118”,”88”,”98”
D.”2”,”15”,”36”,”88”,”98”,”118”
【分析】For 循环变量=初值 To 终值 Step 步长
语句块
Next 变量
在For语句中要判断循环变量的值是否超出终值,如果未超出终值,则执行语句块.
【解答】分析程序,两层循环,循环是对数组升序排列,故选:D.
59.有如下一段VB代码:
s=0
For i=1 To 5 Step﹣2
s=s+i
Next i
执行上述代码后,下列说法正确的是( )
A.该循环执行了3次
B.该循环是无限循环
C.执行该循环后,s,i的值分别为0,1
D.循环体s=s+i仅被执行了1次
【分析】(1)循环结构语句for…next的步长的设置对循环变量和循环次数的影响;
(2)循环结构的语句执行过程.
【解答】据题意:程序执行,s=0,
循环变量i从1开始,步长为﹣2,判断循环变量的开始值与终止值的大小,步长为负数时,开始值必须大于终止值才能执行循环体,本题里循环变量的开始值i=1小于终止值5,循环不进入循环体,直接退出循环,执行循环结构结束语句next后面的程序语句,故循环体被执行了0次.
故选:C
60.有如下VB程序:
Private Sub Commandl﹣ Click( )
Dim a(1 To 5)As Integer,i As Integer
a(1)=1
For i=2 To 5
a(i)=i*a(i﹣1)
Next i
Textl.Text=Str(Sqr(a(i)))
End Sub
运行该程序后,单击按钮Commandl,将会出现的错误提示是( )
A.溢出 B.下标越界
C.无效的过程调用或参数 D.子程序或函数未定义
【分析】(1)程序中使用循环语句的使用方法,for…next对应,do while (until)…loop对应,do…loop until (while) 对应;
(2)程序语句的执行过程的理解,程序的运行结果.
(3)VB数据类型的定义以及使用范围.
【解答】程序运行过程为:
定义整数数组a(1)到a(5),在定义整数变量i;
a(1)=1
进入for循环:
循环变量i=2,a(2)=i*a(2﹣1)=2*1=2;
i=3,a(3)=i*a(3﹣1)=3*2=6;
i=4,a(4)=i*a(4﹣1)=4*6=24;
i=5,a(5)=i*a(5﹣1)=5*24=120;
i=6,循环结束;
text1.text=str(sqr(a(i)))即:text1.text=str(sqr(a(6)))
题目中的数组下标只到5即a(1)到a(5),没有a(6)
所以程序执行到最后一句就不能执行下去了,会出现“下标越界”的错误报告对话框
故选:B
第1页(共1页)