Form1.BackColor=vbGreen Mark=2
ElseIf Mark=2 Then
Form1.BackColor=vbBlue End If End Sub
Private Sub CmdExit_Click() End End Sub
9 下列程序的功能是:当x<50时,y=0.8×x;当50≤x≤100时,y=0.7×x;当x>100时,没有意义,请填空。
Private Sub Command1_Click() Dim x As Single
x=InputBox(\请输入x的值!\ Case Is < 50 y=0.8 * x
Case 50 To 100 y=0.7 * x
Print \输入的数据出界!\ End Select Print x, y End Sub
10 下面的程序用于根据文本框Text中输入的内容进行以下处理:
若Text为1,则打印“您的成绩为优秀!”;若Text为2,则打印“您的成绩为良好!”若Text为3,则打印“您的成绩为一般”;否则打印“您的成绩一般以下!”,请填空。
Private Sub Command1_Click() Select Case Val(Text1.Text) Case
Print \您的成绩为优秀!\ Case
Print \您的成绩为良好!\ Case
Print \您的成绩为一般\ Case Else
Print \您的成绩一般以下!\ End Select End Sub
11 新建一个工程,内有两个窗体,窗体Form1上有一个命令按钮Command1,单击该按钮,Form1窗体消失,显示Form2窗体,程序如下:
Private Sub Command1_Click()
- 26 -
Form2. End Sub
试补充完整。
12 本程序的功能是利用随机数函数模拟投币,方法是:每次随机产生一个0或1的整数,相当于一次投币,1代表正面,0代表反面。在窗体上有三个文本框,名称分别是Text1、Text2、Text3,分别用于显示用户输入投币总次数、出现正面的次数和出现反面的次数,如图所示。程序运行后,在文本框Text1中输入总次数,然后单击“开始”按钮,按照输入的次数模拟投币,分别统计出现正面、反面的次数,并显示结果。以下是实现上述功能的程序,请填空。
图程序运行界面
Private Sub Command1_Click() Radomize
n=CInt(Text1.Text) n1=0 n2=0
For i=1 To r=Int(Rnd*2) If r= Then n1=n1+1 Else
n2=n2+1 End If Next
Text2.Text=n1 Text3.Text=n2 End Sub 三 程序设计题
1 已知平面坐标系内两点的坐标,求两点间的距离。
2 编写程序,要求用户利用InputBox()函数输入如下信息:姓名、年龄、通讯地址、邮政编码、联系电话,然后将输入的数据用Print方法以适当的格式在窗体上显示出来。 3 编写程序,设计一个退出按钮,根据用户做出的响应来确定是否结束程序(利用MsgBox来设计)。
4 任给定一年,判断该年是否为闰年,并根据给定月份来判断属于哪个季节?(闰年的条件是:年号能被4整除但不能被100整除,或者能被400整除。)
5 从文本框内输入三角形的3条边a、b、c,判断它们是否能构成三角形,如果能,则计算
- 27 -
出面积,如果不能,则提示信息。
6 设计一个滚动字幕,其标题为“VB程序设计”,使其能自右向左反复移动,当把鼠标移到该字幕上时,停止移动,同时字体颜色变为红色,移开以后,字幕继续移动,字体变为原来的颜色。
7 在文本框内输入一年中的12个月份,如果输入1、2、3月份,则在标签上显示春季,如果输入4、5、6月份,则显示夏季,如果输入7、8、9月份,则在标签上显示秋季,如果输入10、11、12月份,则显示冬季,其它情况则显示您的输入有误,请重新输入,使用命令按钮的单击事件。
8 利用单选按钮与复选按钮控制文本框内字体的字体与字形。
参考答案7
一、选择题 1 D。
2 C。解析:此题考查变量交换这一知识点,首先要将其中的一个变量赋值给中间变量,A是错误的,B、D是交换时没有首先将变量赋值给中间变量,正确答案是C。
3 D。解析:关于数值型变量的交换方法除了可以使用2题的规则外,还可以使用先将两数求和赋值给第一个变量,然后用第一个变量减去第二个变量赋值给第二个变量, 然后用第一个变量减去第二个变量赋值给第一个变量所以只有答案D是正确的。
4 B。解析:InputBox()函数能接收用户输入的数据,并能返回用户输入的信息,不能用于输出信息。InputBox()函数中的Prompt参数是在对话框中显示提示信息,这种提示信息是由用户确定的,不能把它当作输出信息的功能, 正确答案是B。
5 B。解析:在默认的情况下,InputBox()函数的返回值是一个字符串,而不是变体类型。如果没有事先声明返回值的类型,或声明为变体类型,则当把函数的返回值赋给这个变量时,VB将是把它作为字符串来处理。因此当需要用InputBox()函数输入数据,并且需要输入的数值参加运算时,必须在进行运算前用Val函数(或其他函数) 把它转换为相应类型的数值,否则有可能会得到不正确的结果。如果正确地声明了返回值为变体类型,则可不必进行类型转换。正确答案是B。
6 C。解析:InputBox()函数的格式为:
返回值=InputBox(Prompt,[Title],[Default],[XPos],[YPos],[HelpFile], [Context]) As String
其中prompt是一个字符串,用于提示用户输入,是在对话框中显示的信息,不可省略,故选项A和选项D不正确;选项B没有类型转换符,所以不正确Val(字符串)函数的功能是把自变量中的第一个字符串转换为数值,其中的数值是一个双精度的实数,所以,正确答案是C。 7 B。解析:在默认的情况下,InputBox()函数的返回值是一个字符串类型,而不是变体类型。如果没有事先声明返回值变量的类型,或声明为变体类型,则当把函数的返回值赋给这个变量时,VB将是把它作为字符串来处理。因此当需要用InputBox()函数输入数据,并且需要输入的数值参加运算时,必须在进行运算前用Val函数(或其他函数) 把它转换为相应类型的数值,否则有可能会得到不正确的结果。如果正确地声明了返回值的变体类型,则可不必进行类型转换;由于本题没有事先声明变量,所以a和b所获得的为字符“2”和“6”,所以输出“62”。正确答案是B。
8 A。解析:此题与上题看起来很类似,但是要注意此题在给变量a、b赋值之前就声明了变量的数据类型,VB系统进行了内部转换,把InputBox()函数输入的变量转换为了整型变量,所以,正确答案是A。
9 B。分析: 使用紧凑格式输出,各表达式的分割符应是分号;使用标准式输出,各表达式
- 28 -
的分割符应是逗号。 10 D。解析:略。 11 A。解析:MsgBox()函数的返回值是一个整数,这个整数与所选择的命令按钮有关。MsgBox()函数所显示的对话框中有7种命令按钮,返回值与这7种命令按钮相对应的,见下表。
MsgBox()函数的返回值
返回值 1 2 3 4 5 6 7 操 作 选“确定”按钮 符号常量 vbOk 选“取消”按钮 vbCancel 选“终止”按钮 vbAbort 选“重试”按钮 vbRetry 选“忽略”按钮 vbIgore 选“是”按钮 选“否”按钮 vbYes vbNo 表4.1 MsgBox的返回值表 所以,正确答案是A。
12 D。解析:此题考察Msgbox()函数的基本知识。其函数的格式为:
返回值=MsgBox(Prompt,[Type],[Title],[HelpFile],[Context])As VbMsgBoxResult 函数的第二个参数是数值表达式,不仅仅确定按钮的数目,还指定按钮的类型及图标的样式,所以,正确答案是D。 13 B。解析:略。
14 A。解析:Print \计算机技术\语句的作用是将字符串“计算机技术”直接输出到当前窗体上,所以选项A正确;Picture1.Print \计算机技术\语句实现的功能是将字符串“计算机技术”在图片框上显示出来,所以选项B不正确; Printer.Print \计算机技术\语句实现的功能是将字符串“计算机技术”输出到打印机上,所以选项C不正确;Debug.Print \计算机技术\语句实现的功能是将字符串“计算机技术”在立即窗口中显示出来,所以选项D不正确。所以,正确答案是A。 15 D。解析:此题考查IIf()函数的格式、功能。Result=IIf(条件,True部分,False部分)。由于a=6,所以,结果为True部分,所以,正确答案是D。
16 B。解析:题中是条件语句If a < b Then Print b Else Print a,即a < b时输出b,否则输出a,即输出两者的最大者。显然应该是32,正确答案是B。
17 A。解析:程序开始时分别执行x,y赋值5,-6。If语句Not x>0相当于x<=0,现在x的值为5,比0大,所以条件值为False,执行Else语句y=x+3,此时y为8,执行Print方法,即输出x-y和y-x的值,x-y=-3,y-x=3,正确答案是A。
18 C。解析:题中语句都属于条件语句中“If 条件 Then 语句”的类型,从选项中,可以看出条件语句是A与B的比较语句,其值就是此条件语句的值,也就是说,只有当其值为真时,执行Then语句。选项A和D中的“≠”符号并非比较运算符,在VB中不等于是用<>来表示的,与数学上的表示方法不一样,所以不正确;选项B中的Printf并非VB中的输出方法,所以不正确,正确答案是C。
19 D。解析:此题为行If语句,如果a > 60 ,则I = 1;如果a > 70 ,则I = 2;如果a > 80 ,则I = 3;如果 a > 90,则I = 4。根据已知可得,由于a=95符合每一个If语句的条件,在程序的执行过程中,对所有的语句都执行一次,正确答案是D。
20 D。解析:此题为行If结构的条件语句,如果a > 60 ,则I = 1;如果a > 70 ,则I = 2;
- 29 -
如果a > 80 ,则I = 3;如果 a < 90,则I = 4;本题的条件是a=75,对所有的语句都执行一次,故结果应该为选项D。所以输出结果应该是I = 4,正确答案是D。
21 B。解析:Print方法具有计算和输出双重功能,对于表达式,它先计算后输出,此题中经过第一步的条件语句后,Y的数值为-1,则Y-X的值为-3,小于0,所以Y - X > 0为逻辑假,所以输出结果应该为False,正确答案是B。
22 C。解析:对话框的主要特点是:不必有最大化按钮和最小化按钮,对话框中通常设置有退出按钮,用于退出对话框。VB有两类对话框:一类是对话框关闭之前,不能执行其他操作,称之为“模式”对话框;另一类是对话框关闭之前,能够继续执行其他操作,称之为“无模式”对话框,所以,正确答案C。
23 B。解析:在x = Int(Rnd()+ 4) 语句中,Rnd是用来产生随机数的,其值在0~1之间,而在(Rnd()+ 4) 前面有Int进行强制转换,所以x的结果总为4,Select Case 语句体中的Case 4 :Print \语句。所以,正确答案是B。
24 C。解析:考查对多分支控制结构的掌握。具体过程分析:b=30,所以b\10=3,在1~9之间,执行语句c = a * 100 + b,c=14*100+30=1430。所以,正确答案是C。
25 C。解析:Case语句中的表达式列表可以是下面的4种形式之一:表达式、一组用逗号分隔的枚举值、表达式1 To 表达式2、Is关系运算符表达式,故选项C错误。 二、填空题
1 25+32= 57 。
解析:此题考查Print方法的使用,在打印时,\原样打印,25+32结果为57,所以,答案为:25+32= 57 。
2 Form1.FontSize = Form1.FontSize + 2 Form1.FontSize = Form1.FontSize + 2
解析:此题考查窗体字体属性的设置。决定字体大小的是FontSize属性,所以要改变字体的大小需要改变FontSize的值。cmdMax按钮的作用是单击cmdMax时,窗体上显示“字体由小变大”,字号每次增加2,所以第一个空应填入的是Form1.FontSize = Form1.FontSize + 2;cmdMin按钮的作用是单击cmdMin时,窗体上显示“字体由大变小”,字号每次减小2,所以第二个空填入的是Form1.FontSize = Form1.FontSize + 2。 3 Welcome to Beijing!;Print Sample或者Me.Print Sample。
解析:该题中主要是考查了赋值语句与显示语句。赋值语句是根据图示给出的信息,填写上字符串,然后,用Print命令,使字符串显示在窗体上。赋值语句为Sample = \to Beijing!\;输出语句为:Print Sample或者Me.Print Sample。 4 x Mod 4 = 1 And x Mod 5 = 2;Text1.SetFocus
解析:本题中先通过Val()函数得到一个整数,进行条件判断,如果满足条件x Mod 4 = 1 And x Mod 5 = 2则输出x,否则,将清空文本框,焦点落在文本框中, Text1.SetFocus。 5 numX Mod 2 = 0 And numX Mod 5 = 0 And numX Mod 7 = 0
numX, numX ^ 2
解析:根据已知,条件是“能否同时被2,5和7整除”,所以第一空应填入:numX Mod 2 = 0 And numX Mod 5 = 0 And numX Mod 7 = 0;如果满足条件就显示出来并显示其平方值,所以第二空应填入的是:numX, numX ^ 2。
6 num Mod 6 = 2 And num Mod 5 = 3;Text1.SetFocus
解析:程序调用了Val()函数从文本框中的得到数据。本题中先通过Val()函数得到一个整数,进行条件判断,如果满足条件num Mod 6 = 2 And num Mod 5 = 3则输出num;否则,将清空文本框,焦点落在文本框中,应使用语句Text1.SetFocus。 7 x > 0 And y > 0;x < 0 And y > 0;Else
- 30 -