vb6.0程序设计教程课后习题答案,答题完成后再看答案

发布时间:2016-03-14 22:29:53 来源:大铁棍娱乐网

《vb6.0程序设计教程课后习题答案,答题完成后再看答案》是由大铁棍娱乐网(www.datiegun.com)编辑为你整理收集在【教育学习】栏目,于2016-03-14 22:29:53整理发布,希望对你有所帮助,可及时向我们反馈。

  第一章

  一、判断题


  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.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,实现的表达式是 。

  4. 数学表达式 的Visual Basic算术表达式为 。

  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

  四、略

  五、填空题

  1. 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.0      B.-1    C.True D.False

  7.用X、Y、Z表示三角形的三条边,条件“三角形任意两边之和大于第三边”的布尔表达式可以用( )表示。

  A.X+Y>Z And X+Z>Y And Y+Z>X

  B. X+Y<z p="" y+z<x<="" or="" x+z

  C. Not(X+Y<z p="" or="" x+z<y="" y+z

  D.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

  2.

  (1) x mod 3=2 and x mod 5=3 and x mod 7=4 then

  (2) text1.setfocus

  五、

  1.

  Private Sub Command1_Click()

  Dim y As Integer

  y = Val(InputBox("y="))

  If (y Mod 4 = 0 And y Mod 100 <> 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

  y = x * x + x – 6

  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上输出结果为。

  五、程序填空题

  1. 下面程序的功能是:计算f=1-1/(2*3)+1/(3*4)-1/(4*5)+……+1/(19*20)。

  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世纪,我国数学家张丘建在《算经》中提出“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

  (5)编程序求表达式 s=1+x+x2/2!+x3/3!+…+xn/n!+…的值和直至末项小于10-5为止,并在窗体上输出。

  答案

  一.判断题

  ×√√√××√×

  二.选择题

  BBBDCCC

  三.填空题

  (1)7

  (2)Do/Loop For/Next While/Wend

  (3)-36

  四.程序阅读题

  1、 4

  88

  6886

  468864

  2468852

  2、

  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)x

  5.①last_one = laat_two ②last_two = this_one ③i=i+1 ④i-2

  6.①i>int(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.子程序调用时,如果参数按址传递并且实在参数是变量,则子程序在执行时对形参的修改不会影响到对应传递的实参变量的内容。

  二、选择题

  1.在 Form2 中引用 Form1 中的全局变量x,写作 。

  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来求最大数、平均值和排序,然后在窗体的单击事件过程中调用这些函数。

  2.编程序求表达式 的值,并在窗体上输出。要求如下:

  (1)在窗体单击事件中变量x与n的值用InputBox函数输入,通过调用函数过程fe实现题目要求。

  (2)求表达式的值用函数过程Function fe(n%,x!)As Single完成。

  3.由输入对话框输入10个数值数据放入数组a。然后运用选择排序法将数组a中的数据按从大到小的顺序排列,并以每行5个数据在窗体上输出,排序的过程要求用子过程sort()来完成。

  4.编制通用函数过程fsum,计算Single类型一维数组所有元素的和。

  答案:

  判断题:

  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

  3、 32 64 4、 2 2 2

  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

  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

推荐阅读