a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 84|回复: 1

[考试试题] 2011年计算机等级考试二级VB考点及习题(7)

[复制链接]
发表于 2012-7-31 22:15:04 | 显示全部楼层 |阅读模式
 
$ N+ _2 R6 P( ^( }* W; x/ S# K: S/ P  ]- s: y- |
  注意:9 c9 U, `7 q% @8 p1 S
  F按值传递参数
3 {: k. g2 E6 ]5 @1 ^  形参和实参的类型不一定要统一,VB自动进行数据的转换。
5 u8 X0 N- M3 |* P  –例如:Private Sub Form_Click()
' G% H" [0 i; t0 Q$ _  Dim a As String : a = 24 Y- J, Y! e- X+ p& S/ W
  Call sub1(a)
8 @& a! G7 `& L+ B; E5 r4 e; R3 ]  Print a& ~# B8 h0 v8 N6 ^5 F, W/ }
  End Sub7 `7 {8 L9 w4 X
  Private Sub sub1(ByVal b As Integer)
5 K, B# B; {9 p, y% g  b = b + 1 : Print b
% G$ U3 R# P% }  End Sub! |: k( |/ H0 M
  F按地址传递参数1 \% d' O! ^+ a/ f
  –当实参是变量时:如果形参规定了类型,则实参必须跟形参保持一致( m2 h" B- m: Z3 \
  如果形参没有规定类型,则VB按要求进行数据类型转换4 `: \; {/ H* G' j9 F. f& G* G- J3 d
  –当实参是常量或表达式时:
" u. j0 j! _5 ~$ h+ ]4 g  VB自动用“按值传递”的方式进行处理,如果数据类型不统一,VB自动进行数据转换1 k8 f* W' \. v6 {% |" V$ D# _6 X6 v
  试题+ o% f# _* m8 _
  1、在应用程序中用“Private function Fun(X as integer,Y as single)”定义了函数Fun。调用函数Fun的过程中的变量I、J均为Integer型,能正确引用函数Fun的是( )
# G' \1 C: k& k5 c2 a& J  A.Fun(I,J) B.Call Fun(I,3.56) C.Fun(3.14,234) D.Fun("245","231.5")
5 E- O! Z/ d5 x$ w/ j  2.程序中的不同过程之间,不能通过_________进行数据传递。
" H$ c% `9 y; C0 r  \  ①全局变量 ②窗体或模块级变量 ③形参与实参结合 ④静态变量% a' v3 }) I# w8 V  _" y; e
  A. ①②④ B. ①②③ C.②④ D.④: F' I% c$ [# y3 t9 X8 X+ U
  二级考试必考题型:(课后习题)
/ L1 B' k( z" ~$ ~' B6 V  传值 传地址 Static变量 同名变量 递归过程
( z& O6 @' J7 u* N- {9 i7 D, N! h  1、以下有关变量作用域的说法中,错误的是( )
$ k. v& B  k  M7 u) \9 X  A. 只有在标准模块中用public语句说明的变量才是全局变量
! j* |$ X+ U6 V- f) ]$ {  B. 在过程中不能使用public语句说明全局变量. T2 ~' @. v$ T" ^* c! j& X$ y
  C. 在标准模块的通用声明处可用private语句说明模块级变量& \/ t$ I( c1 |5 _
  D. 在窗体的通用声明处可用private语句说明窗体级变量0 }% ^. S0 }( F; ?8 Y% v
  2.一个名为frm1的窗体,在窗体通用声明处和过程sub1中分别定义:public k as integer、dim k as integer如何在sub1中访问全局变量k( )
! g( i/ }0 @& `; [& F, E- Z  A.frm1.k B.form.k C.form1.k D.k. _& P1 a% V  U8 L+ G
  3.阅读程序,给出输出结果:2 ^  v1 K& j5 c! }) m3 C
  (1)字符串处理(数组参数): s- M+ o; {5 a& K8 n+ o
  Option Base 1
! i# O0 T/ I; C+ W- ~3 c3 w  Private Sub Form_Click()
# x$ t. P0 F7 u" Q& K. y  Dim st As String, char As String
: A8 {, P0 Z3 D8 n% G# l4 K  Dim data() As String, i As Integer, j As Integer4 }& Y0 d5 Q8 v' u
  st = "10281018123811181038"
% ]) _% T* e- B% H! `% k  For i = 1 To Len(st)3 h- ?) Y5 N# J# V) h3 ]
  If Mid(st, i, 1)  "8" Then
/ [5 c) }  ?+ T$ u  char = char & Mid(st, i, 1)
# {0 S0 J2 h" R5 P5 \  Else$ }# H) z6 e' K( T4 e
  j = j + 1
