第2章课外练习参考答案
一、判断题
1.窗体是一个容器,可以容纳其它控件,但窗体不能像控件一样接收事件( ×)。
2.界面对象的Top、Left属性,是指对象左上角相对于上级容器的坐标( √)。
3.设置好窗体字体属性后再向窗体中添加控件,则控件的默认字体属性与窗体相同( √)。
4.对象的属性实质上就是变量( √)。
5.函数Val ("2a")的返回值为2 ( √)。
6.标签对象的Caption属性值为字符串型,运行时可以被重新赋值( √)。
7.使用窗体对象的Cls方法可以清除窗体中标签的Caption(×)。
8.属性、方法和事件都是对象的成员(×)。
9.事件只能由用户的鼠标或键盘动作触发产生(×)。
10.清除文本框的内容可以用文本框的Cls方法(×)。
11.VB的窗体与不同类型的控件都有各自不同的事件集(√)。
12.工程文件的扩展名是. frm(×)。
13.整型变量有Byte、Integer、Long 3种类型(√)。
14.Byte类型的数据,其数值范围在-255~255之间(×)。
15.Double类型数据可以精确表示其数值范围内的所有实数(√)。
16.在逻辑运算符Not、Or、And中,运算优先级由高到低依次为Not、Or、And(×)。
17.关系表达式是用来比较两个数据的大小关系的,结果为逻辑值(√)。
18.一个表达式中若有多种运算,在同一层括号内,计算机按函数运算→逻辑运算→关系运算→算术运算的顺序对表达式求值(×)。
19.赋值语句的功能是,计算出表达式值并转换为相应类型数据后,再为变量或控件的属性赋值(√)。
20.用Dim关键字声明数值型变量时,该数值型变量自动被赋初值为0(√)。
21.若行If语句中逻辑表达式值为True,则关键字Then后的若干语句都要执行(×)。
22.在行If语句中,关键字End If是必不可少的(×)。
23.块If结构中的Else子句可以缺省(√)。
24.使用On Error GoTo语句并编写相应程序,可以捕获程序中的编译错误(×)。
二、选择题
1.Integer类型数据能够表示的最大整数为D。
A、275
B、215-1
C、216
D、216-1
2.货币类型数据小数点后面的有效位数最多只有B。
A、1位
B、6位
C、16位
D、4位
3.输入对话框InputBox的返回值的类型是A。
A、字符串
B、整数
C、浮点数
D、长整数
4.运算符“\”两边的操作数若类型不同,则先C再运算。
A、取整为Byte类型
B、取整为Integer类型
C、四舍五入为整型
D、四舍五入为Byte类型
5.下列程序段的输出结果是B。
a=10: b=10000: x=log(b)/log(a): Print "lg(10000)="; x
A 、lg(10000)=5
B 、lg(10000)=4
C 、4
D 、5
6. Print 语句的一个输出表达式为 D ,则输出包括日期、时间信息。
A 、Date
B 、Month
C 、Time
D 、Now
7. 语句Print "5*5" 的显示结果是 B 。
A 、25
B 、"5*5"
C 、5*5
D 、出现错误提示
8. 语句“Form1.Print Tab(10); "#"”的作用是在窗体当前行 A 。
A 、第10列输出字符“#”
B 、第9列输出字符“#”
C 、第11列输出字符“#”
D 、输出10个字符“#”
三、填空题
1. 语句“Dim C As String ”定义的变量C ,可用于存放控件的Caption 的值。
2. 长整型变量(Long 类型)占用 4 个字节。
3. 表达式2 * 4^3 + 4 * 6 / 3 + 3^2的值是 145 。
4. 表达式16 / 2 - 2 ^ 3 * 7 Mod 9的值是 6 。
5. 表达式81 \ 7 Mod 2 ^ 2的值是 3 。
6. 语句Print Not 10>15 And 8<5+2的输出结果为 False 。
7. 设x 为一个两位数,将其个位和十位数交换后所得两位数的VB 表达式是 (x mod
10)*10+x\10 。
8. 求a 与b 之积除以c 的余数,用VB 表达式可表示为 a*b Mod c 。
9. 声明单精度常量PI 代表3.1415926的语句是 Dim PI As Single =3.1415926 。
10. #20/5/01#表示 日期 类型常量。
11. 将数学式b 改写成VB 表达式ac 42? b^2 - 4*a*c 。
12. 将数学式 (x+1) e 2x 改写成VB 表达式 (x+1)*e ^ (2*x) 。
13. 将数学分式x x x 21
122?+?写成VB 表达式 (x^2-1) / (x^2+1) – 2*x 。 14. 设x=5,y=3,求x>3 And x
15. 设A=5,B=6,C=7,D=8,计算表达式3>2*B OR A=C AND B<>C OR C>D 的值是 False 。
16. 判断整型变量n 是否为两位正整数的逻辑表达式是 n>9 And n<100 。
17. 关系表达式的运算结果是什么类型的值? 布尔
18. 两个数值型数据如果使用“+”运算符进行拼接,会出现什么结果? 两数相加
19. 若x >y ,则交换变量x 、y 值的行If 语句写作 If x>y then t=x : x=y : y=t 。
四、程序设计题
1. 编程求下列分段函数的值。要求双击窗体时弹出输入对话框,输入x 并确定后,计算函数的值,然后将输入的数据和计算的结果辅以简明的说明文本,用消息对话框输出。
???>+≤+=3)3(31)(4/1x x x x x f 解:
Private Sub Form_DblClick()
Dim x As Single, y As Single
x = InputBox("请输入x")
If x <=3 Then
y =1 + x
Else
y = (x + 3) ^ (1 / 4)
End If
MsgBox y
End Sub
2.在窗体右上角添加一个文本框和一个命令按钮。当用户在文本框中输入密码并单击命令按钮后,判断输入的密码是否为“123”,如果不是,就弹出对话框提示“密码不正确!请重新输入”,并将焦点定位在文本框上同时选中所有文本;若输入的密码正确,则在窗体中央打印出“欢迎光临!”字样,要求字体为隶书、字号48、加粗。(提示:要使输入文本框的密码字符不以明码出现,可以将文本框的PasswordChar属性设置为星号“*”即可。)
解:
Private Sub Command1_Click()
If Text1.Text ="123" Then
Dim S As String
S = "欢迎光临!"
FontName = "隶书"
FontSize =48
FontBold = True
CurrentX = (ScaleWidth - TextWidth(S)) / 2
CurrentY = (ScaleHeight - TextHeight(S)) / 2
Print S
Else
MsgBox "密码不正确,请重新输入。"
Text1.SetFocus
Text1.SelStart =0
Text1.SelLength =Len(Text1.Text)
End If
End Sub
3.编程,在文本框中输入一个三位整数,单击按钮后,将这个3位数颠倒,输出到标签中。
解:
Private Sub Command1_Click()
Dim Num As Integer
Num =Text1.Text
Label1.Caption = (Num Mod 10) * 100 + (Num \ 10 Mod 10) * 10 + Num \ 100
End Sub
4.创建一个空白窗体,程序启动时,窗体出现在桌面左上角,单击窗体时,窗体会自动移到桌面右下角,再次单击时,窗体又自动移回到桌面左上角。
解:
Private Sub Form_Load()
Form1.Left =0
Form1.Top =0
End Sub
Private Sub Form_Click()
If Form1.Left =0 Then
Form1.Left =Screen.Width - Form1.Width
Form1.Top =Screen.Height - Form1.Height
Else
Form1.Left =0
Form1.Top =0
End If
End Sub
5.编程,输入圆的半径,计算并输出圆的面积,按下列要求分别实现:
(1)添加一个文本框控件用于输入,单击命令按钮后通过标签控件显示计算结果。
(2)修改界面和程序:单击命令按钮后,调用Inputbox函数输入数据,通过标签控件显示计算结果。
(3)要求计算结果具有15位有效位。
解:
(1)
Private Sub Command1_Click()
Const PI As Single =3.141593
Dim R As Single
R =Text1.Text
Label1.Caption = 2 * PI * R ^ 2
End Sub
(2)
Private Sub Command1_Click()
Const PI As Single =3.141593
Dim R As Single
R =InputBox("请输入圆半径:")
Label1.Caption = 2 * PI * R ^ 2
End Sub
(3)
Private Sub Command1_Click()
Const PI As Single =3.141593
Dim R As Double
R =InputBox("请输入圆半径:")
Label1.Caption = 2 * PI * R ^ 2
End Sub