为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VB6.0程序设计实践教程习题及答案

2017-10-25 50页 doc 306KB 140阅读

用户头像

is_079973

暂无简介

举报
VB6.0程序设计实践教程习题及答案VB6.0程序设计实践教程习题及答案 Vb6.0 第一章 一、判断题 1(属性是Visual Basic对象性质的描述,对象的数据就保存在属性中。 2(控件的属性值不可以在程序运行时动态地修改。 3(许多属性可以直接在属性表上设置、修改,并立即在屏幕上看到效果。 4(所谓保存工程,是指保存正在编辑的工程的窗体。 5(面向对象的程序设计是一种以对象为基础,由事件驱动对象执行的设计方法。 6(为了使一个控件在运行时不可见,应该将该控件的Enabled属性设置为False。 7(保存Visual Basic文件时,若一个...
VB6.0程序设计实践教程习题及答案
VB6.0程序设计实践教程习题及 Vb6.0 第一章 一、判断题 1(属性是Visual Basic对象性质的描述,对象的数据就保存在属性中。 2(控件的属性值不可以在程序运行时动态地修改。 3(许多属性可以直接在属性上设置、修改,并立即在屏幕上看到效果。 4(所谓保存工程,是指保存正在编辑的工程的窗体。 5(面向对象的程序设计是一种以对象为基础,由事件驱动对象执行的设计方法。 6(为了使一个控件在运行时不可见,应该将该控件的Enabled属性设置为False。 7(保存Visual Basic文件时,若一个工程包含多个窗体或模块,则系统先保存工程文件, 再分别保存各窗体或模块文件。 8(事件是由Visual Basic预先定义的对象能够识别的动作。 9(方法是Visual Basic对象可以相应的用户操作。 10(窗体中的控件,是使用工具箱中的工具在窗体上画出的各图形对象。 11(由Visual Basic语言编写的应用程序有解释和编译两种执行方式。 12(在打开一个Visual Basic工程进行修改后,要另存为一个版本,只需单击“工程另”就行,因为系统将同时保存其他文件。 存为… 13(当用Load命令将窗体装入内存时,一定触发窗体的load事件和Activate事件. 二、选择题 1(要使某个控件不可操作,要对 属性进行设置。 A、Enabled B、Visibale C、Caption D、Name 2(下列不属于对象的基本特征的是 。 A、属性 B、方法 C、事件 D、函数 3(当运行程序时,系统自动执行启动窗体的 事件过程。 A、Click B、Load C、DblClick D、Unload 4(Visual Basic中“程序运行”允许使用的快捷键是 。 A、F2 B、F5 C、Alt+F3 D、F8 5(改变控件在窗体中的左右位置应修改该控件的 属性。 A、Top B、Left C、Width D、Right 6(工程文件的扩展名为 。 A、.vbp B、.bas C、.frx D、.frm 7(在Visual Basic中,称对象的数据为 。 A、属性 B、方法 C、事件 D、封装 8(下列选项中不属于属性的是 。 A、Name B、Caption C、Show D、Text 9(将Visual Basic编制的程序保存在磁盘上,至少会产生何种文件 。 A、.doc与.txt B、.com与.exe C、.bat与.frm D、.vbp与.frm 10(下列关于属性设置的叙述错误的是 。 A(一个控件具有什么属性是VB预先设计好的,用户不能改变它 B(一个控件具有什么属性值是VB预先设计好的,用户不能改变它 C(一个控件的大多数属性既可以在属性窗口中设置,也可以用程序代码设置 D(一个控件的属性在属性窗口中设置后,还可以再利用程序代码为其设置新值 第 1 页 共 75 页 三、填空题 1(Visual Basic中可作为其它控件的容器除了窗体外,还有 和 。 2(在Visual Basic中,窗体和控件被称为 。 3(窗体是用来存放 的容器,窗体的left和top属性是相对 对象的。 4(在打开某窗体时,初始化该窗体中的各控件,应选用 事件。 四、程序设计题 1(编一程序:当用户在文本框中输入姓名,例如输入“机器猫”,单击“确定”按钮,则窗体上出现“机器猫:欢迎你~”,如果单击“结束”按钮,即结束程序运行。 2(在窗体上建立4个命令按钮Command1、Command2、Command3和Command4。 要求: (1)命令按钮的Caption属性分别为“字体变大”、“字体变小”、“加粗”和“”。 (2)每单击Command1按钮和Command2按钮一次,字体变大或变小3个单位。 (3)单击Command3按钮时,字体变粗;单击Command4按钮时,字体又由粗体变为标准。 (4)4个按钮每单击一次都在窗体上显示“青春无悔”。 (5)双击窗体后可以退出。 3(在窗体中创建一个文本框和两个命令按钮Command1和Command2,当单击Command1时,文本框消失;当单击Command2时,文本框出现,并在文本框中显示“我学会了创建一个应用程序了~”,要求Font为楷体和三号。 第1章习题答案 一、 判断题 1,,5:?×?×? 6――10:××?×× 11――13:××× 二、 选择题 1――5:ADBBB 6――10:AACDB 三、 填空题 1、 图片框和框架 2、 对象 3、 控件 屏幕 4、 Load 四、 程序设计题 1、Private Sub Command1_Click() Print Text1.Text End Sub Private Sub Command2_Click() End End Sub 2、Private Sub Command1_Click() Form1.FontSize = Form1.FontSize + 3 Print "青春无悔" End Sub Private Sub Command2_Click() FontSize = FontSize - 3 Print "青春无悔" End Sub Private Sub Command3_Click() Form1.FontBold = True Print "青春无悔" End Sub Private Sub Command4_Click() FontBold = False Print "青春无悔" End Sub 3、Private Sub Command1_Click() Text1.Visible = False End Sub Private Sub Command2_Click() Text1.Visible = True Text1.FontName = "楷体_gb2312" Text1.FontSize = 15 Text1.Text = "我学会了创建一个应用程序了~" End Sub 第二章 一、判断题 1. InputBox函数的返回值的类型为整型。 2. 在逻辑运算符Not、Or、And中,运算优先级有高到低为Not、Or和And。 3. MsgBox函数的返回值的类型为长整型。 4. 整型变量有Byte、Integer和Long三种。 5. 语句Form1.Print Tab(10);”#”的作用是在窗体的第11列位置输出字符”,”。 二、选择题: 1(Visual Basic的逻辑类型数据占( )字节内存。 A.2 B.4 C.8 D.16 2(下列选项中( )是日期型数据。 A.@January10,1997@ B.#January10,2007# C.”January10,1997” D.& January10,1997& 3( 下列哪一个字符串可以作为Visual Basic中的变量名( )。 A. End B. 15efg C. b-12 D. X9[j] 4( 下列哪一个是变量( )。 A.Vbred B.”name123” C.True D.n 5( 整数Int(Rnd()*11)+10的值的范围是( )。 A.[10,20] B.[0,20] C.[10,10] D.[10,11] 6( 语句Y=X+1代表( )。 A.变量Y等于X+1的值 B.变量Y等于变量X的值,然后再加上1的一个表达式 C.将变量X的值加上1后,将结果存入变量Y D.将变量Y存入变量X+1中 7( 对于Inputbox函数,下列说法不正确的是( )。 A(每执行一次Inputbox函数,只能输入一个值。 B(Inputbox函数返回值是数值型数据。 C(Inputbox函数的提示信息参数不能缺省。 D(函数值必须赋与一个变量 8(要把InputBox的返回值转换为数值应该使用的函数是( )。 A(Int B(Asc C(Len D(Val 9(下列对话框函数调用错误的是 ( )。 A(x$=Inputbox("请输入数据") B(Inputbox("请输入数据") C(x=Msgbox("是否继续查询") D(Msgbox("是否继续查询") 三、写出下列Visual Basic表达式的结果: (1) 4*10<65 (2) “AbC''<''ABCD'' (3) ''456''<>''456''& ''Xyz'' (4) Not 11*20<>255 (5)5=5 And 8>4+1 (6)10<>2 Or Not 6>10+3 四、将下列命题用逻辑表达式表示: 1. Z比X,Y都小 2. |x| ? |x+2| 或 x > y+2 3. w是x的倍数 4. x<=-5 且 x<>-10 5. X,Y其中只有一个小于Z 五、填空题 1. Visual Basic算术表达式a+b / (b+c / (d+e / Sqr (2*a*b )))对应的数学表达式 。 2. 产生一个100—999之间的随机整数的表达式 。 3. 整型变量X中存放了一个二位数,要将两位数交换位置,例如,49变成94,实现的表达式是 。 y2x,2e,0sin65,4. 数学表达式的Visual Basic算术表达式为 。 x,y 5. 表达式Ucase(Mid("abcdefgh",2,3))的值是 。 6. 表达式18/3-2^4*4 mod 8的值是 。 7. 不同数据类型中所占字节数最小的是 。 8. 语句Print “5*5”的执行结果为 。 课后习题答案: 一、判断题 1——5 : ××?×× 二、选择题 1——5:ABCDA 6——9: ABDB 三、写出表达式的值 1、True 2、True 3、True 4、False 5、True 6、True 四、略 五、填空题 b1( a,cb,ed, 2ab 2. int(900*rnd)+100 3. right(trim(str((x,1))) & left(trim(str((x,1))) 4. sin(65/180*3.14159)+2*3.14159*sqr(x+2*exp(y))/(x-y) 5.BCD 6.6 7. Byte 8.5*5 第三章 一、思考题 1. 结构化程序设计的特点是什么,面象对象的程序设计与结构化程序设计的主要区别 是什么, 2. Visual Basic中数据输入常用的方法有那些,比较使用文本框和InputBox函数输入数 据的异同。 3. 使用一个文本框,能否直接输入多项数据, 4. 要输入10个数据,能否使用下面的语句来实现。 x=InputBox(“输入10个数据”) 5. 能否使用文本框和InputBox函数直接输入逻辑数据、日期数据, 二、程序阅读 1. 下面程序执行的结果是________。 Private Sub command1_Click() A = 3: B = 2: C = 1 A = B B = C C = A Print "A="; A; "B="; B; "C="; C End Sub 2. 下面程序执行的结果是________。 Private Sub Form_Click() A$ = "456": B$ = "789" C = Val(A$) + Val(B$) Print C \ 100 End Sub 3. 下面程序运行后输出结果是_______。 Private Sub Form_Click() X$ = "A": Y$ = "B": Z$ = "C" X$ = Y$ & X$ : Y$ = Y$ & Z$: Z$ = X$ & Z$ & Y$ Print X$ + Y$ + Z$ End Sub 4. 下列程序段的执行结果为 ()。 Private Sub Form_Click() X=1:Y=2 Z=X=Y Print X;Y;Z End Sub 三、选择题 1. Inputbox函数的参数中,必选参数的作用是( )。 A(输出信息 B(定义提示信息 C(定义隐含信息 D(定义输入的位置 2. 假设变量B是一个布尔型变量,则下面正确的赋值语句是( )。 A(B=T B(B=”True” C(B=#True# D(B=3<4 3.下列程序执行的结果为( )。 x,5:y,6:z,7 Print “a(“;x+z*y;”)” A(a( 47 ) B(a(72) C(a(5+6*7) D(a(47) 4. 以下程序段可以实现X、Y变量值交换的是( )。 A(Y=X:X=Y B(Z=X:Y=Z:X=Y C(Z=X:X=Y:Y=Z D(Z=X:W=Y:Y=Z:X=Y 5(下述程序的运行结果是( )。 A=5 B=-5 C=NOT A=B Print C A(True B(5 C(0 D(无法输出 6(如果将布尔常量False赋值给一个整型变量,则整型变量的值为( )。 A(, B(-, C(True D(False 7(用X、Y、Z表示三角形的三条边,条件“三角形任意两边之和大于第三边”的布 尔表达式可以用( )表示。 A( X+Y>Z And X+Z>Y And Y+Z>X B( X+Y=Z Or X+Z>=Y Or Y+Z>=X 第三章 一、思考题 略 二、程序阅读题 1( A=2 B=1 C=2 2( 12 3( BABCBACBC 4( 1 2 False 三、选择题 1.B 2.D 3.A 4.C 5.A 6.A 7.A 第四章 一、判断题 1.错 2.错 3.错 4.错 5.对 二、选择题 1(A 2. D 3.A 4.B 5.A 6.A 三、程序阅读题 1( x=0 y=7 2. w=4 w=13 w=135 w=31 3. s=1 s=2 s=5 s=20 四、程序填空题 1( (1) max (2)min (3)c>max (4)c 0) Or (y Mod 400 = 0) Then Print "是闰年" Else Print "不是闰年" End If End Sub 2. Private Sub Command1_Click() Dim a%, b%, c%, x!,s! a = Val(InputBox("a=")) b = Val(InputBox("b=")) c = Val(InputBox("c=")) If a + b > c And a + c > b And b + c > a Then x = (a + b + c) / 2 s = Sqr(x * (x - a) * (x - b) * (x - c)) Print "s="; s Else Print "不是三角形,重输a,b,c" End If End Sub 3. Private Sub Command1_Click() Dim x!, y! x = Val(InputBox("x=")) If x < 0 And x <> -3 Then 6 y = x * x + x – elseIf 0 <= x And x < 10 And x <> 2 And x <> 3 Then y = x *sin(x) +2^ x else y=sqr(x+5)+log(x+4)/log(10) End If Print "x="; x, "f(x)="; y End Sub 4( Private sub form_click() Dim y%,z%,dj%,p!,t! ‘y:月 Z: 订票数 dj: 票价 t:总票价 Y=val(inputbox(“月”)) Z= val(inputbox(“订票数”)) Dj= val(inputbox(“票价”)) Select case y case 7,8,9 If z>=20 then p=0.15 else p=0.05 case 1 to 5,10,11 If z>20 then p=0.3 else p=0.2 Case else P=0.2 End select T=z*dj*p ? t end sub 5. private sub form_click() dim m1%,m2%,m3%,dj$ m1=val(inputbox(“m1=”)): m2=val(inputbox(“m2=”)): m3=val(inputbox(“m3=”)) if (m1+m2+m3)/3>=95 or ( a=100 and b=100 and c>=80) or ( a=100 and c=100 and b>=80) or ( c=100 and b=100 and a>=80) then dj=”一等” elseif (m1+m2+m3)/3>=90 or ( a=100 and b>=75 and c>=75) or ( b=100 and a>=75 and c>=75) or ( c=100 and b>=75 and a>=75) then dj=”二等” elseif a>=75 and b>=75 and c>=75 then dj=”三等” else dj=”没有” endif ? “dj=”;dj end sub 第五章 习题与思考题和答案 一、判断题 1(要实现同样的循环控制,在Do While-Loop和Do-Loop While循环结构中给定的循环条件是一样的。 2(Do-Loop While语句实现循环时,不管条件真假,首先无条件地执行一次循环。 3(Do-Loop Until语句实现循环时,只要条件是假,循环将一直进行下去。 4(一个Do循环只能使用一个Loop关键字,但是可以使用多个Exit语句。 5(For循环语句正常结束(即不是通过Exit For语句或强制中断)其循环控制变量的值一定大于“终值”,并等于“终值”+“步长”。 6(如果有多重Do循环嵌套,位于最里层循环体语句中的Exit Do语句可以退出所有的循环。 。 7(For-Next循环结构的默认步长为1 8(Do-Loop语句是循环结构的一种特殊形式,如果循环体中没有Exit Do语句,程序运行就一定会进入死循环。 二、选择题 1(循环结构 For i~=1 to 10 step 1.5 共执行几次 。 A(6 B(7 C(9 D(10 2(下列循环正常结束的是 。 A(i=0 B(i=0 Do Do While i<0 i=i-1 i=i-1 Loop While i<0 Loop C(i=10 D(i=6 Do Do i=i+1 i=i-2 Loop Until i<0 Loop Until i=1 3(下列哪组语句可以将变量A、B值互换 。 A(A=B : B=A B(A=A+B : B=A – B: A=A – B C(A=C : C=B : B=A D(A=(A+B)/2 : B=(A – B)/2 4(下段程序执行的输出结果是 。 S=0:T=0:U=0 For i=1 To 3 For j=1 To i For K=j To 3 S=S+1 Next K T=T+1 Next j U=U+1 Next i Print S;T;U A(3 6 14 B(14 6 3 C(14 3 6 D(16 4 3 5(下程序段循环结构执行后,输出i的值是: A(25 B(10 C(11 D(因为y的初值不知道,所以不确定 For i=1 to 10 step 2 y=y+i Next i Print i; 6(下列程序段的循环结构执行过程中共循环了 次。 For i% = 1 To 10 Step 2 y = y + i Next i A(3 B(4 C(5 D(6 7(以下程序循环的执行次数是 。 a=0 Do while a<=10 a=a+2 loop A(4 B(5 C(6 D(7 三、填空题 1. 由下列循环语句控制的循环次数是 。 For k=25 to 0 step-2 k=k-2 Next k 2. 循环结构的三种语句是: 、 、 。 3. 写出For i= -12 To –33 Step –4 所进行的循环后,i的值是 。 四、程序阅读题 1(写出以下程序在单击窗体后的输出结果。 Private Sub Form_click() mun=4 while mun<=3 mun=mun+1 Print mun Wend Print mun End Sub 2(程序运行时单击 Command1后,输入12345678,写出窗体上的输出结果。 Private Sub Command1_Click() Dim x As Long, y As String x = InputBox("输入一个数") Do While x <> 0 y = y & x Mod 10 y = x Mod 10 & y x = x \ 100 Print y Loop End Sub 3(写出程序运行后,单击窗体Form1上显示的内容。 Private Sub Form_Click() Dim i As Integer, j As Integer, y As Double i = 0 y = 1 Do While i <= 3 For j = 1 To (i + 1) y = y * j Next j Print "y="; y i = i + 1 Loop End Sub 4. 写出以下程序在单击窗体后的输出结果。 Private Sub Form_click() Dim k,a,b as integer a=20 b=2 k=2 Do While k<=a b=b*2 k=k+5 Loop Print b End Sub 5. 写出以下程序在单击命令按钮后的输出结果。 Private Sub Form_click() k=0 for i=1 to 5 for j=1 to 3 if j mod 2<>0 then k=k+1 end if k=k+1 next j next i Print k End Sub 6(Private Sub Form_Click() Dim i As Integer, j As Integer Dim star As String star = "#" For i = 1 To 6 For j = i To 6 Form1.Print star; Next j Form1.Print Next i End Sub 写出程序运行后,单击窗体后,Form1上输出结果为。 五、程序填空题 计算f=1,1/(2*3)+1/(3*4),1/(4*5)+„„+1/(19*20)。 1. 下面程序的功能是: Private Sub Form_Click() Dim f As Single, i As Integer, sign As Integer ? f = 1 ? ? f = f + sign / (i * (i + 1)) Next i Print "f="; f End Sub 2(下面的程序是在一个字符串变量中查找"at",并用消息框给出查找结果的:没有找到 或找到的个数,程序如下: Private Sub Form_Click() Dim str1 As String ' 在字符串str1中查找"at" Dim length As Integer ' 字符串长度 Dim sum As Integer ' 查到的个数 Dim i As Integer str1 = InputBox("请输入一个字符串") length = ? i = 1 sum = 0 Do While i <= ? If ? = "at" Then sum = sum + 1 End If i = i + 1 Loop If ? Then MsgBox "没有找到~" Else MsgBox "找到了" & Str(sum) & "个" End If End Sub 3(找出1个在1,1000中被7除余5、被5除余3、被3除余2的数(用Exit For)。 Private Sub Form_Click() Dim i As Integer For i = 5 To 1000 Step 7 If ? Then Exit For Next i If ? Then Print i End Sub 4(以下程序的功能是:从键盘输入若干个学生的考试成绩, 统计并输出最高分和最低分,当输入负数时结束输入,输出结果。 请填空。 Private Sub form_Click() Dim x,amax,amin as single X=inputbox(”enter a score”) amax=x amin=x do while ? if x>amax then amax=x end if if ? then amin=x end if x=inputbox(“enter a score”) loop print “max=”;amax;”min=”;amin End Sub 5(现面的程序功能是:求Fabonia数列的第17个数是多少,第几个数起每个数都超过1E+8, Public Sub Form_Click() ' Fabonia数列的前三个数是0,1,2, 从第 四个数起,每个数都是它前面的两个 数之和 Dim last_one As Long,last_two As Long,this_one As Long,i As Integer last_one = 1 ' 数列的第二个数 last_two = 2 ' 数列的第三个数 i = 4 ' 从数列的第四个数求起 Do this_one = last_one + last_two ? ? If i = 17 Then Print "No:17="; this_one End If ? Loop While this_one <= 100000000# Print "No:"; ? ; "is > 1E+8" End Sub 6(以下程序是验证100至200之间的所有偶数都能分解为两个素数之和。 Private Sub Form_click() Dim n As Integer,m As Integer Dim i As Integer,j As Integer For n=100 to 200 Step 2 For m=2 To (n/2) For i=2 To Int(Sqr(m)) If m Mod i=0 Then Exit For Next i If ? Then For j=2 To ? If(n-m) Mod j=0 Then Exit For Next j If j>Int (Sqr(n-m)) Then Print n,m,n-m End If Next m Next n End Sub 六(编程题 (1)编程序计算:1~+3~+5~+….+11~ (2)输入两个正整数m和n,求其最大公约数a和最小公倍数b,计算最大公约数a 的方法如下:先算出m/n 余数r,若r等于0,则n为最大公约数;若r不为0,则把原来的n 值作为新的m值,把原来的r值作为新的n值,继续运算。这样辗转相除,直到r为0,此 时的n值为最大公约数a,最小公倍数则可用原始m与n值的积除以最大公约数求得。 (3)打印由数字组成的如下所示金字塔图案 1 222 33333 4444444 555555555 6666666 77777 888 9 4)试编程序解决百钱买百鸡问题。公元前5世纪,我国数学家张丘建在《算经》中( 提出“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、 鸡母、鸡雏各几何, 23n-5(5)编程序求表达式 s=1+x+x/2!+x/3!+„+x/n!+„的值和直至末项小于10为止,并在 窗体上输出。 答案 一(判断题 ×???××?× 二(选择题 BBBDCCC 三.填空题 (1)7 (2)Do/Loop For/Next While/Wend (3)-36 四.程序阅读题 1、 4 88 2、 6886 468864 2468852 3、y=1 y=2 y=12 y=288 4、32 5、25 # # # # # # 6、 # # # # # # # # # # # # # # # 五(程序填空题 1.?sign=1 ?For i=2 to 19 (3)sign=-sign 2.?Len(str1) ?length ?Mid(str1,i,2) ?Sum=0 3.?i mod 7=5 and i Mod 5 = 3 And i Mod 3=2 ?i<1000 4. (1)x>=0 (2)xint(sqr(m)) ?Int(Sqr(n-m)) 六(编程题 (1) Private Sub Form_Click() Dim i As Integer, j As Integer Dim s As Double, Sum As Double s = 1 Sum = 0 For i = 1 To 11 Step 2 For j = 1 To i s = s * j Next j Sum = Sum + s Next i Print Sum End Sub (2) Private Sub Form_Click() Dim m%, n%, mn%, r%, t% m = Val(InputBox("m=")) n = Val(InputBox("n=")) If n <= 0 Or m <= 0 Then MsgBox "数据有误" End End If mn = m * n If m < n Then t = m: m = n: n = t End If Do While (n <> 0) r = m Mod n: m = n: n = r Loop Form1.Print "最大公约数="; m Form1.Print "最小公倍数="; mn / m End Sub (3) Private Sub Form_Click() Dim i%, j% For i = 1 To 5 Print Spc(20 - i); For j = 1 To 2 * i - 1 Print Trim(Str(i)); Next j Print Next i For i = 4 To 1 Step -1 Print Spc(20 - i); For j = 1 To 2 * i - 1 Print Trim(Str(10 - i)); Next j Print Next i End Sub (4) Private Sub Form_Click() Dim x As Integer Dim y As Integer Dim z As Integer For x = 0 To 100 For y = 0 To 100 - x z = 100 - x - y If 5 * x + 3 * y + z / 3 = 100 Then Print x, y, z Next y Next x End Sub (5) Private Sub Form_Click() Dim x As Single, y As Single, a As Single, i As Integer x = Val(InputBox("输入x:")) a = 1: y = a: i = 0 While a >= 0.00001 i = i + 1: a = a * x / i: y = y + a Wend Print "y="; y End Sub 第六章 一、判断题 1(数组中所有元素的数据类型不一定相同。 2(可以在程序中使用ReDim语句来改变动态数组的大小、维数和类型。 3(数组的下界一定是0。 4(定义数组时,其下界只能为正整数。 5(可以在通用的声明部分使用Option Base -1语句把数组下标下界的默认值设为-1。 6(在VB中,用Dim定义数组时,数组元素将自动赋初值为0。 二、选择题 1(定义数组A(1 To 5,5)后,下列哪一个数组元素不存在 。 A(A(1,1) B(A(1,0) C(A(0,1) D((5,5) 2(在过程中定义Dim A(1 To 10,3 )As Single,则数组占用 字节的内存空间。 A(132 B(80 C(160 D(120 3(下列关于数组的说法正确的是 。 A(在VB中,一个数组中所包含的元素只能是相同类型的数据 B(在VB中,数组只能在模块中定义,不能在过程中定义模块 C(同普通变量一样,数组也可以不定义,先使用 D(在定义数组时,数组的每一维元素的个数必须是常数,不能是变量或表达式 4(使用语句Dim A() As Integer声明数组A之后,以下说法正确的是 。 A(A数组中的所有元素值为0 B(A数组中的所有元素值不确定 C(A数组中的所有元素值为Empty D(再执行语句ReDim A(1 to 10) As Integer后,A数组中的所有元素值不为0 5(已知数组b中的5个元素分别是1,3,5,7,9,现将数组b中的5个数逆序存放(即排列为9,7,5,3,1)。为实现此功能,正确的程序段应该是: 。 A(For i = 0 To 5-1\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i B(For i = 0 To 5: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i C(For i = 0 To 5\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i D(For i = 1 To 5\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i 6(在窗体上画一个命令按钮,然后编写如下事件过程: Option Base 1 Private Sub Command1_Click() Dim a(1 To 4) As Integer, i As Integer, j As Integer, s As Long For i = 1 To 4: a(i) = i: Next i j = 1 For i = 4 To 1 Step -1 s = s + a(i) * j j = j * 10 Next i Print s End Sub 运行上面的程序,单击命令按钮,其输出结果是 。 A(4321 B(12 C(34 D(1234 三、程序填空题 1(以下代码是对冒泡法排序(升序)的改进,具体方法为:当某一趟比较中没有交换发生, 则认为排序完毕,而不管比较趟数是否达到N,1次。 Const N=30 Private Sub Form_Click() Dim A(N) As Integer Dim i As Integer, j As Integer, t As Integer For i = 1 To N A(i) = Int(Rnd * 99 + 1) Next i For i = N To 2 Step -1 For j = 1 To (1) If A(j) > A(j + 1) Then (2) End If Next j Next i For i = 1 To N (3) If i Mod 6 = 0 Then Print Next i End Sub 2(下面的过程用来输出如图6.3所示,但不完整,请在横线上填入必要的内容,使其完整。 图6.3 输出结果图 Option Base 1 Private Sub Form_Click() Dim a(5, 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 If j <= i Then (1) End If Print a(i, j); " "; Next j (2) Next i End Sub 3(下面的程序用随机函数生成有n(n>10)个数值元素的一维数组,求出这个数组元素的 最大值、最小值和它们的平均值。根据题意,完成下列程序: Private Sub Command1_Click() Dim x() As Integer, n As Integer, sum As Double Dim i As Integer, max As Integer, min As Integer Do n = InputBox("请输入一个大于10的数") Loop Until (1) ReDim (2) Randomize Print "产生的"; n; "个随机整数是:" x(1) = Int(1000 * Rnd) + 1 max = x(1): min = x(1): sum = x(1) Print x(1); For i = (3) x(i) = Int(100 * Rnd) + 1 If x(i) > max Then max = x(i) If x(i) < min Then min = x(i) sum = sum + x(i) Print x(i); Next i Print Print "最大值是:"; max Print "最小值是:"; min Print "平均值是:"; (4) End Sub 4(下面的程序用于输出由数字组成的如图6.4所示的杨辉三角形图案。 图6.4 杨辉三角形 Private Sub Form_Click() Const n = 8 Dim a(n + 1) As Byte, i As Integer, j As Integer Dim s As String '给数组a赋初值 For i = 1 To n + 1 a(i) = 0 Next i '计算并打印第一个数 a(1) = 1 Form1.Print Space(2 * n + 2); '计算数字前的空格数 Form1.Print a(1) '计算其余行的数并打印 For i = 2 To (1) a(i) = a(i - 1) For j = (2) To 2 Step -1 (3) Next j Form1.Print Space((n - i + 1) * 2); For j = 1 To i s = Trim(Str( (4) )) Form1.Print Space(Int((4 - Len(s)) / 2 + 0.5)) + s + _ Space(Int((4 - Len(s)) / 2 + 0.5)); Next j Form1.Print Next i End Sub 四、程序阅读题 1( 写出程序运行后,单击窗体Form1上显示的内容。 Private Sub Form_Click() Dim ary(1 To 4) As Integer Dim i As Integer Dim Sum As Integer For i = 1 To 4 ary(i) = i Sum = Sum + ary(i) Print ary(i); Next i Print Print "Sum="; Sum End Sub 2(写出单击窗体后程序执行的结果。 Private Sub Form_Click() Dim a(1 To 10) Dim P(1 To 3) k = 5 For i = 1 To 10 a(i) = i Next i For i = 1 To 3 a(i) = a(i * i) Next i For i = 1 To 3 k = k + P(i) * 2 Next i Print k End Sub 3(写出单击窗体后程序执行的结果。 Private Sub Form_Click() Dim A(4, 4) As Integer, k As Integer, j As Integer, t As Integer For k = 1 To 4 For j = 1 To 4 A(k, j) = j Form1.Print A(k, j); Next j Print Next k Form1.Print For k = 2 To 4 For j = 1 To k t = A(k, j): A(k, j) = A(j, k): A(j, k) = t Next j Next k For j = 1 To 4 Form1.Print A(j, 1); A(j, 2); A(j, 3); A(j, 4) Next j End Sub 4(写出程序执行的结果。 Private Sub Form_Click() Dim A(4, 4) As Integer Dim c As Integer, r As Integer Dim i As Integer, j As Integer, k As Integer c = 4: r = 1: i = 1: j = 1 For k = 1 To 16 A(i, j) = k If i < c And j = r Then i = i + 1 Elseif i = c And j < c Then j = j + 1 Elseif i > r And j = c Then i = i - 1 Elseif i = r And j > r + 1 Then j = j - 1 End If If i = r And j = r + 1 Then c = c - 1 r = r + 1 End If Next For i = 1 To 4 For j = 1 To 4 Print Tab(j * 4); A(i, j); If j = 4 Then Print Next j Next i End Sub 第六章答案 一、判断题 1(错 2(错 3(错 4(错(可以为小数,不过仍然是当作整数来处理) 5(对 6(错 二、选择题 1(C 2(C 3(A 4. C 5. C 6. D 三、程序填空 1((1) n-i (2) t = a(j): a(j) = a(j + 1): a(j + 1) = t(3)Print a(i) 2((1)a(i, j) = 1 (2)Print 3. (1)n>10 (2)x(1 to n) as Integer (3)2 to n (4)sum/n 4. (1)n+1 (2)i-1 (3)a(j)+a(j-1) (4)a(j) 四、程序阅读 1. 1 2 3 4 Sum=10 2(5 3( 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 4((前面空4个空格) 1 12 11 10 2 13 16 9 3 14 15 8 4 5 6 7 五、程序设计题 1、交换元素 Private Sub Command1_Click() Dim a(1 To 20) As Integer, i As Integer, t As Integer For i = 1 To 20 a(i) = Int(Rnd * 90) + 10 Next i Print "交换前的数为:" For i = 1 To 20 Print a(i); If I mod 10=0 then print Next i Print For i = 1 To 10 t = a(i): a(i) = a(11 - i): a(11 - i) = t Next i Print "交换后的数为:" For i = 1 To 20 Print a(i); If I mod 10=0 then print Next i End Sub 2.求最大元素和行、列坐标 Private Sub Form_click() Dim a(1 To 5, 1 To 5) As Integer, i As Integer, j As Integer Dim max As Integer, maxi As Integer, maxj As Integer Dim min As Integer, mini As Integer, minj As Integer min = 20 For i = 1 To 5 For j = 1 To 5 a(i, j) = Int(Rnd * (11)) + 10 If a(i, j) > max Then max = a(i, j) maxi = i maxj = j End If If min > a(i, j) Then min = a(i, j) mini = i minj = j End If Print a(i, j); Next j Print Next i Print "最大元素是:" & Str(max) & "行下标" & Str(maxi) & "列下标" & Str(maxj) Print "最大元素是:" & Str(min) & "行下标" & Str(mini) & "列下标" & Str(minj) End Sub 3(求对角线和靠边元素之和 Private Sub Command2_Click() Dim a(1 to 5, 1 to 5) As Integer, i%, j% Dim sum1 As Integer, sum2 As Integer sum1 = 0: sum2 = 0 Print "数组:" For i = 1 To 5 For j = 1 To 5 a(i, j) = Int(Rnd * 9) + 1 Print a(i, j); Next j Print Next i For i = 1 To 5 For j = 1 To 5 If i = 1 Or j = 1 Or i = 5 Or j = 5 Then sum1 = sum1 + a(i, j) If i = j Or i + j = 6 Then sum2 = sum2 + a(i, j) Next j Next i Print "数组靠边元素之和为:"; sum1 Print "数组对角线元素之和为:"; sum2 End Sub 4、略 第七章 一、判断题 1(静态变量是一种局部变量,当原过程再次被执行时,静态变量的初值是上一次过程调用后的值。 2(事件过程由某个用户事件或系统事件触发执行,它不能被其他过程调用。 3(可以在窗体的通用部分声明静态变量。 4(事件过程只能由系统调用,在程序中不能直接调用。 5(当形参定义是传地址方式,调用是如果使用常量或表达式,则数据是按值传递。 6(事件过程通常由事件驱动执行的,而SUB过程是通过过程调用执行的。 7(子程序调用时,如果参数按址传递并且实在参数是变量,则子程序在执行时对形参的修改不会影响到对应传递的实参变量的内容。 二、选择题 orm2 中引用 Form1 中的全局变量x,写作 。 1(在 F A(x B(Form1.x C(Form2.x D(Form1_Pablic.x 2(编制一个将Single类型数组,各元素按值从小到大排序的Sort过程,该过程 。 为 A(Private Sub sort(a()As Single, n As Integer)As Integer B(private Sub sort(a(l To n)As Single,n As Integer) C(Private Sub sort(ByRef a()As Single,n As Integer)As Integer D(Private Sub sort(a()As Single,n As Integer) 3(下面程序运行后,单击窗体的打印结果为 。 Private Sub Form_Click() Dim f(2) For I=0 to 2 f (i)=SQ(I*I+1) Next I Do Until I=0 I=I-1 Print "F(";I;")=";F(i); Loop End Sub Public Function SQ(x) x=x+2 Sq=x*4-5 End Function A(F(0)=7 F(1)=11 F(2)=23 B(F(2)=7F(1)=11F(0)=23 C(F(0)=23 F(1)=11 F(2)=7 D(F(2)=23F(1)=11F(0)=7 4(设有如下自定义函数: Public Function f(x As Integer) Dim y As Integer x = 20 y = 2 f = x * y End Function 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Static x As Integer x = 10 y=5 y = f(x) Print x; y End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是 。 A(10 5 B(20 5 C(20 40 D(10 40 5(设有如下通用过程: Public Sub Fun(a(), ByVal x As Integer) For i = 1 To 5 x = x + a(i) Next End Sub 在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下 的事件过程: Private Sub Command1_Click() Dim arr(5) As Variant For i = 1 To 5 arr(i) = i Next i n = 10 Call Fun(arr(), n) Text1.Text = n End Sub 程序运行后,单击命令按钮,则在文本框中显示的内容是 。 A(10 B(15 C(25 D(24 6(以下叙述中错误的是 。 A(如果过程被定义为Static类型,则该过程中的局部变量是Static类型 B(Sub过程中不能嵌套定义Sub过程 C(Sub过程中可以嵌套调用Sub过程 D(事件过程可以像通用过程一样由用户定义过程名 7(过程调用时,形参和实参之间数据传送的原则正确的是 。 A(按实参与形参同名的原则 B(按实参与形参位置对应的原则 C(按实参与形参个数相同,且类型也对应的原则 D(按实参与形参不仅位置对应,且类型也对应的原则 8(Function过程有别于Sub过程的最主要特点是 。 A(Function过程一定要有形参,而Sub过程可以没有形参 B(Function过程的终端语句是End Function,Sub过程的终端语句是End Sub C(Function过程是用于计算函数值,而Sub过程是用于改变属性值 D(Function过程要返回函数值,而Sub过程没有数值返回 9(编写如下事件过程: Private Sub sub1(ByVal x1 As String, y1 As String) Dim xt As String Dim i As Integer i = Len(x1) Do While i >= 1 xt = xt + Mid(x1, i, 1) i = i - 1 Loop y1 = xt End Sub Private Sub Form_Click() Dim s1 As String, s2 As String s1 = "teacher" sub1 s1, s2 Print s2 End Sub 程序运行后,单击窗体,则窗体上显示的内容是 。 A(rehcaet B(teacher C(therace D(certhea 10(在窗体上画一个名为Command1的命令按钮,然后编写如下通用过程和命令按钮 的事件过程: Private Function f(m As Integer) If m Mod 2 = 1 Then f = 1 Else f = m End Function Private Sub Command1_Click() Dim i As Integer s = 0 For i = 1 To 5 s = s + f(i) Next i Print s End Sub 程序运行后,单击命令按钮,在窗体上显示的是 。 A(11 B(10 C(9 D(8 三、程序阅读题 1(有以下程序。 Dim a As Integer, y As Integer Private Sub Command1_Click() Call aa(5) y = y + a Print "y="; y, "a="; a End Sub Sub aa(i As Integer) x = 1 Do Until x > i a = a + x x = x + 3 Loop End Sub 写出程序运行时连续三次单击Command1后,窗体上显示的结果。 2(有以下程序: Function chg(a As Integer, b As Integer) As Integer Dim n As Integer For n = 0 To 2 a = a + b Next n chg = a End Function Private Sub Form_Click() Dim a As Integer, b As Integer , z As Integer a = 1: b = 1 For n = 1 To 3 z = chg(a, b) Form1.Print "n="; n, "z="; z Next n End Sub 写出程序运行时单击窗体后,Form1上的输出结果。 3(依次写出下列程序运行时四次单击命令按钮Command1后窗体上的输出结束。 Dim x As Integer, y As Integer Private Sub f1(a As Integer) a=a/2 End Sub Private Sub f2(ByVal b As Integer) b=b/2 End Sub Private Sub Command1_Click() Call f1(x) Call f2(y) Print x, y End Sub Private Sub Form_Load() x= 64:y =64 End Sub 4(有如下程序段: Dim y as integer Private sub Form_click() Dim x as integer X=1 Y=1 Call aa(y+1) Z=BB(x) Print x,y,z End sub Public sub aa(byval z as integer) Y=z+x Z=x+y End sub Public function BB(byref y as integer) Y=y+1 Bb=x+y End function 写出当单击窗体后,窗体上显示结果。 5(有如下程序段: Public Sub Swap1(ByVal x As Integer, ByVal y As Integer) Dim t As Integer t = x x = y y = t End Sub Public Sub Swap2(x As Integer, y As Integer) Dim t As Integer t = x x = y y = t End Sub Private Sub Form_Click() Dim a As Integer, b As Integer a = 10 b = 20 Swap1 a, b Form1.Print "A1="; a, "B1="; b a = 10 b = 20 Swap2 a, b Form1.Print "A2="; a, "B2="; b End Sub 写出程序运行后,单击窗体,Form1上的输出结果。 四、程序填空题 1(程序说明:下面total()过程功能是计算s=7+77+777+„„+(n个7组成的数)。 程 序代码如下: Public Sub total() Const n = 20 Dim s As Single, i As Integer For i = 1 To n s = s + (1) Next i Form1.Print "s="; s End Sub Public Function number( (2) ) As Single Dim i As Integer number = 0 For i = 1 To n (3) Next i End Function 2(程序说明:有Summary过程是用于计算1!+2!+...+20!,并打印出计算结果,但不完整,请在横线上填入必要的内容,使其完整。nFactor函数过程用于计算n!。 程序如下: Public Function nFactor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double (1) For i = 1 To n temp = temp * i Next i nFactor = (2) End Function Public Sub summary() Dim sum As Double Dim i As Integer Dim n As Integer n = 20 For i = 1 To n sum = sum + (3) Next i Form1.Print "sum=" & (4) End Sub 3(程序说明:在窗体上有一个文本框(Text1)、图片框和两个命令按钮及两个标签如图7.5所示:在Text1文本框中输入若干个字符,按“确定”按钮后,则在图片框中输出该字符串,如果输入的字符串是回文的字符串(注:顺读、倒读都一样的字符串),后加“?”并清除文本框中的内容,输入焦点仍在文本框中,等待输入新的字符串。 图7.5 判断回文界面 Private Sub Command2_Click() (1) '结束程序 End Sub Private Sub Command1_Click() Dim str As String str = Text1.Text If (2) Then Picture1.Print str & "?" Else Picture1.Print str & " " End If Text1.text="" '将文本框内容清空 Text1.setfocus '将焦点设置到text1文本框中 End Sub Private Function hwstring(strtxt As String) (3) Dim dzstrtxt As String Dim i%, n% strtxt = RTrim(LTrim(strtxt)) (4) dzstrtxt = "" For i = 1 To n dzstrtxt = Mid$( strtxt, i, 1) & dzstrtxt Next i If dzstrtxt = strtxt Then hwstring = (5) Else hwstring = (6) End If End Function 4(设工程中包含一个窗体模块和一个标准模块,在标准模块中的过程asum用于求二维数 组a(m,n)各行元素的和,并将和保存在一维数组b中。窗体模块中的代码实现单击窗体时生 成(0,10)之间的随机整数,存于5行6列的二维数组x中,并以5行6列的形式显示在窗体 上,调用标准模块中的过程求每行元素的和,并输出求和结果。 标准模块代码: Sub asum( (1) ) For i = 1 To m b(i) = 0 For j = 1 To n b(i) = b(i) + a(i, j) Next j Next i End Sub 窗体模块代码: Private Sub Form_Click() Dim x(5, 6) As Integer, y(5) As Integer For i = 1 To 5 For j = 1 To 6 x(i, j) = (2) Print x(i, j); Next j (3) Next i Call asum(5, 6, x(), (4) ) For i = 1 To 5 Print y(i) Next i End Sub 五、程序设计题 1(键盘输入10个整数,输出其中的最大数和平均值,并将这10个数从小到大排序输出到窗体上。要求分别编写子过程Maxnum、Avenum和Sortrnum来求最大数、平均值和排序,然后在窗体的单击事件过程中调用这些函数。 2nxx2(编程序求表达式的值,并在窗体上输出。要求如下: e1x.....,,,,,2!n! (1)在窗体单击事件中变量x与n的值用InputBox函数输入,通过调用函数过程fe实现题目要求。 (2)求表达式的值用函数过程Function fe(n%,x!)As Single完成。 3(由输入对话框输入10个数值数据放入数组a。然后运用选择排序法将数组a中的数据按从大到小的顺序排列,并以每行5个数据在窗体上输出,排序的过程要求用子过程sort()来完成。 4(编制通用函数过程fsum,计算Single类型一维数组所有元素的和。 Vb6.0 答案: 判断题: 1、对 2、错 3、错 4、错 5、对 6、对 7、错 选择题: 1(B 2、D 3、D 4、C 5、A 6、D 7、D 8、D 9、A 10、C 程序阅读题: 1、 y=5 a=5 2、n=1 z=4 y=15 a=10 n=2 z=7 y=30 a=15 n=3 z=10 、 32 64 4、 2 2 2 3 16 64 8 64 4 64 5、 A1=10 B1=20 A2=20 B2=10 程序填空题: 1((1)number(i) (2)Byval n as Integer (3)number= number+7*10^ i 第 35 页 共 75 页 2((1)temp=1 (2) temp (3)nFactor( i ) (4)sum 3、(1) end (2) hwstring(str) (3) As Boolean (4) n=len(strtxt) (5) True (6) False 4、(1) m As Integer, n As Integer, a( ) As Integer, b( ) As Integer (2) Int(Rnd * 10) (3) Print (4) y( ) 程序设计题: 1、具体程序为: Function Maxnum(ByRef a() As Integer, ByVal n As Integer) As Integer Dim i As Integer Maxnum = a(1) For i = 2 To n If a(i) > Maxnum Then Maxnum = a(i) Next i End Function Function Avenu(ByRef a() As Integer, ByVal n As Integer) As Single Dim i As Integer, sum As Integer For i = 1 To n sum = sum + a(i) Next i Avenu = sum / n End Function Sub Sortrnum(ByRef a() As Integer, ByVal n As Integer) Dim i As Integer, j As Integer, k As Integer Dim temp As Integer For i = 1 To n k = i For j = i + 1 To n If a(k) > a(j) Then k = j Next j If i <> k Then temp = a(i) a(i) = a(k) a(k) = temp End If Next i End Sub Private Sub Form_Click() Dim b(10) As Integer, i As Integer For i = 1 To 10 b(i) = InputBox("请输入整数", "输入") Next i Call Sortrnum(b(), 10) Print "从小到大排序为:" For i = 1 To 10 Print b(i); Next Print Print "最大数为:"; Maxnum(b(), 10) Print "平均数为:"; Avenu(b(), 10) End Sub 2、具体程序为: Function fe(n%, x!) As Single Dim temp As Single, i As Integer fe = 1 temp = 1 For i = 1 To n temp = temp * x / i fe = fe + temp Next i End Function Private Sub Form_Click() Dim n As Integer, x As Single n = Val(InputBox("请输入n", "输入")) x = Val(InputBox("请输入x", "输入")) Print "e的值为:"; fe(n, x) End Sub 3、具体程序为: Sub sort(a() As Single, n As Integer) Dim i As Integer, j As Integer, k As Integer Dim temp As Single For i = 1 To n k = i For j = i + 1 To n If a(k) < a(j) Then k = j Next j If i <> k Then temp = a(i) a(i) = a(k) a(k) = temp End If Next i End Sub Private Sub Form_Click() Dim a(10) As Single, i As Integer For i = 1 To 10 a(i) = Val(InputBox("请输入数据", "输入")) Next i Call sort(a(), 10) Print "从大到小为:" For i = 1 To 10 Print a(i); If i Mod 5 = 0 Then Print Next i End Sub 4、 Private Function fsum(a() As Single, n As Integer) Dim i As Integer fsum = 0 For i = 1 To n fsum = fsum + a(i) Next i End Function 第八章 一、判断题 1(用来显示文本框内容的属性是Caption属性。 2(滚动条的Scroll事件在滑块位置改变时即被触发。 3(滚动条控件可作为用户输入数据的一种方法。 4(若在列表框中第三项之后插入一项目“ABC”,则所用语句为List1.AddItem"ABC",3。 5(一个窗体中只能含一组单选按钮。 6(用Cls方法可以清除组合框中的所有表项。 7(列表框控件,只能设置为单选。 8(对象的属性都可以在属性窗口中设置。 9(命令按钮不但能响应单击事件,而且还能响应双击事件。 10(单选框控件和复选框控件都具有Value属性,它们的作用完全一样。 11(移动框架时,框架内的控件也跟着移动,并且框架内的各控件的Top和Left属性值也将分别随之改变。 12(当文本框的Multiline属性为True时,ScrollBars属性才有效。 13(与控件有关的赋值语句一定要放在该控件的事件中。 14(由于定时器控件在运行时是看不见的,因此在设置时可任意地将其放在任何位置。 15(当列表框中表项太多,超出了设计时的长度时,VB会自动给列表框加上垂直滚动条。 16(若文本框的MaxLength属性值为0,则该文本框内不可输入任何字符。 17(若复选框控件的Value属性值为True,则框内显示“?”,若Value属性值为False,则显示空白。 18(当触发滚动条的Scroll事件后,一定会同时触发滚动条的Change事件。 19(如果命令按钮的Defalut属性为True,那么任何时候按Enter键都相当于单击该命令按钮。 20(所有控件都有Name和Caption属性。 二、选择题 1(文本框中选定的内容,由下列 属性来反映。 A(SelText B(SelLength C(Text D(SelStart 2(执行后会删除文本框Text1中文本的语句为,,,,。 A(Text1.Caption=”” B(Text1.Text=”” C(Text1.Clear D(Text1.Cls 3(将数据“宋体”添加到列表框List1中,并使其成为第一项,使用,,,,语句。 A(List1.AddItem "宋体",0 B(List1.AddItem "宋体" C(List1.AddItem 0,"宋体" D(List1.AddItem "宋体",1 4(复选框对象是否被选中,是由其,,,,属性决定的。 A(Checked B(Enabled C(Value D(Selected 5(组合框中的Style属性值确定了组合框的类型和显示方式,以下选项中不属于组合框Style属性值的是 。 A(下拉式组合框 B(弹出式组合框 C(简单式组合框 D(下拉式列表框 6(不能通过,,,,来删除列表框中的选择项。 A(List属性 B(RemoveItem方法 C(Clear方法 D(Text属性 7(以下不允许用户在程序运行时输入文字的控件是,,,,。 A(标签框 B(文本框 C(下拉式组合框 D(简单组合框 8(滚动条的,,,属性用于指定用户单击滚动条的滚动箭头时,Value属性值的增、减量。 A(LargeChange B(SmallChange C(Value D(Change 9(执行语句List1.List(List1.ListCount),“80”语句后,,,,。 A(会产生出错信息 B(List1列表框最后一项被给为“80” C(List1会增加一个“80”项 D(指定List1列表框的表项个数为80个 10(为使文本框显示滚动条,必须首先设置的属性是,,,,。 A(AutoSize B(Alignment C(Multiline D(ScrollBars 11(设计动画时通常用时钟控件,,,,属性来控制动画速度。 A(Interval B(Timer C(Move D(Enabled 12(将定时器的时间间隔设置为1秒,那么定时器的Interval属性值应为,,,, A(1000 B(1 C(100 D(10 (下列哪一个属性用来表示各对象(控件)的位置,,,,。 13 A(Text B(Caption C(Left D(Name 14(将焦点主动设置到指定的控件或窗体上,应采用,,,,方法。 A(SetData B(SetFoucs C(SetText D(GetData 15(标签框控件和文本框控件内的对齐方式由——,,,,属性决定。 A(Alignmemt B(Multiline C(AutoSize D(Name 16(在程序运行期间属性值不允许改变的属性是,,,,属性。 A(Caption B(Name C(BackColor D(Enabled 17(OptionButton控件和CheckButton控件都有Value属性,下列叙述正确的是,。 A(都是设置控件是否可用 B(都是设置控件是否可见 C(OptionButton的Value属性是逻辑值,而CheckButton的Value值是数值 D(OptionButton的Value属性是数值,而CheckButton的Value值是逻辑值 18(下列表达式错误的是,,,,。 A(Label1.Visible And Label2.Visible B(Text1.Text + s$ + Text2.Text C(( Label1.Height +Label2.Width )/2 D(Text1.Index +Text1.Visible 19(文本框的ScrollBars属性值为3-Both,但是在文本框中确看不到水平与垂直滚动条,可能的原因是 。 A(文本框的MultiLine属性值为False B(文本框的MultiLine属性值为True C(文本框尚未输入内容 D(文本框的Locked属性值为False 20(下列关于添加“控件”的方法正确的是 。 A(单击控件图标,将指针移到窗体上,双击窗体 B(双击工具箱中的控件,即在窗体中央出现该控件 C(单击工具箱中的控件,将指针移到窗体上,再单击 D(用鼠标左键拖动工具箱中的某控件到窗体中适当位置 21(下面有一程序,如果从键盘上输入“Testing”,则在文本框中显示的内容是 。 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii >= 65 And KeyAscii <= 122 Then KeyAscii = 65 End If End Sub A(A B(Testing C(AAAAAAA D(程序出错 22(文本框Text1和Text2用于接受输入的两个数,求这两个数的乘积,错误的是 。 A(y=Text1.Text * Text2.Text B(y=Val(Text1.Text) * Val (Text2.Text) C(y=Str(Text1.Text) * Str(Text2.Text) D(文本框的Text属性是字符型,所以以上语句都错误。 23(为了在按下Esc键时执行某个命令按钮的Click事件过程,需要把该命令按钮的一个属性设置为True,这个属性是 。 A(Value B(Default C(Cancel D(Enabled 24(假定窗体上有一个标签,名为Label1,为了使该标签透明并且没有边框,则正确的属性设置为 。 A(Label1.BackStyle,0 : Label1.BorderStyle=0 B(Label1.BackStyle,1 : Label1.BorderStyle=1 C(Label1.BackStyle,True : Label1.BorderStyle=True D(Label1.BackStyle,False : Label1.BorderStyle=False 25(程序运行时,拖动滚动条上的滚动块,则触发的事件是 。 A(Move B(Change C(Scroll D(GetFocus 三、填空题 1(要是标签框(Label)l控件可换行显示并且可自动调节大小,需将其 属性和 属性同时设置为True。 2(大多数控件都可设置其 属性使其有效或无效,可设置其 属性使其可见或不可见。 3(组合框具有 和 两种控件的基本功能。 4(鼠标 的动作,使滚动条的Scroll、Change事件都会发生。 5(执行语句“HScroll1.Value = HScroll1.Value + 100”时,发生 事件。 6(将焦点定位于命令按钮Command1之上的语句为 。 7(定时器控件只能接收 事件。 8(Text文本框能接受的最长字符数由文本框的 属性确定。 9( 方法用来向列表框中加入表项。 10(定时器的Interval属性值为0时,表示 。 四、程序阅读题 1(当程序运行后,在文本框Text1中输入1234,写出窗体上的输出结果。 Private Sub Text1_Change() Print Text1 & "-" End Sub 2(下面程序运行后,在文本框Text1中输入6并按回车键后,写出文本框中显示的内容。 Dim N%,M% Private Sub Text1_Keypress(Keyascii As Integer) If Isnumeric(Text1) Then '判断是否为数字 Select Case Val(Text1) Mod 2 Case 0 N=N+Val(Text1) Case 1 M=M+Val(Text1) End Select End If Text1="" Text1.Setfocus IF Keyascii=13 Then Text1=N & M End If End Sub 3(如图8.25所示的窗体上有一个列表框和一个文本框,下面程序运行后,在文本框中输入“789”,然后双击列表框中的“463”,写出文本框中的显示结果。 图8.25 窗体 Private Sub Form_Load() List1.AddItem "453" List1.AddItem "979" List1.AddItem "463" List1.AddItem "122" List1.AddItem "784" Text1.Text = "" End Sub Private Sub List1_DblClick() a = List1.Text Text1= a + Text1.Text End Sub 4(执行了下面的程序后,写出列表框中各项的数据。 Private Sub Form_Load() Combo1.AddItem "西瓜": Combo1.AddItem"苹果": Combo1.AddItem " 橘子" Combo1.AddItem "葡萄": Combo1.AddItem "哈密瓜" Combo1.AddItem "火龙果": Combo1.AddItem "釉子" Combo1.List(0) = "李子" : Combo1.List(7) = "猕猴桃" End Sub Private Sub Combo1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Combo1.List(Combo1.ListCount) = Combo1.Text List1.Clear For i% = 0 To Combo1.ListCount - 1 If Len(Trim(Combo1.List(i%))) < 3 Then List1.AddItem Combo1.List(i%) End If Next i% End Sub 写出程序运行时,在组合框Combo1中输入文本“香蕉”(以回车键结束)后,控件List1 中的所有表项。 5(程序代码如下: Private Sub Form_Load() Label1.AutoSize = True End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Dim a As String * 1, b As String, n As Byte If KeyAscii = 13 Then b = Text1.Text: n = Len(b) For i% = 1 To n \ 2 a = Left(b, 1) b = Right(b, n - 1) + a Label1.Caption = Label1.Caption + b + Chr(13) + Chr(10) Next i% End If End Sub 请写出在文本框Text1中输入12345(以换行结束)后,标签控件Label1上的显示结果。 6(控件Hscroll1的属性设置如下: HScroll1.Min = 1 HScroll1.Max = 9 HScroll1.Value = 1 HScroll1.SmallChange = 2 HScroll1.LargeChange = 4 下列程序运行时,4次单击滚动条右端箭头按钮,写出各次单击时,Text1上的显示结果。 Dim y As Single Private Function f1(x2 As Integer) As Single Static x1 As Integer f1 = 0 For i% = x1 To x2 f1 = f1 + i% Next i% x1 = i% End Function Private Sub HScroll1_Change() y = y + f1(HScroll1.Value) Text1.Text = y End Sub 7(执行下列程序,按下回车键后的输出结果。 Option Base 1 Private Sub Form_KeyPress(KeyAscii As Integer) Dim x As Integer, y As Integer a = Array(3, 6, 8, 4, 1, 7) 'a数组中的元素分别为3,6,8,4, 1,7 x = a(1) y = a(1) If KeyAscii = 13 Then For i = 2 To 6 If a(i) > x Then x = a(i) y = i End If Next i End If Print x; y End Sub 五、程序填空题 1(本题是利用计时器控件来实现文字的水平移动。要求:如图8.26所示,运行时标签 框内的文字从窗体左边向右边移动,当标签框的最左边超出窗体的右边界时,从窗体的 左边进入窗体(尾部先进入),并要求在文字移动时,文字颜色随时间任意变化。 图8.26 标签框移动 代码如下: Private Sub Form_Load() Form1.WindowState = 2 : Timer1.Interval = 100 End Sub Private Sub Timer1_Timer() Label1.ForeColor = RGB(255 Rnd, 255 Rnd, 255 Rnd) *** ? = Label1.Left + 150 If Label1.Left >= Form1.Width Then Label1.Left = ? End If End Sub Private Sub Command1_Click() End End Sub 2(下面是一个添加和删除程序,程序运行界面如图8.27所示,单击“添加”按钮 (Command1)将文本框(Text1)中的内容加到列表框(List1)中的第一项,如果文本 框中没有内容,则给出提示“没有内容,不予添加”。单击“删除”按钮(Command2) 则将所有选中表项删除。如果没有选择要删除的表项,则给出提示“请选择删除的项目”。 图8.27 添加和删除程序 Private Sub Form_Load() Form1.Caption = "添加与删除" Text1.Text = "" List1.AddItem "Word" List1.AddItem "Excel" List1.AddItem "PowerPoint" List1.AddItem "Outlook" End Sub Private Sub Command2_Click() If ? Then MsgBox ("请选择删除的项目") Else ? End If End Sub Private Sub Command1_Click() If ? Then MsgBox ("没有内容,不予添加") Else ? Text1.Text = "" End If End Sub 3(窗体上有两个命令按钮:Command1(显示)和Command2(退出)。下列程序运行时,“显示”按钮能响应,“退出”按钮不能响应;单击“显示”按钮后,在窗体上显示一个用字符“*”组成的5层的金字塔,同时“显示”按钮不能响应,“退出”按钮能响应。 Private Sub Command1 Click() Dim i As Integer, j As Integer For i = 1 To 5 Print Spc(5 - i); For j = ? : Print "*"; : Next j Print Next i Command1.Enabled = False : ? End Sub Private Sub Command2 Click() End End Sub Private Sub Form Load() Command1.Enabled = True ? End Sub 4(下面的程序段是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序在文本框中输入表达式,边输入边统计,以输入回车作为表达式输入结束,然后显示结果。 Dim Count1% Private Sub Text1_Keypress(Keyascii As Intcger) If ? ="(" Then Count1 =Count1+1 Elself ? Then ? End If If Keyascii=13 Then If ? Then Print "左右括号配对" Elseif ? Then Print "左括号多于右括号"; Count1; "个" Else Print "右括号多于左括号"; -Count1; "个" End If End If End Sub 5(利用1个定时器、1个标签和2个命令按钮制作一个动态秒表。 要求各控件名称取缺省值,控件Command1、Command2标题分别为“开始”、“结束”。运行时,单击“开始”按钮后秒表开始计时,并在标签上显示总秒数;单击“结束”按钮后,计时结束,在窗体上显示出运行的时间(折算成小时、分钟和秒数)。 Dim x As Long Private Sub Form_Load() Timer1.Interval = 1000: Timer1.Enabled = False End Sub Private Sub Command1_Click() Cls x = 0 ? End Sub Private Sub Command2_Click() Dim h As Integer, m As Integer, s As Integer Timer1.Enabled = False h = ? m = ? s = x Mod 3600 Mod 60 " + Str(s) + " Print "运行了" + Str(h) + "小时" + Str(m) + "分 秒" End Sub Private Sub Timer1_Timer() ? Label1.Caption = x End Sub 6(下列程序段将十进制数转会为十六进制数。单击窗体弹出InputBox对话框,让用户输入一个十进制数;单击“确定”按钮后,在Label1上显示出十六进制数的结果。如果输入的不是十进制数,在Label1上显示出“你输入的不是十进制数,退回窗体状态,让用户继续输入。 Private Sub Form_Click() Dim shex As String, ndec As Integer, ys As Integer, ai As String ndec = Val(InputBox("请输入一个十进制数")) while ? ys= ? Select Case ys Case 10 ai = "A" Case 11 ai = "B" Case 12 ai = "C" Case 13 ai = "D" Case 14 ai = "E" Case 15 ai = "F" Case 0 To 9 ? Case Else label1 = "你输入的不是十进制数" ? End Select shex= ? ndec = ndec \ 16 Wend label1= ? End Sub 7(本程序用于处理文本框Text1.Text中的内容,假设文本框中有偶数个字符。要求:将 文本框中的内容从头尾至中间依次各取字符,组成一个新的字符串Str2,并在窗体上输 出。 例如: Text1.Text = "12345678",则 Str2 = "18273645" Private Sub Form_Click() Dim Str1 As String, Str2 As String Str1 = Text1.Text Str2 = "" m = 0 Do ? Str2 = Str2 + ? Str2 = Str2 + ? m = m + 1 Loop Form1.Print Str2 End Sub 六、程序设计题 1(窗体上设计两个文本框和两个标签框,标签上显示“摄氏温度”和“华氏温度”,文本框一个用于输入摄氏温度(文本框只接收数字字符和小数点“.”字符),另一个用于输出对应的华氏温度。摄氏温度c与华氏温度f的转换公式为c=(5/9)*(f-32)。 提示:本题可以用文本框的KeyPress事件来判断输入的字符是否为数字字符或小数点“.”。 2(编写一个能对列表框进行项目添加、修改和删除操作的应用程序,如图8.28所示。“添加”按钮的功能是将文本框中的内容添加到列表框中,“删除”按钮可删除列表框中选定的项目,“修改”按钮,可把要修改的项目显示在文本框中,当在文本框修改好后再单击“修改确定”按钮则更新列表框中的内容。当按下“修改”按钮后,“修改确定”按钮才可选取,否则不可操作。 图 8.28 列表框应用程序 3(编程,窗体标题为“猜数游戏”。 基本要求:单击“出题”按钮则生成一个1到100间的随机整数;然后在文本框中输入若干数(以回车键结束),大于或小于随机数则给出提示信息,猜1个数超过10次不可再猜该数。猜中了,提示“恭喜你,猜中了字样”。 4(在窗体上有两个命令按钮和一个文本框,标题属性分别为“开始”、“结束”和Text1。文本框Text1中的字符数不超过200个。程序刚开始运行时,“结束”按钮成灰色,单击“开始”按钮后,将文本框中的字符按其ASCII码的值由小到大自左至右重新组合,并在窗体上输出重组后的字符串,同时使“结束”按钮响应而“开始”按钮不能响应。 5(通讯录程序设计,程序启动后界面如图8.29所示: (1)当用户在文本框内输入完一个同学的后,单击“添加“按钮,则记录字段加到 各数组和组合框的List集内。 (2)当在下拉式组合框中选取一个表项后,则与该表项相应的记录便自动显示在窗体右边的文本框内。 (3)当在下拉式组合框中选取一个表项后,单击“删除“按钮,与表项相应的记录便被删除。 图8.29 第5题界面设计 6(编写一个如图8.30所示的复选框和单选按钮控制的字体变化效果。 图8.30 复选框和单选按钮 7(统计输入信息有多少个英文大写字母、小写字母、数字字符。界面如图8.31所示。在Text1中输入信息,单击“确定”按钮后,分别在Text2、Text3、Text4中显示大写字母、小写字母和数字字符的个数。 图8.31 统计字符个数 8(已知在List1和List2中分别有n个随机产生的两位正整数(通过Load事件实现), 现将List1和List2中的数全部移到List3中,并在List3中按照由小到大的顺序进行输出。 9(用户界面如下图所示,用于显示左右两个组合框中数据的左移和右移功能。程序开始运行时,在左边组合框中随机生成10个由小到大排列的三位正整数(已知组合框1的Sorted属性已设置为True),现要求完成: (1)单击“>>”按钮,左边组合框中的10个数全部移到右边组合框,并由大到小排列,同时使“<<”按钮能响应,“>>”按钮不能响应; (2)单击“<<”按钮,右边组合框中的10个数全部移到左边组合框,并由小到大排列,同时使“>>”按钮能响应,“<<”按钮不能响应; 3)单击“结束按钮”,结束程序运行。 ( 已知各控件的Caption属性已经在属性窗口中设置完成。 图8.32 组合框 Vb6.0 第8章 常用控件参考答案: 一、判断题 1、× 2、× 3、? 4、? 5、× 6、× 7、× 8、× 9、× 10、× 11、× 12、? 13、× 14、? 15、? 16、× 17、× 18、× 19、× 20、× 二、单选题 1、A 2、B 3、A 4、C 5、B 6、D 7、A 8、B 9、C 10、C 11、A 12、A 13、C 14、B 15、A 16、B 17、C 18、D 19、A 20、D 21、C 22、D 23、C 24、A 25、C 二、填空题 1、Autosize WordWrap 2、Enabled Visible 3、文本框和列表框 4、拖动滚动条 5、Change 6、Command1.Setfoucs 7、Timer 8、MaxLength 9、AddItem 10、定时器屏蔽 三、程序阅读题 1、 2、 1- 60 12- 123- 1234- 3、 463789 4、 5、 李子 23451 苹果 34512 橘子 葡萄 柚子 香蕉 6、 7、 8 3 6 15 28 45 四、程序填空题 1、(1) Label1.left (2) –Label1.Width 2、(1) List1.ListIndex<0 (或者写成= -1) (2) List1.RemoveItem List1.ListIndex (3) Text1.Text=”” (4) List1.AddItem Text1.Text 3、(1) 1 to 2*I-1 (2) Command2.Enabled=True (3) Command2.Enabled=False 第 53 页 共 75 页 4、(1)right(text1.text,1) (2)right(text1.text,1)=”)” (3)count1=0 (4)count1>0 5、(1) Timer1.Enabled=True (2) x \ 3600 (3) (x-h*3600)\60 (4) x=x+1 6、(1) ndec<>0 (2) ndec mod 16 (3) ai=trim(Ys) (4) end (5) ai & shex (6)shex 7、(1) m<=len(str1) (2) mid (str1,m+1,1) (3)mid (str1,len(str1)-m,1) 五、程序设计题 1、 Private Sub Form_Click() Dim f As Single, c As Single c = Val(Text1.Text) f = 32 + 9 / 5 * c Text2.Text = f End Sub Private Sub Form_Load() Text1.Alignment = 1 Text2.Alignment = 1 End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If (KeyAscii < 49 Or KeyAscii > 57) And KeyAscii <> 46 Then KeyAscii = 0 End If End Sub 2、 Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "请先输入添加项" Else List1.AddItem Text1.Text End If End Sub Private Sub Command2_Click() If List1.ListIndex < 0 Then MsgBox "请选择一删除项" Else List1.RemoveItem List1.ListIndex End If End Sub Private Sub Command3_Click() If List1.ListIndex < 0 Then MsgBox "请选择一修改项" Else Text1.Text = List1.Text End If Command4.Enabled = True End Sub Private Sub Command4_Click() Dim a As Integer If List1.Text = Text1.Text Then MsgBox "请先修改此项" Else a = List1.ListIndex List1.RemoveItem List1.ListIndex List1.AddItem Text1.Text, a End If End Sub Private Sub Form_Load() Command4.Enabled = False End Sub 3、 Dim a As Integer Private Sub Command1_Click() a = Int(Rnd * 100) + 1 End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Static i As Integer If KeyAscii = 13 Then If Val(Text1.Text) > a Then Label1.Caption = "太大了,请重输" i = i + 1 ElseIf Val(Text1.Text) = a Then Label1.Caption = "恭喜你,你答对了~" i = 0 Command1_Click Else Label1.Caption = "太小了,请重输~" i = i + 1 End If If i > 10 Then MsgBox "你失败了~" End End If End If End Sub 4、 Private Sub Command1_Click() Dim n As Integer: n = Len(Text1.Text) Dim s(1 To 1000) As String, i As Integer, j As Integer, t As String, a As String For i = 1 To n s(i) = Mid(Trim(Text1.Text), i, 1) Next i For i = 1 To n - 1 For j = i + 1 To n If s(i) > s(j) Then t = s(i): s(i) = s(j): s(j) = t End If Next j, i For i = 1 To n: a = a + s(i): Next i Print a Command1.Enabled = False: Command2.Enabled = True End Sub Private Sub Command2_Click(): End: End Sub Private Sub Form_Load() Text1.MaxLength = 200 Command2.Enabled = False: Command1.Enabled = True End Sub 5、 Dim a(1 To 1000) As String, b(1 To 1000) As String, c(1 To 1000) As Double, d(1 To 1000) As Double Private Sub Combo1_click() Text1.Text = a(Combo1.ListIndex + 1) Text2.Text = b(Combo1.ListIndex + 1) Text3.Text = c(Combo1.ListIndex + 1) Text4.Text = d(Combo1.ListIndex + 1) End Sub Private Sub Command1_Click() Combo1.AddItem Text1.Text a(Combo1.ListCount) = Text1.Text b(Combo1.ListCount) = Text2.Text c(Combo1.ListCount) = Val(Text3.Text) d(Combo1.ListCount) = Val(Text4.Text) End Sub Private Sub Command2_Click() For i = Combo1.ListIndex + 1 To Combo1.ListCount - 1 a(i) = a(i + 1) b(i) = b(i + 1) c(i) = c(i + 1) d(i) = d(i + 1) Next i a(i) = "" b(i) = "" c(i) = 0 d(i) = 0 Combo1.RemoveItem Combo1.ListIndex Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End Sub Private Sub Form_Load() Dim i As Integer Combo1.AddItem "张三" Combo1.AddItem "李四" Combo1.AddItem "王五" a(1) = "张三": a(2) = "李四": a(3) = "王五" b(1) = "浙江林学院": b(2) = "浙江工业大学": b(3) = "浙江大学" c(1) = 311300: c(2) = 310027: c(3) = 310014 d(1) = 63742212: d(2) = 88394277: d(3) = 88326531 End Sub 6、 Private Sub Check1_Click() If Check1.Value = 1 Then Label1.FontBold = True Else Label1.FontBold = False End If End Sub Private Sub Check2_Click() If Check1.Value = 1 Then Label1.FontItalic = True Else Label1.FontItalic = False End If End Sub Private Sub Option1_Click() Label1.FontName = "宋体" End Sub Private Sub Option2_Click() Label1.FontName = "楷体_gb2312" End Sub 7、 Private Sub Command1_Click() Dim a As String, i As Integer, n As Integer Dim s As Integer, q As Integer, l As Integer n = Len(Text1.Text) For i = 1 To n a = Mid(Text1.Text, i, 1) If a >= "a" And a <= "z" Then s = s + 1 '大写个数 ElseIf a >= "A" And a <= "Z" Then q = q + 1 '小写个数 ElseIf a >= "0" And a <= "9" Then l = l + 1 End If Next i Text2.Text = s Text3.Text = q Text4.Text = l End Sub Private Sub Form_Load() Text1.SetFocus End Sub 8、 Private Sub Form_Click() Dim i As Integer, j As Integer, t As Integer For i = 0 To List1.ListCount - 1 List3.AddItem List1.List(i) Next i List1.Clear Do While List2.ListCount List3.AddItem List2.List(0) List2.RemoveItem 0 Loop For i = 0 To List3.ListCount - 2 For j = i + 1 To List3.ListCount - 1 If List3.List(i) > List3.List(j) Then t = List3.List(i): List3.List(i) = List3.List(j): List3.List(j) = t End If Next j, i End Sub Private Sub Form_Load() Dim i As Integer, n As Integer n = InputBox("") For i = 1 To n List1.AddItem Int(Rnd * 90) + 10 List2.AddItem Int(Rnd * 90) + 10 Next i End Sub 9、 Private Sub Form_Load() Dim i As Integer Combo1.Text = "" For i = 1 To 10 „随机产生10个三位整数 Combo1.AddItem Int(Rnd * 900) + 100 Next i Combo2.Text = "" Command1.Enabled = True Command2.Enabled = False End Sub Private Sub Command1_Click() Dim i As Integer, j As Integer, t As Integer For i = 0 To 9 „将Combo1中数据添加到Combo2中 Combo2.AddItem Combo1.List(i) Next i For i = 0 To 8 „由大到小排列 For j = i + 1 To 9 If Combo2.List(i) < Combo2.List(j) Then t = Combo2.List(i): Combo2.List(i) = Combo2.List(j) Combo2.List(j) = t End If Next j, i Combo1.Clear „清除Combo1中的数据 Command1.Enabled = False „Command1按钮不能用 Command2.Enabled = True End Sub Private Sub Command2_Click() Dim i As Integer, j As Integer, t As Integer Do While Combo2.ListCount <> 0 „将Combo2中数据移动到Combo1 Combo1.AddItem Combo2.List(0) Combo2.RemoveItem 0 Loop Command1.Enabled = True Command2.Enabled = False End Sub Private Sub Command3_Click() End : End Sub 习题九答案 1(判断题:×???? ××??× ××?×× 2(选择题:DDCCD BDCCB 3. 填空题 1. , 2. 一级子菜单 3. 将顶级菜单设置为不可见 4. popupmenu pmenu,0,x,y 5. showfont 6. 工程、部件 7. click 8. 代码窗口,click 9. 下拉式,弹出式 10. 打开/另存为、颜色,字体、打印、帮助 4. 程序阅读题 1、 打开对话框 2、 *.txt 3、allfiles *.exe *.txt *.doc 4、Checking, No File Selectd,重试(R) , 取消 5. 程序填空题 “c:\winnt” commondialog1.showopen, loadpicture(commondialog1.filename) 6. 程序设计题 1、 界面如图: 代码如下: Private Sub Command1_Click() CommonDialog1.FileName = "" CommonDialog1.Flags = 4096 CommonDialog1.Action = 1 If CommonDialog1.FileName = "" Then MsgBox "No File Selectd", 5 + vbExclamation, "Checking" Else List1.AddItem CommonDialog1.FileName End If End Sub 2、 代码如下: Private Sub a_Click() CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.Color End Sub Private Sub b_Click() CommonDialog1.Flags = 1 CommonDialog1.ShowFont Text1.FontSize = CommonDialog1.FontSize End Sub Private Sub c_Click() CommonDialog1.Flags = 1 CommonDialog1.ShowFont Text1.FontName = CommonDialog1.FontName End Sub Private Sub d_Click() End End Sub 第十章 一、判断题 1(用Cls方法能够清除窗体或图片框中用picture属性设置的图形。 2(picture图片框既可用来显示图片和绘制图形,也可用print方法来显示文字。 top属性值也随之改变。 3(移动框架时框架内控件也跟随移动,所以框架内各控件的left、 4(框架控件和形状控件都不能响应用户的鼠标单击事件。 5(图片框的Move方法不仅可以移动图片框,而且还可以改变该图片框的大小,同时也会改变该图片框控件的有关属性值。 6(VB提供的几种标准坐标系的原点都是在绘图区域的左上角,如果要把坐标原点放在其他位置,则需要使用自定义坐标系统。 7(Image和PictureBox的 Autosize属性的功能不同。 8(当Scale方法不带参数时,则采用默认坐标系。 9(使用Line方法画矩形时,必须在指令中使用关键字B和F。 10(Circle方法正向采用顺时针方向。 二、选择题 1(改变控件在窗体中的左右位置应修改该控件的 属性。 A(Top B(Left C(Width D(Right 2(重新定义图片框控件的坐标系统,可采用该图片框的 方法。 A(Scale B(ScaleX C(ScaleY D(SetFocus 3(若在图片框上用绘图方法绘制一个圆,则图片框的 属性不会对该圆的外观产生影响。 A(BackColor B(ForeColor C(DrawWidth D(DrawStyle 4(形状控件所显示的图形不可能是 。 A(圆 B(椭圆 C(圆角正方形 D(等边三角形 5(执行form1.scale(10,-20),(-30,20)语句后,form1窗体坐标系X轴和Y轴的正方向是 。 A(向左和向下 B(向右和向上 C(向左和向上 D(向右和向下 6(对象的边框类型由 属性设置。 A(DrawWidth B(DrawStyle C(Borderstyle D(ScaleMode 7(Cls可清除窗体和图片框中的 内容。 A(运行时输出的文字和图形 B(设计时放置的控件 C(Picture属性设置的背景图案 D(以上三项 8(下列用Line方法绘制红色实心矩形的语句正确的是 。 A(Line(10,10)-Step(50,50),RGB(255,0,0),BF B(Line(10,10)-Step(60,60),B,RGB(255,0,0),BF C(Line(10,10)-Step(60,60),RGB(255,0,0),B D(Line Step (10,10)-Step(50,50),BF 9. 要清除PictureBox控件中的图形,必须用哪条命令 。 A. Picture1.Picture = LoadPicture() B. Picture1.Picture = "" C. Picture1.Picture = LoadPicture("") D. kill Picture1.Picture 10(用Scale方法改变了窗体坐标系以后,被改变了属性值的窗体属性名是 。 A(ScaleWidth B(Width C(Height D(DrawMode 三、填空题 1(以图片框pic1的中心位置为圆心,以700为半径在pic1上画一个圆的方法是_____________________________________________。 2(画图语句picture1.circle(800,1000),500的含义是 。 3(使用Scale方法建立窗体Form1的用户坐标系统,其中窗体左上角坐标为(-200,250),右下角坐标为(300,-100),具体形式为 。 4. PictureBox控件可通过设置其 属性为True,使图片框可自动调整大小以适应图片的大小;而Image控件可通过设置其________________________属性为True,使其加载的图片能自动调整大小以适应Image。 四、程序阅读题 1(写出下列各段程序运行的结果。 Private Sub Command1_Click() Dim x As Double, y As Double x = Width / 4 y = Height / 4 Line (x, y)-Step(1000, 1000), , B Line -(x, y) End Sub 2(画出下列各段程序运行的结果。 Private Sub Picture1_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) x0 = X: y0 = Y End Sub Private Sub Picture1_MouseUp(Button As Integer, _ Shift As Integer, X As Single, Y As Single) If Picture1.FillStyle <> 0 Then Picture1.FillStyle = 0 Else Picture1.FillStyle = 1 End If Picture1.Line (x0, y0)-(X, Y), RGB(255, 255, 0), B End Sub 五、程序填空题 1. 完成一个行星程序的设计,一个蓝色的小圆围绕红色大圆沿椭圆轨道运行。椭圆方程为: alfa),y=y0+ry*sin(alfa),其中X0,Y0为椭圆圆心坐标,RX为水平半径,x=x0+rx*cos( RY为垂直半径,ALFA为圆心角。具体要求如下: 1)在窗体中引入一个合适大小的形状控件SHAPE2,将SHAPE2的SHAPE属性设置为圆形、蓝色。 2)TIMER的时间间隔为0.1秒。 3)代码窗口中的内容填充完整。 效果如图10.17所示。 图10.17 行星运动 Dim rx As Single, ry As Single Dim alfa As Single Private Sub Form_Load() ' 窗体最大化充满 屏幕 Form1.Left = 0 Form1.Top = 0 Form1.Width = (1) Form1.Height = (2) ' 将SHAPE1居中 Shape1.Left = Form1.ScaleWidth / 2 - Shape1.Width / 2 Shape1.Top = Form1.ScaleHeight / 2 - Shape1.Height / 2 rx = Form1.ScaleWidth / 2 - Shape1.Width / 2 ry = Form1.ScaleHeight / 2 - Shape1.Height / 2 ' 将SHAPE2的起 始位置 定位在水平轴的0度 位置上 Shape2.Left = Form1.ScaleWidth / 2 + rx - Shape2.Width / 2 Shape2.Top = Form1.ScaleHeight / 2 - Shape2.Height / 2 End Sub Private Sub Timer1_Timer() alfa = alfa + 0.05 x = Form1.ScaleWidth / 2 + rx * Cos(alfa) y = Form1.ScaleHeight / 2 + ry * Sin(alfa) Shape2.Left = (3) Shape2.Top = (4) End Sub 2. 下面是一个“画板”程序,程序运行结果如 图10.18所示。单击“颜色”按钮(Command1) 打开颜色对话框,实现对绘图笔颜色的设置,单 击“清除”按钮(Command2)则清除图片框中 的图形,使用单选按钮选择线型粗细(Option1) 设置为1磅和(Option2)设置为3磅,根据选择 的线型的粗细、颜色,用鼠标的左键模拟笔在绘图10.18 “画板”程序运行效果 图区随意绘图。 Private Sub Command1_Click() ' 设置图片框前景颜色 CommonDialog1.Action = 3 (1) End Sub Private Sub Command2_Click() ' 清除绘制图形 Picture1.Cls End Sub Private Sub Option1_Click() ' 选择线宽 Picture1.DrawWidth = 1 End Sub Private Sub Option2_Click() ' 选择线宽 Picture1.DrawWidth = 3 End Sub ' 鼠标按下,确定当前坐标 Private Sub Picture1_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) (2) (3) End Sub ' 按下鼠标左键,移动鼠标画 线 Private Sub Picture1_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As Single) If Button = 1 Then (4) End Sub 六、程序设计题 1(在窗体上画一条正弦曲线,变化范围在0,2π之间。 2(以缇为单位,以窗体中心点为原点,以窗体的高与宽中最小值的1/2为半径画一个半圆(线为蓝色,线粗为2twip,填充色为红色)。 3(x1、y1已声明为模块级变量,鼠标按下的事件过程如下: Dim x1 As Single, y1 As Single Private Sub Picture1_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) x1 = x: y1 = y End Sub 编制事件过程Picture1_MouseUp,使得在图片框控件Pic1上拖动鼠标后,绘制出一个矩形,鼠标按下、抬起的位置分别为矩形斜对角线的定点,矩形轮廓线为红色,矩形内部填充色为绿色。 第10章 习题答案 一、判断题 ×?×××???×× 二、选择题 BAADA CAACA 三、填空题 (1) pic1.Circle (pic1.ScaleLeft + pic1.ScaleWidth / 2, pic1.ScaleTop + pic1.ScaleHeight / 2), 700 (2) 以图片框(800,1000)为圆心画一个半径为500的圆 (3) Form1.scale (-200,250)-(300,-100) (4) Autosize stretch 四、程序阅读题 1、 窗体宽和高的1/4为起点,画一个连长为1000的正方形,并画出其正向对角线 2、 在图片框中交替画出空心和实心的矩形 五、程序填空题 1、 (1) Screen.Width (2) Screen.Height (3) X (4) Y 2、 (1)Picture1.ForeColor= CommonDialog1.Color (2)If Option1.Value=True Then Picture1.DrawWidth=1 (3)If Option2.Value=True Then Picture1.DrawWidth=3 (4)Picture1.Pset (x,y) 六、程序设计题 1、 Private Sub Form_Click() Const Pi = 3.1415926 Dim i As Single Form1.Scale (0, 1)-(2 * Pi, -1) Form1.Line (0, 0)-(2 * Pi, 0) Form1.Line (0, -1)-(0, 1) For i = 0 To 2 * Pi Step 0.0001 Form1.PSet (i, Sin(i)) Next i End Sub 2、 Private Sub Form_Click() Dim r As Single, x As Single, y As Single x = Form1.ScaleWidth / 2 y = Form1.ScaleHeight / 2 r = x If r > y Then r = y Form1.Circle (Form1.ScaleLeft + Form1.ScaleWidth / 2, Form1.ScaleTop + Form1.ScaleHeight / 2), r, vbBlue, -2 * 3.14, -3.14 End Sub Private Sub Form_Load() Form1.DrawWidth = 3 Form1.FillStyle = 0 Form1.FillColor = vbRed End Sub 3、 Dim x1 As Single, y1 As Single Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, yAs Single) x1 = x: y1 = y End Sub Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) Picture1.Line (x1, y1)-(x, y), vbRed, B End Sub Private Sub Form_Load() Picture1.FillStyle = 0 Picture1.FillColor = vbGreen End Sub 第十一章 一、判断题 1(在Visual Basic中文件列表框的FileName属性返回或设置一个选中的文件全名(包含路径)字符串。 2(在顺序文件中增加记录,实际上是在文件的末尾附加记录,方法是先找到文件最后一个记录号,然后把要增加的记录写在它的后面。 3(驱动器列表框、目录列表框是下拉列表框。 4(目录列表框的Path属性,只能用程序代码设置,不能通过属性窗口设置。 5(Open语句中的For字句缺省,则默认打开的文件是随机文件。 6(用Write,语句向文本文件输出时,VB自动为同一行上的不同数据间加逗号作为间隔符。 7(用OUTPUT模式打开文件,如果指定文件和路径不存在,则会自动创建指定文件及路径。 8(若某文件已存在,用OUTPUT方式打开该文件,等同于用APPEND方式打开该文件。 9(在Open语句中用Input方式所打开的文件必须已经存在,否则会出现运行错误。 10(文件列表框与盘驱动器列表框、目录列表框一样,都能响应Change事件。 二、选择题 1(设定文件列表框中所显示的文件类型,应修改该控件的 属性。 A(Pattern B(Path C(FileName D(Name 2( 函数可以用来获取未打开文件的长度。 A(Len B(FileLen C(LOF D(EOF 3(下列 方法或函数可以调用外部的可执行文件。 A(Show B(Shell C(Input D(Open 4(若目录列表框控件Dir1的Path属性当前值为“C:\”,双击该列表框的表项“Pwin2000”后,控件Dir1的Path属性当前值为 。 A(“c:\Pwin2000” B(“c:\\Pwin2000\” C(“c:\Pwin2000\” D(“c:Pwin2000\” 5(Kill语句在Visual Basic中的功能是 。 A(杀病毒 B(清屏幕 C(清内存 D(删除文件 6(要在C盘根目录下建立名为File.dat的顺序文件,应先使用 语句。 A(Open "File1.dat" For Input As #1 B(Open "File1.dat" For Output As #1 C(Open "C:\File1.dat" For Input As #1 D(Open "C:\File1.dat" For Output As #1 7(执行语句“Write #1,123;-34.56,"input";time”后,相应文件内被写入 。 A(123,-34.56,input,2005-06-08 B("123","-34.56","input","2005-06-08" C(123,-34.56,"input",#2005-06-08# D(123 -34.56 input2005-06-08 8(下面的叙述不正确的是: 。 A(Write,语句和Print#语句建立的顺序文件格式完全一样。 B(Write,语句和Print#语句都能实现向文件中写入数据。 C(用Write,语句输出数据,各数据项之间自动插入逗号,并且将字符串加上双引 号。 D(若使用Print#语句输出数据,各数据项之间没有逗号,并且字符串不加双引号。 9(改变驱动器列表框的Drive属性将激活 事件。 A(Change B(KeyDown C(Click D(MouseDown 10( 方式打开的文件只能读不能写。 A(append B(random C(output D(input 11(下列Write语句中,错误的语句是 。 A(Write #1, x ; y B(Write #1 C(Write #1; x ; y D(Write #1, “x”, “y” 12(设a,10,b,20,c,30。要使这三个数可写入顺序文件中,且写到不同的打印区,应该使用 。 A(Print #1, a, b, c B(Print #1, a; b; c C(Write #1; a, b, c D(Write #1, a; b; c 13(设有语句: Open "c:\test.dat" For Output As #1 则以下错误的叙述是: 。 A(该语句打开C盘根目录下一个已存在的文件test.dat B(该语句在C盘根目录下建立一个名为test.dat的文件 C(该语句建立的文件的文件号为1 D(执行该语句后,就可以通过Print#语句向文件test.dat中写入信息 14(从打开的顺序文件中读取数据,错误的语句是 。 A(x=Input (#1, 1) B(x=Input(1, #1) C(Line Input #1, x D(Input #1, x 15(向随机文件写入数据,使用的语句是 。 A(Input #文件号, 变量名 B(Write #文件号,表达式列表 C(Put,文件号, 变量名 D(Get,文件号,变量名 16(设已打开3个文件,文件号为1、2、3。要关闭所有文件,正确的是 。 A(Close 1,2,3,4,5 B(Close #1; #2; #3; #4; #5 C(Close #1-#5 D(Close 三、程序阅读题 1(写出程序运行时单击Form后,该文件中的最终结果。 Private Sub Form_click() Open "d:\shunxu.txt" For Output As #1 Print #1, "print:" Print #1, "A"; "B"; "C", Print #1, "1234567,abcdefg" Write #1, "write:" Write #1, "A"; "B"; "C", Write #1, "1234567,abcdefg" Close # 1 End Sub 2(在窗体的通用声明区声明两个模块级变量a和y。 Dim a As Integer, y As Integer Private Sub Form_Load() Open "c:\a1.dat" For Output As #1 Close #1 End Sub Private Sub Command1_Click() Open "c:\a1.dat" For Append As #1 Call aa(5) y = y + a Print #1, "y="; y, "a="; a Close #1 End Sub Sub aa(i As Integer) x = 1 Do Until x > i a = a + x x = x + 3 Loop End Sub 写出程序运行时连续三次单击Command1后,a1.dat文件的最终结果。 3(写出程序运行时单击窗体后,a1.dat文件的结果和窗体上的输出结果。 Private Sub Form_Click() Dim xx(6) As Integer, k As Integer Open "c:\a1.dat" For Output As #1 For i = 1 To 6 j = i * i: Print #1, j; Next i Close #1 Open "c:\a1.dat" For Input As #2 k = 0 Do While Not EOF(2) k = k + 1: Input #2, xx(k) Loop Close #2 For i = k To k / 2 Step -1: Form1.Print xx(i);: Next i End Sub 4(写出程序运行时单击窗体后,abc.txt文件中的结果。 Private Sub Form_Click() Open "d:\abc.txt" For Output As #2 Dim m, n As Integer For n = 1 To 20 If n Mod 5 = 0 Then Print #2, n m = m + n End If Next n Print #2, "m="; m Close #2 End Sub 四、程序填空题 1(程序说明:从指定的任意一个驱动器中的任何一个文件夹下查找文本文件(不含汉字), 并将选定的文件的完整路径显示在文本框Text1中,文件的内容显示在文本框Text2中。 Private Sub Form_Load() File1. (1) = "*.txt" Text1.Text = "": Text2.Text = "" End Sub Private Sub Dir1_Change() (2) End Sub Private Sub Drive1_Change() (3) End Sub Private Sub File1_Click() If Right(File1.Path, 1) <> "\" Then Text1.Text = File1.Path + "\" + File1.FileName Else Text1.Text = File1.Path + File1.FileName End If (4) Do While Not EOF(1) (5) Text2.Text = Text2.Text + s$ + Chr(13) + Chr(10) Loop Close #1 End Sub 2(程序说明:从已存在与磁盘的顺序文件Data1中读取数据,计算出数据的平方值。将该 数据及其平方值存入新的顺序文件Data2中。 Private Sub Form_Click() Dim x As Single, y As Single Open "data1.dat" For Input As #1 Open "data2.dat" For Output As #2 Do While (1) (2) Print x, y = x * x (3) Print y Loop Close End Sub 3(在C盘当前文件夹下建立一个名为Data.txt的顺序文件。要求用文本框输入若干个英文 单词,每次按下回车键时写入一条记录,并清除文本框中的内容,直到在文本框中输入 “END”为止(忽略大小写)。 Private Sub Form_Load() Text1.Text = "" End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Open "c:\data.txt" For Output As #1 If KeyAscii = 13 Then If (1) = "END" Then (2) End Else (3) Text1.Text = "" End If End If End Sub 4(程序说明:本程序求3,100之间的所有素数(质数)并统计个数;同时,将这些素数从 小到大依次写入顺序文件e:\a33dataout.txt;素数的个数显示在窗体Form1上。 Private Sub Command1_Click() Dim count As Integer, flag As Boolean Dim t1 As Integer, t2 As Integer (1) count = 0 For t1 = 3 To 100 flag = True For t2 = 2 To Int(Sqr(t1)) If (2) then flag = False Next t2 (3) count = count+1 Write #1, t1 End If Next t1 (4) Close #1 End Sub 五、程序设计题 1(文本文件e:\aa.txt中存放了若干行字符,编制相应事件过程:在加载窗体时读入文件中各行字符并顺序在列表框控件List1的列表部分显示。 2(在C:\txt目录下的有两个顺序文件a.txt和b.txt,其中都按升序排列了5个数据记录,要求编程将两文件合并成一个文件c.txt,并使c.txt文件中的记录按降序排列。 3(编制单击窗体的事件过程,作如下处理: 从文件c:\a.txt中依次读出20个学生的学号以及2门功课成绩,统计每个学生的总分,并按照总分从高到低进行排序,然后将学生信息按总分从高分到低分输出到c:\b.txt。 输入文件c:\a.txt格式 输出文件c:\b.txt格式 "0001",20,30 "0008",90,90,180 "0002",80,90 "0002",80,90,170 „„„„„„„ 4(通过键盘输入数据,将包含学号、姓名、性别、计算机、工程制图、高等数学等科成绩数据输入到一个随机文件(Student.dat)中。程序界面如图11.15所示,在文本框中输入个数据后,单击输入按钮,将数据写入文件,并清除文本框中的内容,继续输入。单击结束按钮,关闭文件,结束程序。 图11.15 程序设计题4的界面设计 Vb6.0 第11章文件 答案 一、 判断题 1——5 : ×???? 6——10: ??×?× 二、 选择题 1——5:ABBAD 6——10: DCAAD 11——16:CAAACD 三、 程序阅读题 1、 2、 print: 结果: ABC 1234567,abcdefg y= 5 a= 5 "write:" y= 15 a= 10 "A","B","C","1234567,abcdefg" y= 30 a= 15 4、 3、 4、 窗体上: 5 36 25 16 9 10 15 文件中: 20 1 4 9 16 25 36 m= 50 四、 程序填空题 1、pattern file1.path=dir1.path dir1.path=drive1.drive open text1.text for input as #1 line input #1,s$ 2、not eof(1) input #1, x print #2, x, y 3、Ucase (text1.text) close #1 write #1, text1.text 4、open “e:\a33dataout.txt” for output as #1 t1 mod t2=0 if t2>int(sqr(t1)) print count 第 73 页 共 75 页 五、 程序设计题 1、 Private Sub Form_click() Dim count As Integer, i As Integer, j As Integer, s As String Open "d:\aa.txt" For Input As #1 Do While Not EOF(1) Line Input #1, s List1.AddItem s count = count + 1 Loop Close For i = 0 To count - 2 For j = i + 1 To count - 1 If List1.List(i) > List1.List(j) Then t = List1.List(i): List1.List(i) = List1.List(j): List1.List(j) = t End If Next j, i End Sub 2、 Private Sub Form_click() Dim i As Integer, a(10) As Integer, j As Integer, t As Integer Open "c:\a.txt" For Input As #1 For i = 1 To 5: Input #1, a(i): Next i Close #1 Open "c:\b.txt" For Input As #2 For i = 6 To 10: Input #2, a(i): Next i Close #2 For i = 1 To 9 For j = i + 1 To 10 If a(i) < a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j, i Open "c:\c.txt" For Output As #3 For i = 1 To 10 Write #3, a(i) Next i Close #3 End Sub 3、 Private Type Student num As String s(1 To 5) As Single End Type Private Sub Form_Click() Dim stu() As Student, temp As Student Dim i%, j%, p%, n%, tnum$ Open "c:\A.dat" For Input As #1 Do While Not EOF(1) n = n + 1 ReDim Preserve stu(1 To n) Input #1, stu(n).num For i = 1 To 4 Input #1, stu(n).s(i) stu(n).s(5) = stu(n).s(5) + stu(n).s(i) Next i Loop Close #1 For i = 1 To n - 1 p = i For j = i + 1 To n If stu(j).s(5) > stu(p).s(5) Then p = j Next j temp = stu(p) stu(p) = stu(i) stu(i) = temp Next i Open "c:\B.dat" For Output As #1 For i = 1 To n Print #1, stu(i).num; For j = 1 To 5 Print #1, stu(i).s(j); Next j Print #1, Next i End Sub 4、 略
/
本文档为【VB6&#46;0程序设计实践教程习题及答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索