第九章过程习题
发布时间:2012-01-25 13:39:26
发布时间:2012-01-25 13:39:26
1、 设有以下函数过程
Private Function fun(a() as integer,b as string) as integer
…
End Function
若已有变量声明:
Dim x(5) as integer,n as integer,ch as string
则下面正确的过程调用语句是()
A) x(0)=Funtion(x,”ch”) B)n=fun()
C)Call Fun x,”ch” D)n=Fun(x(5),ch)
2、已知有下面的过程()
Private sub pro(a as integer,b as string,optional x as boolean)
….
End sub
正确调用此过程的语句是()
A)Call pro(5) B)Call pro 5,”abc”,False
C)pro(12,”abc”,True) D)pro 5,”abc”
3、下列可以作为过程名的是()
A) Sub B)_sub C) 3Sub D)Sub1
4、某人编写了如下的程序
Private sub Command1_click()
Dim a as Integer ,b as Integer
a=Inputbox(“请输入整数”)
b=Intputbox(“请输入整数”)
Pro a
Pro b
Call pro(a+b)
End sub
Private sub pro(n as Integer)
While (n>0)
Print n Mod 10
n=n\10
Wend
End sub
此程序功能是:输入2个正整数,反序输出这2个数的每一位数字,再反序输出这2个数之和的每一位数字。例如:若输入123和234,则应该输出:
321
432
753
但调试时发现只输出了前2行(即2个数的反序),而未输出第3行(即两个数之和的反序),程序需要修改,下面的修改方案中正确的是
A)把过程pro 的形式参数n as Integer 改为 byval n as Integer
B)把 Call pro(a+b) 改为 pro a+b
C)把 n=n\10 改为 n=n/10
D)在 pro b 语句之后增加语句c%=a+b ,再把 Call pro(a+b) 改为 pro c
5、在窗体上画一个名称为Command1的的命令按钮和一个名称为Text1的文本框,然后编写如下程序:
Private Sub Command1_click()
Dim x as integer,y as integer,z as integer
x=5: y=7:z=0
Text1.text= ""
Call p1(x,y,z)
Text1.text=str(z)
End Sub
Sub p1(byval a as Integer,byval b as Integer,c as Integer)
C=a+b
End Sub
程序运行后,单击命令按钮,则在文本框中显示的内容是( )
A)0 B)12 C)str(z) D)没有显示
6窗体上有一个名为Command1的命令按钮,并有如下程序:
Private Sub Command1_Click()
Dim a as integer,b as integer
a=8
b=12
print Fun(a,b);a;b
End Sub
Private Function fun(Byval a as integer, b as integer) as integer
a=a mod 5
b=b\5
Fun=a
End Function
程序运行时,单击命令按钮,则输出结果是()
A)3 3 2 B)3 8 2 C)8 8 2 D)3 8 12
7、假定有以下函数过程:
Public Function Fun(s As String) As string
Dim s1 As string
For i=1 to len(s)
s1=Lcase(mid(s,i,1))+s1
Next i
Fun=s1
End function
在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim str1 As String,str2 as string
str1=inputbox(“请输入一个字符串”)
str2=Fun(str1)
Print str2
END SUB
程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”,则单击“确定”按钮后在窗体上输出结果为( )
A)BCDEFG B)Abcdefg
C)GFEDCB D)gfedcba
8、在窗体上画一个命令按钮(名称为Command1),并编写如下代码:
Functin Fun1(Byval a As Integer ,b As Integer) As Integer
Dim t As Integer
t=a-b
b=t+a
Fun1=t+b
End Function
Private Sub Command1_Click()
Dim x As Integer
X=10
Print Fun1(Fun1(x,(Fun1(x,x-1))),x-1)
End Sub
程序运行后,单击命令按钮,输出结果是
A)10 B)0 C)11 D)21
9、为计a^n 的值,某人编写了函数power 如下:
Public Function power(a as interger,n as integer) As long
Dim p As Long
p=a
For k= 1 to n
p=p*a
Next k
power=p
End function
在调试时发现错误,例如Print power(5,4)的输出应该是625,但实际输出是3125,程序需要修改,下面的修改方案中有3个是正确的,错误的一个是( )
A)把 for k=1 to n 改为 for k=2 to n
B)把 p=p*a 改为 p=p^n
C) 把 for k=1 to n 改为 for k=1 to n-1
D)把 p=a 改为 p=1
10、以下关于过程及过程参数的描述中,错误的是( )
A)调用过程时可以用控件名称作为实际参数
B)用数组作为过程的参数时,使用的是”传地址”方式
C)只有函数过程能够将过程中处理的信息传回到调用的程序中
D)窗体(Form)可以作为过程的参数
11、在窗体上画一个名为command1的命令按钮,然后编写如下程序:
Private Sub Command1_Click()
Dim i As integer
Dim n as integer
Sum =0
n=inputbox(“enter a number”)
For i=1 to n
Sum =【12】
Next i
Print Sum
End sub
Function fun(t as integer ) as long
p=1
For i=1 to t
p=p*i
Next i
【13】
End function
以上程序的功能是,计算1!+2!+3!+….+n!,其中n 从键盘输入,请填空。
12、窗体上命令按钮Command1的事件过程如下:
Private Sub Command1_Click()
Dim total As Integer
total = s(1) + s(2)
Print total
End Sub
Private Function s(m As Integer) As Integer
Static x As Integer
For i = 1 To m
x = x + i
Next i
s = x
End Function
运行程序,第3次单击命令按钮command1时,输出结果为:( )
(13)下列关于函数过程的叙述中,正确的是( )。
A)如果不指明函数过程参数的类型,则该参数没有数据类型
B)函数过程的返回值可以有多个
C)当数组作为函数过程的参数时,既能以传值方式传递,也能以引用方式传递
D)函数过程形参的类型与函数返回值的类型没有关系
14)下列关于过程的叙述中,错误的是( )。
A)事件过程是由某个事件触发而执行的过程
B)函数过程的返回值可以有多个
C)可以在事件过程中调用通用过程
D)不能在事件过程中定义函数过程
参考答案:
1---5 ADDAB 6----10 BDBDC 11) Sum+Fun(i) Fun=p 12) 21 13.D 14.B