+ s, o' V' a6 e. |  ReDim Preserve data(j); @4 d0 ^  q9 E, r/ d. f' A
  data(j) = char( {, O& R, r9 N" s, x
  char = ""
. @" O3 ~: Z! C) p  End If, _2 B& P1 [% I$ c4 r6 E
  Next i' M' A5 N8 n! f
  Call conver(data, char)! s* k' k4 [5 \- ?3 V+ K( V
  Print char
; B7 u% R, p/ n" a% L  End Sub
7 ^3 K4 H4 f3 U" V  Private Sub conver(a() As String, ch As String)
, @) H7 m4 l: ]7 P6 Q9 o1 F. b& q  Dim i As Integer, j As Integer
& Z8 m; i7 p% s2 A7 C& a; G+ l6 d+ M  Dim n As Integer, dec As Integer  c: d1 F9 F6 k  d
  For i = 1 To UBound(a)' @$ p* K  Y: d7 z+ s, u9 B
  n = Len(a(i))
& w1 g/ X8 X3 H, ~& T8 o  h, F  For j = 1 To n
* @5 {: M1 \% M" O  dec = dec + Val(Mid(a(i), j, 1) * 8 ^ (n - j))8 x6 ]4 O+ j6 d" A" ~' R' i
  Next j/ ~! c+ R2 F) ]# [/ W6 I  h  a
  ch = ch & Chr(dec)
: `- @$ P( L6 v! R6 V  dec = 0; i* ?' p& F' ~: Q! c
  Next i! Q/ f- M! h: \- {( X# }8 R
  End Sub0 A( }% ~0 y7 q' @1 a
  (2)static变量, k* B. Y8 B3 w, j; K
  Private Sub Command1_Click()  |' G% g  h' Y9 G
  Dim n As Integer, i As Integer
6 W; a2 ^( P# r4 D& v6 y; X" p0 [& u  n = 2+ Q4 B; D* C+ s, c1 |5 a, x- m
  For i = 9 To 1 Step -1
- a# ]2 b; v8 h  Call sub2(i, n)
- {6 }: D. R! P& }5 h( g  Print i, n
; _8 J/ `$ w8 q4 ?  Next i/ F2 H7 G' @( X/ ^9 L
  End Sub# `% B: Y$ `/ V, s0 x- _
  Private Sub sub2(x As Integer, y As Integer)3 _6 o8 H' V: \* g
  Static n As Integer9 y8 w; U4 D7 C: n
  Dim i As Integer
) C8 A5 u* J# z; s0 X$ |) N- G  For i = 3 To 1 Step -1% t( ?+ j: [8 c3 j  h( a4 C. v- d
  n = n + x
