• 沒有找到結果。

典型例题

在文檔中 第 2 章 Visual Basic 语言基础 (頁 39-42)

例 2­41  以下符号中,哪个不能作为 VB 中的变量名? 

A.ABCDE  B.P123456  C.89XYZDEF  D.xyz 

【分析】

根据 VB 变量名的命名规则,4 个变量中只有 89XYZDEF 不是以字母开头的,不能作为 变量名;其他 3 个变量名都满足 VB 中变量名的命名规则,是合法的变量名。

例 2­42  以下数据中,哪些是变量?哪些是常量?是什么类型的常量? 

name  "name"  false  ff  "11/15/99" 

cj  "129"  n  #11/15/1999#  123.45 

【分析】

变量有 name、ff、cj、n。常量有"name"、false、"11/15/99"、"129"、#11/15/1999#、123.14。

其中:"name"、"11/15/99"、"129"为字符型常量;false  为布尔型常量;#11/15/1999#为日期型 常量;123.14 为数值型常量。

例 2­43  把下列数学表达式改写为等价的 VB 算术表达式。 

A. 

1  y  x  1­ y 

x + 

B. x  3xy  + 2­y

C.  ab­c  D.  s(s­a)(s­b)(s­c) 

【分析】 

VB 算术表达式与数学表达式在写法上有区别:VB 中每个符号占 1 个格,所有符号都必 须一个一个并排写在同一横线上, 不能在右上角或右下角写方次或下标; 原来在数学表达式中 省略的内容必须重新写上;所有括号都用小括号(),括号必须配对;要把数学表达式中的某 些符号,改成 VB 中可以表示的符号。

A.(1+y/x) /(1­y/x) 

B.x^2+3*x*y/(2­y) 

C.(Abs(a*b­c^3))^0.5 或(Abs(a*b­c^3)) ^ (1/2)或 Sqr(Abs(a*b­c^3)) 

D.(s*(s­a)*(s­b)*(s­c))^0.5  或  (s*(s­a)*(s­b)*(s­c)) ^ (1/2)  或  Sqr (s*(s­a)*(s­b)*(s­c))  例 2­44  根据给出的条件,写出逻辑表达式。

(1)闰年的条件是:年号(year)能被 4 整除,但不能被 100 整除;或者能被 400 整除。

(2)征兵的条件是:男性(sex)年龄(age)在 18~20 岁之间,身高(size)不低于 1.65  米;或者女性(sex)年龄(age)在 16~18 之间,身高(size)不低于 1.60 米。

【分析】

(1)被某个数整除,可以用数值运算符 Mod 或 Int 函数来实现,即: 

(year Mod 4=0 And year Mod 100 <>0) Or (year Mod 400 = year/400)  或: 

( Int ( year/4 ) And Int ( year/100 ) <> year/100 ) Or ( Int ( year/400 ) = year/400 ) 

(2)设性别 sex 值为 True 代表男性,sex 值为 False 代表女性,则对应的逻辑表达式为: 

(sex And age >=18 And age <= 20 And size >= 1.65) Or (Not sex And age>=16 And age <= 18  And size>=1.60) 

例 2­45  函数 Int(Rnd(0)*10)的值是在哪个范围内的整数?

【分析】

函数 Rnd (0)是 0~1 之间的数,因此,Int ( Rnd ( 0 )*10 )的值是在 0~10 之间的整数。

例 2­46  以下 VB 语句中,正确的注释语句是( )。  A.Dim x(10) As Integer        Rem  这是 VB 程序中的语句  B.'这是 VB 程序中的语句 

Private Sub Command1_Click() 

… 

C.x=1:y+2: _Rem  这是 VB 程序中的语句:z=3  D.If Shift=6 And Button=2 Then 

Print "AAAA"  Rem  这是 VB 程序中的语句  End If 

【分析】

注释出现在一个语句行后面时,只能用撇号作为注释符,不能用 Rem;在复合语句行中,

注释必须是最后一个语句,不能放在复合语句行中;注释语句不能放在续行符的后面。本题正 确的答案应选 B。

习题 2

一、填空题 

1.若声明数组时不明确指定其数据类型,默认是__________类型。 

2.用语句 dim A(5,4)定义的数组,若设置 option base 1,则有__________个元素。

