1、国家二级 VB机试(VISUAL+BASIC 程序设计基础)-试卷 1及答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:34,分数:68.00)1.下面为单精度实型(即单精度浮点型)变量的是(分数:2.00)A.x$B.x&C.x!D.x#2.双精度浮点数的类型说明符为(分数:2.00)A.B.#C.&D.3.下列符号常量的声明中不合法的是(分数:2.00)A.Const a AsSingle=35B.Const a AsDouble=5+8C.Const a As Integer=“25“D.Const a=“OK“4.为把圆周率的近似值 314159 存放在变量 pi
2、中,应该把变量 pi定义为(分数:2.00)A.Dim pi As IntegerB.Dim pi(7)As IntegerC.Dim pi As SingleD.Dim pi As Long5.对于语句 Dim Var1 ,Var2 As Integer,下列说法中正确的是(分数:2.00)A.Var1#和 Vat2都被定义为整型变量B.Var1被定义为双精度型变量。Var2 被定义为整型变量C.Var1被定义为长整型变量,Vat2 被定义为整型变量D.Var1#被定义为变体变量,Vat2 被定义为整型变量6.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 255个字符B.变量
3、名的第一个字符可以是字母或数字C.变量名只能由字母、数字和下划线组成D.变量名不能使用保留字7.有如下数据定义语句:Dim ab As IntegerDim x,y as Integer 执行上述语句后,不是整型变量的是(分数:2.00)A.aB.bC.xD.y8.设在一个工程的窗体中有如下代码:Public x As IntegerPrivate Sub Form_Load()Dim y As IntegerEnd Sub在该工程的标准模块的声明部分有如下代码:Public a As IntegerPrivate b As Integer关于上述代码,以下叙述中错误的是(分数:2.00)A.
4、变量 x的作用域是整个工程B.变量 y的作用域是。Form_Load 过程C.变量 a的作用域是整个工程D.变量 b的作用域是整个标准模块9.在窗体模块的声明部分声明变量时,不能使用的关键字是(分数:2.00)A.DimB.PublicC.PrivateD.Static10.设窗体上有一个 Conunand1命令按钮,还有以下程序代码:Private Sub Command1_Click()Static x As Integerx=x+1Call proc(x)Print x,End SubPrivate Sub proc(a As Integer)Static xA s Integerx=x
5、+aa=xEnd Sub程序运行后,3 次单击命令按钮,则产生的输出是(分数:2.00)A.1 2 3B.1 3 5C.1 3 7D.2 4 611.在标准模块中,将 a定义为全局整型变量的语句是(分数:2.00)A.Static a As IntegerB.Dim a As IntegerC.Private a As IntegerD.Public a As Integer12.下面能够将某个变量声明为局部变量的是(分数:2.00)A.在窗体模块的声明部分,用关键字 Static声明这个变量B.在窗体模块的声明部分,用关键字 Dim声明这个变量C.在需要使用这个变量的过程中,用关键字 Pri
6、vate声明这个变量D.在需要使用这个变量的过程中,用关键字 Public声明这个变量13.编写如下程序:Dim num As Integer,r As Integer,n As Integer,i As IntegerDim arr(5)As IntegerPrivate Sub Command1_Click()num=12:r=2Call sub1(num,r,n)For i=n To 1 Step-1Print arr(i);Next iEnd SubSub sub1(d As Integer,r As Integer,k As Integer)k=0Do While d0k=k+1ar
7、r(k)=d Mod rd=drLoopEnd Sub 程序运行后,单击命令按钮 Command1,输出结果为(分数:2.00)A.1 1 0 0B.0 0 1 1C.0 1 0 1D.1 0 1 014.下列说法中错误的是(分数:2.00)A.在过程中,可以用 Static定义变量,但当该过程调用结束后,其值继续保留B.当用 Static关键字定义一个过程时,该过程中的所有变量都是“Static”存储方式的C.Sub Main过程一定是程序运行时首先被执行的过程,是整个程序的入口点D.同一个工程中只能有一个 Sub Main过程15.语句:Print Asc(Chr$(Mid$(“98765
8、432“,4,2)的输出是(分数:2.00)A.65B.AC.8765D.W16.以下表达式与 Int(35)的值相同的是(分数:2.00)A.CInt(35)B.Val(35)C.Fix(35)D.Abs(35)17.语句:Print Int(Rnd*5+20)的输出不可能是(分数:2.00)A.20B.22C.24D.2518.窗体上有一个名称为 Command1的命令按钮,单击该按钮时所实现的功能是产生 10个随机整数,然后从键盘输入一个整数,查找该数在数组中的位置。若找到,输出该数的位置;若没有找到,给出相应的提示。该命令按钮的单击事件过程如下:Private Sub Command1
9、_Click()Dim a(10)As IntegerDim x As IntegerFor i=1 To 108(i)=Int(Rnd*100)Nextx=InputBox(“输入 100以内的整数:“)p=0For i=1 To 10If a(i)=x Thenp=iExit ForEnd IfNextIf p=0 ThenPrint“没有找到与输入数据相同的数!“ElsePrint Str(x)+“名擞组中的位置是“+Str(p)End IfEnd Sub 对于上述事件过程,以下叙述中正确的是(分数:2.00)A.本程序实际产生的随机数是 0-99B.若产生的随机数中有相同数,则 p是其
10、中最后一个数的位置C.程序有错,p 的初值设置不对D.程序有错,InputBox 函数产生的数据与 x的类型不匹配19.窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。要求编写一个程序,统计文本框中 0-9各数字字符的个数。某人编写如下程序:Prirate Sub Command1_Click()Dim count(10)As Integer第 1个 For循环 For i=0 To 9count(i)=0Nexts=Trim(Text1Text)strLen=Len(s)第 2个 For循环 For vi=1 To strLenc=Mid(s,i,1)If c
11、=“0“And c=“9“Thnx=Val(C)count(i)=count(i)+1End IfNext第 3个 For循环 For i=0 To 9Print Str(i),count(i)NextEnd Sub 运行程序后,发现不能实现题目的要求,程序应该进行的修改是(分数:2.00)A.将第 2个 For循环的初值改为 0B.将第 2个 For语句改为 For i=0 To 9C.去掉 x=Val(C)语句D.将 count(i)=count(i)+1改为 count(x)=count(x)+120.有下面程序代码:Private Sub Command1_Click()Dim a A
12、s Stringa=“CONPUTER“n=search(a,“T“)Print IIf(n=0,“未找到“,n)End SubPrivate Function search(str As String,ch As String)As IntegerFor k=1 To ten(str)c=Mid(str,k,1)If c=ch Thensearch=kExit FunotionEnd IfNext ksearch=0End Function程序运行后,单击命令按钮 Command1,输出结果是(分数:2.00)A.0B.8C.6D.未找到21.编写如下程序:Private Sub Comma
13、nd1_Click()Dim x As String,y As Stringx=Right(“abcd“,2)Y=Mid(“dcba“,2,3)If xy ThenPrint x+yElsePrint y+xEnd IfEnd Sub 程序运行后,单击命令按钮Command1,输出结果为(分数:2.00)A.cdcbaB.cbacdC.ebacdD.cbcd22.设有如下函数:Function DelSpace(ch As String)As IntegerDim n,st$,c$st=“n=0For k=1 To Len(ch)c=Mid(ch,k,1)If c “Thenst=st&cEl
14、sen=n+1End IfNext kch=stDelSpace=nEnd Function函数的功能是(分数:2.00)A.统计并返回字符串 ch中字符的个数B.删除字符串 ch中的空格符,返回删除字符的个数C.统计并返回字符串 ch中非空格字符数D.删除字符串 ch中除空格符外的其他字符,返回删除字符的个数23.设有下面程序代码:Private Sub Command1_Click()Dim str As String,ch As Stringstr=“Visual Basic Programming“ch=“a“n=fun(ch,st)Print str,nEnd SubPrivate
15、Function fun(ch As String,str As String)As IntegerDim strbuf As String,C As String,n As IntegerFor k=1 To Len(str)C=Mid$(str,k,1)If c ch Thenstrbuf=strbuf&cElsestrbuf=strbuf&UCase(C)n=n+1End IfNext kstr=strbuffun=nEnd Function程序运行时的输出是(分数:2.00)A.Visual Basic Programming 0B.VisuAl BAsic ProgrAmming 3
16、C.Visul Bsic Progrmming 3D.VisualBasicProgramming 224.设 a=10,b=4,c=5,d=7,表达式 ab And Not cd+6 的值为(分数:2.00)A.TrueB.FalseC.1D.025.下列运算符中,优先级别最低的是(分数:2.00)A.NotB.LikeC.ModD.And26.窗体上有一个名称为 Label的 1标签;一个名称为 Timer1的计时器,其 Enabled和 Interval属性分别为 True和 1000。编写如下程序:Dim n As IntegerPrivate Sub Timer1_Timer()ch
17、=Chr(n+Asc(“A“)Label1Caption=chn=n+1n=n Mod 4End Sub 运行程序,将在标签中(分数:2.00)A.不停地依次显示字符“A”、“B”、“C”、“D”,直至窗体被关闭B.依次显示字符“A”、“B”、“C”、“D”各一次C.每隔 1秒显示字符“A”一次D.每隔 1秒依次显示 26个英文字母中的一个27.设变量 x的值是 845,则下面语句的输出是 Print x100+(x Nod 100)10+x Mod 10(分数:2.00)A.17B.548C.845D.48528.设:a=2,b=8,c=6,d=3,表达式 ab And Not(cD)or
18、dc 的值是(分数:2.00)A.1B.0C.TrueD.False29.假定有如下情况语句:Select Case X 能表示|X|5 的 Case子句是(分数:2.00)A.Case Not(-5 To 5)B.Case 5 To-5C.Case Is-5,Is5D.Case Abs(X)530.能正确表述“x 为大于等于 5并且小于 20的数”的 Visual Basic表达式是(分数:2.00)A.x=5 And x20B.x=5 Or x20C.5=x20D.5=x=2031.有如下语句序列:Dim ab As IntegerPrint aPrint b 执行以上语句序列,下列叙述中
19、错误的是(分数:2.00)A.输出的 a值是 0B.输出的 b值是 0C.a是变体类型变量D.b是整型变量32.下列程序段的输出结果是 x=5Print x+1:x+1(分数:2.00)A.6 6B.5 5C.6 7D.5 633.语句 Print Format$(238465,“000,00000“)的输出结果是(分数:2.00)A.238465B.23,8465C.23,84650D.023,8465034.设程序中有以下语句:MsgBox“Visual“,“Basic“,“等级考试“,2 执行该语句后,显示一个信息框,以下关于该信息框的叙述中,正确的是(分数:2.00)A.提示信息是 V
20、isualB.提示信息是 BasicC.标题栏显示为 VisualD.标题栏显示为“等级考试“国家二级 VB机试(VISUAL+BASIC 程序设计基础)-试卷 1答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:34,分数:68.00)1.下面为单精度实型(即单精度浮点型)变量的是(分数:2.00)A.x$B.x&C.x! D.x#解析:解析:$:字符串型,&:长整型,!:单精度实型,#:双精度实型。2.双精度浮点数的类型说明符为(分数:2.00)A.B.# C.&D.解析:解析:整型,#:双精度实型,&:长整型,:货币型。3.下列符号常量的声明中不合法的是(分数:2.0
21、0)A.Const a AsSingle=35B.Const a AsDouble=5+8C.Const a As Integer=“25“ D.Const a=“OK“解析:解析:定义符号常量的一般格式:Const 常量名As 数据类型=表达式,“常量名”参数就是给常量命名。“数据类型”表示常量的数据类型,一般可以省略,这时由后面的“表达式”参数来指明常量的数据类型。表达式可以是数值型常量、字符型常量、布尔型常量和日期型常量。4.为把圆周率的近似值 314159 存放在变量 pi中,应该把变量 pi定义为(分数:2.00)A.Dim pi As IntegerB.Dim pi(7)As In
22、tegerC.Dim pi As Single D.Dim pi As Long解析:解析:单精度 Single或双精度 Double型的变量能够保存浮点型小数,整型 Integer和长整型Long的变量只能保存整型数据。本题中圆周率为 314159,小数,可定义一个 single或 Double型变量来保存。故选 C。5.对于语句 Dim Var1 ,Var2 As Integer,下列说法中正确的是(分数:2.00)A.Var1#和 Vat2都被定义为整型变量B.Var1被定义为双精度型变量。Var2 被定义为整型变量 C.Var1被定义为长整型变量,Vat2 被定义为整型变量D.Var1
23、#被定义为变体变量,Vat2 被定义为整型变量解析:解析:定义变量时,可在定义变量时指定其类型,也可用类型说明符定义变量。在语句 Dim Var1#,Var2 As Integer 中,Var1 采用类型说明符定义变量,#是双精度型的类型说明符,其类型名为Double,Var1 是双精度变量。Vat2 在定义变量时指定的类型,为整型变量。故选项 B正确,A、C 和 D项错误。6.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 255个字符B.变量名的第一个字符可以是字母或数字 C.变量名只能由字母、数字和下划线组成D.变量名不能使用保留字解析:解析:变量的命名规则是:必须以字母开
24、头,由字母、汉字、数字或下划线组成;不能在变量名中出现句点“”、空格或者嵌入字符,例如!、#、$、&等;长度不得超过 255个字符;不能使用 VB的关键字,关键字是语言的组成部分,包括预定义语句(例如 If、For 等)、函数(Abs、Sq,等)和操作符(or、Mod 等)。7.有如下数据定义语句:Dim ab As IntegerDim x,y as Integer 执行上述语句后,不是整型变量的是(分数:2.00)A.a B.bC.xD.y解析:解析:在 Visual Basic中,变量的定义格式有两种,第一种是:Declare 变量名 As类型,“Declare”可以是 Dim,Stat
25、ic,Redim,Public 或 Private,“As”是关键字,“类型”可以是基本的数据类型也可以是用户自定义的类型;第二种是用类型说明符来定义变量,即在定义变量名后面加上类型说明符;如果变量名后面没有类型说明符,又不是第一种定义方式的话,则定义的变量是变体变量。8.设在一个工程的窗体中有如下代码:Public x As IntegerPrivate Sub Form_Load()Dim y As IntegerEnd Sub在该工程的标准模块的声明部分有如下代码:Public a As IntegerPrivate b As Integer关于上述代码,以下叙述中错误的是(分数:2.0
26、0)A.变量 x的作用域是整个工程 B.变量 y的作用域是。Form_Load 过程C.变量 a的作用域是整个工程D.变量 b的作用域是整个标准模块解析:解析:VB 中变量按作用域分为:局部变量:在过程内用 Dim语句或用 Static语句声明的变量,只能在本过程中使用。窗体模块级变量:在“通用声明”段中用 Dim语句或用 Private语句声明的变量,可被本窗体模块的任何过程访问。全局变量:在“通用声明”段中用 Public语句声明的变量,可被本应用程序的任何过程或函数访问。9.在窗体模块的声明部分声明变量时,不能使用的关键字是(分数:2.00)A.DimB.PublicC.PrivateD
27、.Static 解析:解析:VB 中变量按作用域分为:局部变量、窗体模块级变量、全局变量。局部变量:在过程内用 Dim语句或用 Static语句声明的变量,只能在本过程中使用。窗体模块级变量:在“通用声明”段中用 Dim语句或用 Private语句声明的变量,可被本窗体模块的任何过程访问。全局变量:在“通用声明”段中用 Public语句声明的变量,可被本应用程序的任何过程或函数访问。10.设窗体上有一个 Conunand1命令按钮,还有以下程序代码:Private Sub Command1_Click()Static x As Integerx=x+1Call proc(x)Print x,E
28、nd SubPrivate Sub proc(a As Integer)Static xA s Integerx=x+aa=xEnd Sub程序运行后,3 次单击命令按钮,则产生的输出是(分数:2.00)A.1 2 3B.1 3 5C.1 3 7 D.2 4 6解析:解析:注意 Static关键字修饰的变量,在过程退出后,变量值保持不变。选 C。11.在标准模块中,将 a定义为全局整型变量的语句是(分数:2.00)A.Static a As IntegerB.Dim a As IntegerC.Private a As IntegerD.Public a As Integer 解析:解析:VB
29、 中变量的作用域分为:局部变量、窗体模块级变量、全局变量。局部变量:在过程内用 Dim语句或 Static语句声明的变量,只能在本过程中使用。窗体模块级变量:在“通用声明”段中用 Dim语句或用 Private语句声明的变量,可被本窗体模块的任何过程访问。全局变量:在“通用声明”段中用 Public语句声明的变量,可被本应用程序的任何过程或函数访问。12.下面能够将某个变量声明为局部变量的是(分数:2.00)A.在窗体模块的声明部分,用关键字 Static声明这个变量B.在窗体模块的声明部分,用关键字 Dim声明这个变量C.在需要使用这个变量的过程中,用关键字 Private声明这个变量 D.
30、在需要使用这个变量的过程中,用关键字 Public声明这个变量解析:解析:VB 中变量的作用域分为:局部变量、窗体模块级变量、全局变量。局部变量:在过程内用 Dim语句或 Static语句声明的变量,只能在本过程中使用。窗体模块级变量:在“通用声明”段中用 Dim语句或用 Private语句声明的变量,可被本窗体模块的任何过程访问。全局变量:在“通用声明”段中 Public语句声明的变量,可被本应用程序的任何过程或函数访问。13.编写如下程序:Dim num As Integer,r As Integer,n As Integer,i As IntegerDim arr(5)As Intege
31、rPrivate Sub Command1_Click()num=12:r=2Call sub1(num,r,n)For i=n To 1 Step-1Print arr(i);Next iEnd SubSub sub1(d As Integer,r As Integer,k As Integer)k=0Do While d0k=k+1arr(k)=d Mod rd=drLoopEnd Sub 程序运行后,单击命令按钮 Command1,输出结果为(分数:2.00)A.1 1 0 0 B.0 0 1 1C.0 1 0 1D.1 0 1 0解析:解析:subl 函数对全局数组 air元素赋初值,
32、sub1 函数参数传递均为默认的引用传递。因此执行完后 n值被修改。Command1_Click()事件中的 For循环对 arr数组元素进行倒序输出。选 A。14.下列说法中错误的是(分数:2.00)A.在过程中,可以用 Static定义变量,但当该过程调用结束后,其值继续保留B.当用 Static关键字定义一个过程时,该过程中的所有变量都是“Static”存储方式的C.Sub Main过程一定是程序运行时首先被执行的过程,是整个程序的入口点 D.同一个工程中只能有一个 Sub Main过程解析:解析:默认情况下,整个应用程序是从设计时的第一个窗口开始执行的,如果先执行 Sub Main过程
33、,必须通过手动方式设置,故正确答案为 C选项。15.语句:Print Asc(Chr$(Mid$(“98765432“,4,2)的输出是(分数:2.00)A.65 B.AC.8765D.W解析:解析:Mid$(字符串,p,n)从第 P个字符开始,向后截取 n个字符。 Chr$()是求 ASCII字符的函数,格式是 Chr$(表达式),其中”表达式”应该是合法的 ASCII码值,Chr$()函数把“表达式”的值转换为相应的 ASCII字符。 Asc(字符串表达式),求字符串表达式的第一个字符的 ASCII编码,函数返回值类型为 Integer。16.以下表达式与 Int(35)的值相同的是(分数
34、:2.00)A.CInt(35)B.Val(35)C.Fix(35) D.Abs(35)解析:解析:Fix(x)与 Int(x)同为取整函数,但有所不同。当 x为正时,两个取整函数都是删除 x小数部分,返回其整数部分的值,不进行四舍五入;当 x为负时,Int(x)返回小于或等于 x的最大整数,Fix(x)返回大于或等于 x的最小整数。即 Fix(x)函数指的是直接取 x的整数部分,而 Int(x)函数则是不大于 x的整数。x 可以是实数型或货币型数据。17.语句:Print Int(Rnd*5+20)的输出不可能是(分数:2.00)A.20B.22C.24D.25 解析:解析:本题考查 Rnd
35、随机函数和 Int取整函数,Rnd 随机函数的范围为0,1),Int 函数的作用是返回不大于自变量的最大整数,当 Rnd*5后变为0,5),再加上 20变为20,25),经取整后变为20,24,所以本题的正确答案是选项 D。18.窗体上有一个名称为 Command1的命令按钮,单击该按钮时所实现的功能是产生 10个随机整数,然后从键盘输入一个整数,查找该数在数组中的位置。若找到,输出该数的位置;若没有找到,给出相应的提示。该命令按钮的单击事件过程如下:Private Sub Command1_Click()Dim a(10)As IntegerDim x As IntegerFor i=1 T
36、o 108(i)=Int(Rnd*100)Nextx=InputBox(“输入 100以内的整数:“)p=0For i=1 To 10If a(i)=x Thenp=iExit ForEnd IfNextIf p=0 ThenPrint“没有找到与输入数据相同的数!“ElsePrint Str(x)+“名擞组中的位置是“+Str(p)End IfEnd Sub 对于上述事件过程,以下叙述中正确的是(分数:2.00)A.本程序实际产生的随机数是 0-99 B.若产生的随机数中有相同数,则 p是其中最后一个数的位置C.程序有错,p 的初值设置不对D.程序有错,InputBox 函数产生的数据与 x
37、的类型不匹配解析:解析:Rnd 生成的随机数为 0-1的小数,乘以 100后取整后范围为 0-99,选 A。19.窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。要求编写一个程序,统计文本框中 0-9各数字字符的个数。某人编写如下程序:Prirate Sub Command1_Click()Dim count(10)As Integer第 1个 For循环 For i=0 To 9count(i)=0Nexts=Trim(Text1Text)strLen=Len(s)第 2个 For循环 For vi=1 To strLenc=Mid(s,i,1)If c=“0
38、“And c=“9“Thnx=Val(C)count(i)=count(i)+1End IfNext第 3个 For循环 For i=0 To 9Print Str(i),count(i)NextEnd Sub 运行程序后,发现不能实现题目的要求,程序应该进行的修改是(分数:2.00)A.将第 2个 For循环的初值改为 0B.将第 2个 For语句改为 For i=0 To 9C.去掉 x=Val(C)语句D.将 count(i)=count(i)+1改为 count(x)=count(x)+1 解析:解析:根据题意可知,第 2个 For循环统计字符个数。i 是循环变量,所以选 D。20.有
39、下面程序代码:Private Sub Command1_Click()Dim a As Stringa=“CONPUTER“n=search(a,“T“)Print IIf(n=0,“未找到“,n)End SubPrivate Function search(str As String,ch As String)As IntegerFor k=1 To ten(str)c=Mid(str,k,1)If c=ch Thensearch=kExit FunotionEnd IfNext ksearch=0End Function程序运行后,单击命令按钮 Command1,输出结果是(分数:2.00
40、)A.0B.8C.6 D.未找到解析:解析:Mid 函数从字符串中获取指定位置的字符值。Search 函数中找到相同的字符时退出循环,并返回该字符在字符串中的位置。Command1_Click 事件中打印查找的结果。选 C。21.编写如下程序:Private Sub Command1_Click()Dim x As String,y As Stringx=Right(“abcd“,2)Y=Mid(“dcba“,2,3)If xy ThenPrint x+yElsePrint y+xEnd IfEnd Sub 程序运行后,单击命令按钮Command1,输出结果为(分数:2.00)A.cdcba
41、B.cbacdC.ebacdD.cbcd解析:解析:Right(“abcd“,2)从字串的右边截取 2个字符“cd”,Mid(“dcba“,2,3)从第二个字符开始截取 3个字符“cba”然后判断 x和 y的大小。选 A。22.设有如下函数:Function DelSpace(ch As String)As IntegerDim n,st$,c$st=“n=0For k=1 To Len(ch)c=Mid(ch,k,1)If c “Thenst=st&cElsen=n+1End IfNext kch=stDelSpace=nEnd Function函数的功能是(分数:2.00)A.统计并返回字
42、符串 ch中字符的个数B.删除字符串 ch中的空格符,返回删除字符的个数 C.统计并返回字符串 ch中非空格字符数D.删除字符串 ch中除空格符外的其他字符,返回删除字符的个数解析:解析:过程中对传入的字符串的字符一个个取出,判断如果不是空格则依次连接到一个字符串变量中,如果是空格则计数加 1。最后,返回不包含空格的字符串和空格的个数。因此选项 B正确。23.设有下面程序代码:Private Sub Command1_Click()Dim str As String,ch As Stringstr=“Visual Basic Programming“ch=“a“n=fun(ch,st)Prin
43、t str,nEnd SubPrivate Function fun(ch As String,str As String)As IntegerDim strbuf As String,C As String,n As IntegerFor k=1 To Len(str)C=Mid$(str,k,1)If c ch Thenstrbuf=strbuf&cElsestrbuf=strbuf&UCase(C)n=n+1End IfNext kstr=strbuffun=nEnd Function程序运行时的输出是(分数:2.00)A.Visual Basic Programming 0B.Visu
44、Al BAsic ProgrAmming 3 C.Visul Bsic Progrmming 3D.VisualBasicProgramming 2解析:解析:Mid$(A$,4,2)是为了与老版本的 VB兼容($的作用是强制将函数的返回值设为字符型)。&用来连接字符串。条件判断字符是否和输入的字符相等,相等则 n加 1。选 B。24.设 a=10,b=4,c=5,d=7,表达式 ab And Not cd+6 的值为(分数:2.00)A.TrueB.False C.1D.0解析:解析:本题中包含的三种运算符的优先级别由高到低依次为:算术运算符、比较运算符、逻辑运算符。其中,逻辑运算符的优先级
45、为:Not(非)And(与)or(或)。And 前面表达式的值为 True,And 后面表达式的值为 False,所以最后输出的也是 False。因此,答案为 B。25.下列运算符中,优先级别最低的是(分数:2.00)A.NotB.LikeC.ModD.And 解析:解析:运算符的优先顺序是:算术运算符关系运算符逻辑运算符。 算术运算符的优先顺序是:-(*与)Mod(+与-)。 关系运算符的优先顺序是:=(或)()(=)(=)()IsLike。 逻辑运算符的优先顺序是:非(Not)与(AnD)或(Or)异或(Xor)等价(Epv)蕴含(Imp)。26.窗体上有一个名称为 Label的 1标签;
46、一个名称为 Timer1的计时器,其 Enabled和 Interval属性分别为 True和 1000。编写如下程序:Dim n As IntegerPrivate Sub Timer1_Timer()ch=Chr(n+Asc(“A“)Label1Caption=chn=n+1n=n Mod 4End Sub 运行程序,将在标签中(分数:2.00)A.不停地依次显示字符“A”、“B”、“C”、“D”,直至窗体被关闭 B.依次显示字符“A”、“B”、“C”、“D”各一次C.每隔 1秒显示字符“A”一次D.每隔 1秒依次显示 26个英文字母中的一个解析:解析:Ase 函数返回字符的 ASCII,
47、Chr 函数将数值转换成相应的 ASCII码字符。计时器间隔Interval属性设置为 1000,则计时器事件每 1秒钟发生一次。n 的值每次调用计时器事件过程都会加1,n=n Mod 4 又会使 n值只能为 0、1、2、3,因此程序运行后每 1秒 Label1标签将依次显示“A”、“B”、“C”、“D”。27.设变量 x的值是 845,则下面语句的输出是 Print x100+(x Nod 100)10+x Mod 10(分数:2.00)A.17 B.548C.845D.485解析:解析:整除运算()的结果是商的整数部分。例如,72 表示整除,商为 35,结果取整数部分3,不进行四舍五入。如
48、果参加整除的操作数是浮点数,则先按四舍五入的原则将它们变成整数,然后再执行整除运算。例如,对于 85、2,先将 85 变成 9再进行整除,商为 35,结果为 4。 取余运算(MoD)是求两个整数相除后的余数。如果参加取余运算的操作数是浮点数,则先按四舍五入的原则将它们变成整数,然后再执行取余运算。例如,对于 85、21,先将 85 变成 9,21 变成 2,然后 9除以2与 1,因此取余结果为 1。 算术运算符的优先级:先乘除,后加减;乘方优先于乘除;函数优先于乘方;Mod次于乘除而优先于加减;括号最优先 本题中,x、100 结果为 8,(x Mod 100)、10 结果为 4,xMod 10
49、结果为 5,所以输出为 17,选项 A正确。28.设:a=2,b=8,c=6,d=3,表达式 ab And Not(cD)or dc 的值是(分数:2.00)A.1B.0C.TrueD.False 解析:解析:本题中包含的两种运算符的优先级别由高到低依次为:比较运算符、逻辑运算符。其中,逻辑运算符的优先级为:Not(非)And(与)Or(或)。And 前面表达式的值为 False,And 后面表达式的值为 False,Or 后面表达式的值也为 False,所以最后输出的也是 False。因此,答案为 D。29.假定有如下情况语句:Select Case X 能表示|X|5 的 Case子句是(分数:2.00)A.Case Not(-5 To 5)B.Case 5 To-5C.Case Is-5,Is5 D.Case Abs(X)5解析:解析:在 Select判断语句中,如