有如下程序:Private Sub Command1_Click()a$="A WORKER IS OVER THERE"x=Len(a $)For i=1 To x-1

题目

有如下程序: Private Sub Command1_Click( ) a$="A WORKER IS OVER THERE" x=Len(a $) For i=1 To x-1 b$=Mid $(a $,i,2) If b $="ER"Then s=s+1 Next i Pdnt s End Sub 程序运行后的输出结果是

A.1

B.2

C.3

D.4

参考答案和解析
正确答案:C
解析:Mid(a$,i,2)表示从字符串a$的第i个字符开始向后截取2个字符。由于“AWORKERISOVERTHERE'’中有三个“ER”,故s=s+1将被执行3次,即s最后的值为3。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在窗体上添加一个名称为Command1的命令按钮,然后编写如下程序:

Private Sub f(ByVa1 x As Integer)

x=x+4

End Sub

Private Sub Command1_Click()

i=3

Call f(1)

If i>4 Then i=i*2

MsgBox i

End Sub

打开窗体运行后,单击命令按钮,则消息框的输出结果为______。


正确答案:3
3 解析:本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVa1声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用:没有说明传递类型,则默认为传址传递。本题中在定义子过程f的时候用ByVa1声明了形参x,说明为传值调用,此时对x的任何更改不会影响调用它的实参i,所以执行完Call f(i)这条语句后i的值不变仍为3,当然也不满足If语句的条件,故此最后输出结果为3。

第2题:

在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Sum=0 For x=1 To 5 Call subl(x, s) Sum=Sum+s Next x Print Sum End Sub Private Sub subl(y, w) w=1 For i=1 To y w=w*i Next i End Sub 程序运行后。单击命令按钮,则窗体上显示的内容是______。

A.5

B.120

C.153

D.160


正确答案:C
解析:由于参数y、w是ByRef的参数,称为“引用”,所以在过程Subl中改变的值是带回到调用的地方的,因此Sum结果是5次Subl计算结果的和,即sum=(1+2+6+24+120)=153。本题答案为153。

第3题:

下面程序运行后,窗体中显示【 】。

Private Sub Command1_Click) ( )

aS ="*" :b$ ="$"

For k = 1 To 3

x$ =Strings (Len(a$) +k,b$ )

Print x $;

Next

Print

End Sub


正确答案:$$$$$$$$$
$$$$$$$$$ 解析:本题的难点是了解生成字符函数String$()和计算字符函数Len(),a $="*"的作用只是被用来计算字符串的长度,没有被打印出来。打印分隔符为“;”时,字符串之间没有空格。空打印Print操作是换行。

第4题:

在窗体上画一个命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

Dim Y as String

X=5

Y=X & Space(3) & X

Print X;

Print Trim(Y);Len(Trim(Y))

End Sub

该程序的执行结果是【 】。


正确答案:□5□5□□□5□5
□5□5□□□5□5

第5题:

(7)在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程:

Private Sub Command1_Click( )

a$="National Computer Rank Examination"

n=Len(a$)

s=0

For i=1 To n

b$=Mid(a$, i, 1)

If b$="n" Then

s=s+1

End If

Next i

Print s

End Sub

程序运行后,单击命令按钮,输出结果是 【7】 。


正确答案:

(7)【答案】4
【解析】此题实际上是从左自右逐个提取a$中的字符,判断是不是等于“n”,统计其中“n”的个数。

第6题:

以下能够正确计算n!的程序是( )。

A.Private Sub Command1_Click()

n=5: x=1

Do

x=x * I

I=I + 1

Loop While I < n

Print x

End Sub

B.Private Sub Command1_Click()

n=5: x=1: I=1

Do

x=x * I

I=I + 1

Loop While I < n

Print x

End Sub

C.Private Sub Command1_Click()

n=5: x=1: I=1

Do

x=x * I

I=I + 1

Loop While I <=n

Print x

End Sub

D.Private Sub Command1_Click()

n=5: x=1: I=1

Do

x=x * I

I=I + 1

Loop While I > n

Print x

End Sub


正确答案:C

第7题:

有如下程序:

Private Sub Command1_Click()

a$= "A WORKER IS HERE"

x=Len(a$)

For i=1 To x - 1

b$=Mid$(a$, i, 3)

If b$= "WOR" Then S=S + 1

Next

Print S

End Sub

单击命令按钮,程序运行结果为( )

A.1

B.2

C.3

D.5


正确答案:A

第8题:

执行下面的程序段,x的值为【 】。

Private Sub Command1_Click()

For i=1 To 9

a=a+i

Next

x=Val(i)

MsgBox x

End Sub


正确答案:10
10 解析:在程序中For…Next语句之后并没有对i的值改变,此时i为10,故运行后结果为10。

第9题:

在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序:

Private Sub f(ByVal x As Integer)

x=x+4

End Sub

Private Sub Command1_Click()

i=3

Call f(i)

If i>4 Then i=i*2

End Sub

窗体打开运行后,单击命令按钮,则消息框的输出结果为( )。


正确答案:3
3 解析: 本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。本题中在定义子过程f的时候用ByVal声明了形参x,说明为传值调用,此时对x的任何更改不会影响调用它的实参i,所以执行完callf(i)这条语句后i的值不变仍为3,当然也不满足If语句的条件,故此最后输出结果为3。

第10题:

下列程序的执行结果为 Private Sub Command1_Click Dim FirStr As String FirSt="abcdef" Print Pat(FirStr. End Sub Private Function Pat(xStr As String.As String Dim tempStr As String, strLen As Integer tempStr="" strLen=Len(xStr. i=1 Do While i<=Len(xStr.-3 tempStr=tempStr+Mid(xStr, i, 1)+Mid(xStr, strLen -i+1, 1) i=i+1 Loop Pat=tempStr End Function

A.abcdef

B.afbecd

C.fedcba

D.defabc


正确答案:B

更多相关问题