《VB第四章习题答案上海立信会计学院》由会员分享,可在线阅读,更多相关《VB第四章习题答案上海立信会计学院(6页珍藏版)》请在金锄头文库上搜索。
1、1结构化程序设计的三种基本结构是什么?答:顺序结构、选择结构和循环结构。2 指出下列赋值语句中的错误(包括运行时要产生的错误)。 10x=sin(x)+y答:10x错误变量名 c=3+sqr(-3)答:sqr(x) 中自变量要求=零 c+x+y=c*y答:赋值符号的左边是表达式 x=sin(x)/(20 mod 2)答:分母不能为零3Msgbox函数和InputBox函数之间有什么区别?各自获得什么值?答:两个函数的共同之处是均显示对话框。区别:InputBox函数等待用户在文本框中输入数据,获得的是输入的字符串数据;Msgbox函数等待用户按一按钮,获得的是表示按钮的整数值,以决定程序的流向
2、。4要使单精度变量x,y,z分别保留1位、2位、3位小数,并在窗体上显示,应使用什么函数?如何编写对应的Print方法? 答:使用Format函数,具体如下: Print Format(x, 0.0)Print Format(y, 0.00)Print Format(z, 0.000)5 语句if 表达式 then 中的表达式可以是算术、字符、关系、逻辑表达式中的哪些?答:可以是算术、关系、逻辑表达式。按照一般语言的规定,if后应该是关系表达式、逻辑表达式,根据其结果逻辑量是True或False决定是否执行Then后面的句子。而在VB中还可以是算术表达式,因为VB逻辑判断中,对于非0值就作为T
3、rue,而0值作为False,因此分段函数 可用VB语句表示为: If x Then y sin (x) / x Else y = 0而不必写成If x 0 Then y = sin (x) / x Else y = 06 指出下列语句中的错误。 If x y Then print x答:“”应写成“=” If 10 x 20 then x = x + 20答:VB中表示x的范围“10 x 20”应写成“10 x and x = A and c = a and c 20 Theny=x*x+3*x+2 Elsey=Sqr(3*x)-2 End If Print yEnd SubSelect语句
4、Private Sub Command1_Click() x=Text1.Text Select Case xCase Is20 y=x*x+3*x+2Case Isy Then Max=x Else Max=y If zMax Then Max=zIIf函数:Max = IIf(x y, x, y)Max = IIf(Max z, Max, z)8 在多分支结构的实现中,可以用if Then ElseIf End if 形式的语句,也可以用Select Case End Select 形式的语句,由于后者的条件书写更灵活、简洁,是否可以完全取代前者? 答:不可以。虽然select case.
5、End select语句在条件的书写上更简洁和灵活,但是却不可以完全取代Ifthenelseifend if形式的语句。因为select case.End select语句在使用上是有一些限制的。首先,看该语句的形式: Select Case Case Case Case Else End Select 其中只能含有一个变量,任何含有多个变量的形式都是错误的。例如,要判断x,y是否在第一、第三象限内,若输入如下语句:Select Case x,y,VB程序会显示“缺少:语句结束”。其次,在后面的Case“表达式列表”中不能出现Select Case变量或表达式中使用的变量,也不能出现主教材上列
6、出的四种形式以外的符号或关键字(符号是:逗号;关键字是:Is、To)。例如,上述象限的判断,若语句表示如下: Select Case x,y Case x0 And y0 Print “第一象限” Case x0 And y0 And y0中出现了变量和And逻辑运算符。上述例子只能用If的多分支结构来实现。由此可见,虽然Select Case结构清晰,但使用受到限制,凡是对多个变量的条件判断只能用If的多分支结构来实现。 9计算下列循环语句的次数 For I =- -3 To 20 Step 4答:循环次数为6次。 For I = -3.5 To 5.5 Step 0.5答:循环次数为19次
7、。 For I= -3.5 To 5.5 Step -0.5答:不循环。步长0, 循环初值终值。 For I= -3 To 20 Step 0 答:无数次。10下列 30-90 为语句标号,分别标记该语句,第40 句执行了几次?,第50 句执行了几次?,第90 句显示的结果是多少?30 For j = 1 To 12 Step 340 For k = 6 To 2 Step -250 mk = k60 Print j, k70 Next k80 Next j90 Print j, k, mk答:第40 句执行了4次。第50 句执行了12次。第90 句显示的结果是13 0 2。11如果事先不知道
8、循环次数,如何用 For Next 结构来实现?答:只要将循环的终值设置为一个非常大的值,然后在循环体内增加 If 语句,判断是否达到循环结束条件。形式如下: For 循环变量=1 To 非常大的数 . If 达到循环结束条件 Then Exit For . Next 循环变量12利用循环结构,实现如下功能: 答: S=0 For i = 1 To 10 S = S +(i + 1)*(2* i + 1) Next i 分别统计 1 100中,满足3的倍数、7的倍数的数个为多少?答:S3 = 0S7 = 0For i = 1 To 100 If i Mod 3 = 0 Then S3 = S3
9、 + 1 If i Mod 7 = 0 Then S7 = S7 + 1Next i 将输入的字符串以反序显示。如输入“ASDFGHJKL”,显示“LKJHGFDSA”。 答:s = InputBox(输入字符串)For i = Len(s) To 1 Step -1 Print Mid(s, i, 1);Next i13下面程序运行后的结果是什么?该程序的功能是什么?Private Sub Command1_Click() Dim x$, n% n = 20 x = Do While n 0 a = n Mod 2 n = n 2 x = Chr(48 + a) & x Loop Print
10、 xEnd Sub答:运行后结果为 10100,该程序的功能是将十进制数转换成二进制字符串。14下面程序运行后的结果是什么?该程序的功能是什么?Private Sub Command1_Click() Dim x%, y%, z% x = 242: y = 44 z = x * y Do Until x = y If x y Then x = x - y Else y = y - x Loop Print x, z / xEnd Sub答:运行后结果为 22 和 484,该程序的功能是用相减法求 x ,y 的最大公约数和最小公倍数。15利用随机函数产生20 个 50 100范围内的随机数,显示
11、它们的最大值、最小值和平均值。答:Private Sub Command1_Click() Dim i%, t%, Max%, Min%, Avr! Form1.FontSize = 12 Avr = 0 Print 随机数为:; Randomize t = Int(Rnd() * 51 + 50) Print t;Avr = Avr + t Max = t Min = t For i = 1 To 19 t = Int(Rnd() * 51 + 50) Print t; Avr = Avr + t If t Max Then Max = t If t Min Then Min = t Next i Print Avr = Avr / 20 Print 最大值为:; Max, 最小值为:; Min, 平均值为:; Avr PrintEnd Sub