第3章程序流程控制3.1 填空题1.设变量r 表示圆的半径,则计算圆的面积并赋给变量s使用的赋值语句为( s=3.14159*r*r )。
2.给命令按钮Command2的Caption属性赋予字符串“退出”使用的赋值语句为( Command2.Caption="退出")。
3.为了求n的阶乘,要求用户输入n的值。
程序使用InputBox函数输入,要求对话框提示信息为“请输入一个求阶乘的数:”,标题为“求数的阶乘”,并且正确地把输入的信息转换为数值存放到变量n中,则使用的赋值语句为( n=val(InputBox("请输入一个求阶乘的数:","求数的阶乘"))。
4.如果使用MsgBox对话框显示提示信息“退出本系统?”,并显示“是(Yes)”和“否(No)”两个按钮,显示图标“?”号,指定第一个按钮为默认值以及标题为“提示信息”,则调用MsgBox 函数的形式为( MsgBox("退出本系统? ",4+32+0,"提示信息"))。
5.如果使用MsgBox对话框显示提示信息“文件未找到!”,并显示“确定”按钮、图标“!”号和标题“文件查找”,则使用的MsgBox语句为( MsgBox"文件未找到",0+48+0,"文件查找")。
6.要在当前窗体Form和立即窗口输出字符串“Visual BASIC 6.0”使用的Print方法分别是( Print “Visual BASIC 6.0” )和( Debug.Print “Visual BASIC 6.0” )。
7.使用Print方法时,若用逗号分隔,则按( 标准 )格式输出各表达式的值,若用分号分隔,则按( 紧凑 )格式输出各表达式的值。
8.注释语句是一个(非执行)语句,VB不对它们进行编译,对程序的执行结果没有任何影响。
9.判别变量i是否为偶数,若为偶数就把它显示出来。
使用单行结构条件语句为( If i Mod 2=0 Then print x )。
10.判别变量x是否大于0,若大于0,则累加到变量s1中,否则,累加到变量s2中,使用的单行结构条件语句为( If x>0 Then s1=s1+x Else s2=s2+x )。
11.给定分段函数⎪⎩⎪⎨⎧<=>-+=1212xxxxxy,求y的值,使用的单行结构条件语句为( If x>0 Then y=2*x+1 Else If x=0 Then y=0 Else y=2*x-1 )。
12.判别a是否等于b,若a=b,则输出字符串“a is equal to b”的块结构条件语句为()。
答案:If a=b ThenPrint “a is equal to b”End13.判别ch是否为小写字母,若是,输出“yes”;否则,输出“No”的块结构条件语句为()。
答案:If Asc(ch)>=97 And Asc(ch)<=122 ThenPrint “Yes”ElsePrint “No”End If14.若一个case子句中的表达式表由逗号分隔的若干个常数组成,则它的含义是:当测试表达式的值等于(这些常数中的某一个)时,执行该case子句相应的程序块。
15.若case子句中的表达式表列具有形式:<表达式1> To <表达式2>,则它的含义是:当测试表达式的值等于(这个范围内的值)时,执行该case子句相应的程序块。
16.若case子句中的表达式表列具有形式:Is <关系运算符> <表达式>,则它的含义是:当测试表达式的值满足( Is后的关系)时,执行该case子句相应的程序块。
17.在循环语句中,反复执行的程序段称为(循环体);进入循环体的条件称为(循环条件);中止循环体执行的条件称为(结束循环条件)。
3.2 选择题1.下列赋值语句中,( d )是正确的。
a)x!="abc"b)a%="10e"c)x+1=5d)s$=1002.下列选项中,( d )不能交换变量a和b的值。
a) t=b : b=a : a=t b) a=a+b : b=a-b : a=a-bc) t=a : a=b : b=t d) a=b : b=a3.若在消息框MsgBox中显示“确定(Ok)”和“取消(Cancel)”两个按钮,则buttons参数的设置值是( b )。
a) 0 b) 1 c) 2 d)34.若在消息框MsgBox中选择第二个按钮为默认值,则buttons参数的设置值是( b )。
a)0 b)256 c)512 d)7685.若单击了“终止(Abort)”按钮,则MsgBox函数的返回值是( c )。
a)1 b)2 c)3 d)46.以下不正确的单行结构条件语句是( d )。
a) If x>y Then Print “x>y”b) If x Then t = t * xc) If x Mod 3=2 Then ? x d) If x<0 Then y = 2*x-1 : Print x End If7.给定程序段Dim a As Integer, b As Integer, c As Integera=1:b=2:c=3If a=c-b Then Print "#####" Else Print "*****"以上程序( c )。
a) 没有输出 b) 有语法错c) 输出##### d) 输出*****8.把a, b之中的最大值存放于max,下面语句书写正确的是( d )。
a) If a>b Then max=a Else max=b End Ifb) If a>b Then max=aElse max=bEnd Ifc) If a>b Thenmax=aElsemax=bd) If a>b Thenmax=aElsemax=bEnd If9. 下列Case语句中正确的是( c )。
a) Select Case xCase 1 Or 3 Or 5y=x*x-1Case Is >10y=x+1End Selectb) Select Case xCase 1, 3, 5y=2*x-1Case Is x <=1Y=2*x+1End Selectc) Select Case xCase Is <=0y=x-1Case Is >0y=Sqr(x)+1End Selectd) Select Case xCase x>=1 And x<= 5y=x-1Case Is >10y=x*x+1End Select10.执行下列程序段后屏幕上( c )。
i% = 10 : Sum = 0While i > 1Sum = Sum + ii = i - 1WendPrint Suma) 无显示b) 显示10 c) 显示54 d) 显示5511.执行下列程序段输出结果是( c )。
x%=2Do while x<8Print “*”;x=x+2Loopa) * b) ** c) *** d) ****12.设有程序段k=5Do until k=0k=k-1Loop则下面对循环语句描述正确的是( c )。
a) 循环体1次也不执行 b) 循环体执行1次c) 循环体执行5次 d) 循环体执行无限次13.下面描述中错误的是( a, c )。
a) 执行Do until <条件>…loop语句中,当循环<条件>为false时,结束循环体的执行。
b) 执行While <条件>…Wend语句时,循环体可能一次也不执行。
c) Do …loop While <条件>语句的循环体可能一次也不执行。
d) 执行Do …loop Until <条件>语句中,当循环条件为true时,结束循环体的执行。
14.下面程序段中循环语句的循环次数是( b )。
For x=10 To 1 Step -3Print xNext xa) 0 b) 4 c) 5 d) 1015.执行语句For i=1 to 3: i=i+1 :Next i后变量i的值是( c )。
a) 3 b) 4 c) 5 d) 616.下面程序段执行后输出结果是( b )。
For i=1 To 2s=1For j=0 To i-1s=s+s*jNext jPrint s,Next ia) 1 1 b) 1 2 c) 2 1 d) 2 23.3 阅读下列程序,写出执行结果1. Private Sub Form_ClickPrint –2*3/2 , “Visual” & “BASIC”, Not 5>3,0.75Print –2*3/2 ; “Visual” & “BASIC”; Not 5>3; 0.75x=12.34Print “x=”;Print xEnd Sub答案:-3 Visual BASIC False .75-3 Visual BASICFalse .75x=12.342. Private Sub Form_ClickPrint Tab(10); -100;Tab(20); 200;Tab(30); -300Print Spc(10); -100;Spc(10); 200;Spc(10); -300答案:-100 200 -300-100 200 -3003. Private Sub Form_Clickx=12.35Print Format ( x,”###.##” )Print Format ( x,”##.##” )Print Format ( x,”000.00” )Print Format ( x,”00.0”)Print Format ( x,”0.00%” )Print Format ( x,”$##.##” )Print Format ( x,”+##.##” )Print Format ( x,”00.00E+00” )End Sub答案:12.3512.35012.3512.41235.00%$12.35+12.3512.35e+004. Private Sub Command1_Click()Dim a%, b%, c%, s%, w%, t%a = -1:b = 3:c = 3s = 0: w = 0: t = 0If c > 0 Then s = a + bIf a <= 0 ThenIf c <= 0 Thenw = a - bEnd IfElseIf c > 0 Then w = a - b Else t = cEnd Ifc = a + bPrint a, b, cPrint s, w, tEnd Sub答案:-1 3 22 0 0 5. Private Sub Command1_Click()Dim x%, y%x = InputBox("请输入x的值:")Select Case xCase 1, 3, 5y = x - 1Case 6 To 10y = x + 1Case 2, 4y = 2 * xCase Is > 10y = x * x + 1End SelectPrint "x="; x, "y="; y End Sub(x 的输入值为2.5、8、4和15)答案:x=2 y=4x=8 y=9x=4 y=8x=15 y=2266. Private Sub Command1_Click() Dim i%, t!t = 1: i = 1While i < 10t = t * ii = i + 2WendPrint "t="; tEnd Sub答案:t=9457. Private Sub Command1_Click() Dim i%, x%, y%x = 1: y = 1:i = 1Do Until i > 8If i Mod 2 = 1 Thenx = x * iElsey = y * iEnd Ifi = i + 1LoopPrint "x="; x, "y="; yEnd Sub答案:x=105 y=384 8. Private Sub Command1_Click() Dim p%, s%p = 1: s = 1Dop=p+2:s=s+pLoop While p<10Print "s="; sEnd Sub答案:s=369. Private Sub Command1_Click()Dim m%, n%For m=1 to 3n=0While n<=m-1Print m,nn=n+1WendNext mEnd Sub答案: 1 02 02 13 03 13 23.4 编程题1. 输入一个学生成绩,若成绩在85分以上,则输出“very good”;若成绩在60分到80分之间,则输出“good”;若成绩低于60分,则输出“no good”。