3 o! S  V) R( e+ f7 J# K  x = x - 1
# M5 c6 J: f/ V, ?+ w) _  Next i
$ {! J: M1 D; L9 b  y = y + n
. R; n# V1 x: l. w- |6 t! U  q  End Sub
回复

使用道具 举报

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

2011年计算机等级考试二级VB考点及习题(7)

  (3) 递归
( ^# I& f4 x) {* a2 L: q% k: L  Private Sub Command1_Click()
& f" a% l( @. y+ i5 y! ]9 Y# Z5 e  Dim a As Integer$ c, W# ]9 @) l
  a = 2% v" |2 l; K4 _% T$ [8 ?
  Call sub1(a); g* w5 X! |7 u8 `: Y
  End Sub! [6 U2 B8 {# J+ F5 ?3 E) B# k9 F2 Z
  Private Sub sub1(x As Integer)( x; ]7 b7 a" _" S
  x = x * 2 + 1
& Z( r" [$ q: U/ s  If x < 10 Then2 j! f3 ^* i8 E. ~0 @# G5 V
  Call sub1(x)2 O+ Y7 c0 `$ s& C  {( r- j8 I9 R
  End If
+ s' Y& {4 H$ ^  x = x * 2 + 1
7 n- M0 v7 k, w: ]2 r; d% {0 W  Print x3 I" B3 d1 L' C% `  j
  End Sub
, N6 y2 q6 e3 L8 k  (4)递归% p& V8 S9 c- k9 S0 W
  Private Sub test(x As Integer), R$ O! P; j0 ~; Q2 D( I
  Dim i As Integer
) |; J# `. q9 n* O3 u  If x  0 Then
9 X8 v7 U* E+ Y% V3 e" [6 a/ ^  Call test(x - 1); i$ u- y& ~. Z" H
  For i = 1 To x
8 |& U3 ^9 {% H6 ^6 K# [( c. c  Print x;
( U9 ^' J" h$ K  Next i: R, c3 P! o4 I/ E; V) z
  Print
, a/ M/ n) S5 \, Q5 d, S  End If
8 U! r2 z& l4 Z6 e  End Sub
# Y% K6 S& U3 u! I7 v) w; ]  Private Sub Form_Click()
1 Z# `% x) K: {, ~' C  test 3
( s+ C* f$ t( X( G6 u  End Sub  j+ q- I6 N6 b1 m, `& i! i
  (5)同名变量
; d  q! C( j( H. _8 {8 u3 c  Dim y As Integer/ l! b, Y) L! S3 C
  Private Sub Form_Click()
) o4 Z2 ]6 ^+ w: P4 }' a# S  Dim x As Integer,y as integer+ o. ^' @, \% d. }& @! k
  x=1 : y=1
& `% U+ O' `4 v  Print "x1=";x, "y1=";y
* P- X  }( t3 z5 p  Test! j' J% J6 @0 y: g/ K
  Print "x4=";x, "y4=";y
' M6 i: X  J/ Z8 J! |  End Sub, d! E. F5 Q  }0 E& h$ O0 A( W, e
  Private Sub Test()
0 o+ e+ b7 o! q' j  Dim x As Integer
/ x  n5 b/ N" W  Print "x2=";x, "y2=";y
% ]4 D8 n+ f+ b" {  x=2 : y=3. k2 h* r) Y& x& x7 V9 g
  Print "x3=";x,"y3=";y# j# R6 }, T8 y& ^! |
  End Sub9 P0 V! V9 L+ l$ h* X" s/ _
  特例:
+ q9 c/ K' H" x3 ]6 Z  1、运行程序在窗体显示的结果是:- d" x* P% q) D3 p
  Private Sub Form_Click()& ]' h$ R: C7 U) M
  Dim a As Integer, b As Integer& V4 J: r$ f, v$ E, l8 Y
  a = 3: b = 4: S" S& w9 ^+ u; Z! d
  Call sub1(a, a)! E) ]& d& {& B. ]1 `; J" F
  Print a, b! G' ]  }% v) l  ?  ~0 n4 K
  Call sub1(b, b)3 f" u4 S: F  P
  Print a, b
! V5 c7 I9 ^" J) g  \" Y2 I5 A  End Sub9 o8 N" {1 P' c9 {# o( b
  Private Sub sub1(x As Integer, y As Integer)
. `5 i# k& @9 Y9 H8 f9 v2 V- j. i  x = x + 2
; Z) ^3 W2 Z2 ^: X) M  y = x + y
$ M6 z3 y2 u& H) Z  End Sub9 F+ t' V/ o/ T  L
  2、运行程序单击窗体,在窗体上显示的内容是:16 20# ]& _5 e: `/ S$ o' t6 |, z+ S
  Private Sub Form_Click()6 L; ?# D; }: d4 i$ j" x: Z
  Dim n As Integer, m As Integer* Q( G2 p. `( l
  n = 1: m = 2
" z- D! j3 p/ _# [  Print n + m + f(n, m) ;
% L  I  |2 o2 q- U  '优先执行f函数,n,m变化后再运算 “+”
6 X; F4 Z' ]" N' a  n = 2: m = 1
; p9 |% V  V) Y' x5 J  Print f(n, m) + f(m, n)
9 W: T3 t1 |" j( U- {  'n,m第一次变化后,第二次以变化后的值再调用; Y% }2 {: L# J
  End Sub! ?) t, h, E9 W$ c5 S$ `' u+ ?0 B
  Private Function f(n As Integer, m As Integer)
# R! e* }* o, ^3 p  n = n + m/ D9 r: j, ^( }
  m = m + 3* H5 L4 b* J3 d  R) q
  f = n + m; Y1 k. [" I* t/ Y6 s6 ^5 X4 @. W
  End Function# |  E2 h) c& \& m1 s
  3、执行下面的程序,在窗体上显示的输出结果是______;如果将A语句改成:Call sub1(b+1,a),则在窗体上显示的输出结果是______。+ Q+ V+ t6 J& ~# H) f: @$ k
  Private Sub Form_Click()
1 r1 E+ j$ B# O4 A, R) p2 V  Dim a As Integer, b As Integer
+ \6 l5 K* H. O/ y  a = 1: b = 2
3 X$ {# _1 M8 U5 v. ?* @$ p9 ~8 r  Call sub1(a, b) 'A
+ e9 {4 a4 g6 C# |% p( T  Print a, b8 @: R2 t  M! J0 n! l- A
  End Sub
3 A9 G2 `8 e" y  Private Sub sub1(x As Integer, ByVal y As Integer)
' V; u) Z0 S4 l" \" A/ W! X* y# A  x = x + y
& r# J, s3 n4 J- }  y = x + y
( U( x* s, @' @2 T* O  End Sub
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 21:48 , Processed in 0.223021 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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