《VB基本知识及选择、循环结构习题(共16页).doc》由会员分享,可在线阅读,更多相关《VB基本知识及选择、循环结构习题(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上一、VB基本知识及选择、循环结构习题一、基本概念题(1) 说明下列哪些是Visual Basic合法的直接常量,并分别指出它们的类型。 100.0 %100 1E1 123D3 123,456 0100 “ASDF” “1234.5” #2004/10/7# 100# &O78 &H123 True T -1123! 345.54#答:在VB中,直接常量是以直接明显的形式给出的数据。根据数据类型的不同,直接常量分为:字符串常量、数值常量、日期常量和布尔常量。字符串常量是由一对半角双引号“”加以界定的字符序列,该字符序列可以是任何能被计算机处理的字符。本题中,“ASDF
2、” 、 “1234.5”是字符串常量;数值常量是由数值、小数点和正负号所构成的数值。在Visual Basic中除十进制数值常量外,还有八进制、十六进制数值常量。八进制常量前加&O;十六进制常量前加&H。本题中,100.0、1E1、123D3、0100、100#、&O78 、&H123、-1123!和345.54#均为数值常量。日期常量用来表示某一天或某一天的具体时间。在Visual Basic中,日期常量用两个“#”号加以界定。本题中,#2004/10/7#是日期常量。逻辑型常量只有True和False两个值,表示“真”和“假”。本题中,True是逻辑常量。 本题中,100、123,456、
3、T不是合法的常量。(2)下列数据哪些是变量,哪些是常量?是什么类型的常量? Name “name” False ff “11/16/99” cj “120” n #11/12/2004# 12.345 答:“name”、 “11/16/99”、 “120”是字符串常量;12.345是数值常量;#11/12/2004#是日期常量;False是逻辑常量。Name、ff、cj、n是变量。(3) 下列符号中,哪些可以是Visual Basic的合法变量名? A123 a12_3 123_a a,123 a 123 Integer XYZ False Sin(x) 变量名 sinx 答:变量命名的规则是
4、:必需以字母或汉字开头,其后可以是下划线、字母、汉字和数字,长度小于255个字符;不能使用VB的关键字。本题中,合法的变量名是:A123、 a12_3、XYZ、变量名、sinx;不合法的变量名是:123_a(不能用数字开头)、a,123(不能用逗号)、a 123(不能有空格)、False、Sin(x)(VB的关键字)、(不是英文字母)。(4)把下列数学表达式写成Visual Basic表达式:(1) (2)(3) (4)(5) (6)答:(1) abs(x+y)+z5 (2) (1+x*y)6 (3) (10*x+Sqr(3*y)/(x*y)(4)(-b+Sqr(b*b-4*a*c)/(2*a
5、)(5) 1/(1/r1+1/r2+1/r3)(6) Sin(3.14159*45/180)+(Exp(10)+log(10)/Sqr(x+y+1)(5)写出下列表达式的值:(1)123 + 23 Mod 10 7 + Asc(A)(2)Int(68.555 * 100 + 0.4) / 100(3)#11/22/2004# - 10(4)ZXY & 123 & abc答:VB中计算表达式的值时,首先要考虑的是运算符的优先级。(1)式中整除运算符优先级最高,故首先计算1071;然后计算23 Mod 10;所以整个表达式的值=123065188。(2)式中Int(68.555*100+0.4)=
6、Int(6855.9)/100=6855/100=68.55。注意Int()函数取整时,参数如果是整数,略去小数部分;参数是负数时,取不大于参数的最大整数。(3)式中的10表示天数,故表达式的值是2004-11-12。(4)“&”运算符的作用是把字符串连接起来,如果遇到数值,则先把数值转换成字符串后再连接,所以表达式的值是ZXY123abc。(6)设a=7,b=3,c=4,求下列表达式的值:(1)a + 3 * c (2)a 2 / 4(3)a / 2 + 3 2 (4)a Mod 3 + b 3 / c 5答:(1)式=7+3*4=19;(2)式=7*7/4=12.25;(3)式=7/2+3
7、2=3.5+1=4.5;(4)式=1+274/5=1+6.755=1+65=2;(7)写出下列函数的值:(1)Int(-3.14159) (2)Fix(-3.14159)(3)Sqr(Sqr(81) (4)Len(Visual Basic程序设计)(5)Int(Abs(99 - 100) / 2) (6)Sgn(7 * 3 + 2)(7)LCase(Hellow VB!) (8)Mid(Hellow VB!, 4, 3)(9)Left(Hellow VB!, 3) (10)Val(16个加23个)(11)Str(-459.55) (12)UCase(Visual Basic)答:(1)Int(
8、-3.14159)=-4;(2)Fix(-3.14159)=-3;(3)Sqr(Sqr(81)=3(4)Len(Visual Basic程序设计)=16;(5)Int(Abs(99 - 100) / 2)=0;(6)Sgn(7 * 3 + 2)=1;(7)LCase(Hellow VB!)=”hellow vb”;(8)Mid(Hellow VB!, 4, 3)=”low”;(9)Left(Hellow VB!, 3)=”Hel”;(10)Val(16个加23个)=16;(11)Str(-459.55)=”-459.55”;(12)UCase(Visual Basic)=”VISAUL BAS
9、IC”;二、 选择题(1)可以同时删除字符串前导和尾部空格的函数是 。 A. Ltrim B. Rtrim C. Trim D. Mid(2)函数Int(Rnd(1) * 10)是在哪个范围产生随机整数 。 A. (0,1) B. (0,9) C. (1,10) D. (1,9)(3)数学式子sin25写成Visual Basic表达式是 。 A.Sin25 B. Sin(25) C. Sin(25) D. Sin(25*3.14/180)(4)表达式16/4 23 * 8/4 Mod 52的值是 。A. 14 B. 4 C. 20 D. 2(5)数学关系式表示成正确的VB表达式为 。 A.
10、3= x = 3 And x=3 Or x10 D. 3= x And “ABC” B. “THAT” “THE” C. 9 “H” D. “A” “a”(16)表达式a+b=c是 。 A. 赋值表达式 B. 字符表达式 C. 算术表达式 D. 关系表达式(17)在下列表达式中,非法的是 。 A. a=b+c B. ab+c C. abc D. ab+c(18)语句Print Format (“HELLO”, “”) 的输出结果是。 A. HELLO B. hello C. He D. he(19)MsgBox函数的返回值的类型是。 A. 整数B. 字符串C. 逻辑值D. 日期(20)用语句D
11、im A(-3 to 5) As Long定义的数组元素个数是 。 A. 7 B. 8 C. 9 D.10答:(1)选C。Trim函数可以出去字符串两端的空格,而Ltrim、Rtrim则分别出去字串左端或右端的空格。(2)选B。Rnd函数返回一个01(不包括1)的单精度小数,乘以10后用Int函数取整,得到的数应在09之间。(3)选D。VB中,所有三角函数的参数必须用弧度代入计算,反三角函数的返回值是弧度。(4)选B。因为16/4 23 * 8/4 Mod 52=4-8*8/4 Mod 2=4-16 Mod 2=4-0=4。(5)选B。表示变量x大于等于3而且小于9,应注意这里不能使用数学式子
12、的习惯用法。(6)选B。Left(a,4)的值是”1234”,Mid(a,4,2)的值是”34”,两字符串连接后再由Val函数转变为数值。(7)选A。在VB中,西文字符、中文字符和数字都是一个字符长度,字符串长度就等于字符的个数。(8)选C。赋值号左边只能是变量,不能是表达式,故A是错误的;B、D中的均有不合法的变量名。(9)选A。选项B、D语法错误,选项C是一关系表达式。(10)选D。数值型数据与字符串相加时,如果字符串是数字,VB把字符串转变为数值后,再相加;字符串不是数字时,系统提示出错。(11)选A。由逻辑运算符组成的表达式是逻辑表达式。(12)选B。(13)选B。(14)选A。字符串
13、的比较是按字符的ASCII码值从左到右一一比较,先大为大。(15)选A。(16)选D。表达式a+b=c是关系表达式,如果a+b的值等于c,则表达式的值为True,否则为False。(17)选C。VB中的不等号只能用。(18)选B。在格式输出函数中,“”是强制小写符号。(19)选A。MsgBox函数的返回值的类型是一整型数,记录了用户在消息框中选择了哪一个按钮。(20)选C。定义的数组元素个数是9,数组元素的下标分别是:-3,-2,-1,0,1,2,3,4,5。三、判断题(1) VB6.0中&H12是8进制的数值常数。(2) 设A=123,B=123,则A+B的结果为246,A-B的结果为0。(
14、3) 已知A$=,则表达式Val(Left$(A$,4)+Mid$(A$,4,2)的值是:。(4) Rnd函数产生的是(0,1)之间不包括0、1的随机小数。(5) 表示x是5的倍数或是9的倍数的逻辑表达式为:x Mod 5=0 OR x Mod 9=0。(6) Len(等级考试)和LenB(等级考试)的结果相同。(7) VB6.0中字符串常量是用双引号或单引号括起来的字符串。(8) Print InStr(Visual Basic, I)的结果为0。(9) 固定数组中的数组元素个数一旦定义好后,在程序运行过程中不再会发生变化,并且数组中数组元素的值也不会变化。(10)数组元素的下标可以是常数、
15、变量或表达式。(11)在ForNext循环中,其中Step步长可以是正数,也可以是负数。(12)在DoLoopWhileUntil循环中,While关键字或Until关键字必须选择其中之一。(13)在For.Next循环中,Exit For子句是可选项,它可以放置在循环体语句中的任何位置。(14)动态数组在定义时已被分配存储空间。(15) 在VB6.0中,Option Base语句的参数只能是0或1。答:(1)错。&H12是16进制的数值常数, 8进制数常数的前缀是&O。(2)对。数值型数据与字符串相加时,如果字符串是数字,VB把字符串转变为数值后,再相加。(3)对。Left$(A$,4)的返
16、回值是“8765”,Mid$(A$,4,2)的返回值是“54”,两个字符串相加后,再由Val函数转换成。(4)错。Rnd函数产生的是(0,1)之间的随机小数,包括0,但不包括1。(5)对。一个数是另一个数的倍数时,相除余数为零。(6)错。Len函数的返回值是字符个数,LenB函数的返回值是字符串所占用的字节数。(7)错。VB6.0中字符串常量只能是用双引号括起来的字符串。(8)对。InStr函数的返回值是乙字串在甲字串中的位置,如果甲字串中不包含乙字串,则函数返回值是0。(9)错。固定数组中的数组元素个数一旦定义好后,在程序运行过程中不再会发生变化,但数组元素的值是可以变化的。(10)对。(1
17、1)对。(12)错。While关键字和Until关键字可以同时省略,表示无条件循环。此时,循环体中应有Exit Do子句。(13)对。(14)错。动态数组在定义时没有被分配存储空间。(15)对。四、 程序阅读题(1)执行下面程序后,显示的结果是。 Private Sub Form_Click()Dim x As Integerx = Int(Rnd) + 4Select Case xCase 5 Print 优秀Case 4 Print 良好Case 3 Print 及格Case Else Print 不及格End SelectEnd Sub 答:运行结果是:“良好”。因为x=0+4=4,在S
18、elect Case语句中执行Print 良好语句。(2)执行下面程序段后,变量的值为。Dim x As Integerx = 5For i = 1 To 20 Step 3 x = x + i 5Next i答:变量的值为16。因为循环体共执行Int(20-1)/3+1)=7次,前两次循环x的值不变;第3次循环后x的值为6;第4、5次循环,x的值每次加2;第6、7次循环x的值每次加3;故循环结束后x的值为16。(3)执行下面程序后,输出的结果是。Private Sub Form_Click()Dim x As IntegerFor i = 1 To 3 For j = 1 To i For
19、k = j To 3 x = x + 1 Next k Next jNext iPrint xEnd Sub答:输出结果是x=14。这是一个3重循环,最内层的循环体共执行14次,每次加1。(4)执行下面程序后,输出的结果是。Private Sub Form_Click()Dim x As Integerx = 0Do While x 50 x = (x + 2) * (x + 3) n = n + 1LoopPrint x=; x; n=; nEnd Sub 答:输出结果是x=72 n=2。本程序执行循环2次,第1次循环,x的值为6,n值为1;第2次循环,x的值为72,n值为2。x大于50时,
20、循环终止。(5)执行下面程序后,输出的结果是。Private Sub Form_Click()Dim x As Integer, a As Integerx = 0For j = 1 To 5 a = a + j Next j x = j Print x, aEnd Sub 答:输出结果是6 15。变量x中保存的是循环变量j的终止值6。循环体执行了5次,故a的值是15。(6)以下程序的循环次数是。For j = 8 To 35 Step 3 Print j;Next j 答: 循环体共执行Int(35-8)/3+1)=10次。(7)执行下面程序输入后,程序输出的结果是。Private Sub
21、Form_Click()x = InputBox(x)If x 2 15 Then y = x 2 + 1Print yEnd Sub 答: 输出结果是17。因为x21615,故程序执行y = x 2 + 1=17。(8)执行下面程序后,输出的结果是。Private Sub Form_Click()Dim sum As Integersum% = 19sum = 2.23Print sum%; sumEnd Sub 答:输出结果是2 2。程序中变量sum被定义成整型变量,所以赋与实数值时,系统会把小数部分除去。是类型符号,也是表示整型。(9)执行下面程序后,输出的结果是。Private Sub
22、 Form_Click()a = 100Do s = s + a a = a + 1Loop Until a 100Print aEnd Sub 答:输出结果是101。程序中使用的是后测型循环结构。循环体执行1此后,变量a的值变为101,满足循环结束条件,故循环终止。(10) 执行下面程序后,输出的结果是。Private Sub Form_Click()a = ABCDb = efghc = LCase(a)d = UCase(b)Print c + dEnd Sub答:输出结果是abcdEFGH。LCase()函数的作用是把字符串中的大写字母转换成小写;UCase()函数的作用是把字符串中的
23、大写字母转换成大写。(11) 执行下面程序后,输出的结果是。 Private Sub Form_Click()x = 2: y = 4: z = 6x = y: y = z: z = xPrint x; y; zEnd Sub 答:输出结果是4 6 4。应注意的是本程序无法实现3个变量值的互换。 (12)执行下面程序后,输出的结果是。Private Sub Form_Click()Dim count As Integercount = 0While count 20 count = count + 1WendPrint countEnd Sub 答:输出结果是20。程序中的循环体执行20次,当
24、count的值为20时,不再满足循条件,程序执行循环结构后面的打印语句。 (13)执行下面程序后,输出的结果是。 Private Sub Form_Click()a = *: b = $For k = 1 To 3x = Str(Len(a) + k) & bPrint x;Next kEnd Sub 答:输出结果是2$ 3$ 4$。程序循环执行时,Len(a)的返回值始终是1,Str(Len(a)+k)的值分别是2、3、4。字符串连接符&把两个字符连接在一起。 (14)执行下面程序后,输出的结果是。Private Sub Form_Click()k = 0: a = 0Do While k
25、=i) Then Print Tab(j*3);Format(b(i,j),# # #); Next j Print Next iEnd Sub A. 1 2 3 B. 1 C. 1 4 7 D.1 2 3 4 5 6 4 5 2 4 6 4 6 7 8 9 7 8 9 3 6 9 9答:输出结果是选项D。五、 填空题(1) 在VB中声明符号常量的关键字是_。(2) 设a=1,b=2,c=3,则VB6.0表达式:ab or bc and ca 的值是_。(3) a,T,Z,9,这四个字符中,_的ASCII码值最大。(4) 执行语句 B = MsgBox(XXX,YYY)后,在消息框中的标题信息
26、是_。(5)函数Len(Hello!+Space(2)+Mid(Shanghai,5,3)的值是_。(6)表达式 Ucase(Mid(abcdefgh,3,4) 的值是_。(7)表达式 Int(1234.555*100+0.5)/100 的结果是_。 (8)使用数组声明语句Dim a(3, -2 TO 2, 5),则数组a包含元素的个数有_。(9) For-Next循环的子句缺省时,循环变量每次改变的值是_。(10)填空,使得程序运行后,能在窗体上打印如图所示的图案。 Private Sub Form_Click()PrintFor i = 1 To 4 Print Tab(8 - i); F
27、or j = 1 To 8 Print *; ( ) Print Next iEnd Sub(11)下面程序的功能是利用随机函数产生10个(1100)之间的随机整数,打印其中能被5整除的数并求其和,请用正确的内容填空。 Private Sub Form_Click()Dim sum As Integer, x As IntegerFor i = 1 To 10x = Int(Rnd * 100 + 1) If () = 0 Then sum = sum + x Print x=; x End IfNext iIf sum 0 Then Print sum=; sumEnd IfEnd Sub(
28、12)用正确的内容填空,使得以下程序能够找出50以内所有能构成直角三角形的整数。 Private Sub Form_Click()Dim a As Integer, b As IntegerDim c As SingleFor a = 1 To 50 For b = a To 50 c = Sqr(a 2 + b 2) If () Then Print a, b, cNext bNext aEnd Sub(13)用正确的内容填空,使得以下程序能够计算1+1/3+1/5+1/(2N+1),直到1/(2N+1)小于10-5。 Private Sub Form_Click()sum = 1: n =
29、 1Don = n + 2temp = 1 / nsum = sum + tempIf temp cj Then Min = cjElseIf Max cj Then Max = cj End If End If sum = sum + cj Next i aver = () Print 该选手的成绩为:, averEnd Sub(15)以下程序用随机函数模拟掷骰子,统计掷50次骰子出现各点的次数,请用正确的内容填空。 Private Sub Form_Click()Dim a(1 To 6) As IntegerRandomizeFor i = 1 To 50 n = () a(n) = a
30、(n) + 1 Next iFor i = 1 To 6 Print i; 点出现; a(i); 次Next iEnd Sub答:(1)Const (2)True (3)a (4)YYY (5)11 (6)CDEF (7)1234.56 (8)120 (9)1 (10)Next j (11)x Mod 5 (12)c = Int(c) And c = 50 (13)Exit Do (14)(sum - Max - Min) / 5 (15)Int(Rnd * 6) + 1六、 编程题(1) 编写程序将1100自然数中能被3和5同时整除的数打印出来,并统计其个数。解答:一个整数能被另一整数整除的
31、条件是,它们相除时余数为零。 Private Sub Form_Click()Dim i As Integer, n As Integer For i = 1 To 100 If i Mod 3 = 0 And i Mod 5 = 0 Then 能够被3和5同时整除的条件Print in = n + 1End IfNext iPrint 1100自然数中能被3和5同时整除的个数为:; nEnd Sub(2) 我国现有人口13亿,设年增长率为0.75,编写程序,计算多少年后将超过16亿。解答:本题有两种解法,可以根据公式: 16=13(1+0.0075)n直接利用标准函数对数求得: n = Log(16 / 13) / Log(10.0075)也可以利用循环求得:Private Sub Form_Click()x = 13n = 0Do Wh