vb.docx
《vb.docx》由会员分享,可在线阅读,更多相关《vb.docx(27页珍藏版)》请在冰豆网上搜索。
vb
四、数据输入输出
1.数据输出:
(1)Print方法。
FormPictureBox
清空使用Print方法输出的文字信息---cls方法
(2)与Print方法有关的函数(Tab,Spc,Space$)。
(3)格式输出(Format$)。
课本48页
2.InputBox函数。
返回一个字符串
3.MsgBox函数和MsgBox语句。
函数有返回值(整数),而语句无返回值。
真题45语句Print"5*20"输出的结果是()。
A."5*20"B.出现错误信息
C.5*20D.100
真题46在窗体单击事件中执行下面语句的正确结果是()。
PrintFormat(1732.46,"+##,##0.0")
A.+1732.5B.1,732.5C.+1,732.5D.+1,732.4
与Print方法有关的函数
1.Tab(n)函数PrintTab(25);800在第25列输出800
2.Spc(n)函数Print"China";Spc
(2);"Beijing"
该语句首先输出"China",然后经过2个空格,显示"Beijing"。
3.Space$(n)函数输出n个空格$表示结果为字符串类型
4.Format$函数
例如:
使用以下事件过程测试数值的格式化输出。
PrintFormat$(25634,"########")25634
PrintFormat$(25634,"00000000")00025634
PrintFormat$(256.34,"0000.00") 0256.34
PrintFormat$(256.34,"####.##")256.34
PrintFormat$(12345.67,"####,#.##")12,345.67
PrintFormat$(12345.67,"#,####.##")12,345.67
PrintFormat$(12345.6,"###,##0.00")12,345.60
PrintFormat$(12345.6,"$###,#0.00")$12,345.60
PrintFormat$(12345.6,"-###,##0.00")-12,345.60
PrintFormat$(0.123,"0.00%")12.30%
PrintFormat$(12345.6,"0.00E+00")1.23E+04
PrintFormat$(0.1234567,"0.00E-00")1.23E-01
5.InputBox函数(注意参数含义及顺序)提示信息,标题,默认值,坐标
真题47如果执行一个语句后弹出如图所示的窗口,则这个语句是()
A)InputBox("输入框","请输入VB数据")
B)x=InputBox("输入框","请输入VB数据")
C)InputBox("请输入VB数据","输入框")
D)x=InputBox("请输入VB数据","输入框")
MsgBox函数
MsgBox函数的一般格式如下:
MsgBox(提示信息[,按钮][,标题][,helpfile,context])
字符串连接符&和+
&的左右两边无论是数值还是字符,进行字符串连接1&2结果为字符串12
+的左右两边都是字符串时,进行连接;参见下面的例子
+的左右两边都是数字字符串时,进行字符串连接;“12”+“34”
只要有一个为数值,则进行计算“12”+34
真题48假定有如下的命令按钮(名称为Command1)事件过程:
PrivateSubCommand1_Click()
x=InputBox("输入:
","输入整数")inputbox函数返回值为字符串
MsgBox"输入的数据是:
",,"输入数据:
"+x(注意x为字符串)
EndSub
程序运行后,单击命令按钮,如果从键盘上输入数10,则以下叙述中错误的是( )。
A.x的值是数值10
B.输入对话框的标题是“输入整数”
C.信息框的标题是“输入数据:
10”
D.信息框中显示的是“输入的数据是:
”
真题49MsgBox函数的返回类型是( )。
A.字符型 B.数值型 C.日期型 D.没有返回值
注意:
MsgBox函数返回值与MsgBox语句的返回值不同,MsgBox函数返回值为数值,
而MsgBox语句则没有返回值。
真题50在窗体上画一个命令按钮,然后编写如下事件过程:
()
PrivateSubCommand1_Click()
MsgBoxStr(123+321)
EndSub
运行程序,单击命令按钮,则在信息框中显示的提示信息是()
A)字符串“123+321”B)字符串“444”
C)数值“444”D)空白
PrivateSubCommand1_Click()//注意str和cstr的区别
PrintStr(123+321)当结果为负数时,二者无区别;
PrintCStr(123+321)当结果为正数时,str预留符号位,而cstr则去掉符号位
EndSub
六、控制结构
1.选择结构:
if/switch
(1)单行结构条件语句。
(2)块结构条件语句。
真题51窗体上有一个名称为Text1的文本框和一个名称为Command1的命令按钮,
并有以下事件过程:
PrivateSubCommand1_Click()
x!
=Val(Text1.Text)!
变量的隐式定义,单精度
SelectCasex找到满足条件的第一个分支,执行完该分支退出selectcase结构
CaseIs<-10,Is>=20表示x<-10或x>=20
Print"输入错误"
CaseIs<0
Print20-x
CaseIs<10
Print20
CaseIs<=20
Printx*10
EndSelect
EndSub
运行程序时,如果在文本框中输入-5,则单击命令按钮后的输出结果是()
A)5B)20C)25D)输入错误
(3)IIf函数。
真题52设a=5,b=6,c=7,d=8,执行语句x=IIf((a>b)And(c>d),10,20)后,x的值是()
A)10B)20C)30D)200
真题53在窗体上画一个命令按钮和一个文本框,名称分别为Command1和Text1,然后编写如下程序:
PrivateSubCommand1_Click()
a=InputBox("请输入日期(1~31)")
t="旅游景点:
"_
&IIf(a>0Anda<=10,"长城","")_
&IIf(a>10Anda<=20,"故宫","")_
&IIf(a>20Anda<=30,"颐和园","")
Text1.Text=t
EndSub
程序运行后,如果从键盘输入16,则在文本框中显示的内容是:
A)旅游景点:
长城故宫 B)旅游景点:
长城颐和园
C)旅游景点:
颐和园 D)旅游景点:
故宫
2.多分支结构。
3.For循环控制结构。
真题54设有如下程序段:
x=2
For i=1 To 10 Step 2x依次加1,3,5,7,9结果为2+1+3+5+7+9=27
x=x+i
Next
运行以上程序后,x的值是()
A)26 B) 27 C) 38 D) 57
注意:
结束循环时循环变量i的值是?
真题55下面程序执行结果是()
PrivateSubCommand1_Click()
a=10
Fork=1To5Step-1'扫描for语句,k取1,发现终值大于初始值,但步长step为负数,
a=a-k'不执行循环体语句
Nextk
Printa;k
EndSub
A)-56B)-5-5C)100D)101
4.当循环控制结构。
真题56假定有如下事件过程:
PrivateSubForm_Click()
DimxAsInteger,nAsInteger
x=1
n=0
Whilex<28
x=x*3'392781
n=n+1'1234
Wend
Printx,n
EndSub
程序运行后,单击窗体,输出结果是
A)814B)563
C)281D)2435
5.Do循环控制结构。
真题57设有以下循环结构
DoUntil<条件>'直到条件为真时不再执行循环体语句,结束循环
循环体
Loop
则以下叙述中错误的是()。
A."条件"可以是关系表达式、逻辑表达式或常数(非零代表真,0代表假)
B.若"条件"为真,则一次也不执行循环体
C.循环体中可以使用ExitDo语句
D.如果"条件"总是为True,则不停地执行循环体
真题58有以下循环结构
Do
循环体
LoopWhile<条件>
则以下叙述中错误的是()。
A."条件"可以是关系表达式、逻辑表达式或常数
B.若"条件"是一个为0的常数,则一次也不执行循环体
C.循环体中可以使用ExitDo语句
D.如果"条件"总是为True,则不停地执行循环体(死循环、ctrl+break结束循环回到设计界面)
真题59以下程序段的输出结果是()。
x=1:
y=4
DoUntily>4(注意:
y>4时结束循环)
x=x*y
y=y+1
Loop
Printx
A)1B)4C)8D)20
6.多重循环。
真题60有如下事件过程:
PrivateSubForm_Click()
DimnAsInteger:
x=0
n=InputBox("请输入一个整数")
Fori=1Ton'进入循环初始值、终值及步长首先换成常数n=5
Forj=1Toi'i=1x加1次,i=2x加2次,i=3,x加3次。
。
。
4次。
。
。
5次
x=x+1
Nextj
Nexti
Printx
EndSub程序运行后,单击窗体,如果在输入对话框中输入5,则在窗体上显示的内容是
A)13B)14C)15D)16
真题61设有如下程序
PrivateSubCommand1_Click()
x=10:
y=0
Fori=1To5
Do
x=x-2864
y=y+2246
LoopUntily>5Orx<-1
Next
EndSub
运行程序,其中Do循环执行的次数是()
A)15B)10C)7D)3
真题62在窗体上画一个名称为Command1的命令按钮,然后编写如下程序,
如果在输入对话框中输入9,那么输出结果是多少?
PrivateSubCommand1_Click()
DimmAsInteger,iAsInteger
DimflagAsBoolean
n=Val(InputBox("请输入任意1个正整数"))
flag=True
Fori=2ToInt(Sqr(n))注意:
由于i被定义为整型,可以给i赋值实数,自动将实数
IfnModi=0Then转化为整数,例如3.6—3。
可以写为i=2Tosqr(n)
flag=False
ExitFor
EndIf
Next
Ifflag=TrueThen
printn
Else
printn+1
EndIf
EndSub
A)10B)9C)3D)4
假设法判断某数是否为素数。
真题63在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
PrivateSubCommand1_Click()
Dima$,b$,c$,k%
a="ABCD":
b="123456"
c="":
k=1
DoWhilek<=Len(a)Ork<=Len(b)k<=4ork<=6
Ifk<=Len(a)Then
c=c&Mid(a,k,1)AA1BA1B2CA1B2C3D
EndIf
Ifk<=Len(b)Then
c=c&Mid(b,k,1)A1A1B2A1B2C3A1B2C3D4A1B2C3D456
EndIf
k=k+1
Loop
Printc
EndSub
运行程序,单击命令按钮,输出结果是()
A)123456ABCDB)ABCD123456C)D6C5B4A321D)A1B2C3D456
真题64请阅读程序:
PrivateSubForm_Click()
m=1
Fori=4To1Step-1
PrintStr(m);
m=m+1
Forj=1Toi
Print"*";
Nextj
Print
Nexti
EndSub
程序运行后,单击窗体,则输出结果是()
A)1****B)4****C)D)*
2***3********
3**2*******
4*1******
真题65有如下程序:
PrivateSubForm_Click()
DimCheck,Counter
Check=True
Counter=0
Do
DoWhileCounter<20
Counter=Counter+1
IfCounter=10Then
Check=False
ExitDo退出哪个Do?
EndIf
Loop
LoopUntilCheck=False
PrintCounter,Check注意逗号间隔大
EndSub
程序运行后,单击窗体,输出结果为()
A)150B)20-1
C)10TrueD)10False
七、数组
1.数组的概念:
(1)数组的定义。
(2)静态数组和动态数组。
2.数组的基本操作:
(1)数组元素的输入、输出和赋值。
(2)ForEach…Next语句。
输出数组中各个元素值
(3)数组的初始化。
3.控件数组。
动态数组(需要定义两次:
dima()As…;Redim语句进行重新定义—明确大小)
数组分类
静态数组
OptionBase语句功能
OptionBase1数组中未指明维下界时,维下界为1
若该语句写在通用声明处,则该窗体的所有事件过程中都遵循上述规则。
1、数组的上、下界:
Ubound()、Lbound()
一维数组:
Ubound(a)
二维数组:
Ubound(a,1)Ubound(a,2)分别指第一维和第二维的上界
真题66默认情况下,下面声明的数组的元素个数是()
Dima(5,-2to2)(5-0+1)*[2-(-2)+1]
A)20B)24C)25D)30
2、Erase语句:
重新初始化静态数组的元素(整—0)、或释放动态数组的存储空间。
3、ForEachNext结构语句
真题67设有如下程序段
Dima(10)
…
ForEachxIna
Printx;
Nextx
在上面的程序段中,变量x必须是()
A)整型变量B)变体型变量C)动态数组D)静态数组
4、用Array函数给数组赋值(只能给Variant类型的变量或Variant类型的动态
数组赋值)
真题68有如下程序:
OptionBase1
PrivateSubForm_Click()
Dimarr,Sum
Sum=0
arr=Array(1,3,5,7,9,11,13,15,17,19)arr变为拥有元素的数组
Fori=1To10
Ifarr(i)/3=arr(i)\3Then
Sum=Sum+arr(i)
EndIf
Nexti
PrintSum
EndSub
程序运行后,单击窗体,输出结果为()
A)25B)26C)27D)28
真题69窗体上有一个名称为Combo1的组合框,其初始内容为空,有一个名称为
Command1、标题为“添加项目”的命令按钮。
程序运行后,如果单击命令按钮,
会将给定数组中的项目添加到组合框中,如图所示。
请填空。
OptionBase1
PrivateSubCommand1_Click()
DimcityAsVariant
city=【1】("北京","天津","上海","武汉","重庆","西宁")
Fori=【2】ToUBound(city)
Combo1.AddItem【3】
Next
EndSub
真题70阅读程序
PrivateSubCommand1_Click()
Dimarr
DimiAsInteger
arr=Array(0,1,2,3,4,5,6,7,8,9,10)注意下标从?
开始
Fori=0To2
Printarr(7-i);
Next
EndSub运行程序后,窗体上显示的是()
A)876B)765C)654D)543
真题71在窗体上画一个命令按钮(其名称为Command1),然后编写如下代码:
PrivateSubCommand1_Click()
Dima
a=Array(1,2,3,4)a(0)=1a
(1)=2a
(2)=3a(3)=4
i=3:
j=1
DoWhilei>=0
s=s+a(i)*js=s+a(3)*j=4s=4+a
(2)*j=4+3*10=34s=34+2*100=234
i=i–1i=2i=1i=0
j=j*10j=10j=100j=1000
Loop
Prints
EndSub
运行上面的程序,单击命令按钮,则输出结果是()
A)4321B)123C)234D)1234
真题72在窗体上画一个名为Command1的命令按钮,然后编写如下程序:
PrivateSubCommand1_Click()
Dima(10)AsInteger
Fork=10To1Step-1
a(k)=20-2*k
Nextk关键:
结束循环时k的值是1还是0?
k=k+7
Printa(k-a(k))
EndSub运行程序,单击命令按钮,输出的结果是()
A)18B)12C)8D)6
真题73窗体上有一个名为Command1的命令按钮,并有如下程序:
PrivateSubCommand1_Click()
Dima(10),x%
Fork=1To10
a(k)=Int(Rnd*90+10)
x=x+a(k)Mod2a(k)Mod2可能的值是?
Nextk
Printx
EndSub
运行程序后,单击命令按钮,输出结果是()
A)10个数中奇数的个数B)10个数中偶数的个数
C)10个数中奇数的累加和D)10个数中偶数的累加和
5、控件数组(复制、粘贴控件,Index从0开始)
真题74(关于二维数组)请阅读程序:
OptionBase1
PrivateSubForm_Click()
DimArr(4,4)AsInteger
Fori=1To4
Forj=1To4
Arr(i,j)=(i-1)*2+j
Nextj
Nexti
Fori=3To4需要输出的结果是什么?
Forj=3To4
PrintArr(j,i);Arr(3,3)Arr(4,3)换行Arr(3,4)Arr(4,4)
Nextj
Print
Nexti
EndSub程序运行后,单击窗体,则输出结果是
A)57B)68C)79D)810
6879810811
真题75在窗体上画一个命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
Dima(5)AsString
Fori=1To5
a(i)=Chr(Asc("A")+(i-1))
Nexti
ForEachbIna
Printb;
Next
EndSub
程序运行后,单击命令按钮,输出结果是()
A)ABCDEB)12345C)abcdeD)出错信息
八、过程
1.Sub过程:
(1)Sub过程的建立。
(2)调用Sub过程。
2.Funtion过程:
(1)Funtion过程的定义。
(2)调用Funtion过程。
3.参数传送:
(1)形参与实参。
(2)引用(传地Zhi)形参前面加ByRef或缺省。
(3)传值。
形参前加ByVal (4)数组参数的传送。
数组名—传地ZHI
4.可选参数和可变参数。
5.对象参数:
(1)窗体参数
(2)控件参数。
子过程sub、函数function(它们的区别、如何调用、参数的传递)
真题76Sub过程与Function过程最根本的区别