a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 114|回复: 2

[考试试题] VisualBasic编程与应用作业3答案

[复制链接]
发表于 2012-7-31 22:15:04 | 显示全部楼层 |阅读模式
一、填空题
2 \, z; M/ `* W. D8 m1. 返回相应的结果    2. 没有返回值     按名称    3. 按名称    4. 以该函数名
( g& p: J6 V6 d  @/ x; H$ Z1 o5.窗体模块    标准模块    类模块    6.Click    7.顶级菜单项目 & G4 _, j5 C% j. |$ W- b
8.Sub过程的过程名不能返回值,而Function过程能通过过程名返回值    9.添加过程 + H& O% C7 V& D
10.标准模块的通用声明段
6 F8 U4 U$ Q* s3 R+ ?9 y二、判断正确与错误(正确标∨,错误标 x )并写出正确答案。   O7 I+ h* D! Y% C
1.( x   子过程能接收参数。)     2.(x  函数过程能接收参数  。)   3.(∨)   4.(∨)
9 ^# a# ~* j; V2 q% e' l5.( x  Call   MyPro(A、B)     MyProc( A、B)   6.(∨)
7 q9 G* f  U$ C8 n7.( x   标准模块是程序中的一个独立容器,包含全局变量、Function(函数)过程和Sub过程。)
% n+ O$ y; s6 ]% _9 t; {三、问答题
* L7 B0 m* {" c% T2 Y# l/ w1.什么是工程?
. d7 w1 q  @  p0 c7 V) q' E解答:工程是构成应用程序文件的集合。工程文件是与工程相关联的所有文件和对象以及所设置的环境信息的一个简单的列表,所有文件和对象也可以被其它的工程所共享。
$ x- q, |7 @2 I: n2.什么是过程?   v! Y0 p" P; `% M7 i- l
解答:一个应用程序是由若干个模块组成的,而每个模块又是由若干个更小的代码片段组成,将组成这些模块的代码片段称为过程。通过过程,可以将整个程序按功能进行分块,每个过程用来完成一项特定的功能。
- Q( e+ g8 ^; T  L3 L3.选中一个窗体,启动菜单编辑器的方法有哪三种? 8 _3 ?) U/ [5 {0 R' t  ^
解答:(1)使用菜单“工具”/(菜单编辑器) + L6 L4 s2 I# ~$ N% k. J
(2)使用工具栏按钮工具栏快捷键;(3)键盘快捷键CTRL+E : U7 Z' K. G3 h" X" a2 n/ Q) Y2 p9 |
4.什么是动态菜单? + @- D$ }' B" M
解答:动态菜单,就是菜单中列出了最近使用过的文件名,这部分内容是随着应用程序的运行而不断改变着的,在运行时使菜单可以增长。
4 n6 |) X) T  j7 m" X! |5.已知弹出菜单的名是aa,填补弹出菜单的代码。 , ^8 }2 o3 m3 s% P" N5 I
解答:Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
. N8 P$ f  Z. u4 s’在窗体上按下鼠标。 % t: w* f5 ~; x& g6 x1 @
If Btton = 2 Then      ′如果是右键。 ' I. V- K4 W. B5 t  G/ m1 ~' U
PopupMenu aa      ′弹出菜单。
; S% _. N, @- k: F# t' FEnd If
( ^1 p* e8 Q0 T4 N  e/ N$ ]End Sub 0 T2 p# J. g9 b
6.现使用菜单编辑器设计弹出菜单。菜单第一项(使顶级菜单项目)的Caption为“弹出菜单”,Name:“aa”,Visible没有选中,填补弹出菜单的代码。   _4 B9 R( [4 g
解答:Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) 6 ~2 N2 `. z: G1 A/ m7 c6 M
′在窗体上按下鼠标。 ) D9 J$ O9 r$ \9 X
If Btton = 2 Then      ′如果是右键。
' n% }& r! ?. A# u  }PopupMenu aa      ′弹出菜单。
/ E8 n. C9 K3 VEnd If 4 d! s: x  s* g) g- h
End Sub
+ ]: X/ R: v0 h8 B四、编程题
+ ~5 G+ e( Y' m1.编写一个过程,以整型数作为形参,当该参数为奇数时输出False,而当该参数为偶数时输出True。
+ z' B8 n0 K+ K" `; @解答:通用过程如下: : [/ f5 |! }' s. l" c5 d
Function NumOE(ByVal n As Integer)As Boolean # k4 g9 }+ Y- L; R
              If n Mod 2 = 0 then ( G  F$ Z, F+ t9 r7 C
                     NumOE= True
) C  ^+ t: a2 Y, V2 J$ H" W              Else
. g8 B8 [! `8 B                     NumOE = False 3 ?- L# V2 z" U
              End If
( w5 [: |3 c- U" }& WEnd Function
' I; L9 Z! R$ A$ J. A8 x; E/ u       这是一个Function 过程,该过程有一个整型形参,其返回值为 Boolean 类型。当参数值为奇数时,过程返回False,否则返回True。在下面的事件过程中调用该过程: 8 G/ a5 J5 A, y8 K
Private Sub Form_Click()
# z) b9 I1 T5 U4 s9 \- \              Dim RetNum As Boolean 7 U$ F* a. t% [
    num = InputBox("请输入一个整数") ; g& w- j/ }, i+ g4 r9 M
    num = Val(num) 1 F$ j) u/ C' X; _  }; _2 I
    RetNum = NumOE(num) : F8 \) N, F( ?- l
    If RetNum = True Then 7 F/ r& x$ U: {- R
        a$ = "偶数"
/ n( F) N# E8 r: I$ f4 W    Else
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:15:05 | 显示全部楼层

VisualBasic编程与应用作业3答案

a$ = "奇数" ! s, k8 D6 m* o! o' g$ t0 ^) U/ |
    End If ) h) \5 F0 v( t  |
    Print num; "‐‐‐‐ "; "是一个"; a$
) w0 U, [- ?% u) t) G+ Y# X& xEnd Sub
# a5 b" F" v3 n9 R& X2.分析下面程序运行的结果。
8 Q2 i" [3 R' L" B% X" UPrivate Function Multiply (n as Integer) As Integer
5 Q$ C2 i% s( a: B; H          Multiply=1 ( s2 x. [( \$ _
          do While n>0 & O! \# g8 i6 J
                 Multiply=Multiply*n
, P7 G# f/ o- h                 n=n-1 1 `7 W9 M: \) f+ I2 R& F% ?+ F
          Loop 7 Z, |. L( F+ u% Q3 C9 _
End Function
4 Z8 U& P3 w6 [9 oPrivate Sub Form_Click()
7 C/ C+ k, D7 R8 T( E          Dim Sum As Integer, I As Integer
, h! K& w/ F$ e4 w% z; o' v; C          For I=5 to 1 Step-1
. b7 Y  ~" x2 [8 F! ^5 K& z, z. a! c6 w                Sum=Sum+Multiply(I)   `% V. D2 v3 R/ t. x
          Next
& Z$ i5 E7 r  c8 N1 `: {          Print "Sum=";Sum, 3 i+ U7 X, V; k4 K
End Sub
! [  j# z# h8 E% o7 b* B. t9 {2 B4 p解答: 5 |; a- G' Y  u' i# M
        本题是计算: 5! * S2 P; s5 L! x4 f, r4 T, I, w
所以运行结果: % @1 O2 D0 G6 Y' [  v/ r
            Sum=120
9 T# D8 w4 Z- N3 G本程序只计算了5!=120。因为,形参n 是按地址传递的,在第一次调用Multiply      函数后n 的值为0,由于实参与形参共享地址单元,实参i 的值也是0。当执行Sum=Sum+Multiply(I) 语句后,Sum    的值是120,执行Next  语句后在判断语句For I=5 to 1 Step -1 时就退出 For 循环。因此循环只执行了一次,求了5!的值。 9 h8 n: i& t) _% {' G6 {! ]
3.分析下面程序运行的结果。
( Z" [3 K9 j  h7 o# y4 WPrivate Function Multiply (ByVal n as Integer) As Integer
2 j: x7 R! b# u7 r( K2 CMultiply=1 " ^% \: e" b7 A' h, R' a+ {
        do While n>0
) d4 c# o; z3 a( `; G# g        Multiply=Multiply*n - v) r+ C% r6 r9 d6 k8 P
        n=n-1
! K1 t1 X! v; h        Loop * E. f2 C1 r) z& p" G, [: V
End Function
  N; B% ]$ y3 w$ A6 K: L  ~  v+ n# pPrivate Sub Form_Click()
& k) E' M$ e( ?        Dim Sum As Integer, I As Integer : R0 J" N$ D2 r( T: A# w6 G0 E- u
        For I=5 to 1 Step-1
8 i1 o. w/ \+ Q# S1 V. C: w1 m$ `7 H        Sum=Sum+Multiply(I) ! ]7 ]+ i0 A& {  o7 m
        Next ; f2 k! m/ b& h5 |3 V
        Print "Sum=";Sum, & n& k* }( d% j& E
End Sub $ p- i" o# s; @- B! I( G/ W. B
解答: 1 o6 \$ r! C4 e7 ~
运行结果:
; ^; F7 F$ Q) d1 f, p            Sum=153 2 q1 O+ q. S- z7 g5 ]# {& e! Z
4.用函数调用的方法计算∑n  
* ^9 v; ?( |. Y" S6 a解答:
3 z8 J9 j) E* z( F( a0 {Private Static Function Fac(n As Integer) As Integer
2 H% ]/ {9 n* v/ K% [    Dim f As Integer
2 c& Z4 o9 _, x9 d4 f' ^5 l- [    f = f + n $ A4 }$ S. ~* L& W
    Fac = f
5 |. |  H7 j, |0 }' f+ HEnd Function 7 C2 q7 G6 [8 n! Q9 C7 H# k
Private Sub Form_Click() # K7 ^- |" T, Y% M; p) c
    Dim I As Integer 4 D: j. j& s( Y$ J5 g, e
    For I = 1 To 5
- f& q' g, q: z, J9 _  N9 Q6 p: ]+ Q        Print "∑"; I & "=" & Fac(I)
  O6 O9 Q6 O# F/ a    Next I : Q2 r5 h# l9 x" K
End Sub ' ]2 x% M& t( e% f, Y4 z
程序分析:
; v! _* x+ ]6 ~# z$ u0 z6 n( l; ]●过程定义语句Private Static Function Fac(n As Integer) 是为了使过程中所有的局部变量为静态变量。在过程头前加上 Static 关键字时,无论过程中的变量是用 Static 、Dim            或Private 声明的还是隐式声明的,都会变成静态变量。 : B; A3 [# ?# Z, Y( d/ ^
●被调函数Fac 是计算∑n 的值,局部变量f 为静态变量,在每次调用Fac 函数结束时变量 f 的值保留为∑i,再与下次的I+1 相加。
  c* b0 `- c  I/ p5 b0 m2 f1 {' N●如果不用Static 声明变量 f ,则以前的和不会保留,每次调用时函数中 f 的初值为0。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 22:15:06 | 显示全部楼层

VisualBasic编程与应用作业3答案

如果在模块的声明段定义 f,则 f 成为模块级变量,也会收到同样的效果。但是,由于其它过程也可以访问和改变模块级变量的值,所以运算结果也许不可靠,代码将难于维护。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-20 03:49 , Processed in 0.623657 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表