3 . 用  Redim  命 令 多 次 为 动态 数 组重 新分 配 内存时 , 若在  Redim  后 出 现 了 关 键 字  __________,则不能改变数组的维数。 

4.若使用函数 Array 为变体数组各元素赋值,该数组必须是__________数组。 

5.通常__________循环用于循环次数确定的循环结构。 

6.While…Wend 循环中,条件__________时退出循环。 

7.在某 For…Next 循环中,若其步长为负数,则当循环变量初值__________,循环体语 句一次也不执行。 

8.若在函数中不明确指定参数的传递方式,默认的传递方式是__________,其关键字是  __________。 

9.在 VB 中,若要将整个数组作为实参传递给过程,应将__________放入实参列表中。

二、简答题 

1.VB  提供了哪些标准数据类型?声明类型时,其类型关键字分别是什么?所占用的字 节数分别是多少? 

2. “+”与“&”在进行字符串连接运算时有何异同? 

3.过程级静态变量与窗体级变量在程序运行时有何异同? 

4.以下表达式的运算结果是多少? 

9/3+5*7­8\5­9 mod 5 

5>3 And "aeoplane"<"airplane" 

5.求下列表达式的值,并写出其类型。

(1)((8+(7*9­13)/5)/9)^2 

(2)"我们爱中国"&"的山山水水,"&"何时能畅游一番?" 

(3)2*3+6<= (7+2)/3 

(4)#12/31/2001# ­ #12/20/2001# 

(5)2<3 And 7>8  6.写出下列函数的值。

(1)Int(­3.14159) 

(2)Sqr(Sqr(16)) 

(3)Fix (3.1415926) 

(4)Int (Abs (99­100)/2 ) 

(5)Sgn(7*3+2) 

(6)Left ("Hello",2) 

(7)Val ("16 Year") 

(8)Str(­459.65) 

(9)Len("Hello") 

7.找出下列变量名中哪些是错误的。

(1)n  (2)3w  (3)Abs  (4)x­y 

(5)x%y  (6)e f  (7)出生日期 (8)grade_1  8.把下列数学表达式写成 VB 表达式。

(1) v t at  - 2

(2) sinacos b ab

(3)ax ­bx­c 

(4)0<x≤5 

9.计算以下表达式的值。

(1)8/4*5/2.5*(3.25+6.75) 

(2)3*7\2 

(3)26\3 mod 0.4*int(2.5) 

(4)Ture and 8­3>=6 

(5)#8/5/1999# ­10 

10.构造条件表达式时,一般需要用到什么运算符? 

11.静态数组和动态数组有什么区别? 

12.用什么方法可以建立控件数组? 

13.如何实现既增加动态数组的元素个数,又保存该数组中原有的值? 

14.Select Case 语句中,表达式列表可以有哪几种写法? 

15.在固定次数的 For…Next 循环中,如果循环体中存在改变循环变量数值的语句,可能 出现什么情况? 

16.在 For…Next 循环中,若终值是以变量的形式表示时,是否可以在循环体内通过其他 语句修改循环终值以达到改变循环次数的目的?为什么? 

17.参数传递的方式有哪两种?有哪些区别? 

18.在过程调用的参数传递中,有哪些方式,它们在使用中有什么区别? 

19.过程的形参和实参在什么情况下类型必须一致,什么时候不必完全一致?

三、程序设计题 

1.输入 20  个数,求出它们的最大值、最小值和平均值。 

2.输入一组数,以 9999 结束,统计其中正、负和零的个数。 

3 . 编 程 实 现 : 输 入 三 个 整 数 , 按 照 从 大 到 小 的 顺 序 进 行 输 出 , 程 序 代 码 放 在  Command1_Click 事件过程中。 

4.编程实现:给出一个百分制成绩,要求输出成绩等级“A” 、 “B” 、 “C” 、 “D” 、 “E” 。  90 分以上为“A” ,80~89 分为“B” ,70~79 分为“C” ,60~69 分为“D” ,60 分以下为“E” 。 

5.编程实现:输入一个整数,在窗体中显示所有小于等于该整数的质数。 

6.编写一个函数 isprime,用于判断其参数 num 是否是素数,并输出相应信息。

在文檔中 第 2 章 Visual Basic 语言基础 (頁 39-42)

相關文件