1《VisualBasic6.0程序设计》寒假作业一、选择题1.要想在过程调用后返回两个结果,下面过程定义语句中语法正确的是_______。A.Subswap(ByValm,ByValn)B.Subswap(m,ByValn)C.Subswap(m,n)D.Subswap(ByValm,n)2.在过程调用中,参数的传递可以分为按值传递和_______两种方式。A.按参数传递B.按数值传递C.按地址传递D.按位置传递3.Sub过程与Function过程最根本的区别是_______。A.Sub过程可以直接使用过程名调用,而Function过程不可以B.Function过程可以有参数,而Sub过程不可以C.两种过程参数传递方式不同D.Sub过程的过程名不能返回值,而Function过程能通过过程名返回值4.在参数传递过程中,使用关键字_______来修饰参数,可以使之按值传递。A.ByValB.ByRefC.ValueD.reference5.可以执行“工具”菜单中的_______命令来建立通用过程。A.添加过程B.通用过程C.添加模块D.添加窗体6.假定已定义一个过程PublicSubCir(aAsSingle,bAsSingle),则正确的调用语句是_______。A,2A.Cir3,8B.CallCirx,yC.CallCir2*x,yD.CallCir(3,8,y)7.在窗体上添加一个名称为Command1的命令按钮,再添加两个名称分别为Label1、Label2的标签,然后编写如下程序代码:PrivatexAsIntegerPrivateSubCommand1_Click()a=6:b=4Callsub1(a,b)Label1.Caption=aLabel2.Caption=bEndSubPrivateSubsub1(ByValxAsInteger,ByValyAsInteger)a=x*xb=y*yEndSub程序运行后单击命令按钮,则两个标签中显示的内容分别是_______。A.36和4B.6和4C.36和8D.6和88.设有如下通用过程:PublicFunctionfun(xAsInteger)DimyAsIntegerx=30:y=42fun=x*yEndFunction在窗体上添加一个名称为Command1的命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()StaticxAsIntegerx=20:y=10y=fun(x)Printx;yEndSub程序运行后,如果单击命令按钮,则在窗体上显示的内容是_______。A.2010B.3010C.204D.301209.以下叙述中,不正确的是_______。A.过程中的形式参数是局部变量。B.不同的过程中可以使用相同名字的局部变量。C.在一个过程内定义的变量只在本过程范围内有效。D.在一个过程内的局部变量与全局变量同名时,起作用的是全局变量。10.以下关于过程参数的叙述中,错误的是_______。A.按值传递参数,形参和实参的类型可以不同,只要相容即可。B.若形参是按地址传递的参数,形参和实参也能以按值传递方式进行形实结合。C.形参的数据类型如果是String,它可以是定长的,但在调用时对应的实参只能是定长的。D.在过程被调用之前,形参未被分配内存,只是说明形参的类型和在过程中的作用。11.假设有如下过程:PublicSubsfun(xAsSingle,yAsSingle)t=xx=t/yy=tModyEndSub在窗体中添加一个命令按钮(名为Command1),编写如下事件过程:PrivateSubCommand1_Click()DimaAsSingleDimbAsSinglea=5:b=4Callsfun(a,b)MsgBoxa&Chr(10)+Chr(10)&bEndSub打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为_______。A.1和1B.1.25和1C.1.25和4D.5和412.使用Function语句定义一个函数过程,其返回值的类型为_______。A.只能是符号常量B.是除数组之外的简单数据类型C.可在调用时由运行过程决定。3D.由函数定义时As子句声明13.下面程序的输出结果是_______:PrivateSubproc(chAsString)s=Fork=Len(ch)To1Step-1s=s&Mid(ch,k,1)Nextkch=sEndSubPrivateSubCommand1_Click()ch$=ABCDEFprocchPrintchEndSubA.ABCDEFB.AC.FEDCBAD.F14.在窗体上绘制一个名为Command1的命令按钮和两个名为Label1、Label2的标签,然后编写如下程序:______PrivatexAsIntegerPrivateSubproc(aAsInteger,ByValbAsInteger)x=a*ay=b+bEndSubPrivateSubCommand1_Click()x=5:y=3Callproc(x,y)Label1.Caption=xLabel2.Caption=yEndSubA.25和3B.5和3C.25和6D.5和615.以下是一个能返回数组a中最大数的函数过程代码:Functionmaxval(a()AsInteger)AsIntegerDimmax%max=1Fori=2To10Ifa(i)a(max)Thenmax=kNextimaxval=maxEndFunction程序运行时,发现函数过程的返回值是错的需要修改,下面的修改方案中正确的是______。A.语句“max=1”应改为“max=a(1)”B.语句“Fori=2To10”应改为“Fori=1To10”C.if语句“max=k”应改为“max=a(k)”4D.语句“maxval=max”应改为“maxval=a(max)”二、判断题1.Sub过程中不能嵌套定义Sub过程。()3.函数过程形参的类型与函数返回值的类型没有关系。()4.在函数过程中,过程的返回值可以有多个。()5.用数组作为过程的参数时,既能以传值方式传递,也能以传地址方式传递。()6.形式参数是数组时,不能进行维数说明,只能以一对空括号表示,且括号不能省略。()7.形式参数只在所在过程中有效,因此属于局部变量。()8.在不同的模块中可以声明定义相同名字的模块级变量,它们代表不同的对象,而且作用域范围不同,因此互不干扰。()9.过程名前加Static,表示该过程内的局部变量都是静态变量。()12.Sub子过程的过程名不能和同一级别的变量重名。()14.函数只能出现在表达式中,其功能是求得函数的返回值。()16.若形参是按地址传递的参数,形参和实参不能以按值传递方式进行形实结合。()17.当实参是常量、表达式形式,则不论其对应形参前定义成什么方式,系统都强制按值传递参数。()18.在标准模块中定义的全局变量,在本应用程序的任何一个过程中都可直接用它的变量名来访问。()三、填空题1.窗体事件过程名由“________”、下划线和事件名组成。2.按传地址方式传递参数时,要求实参必须是______,此时实参与形参变量共有同一个存储单元。3.运行以下程序,输出的结果为_______________。PrivateFunctionjc(xAsInteger)AsLongDimiAsIntegerjc=1Fori=1Toxjc=jc*iNextiEndFunctionPrivateSubForm_Click()DimheasLonghe=jc(5)+jc(3)PrintheEndSub4.以下是一窗体的单击事件代码:PrivateSubForm_Click()Staticcount%5count=count+1Print单击窗体;count;次EndSub第3次单击窗体后,count的值为_______。5.运行以下程序,输出的结果为__________。PrivateFunctionfact(nAsInteger)AsIntegerfact=1DoWhilen0fact=fact*nn=n-1LoopEndFunctionPrivateSubForm_Click()DimsumAsInteger,iAsIntegerFori=4To1Step-1sum=sum+fact(i)NextPrintSum=;sumEndSub6.下面程序运行后,单击命令按钮,窗体上输出的结果是:23和_____。DimxAsInteger,yAsIntegerPrivateFunctionf(xAsInteger)DimyAsIntegerx=x+2f=x+yEndFunctionPrivateSubp(ByValzAsInteger)x=y+zEndSubPrivateSubCommand1_Click()x=1:y=1Callp(x)z=f(y)Printx;y;zEndSub7.在窗体中添加一个命令按钮(名为Command1)和一个文本框(名为Text1),编写事件代码如下:PrivateSubp1(aAsInteger,bAsInteger,cAsInteger)c=a+bEndSubPrivateSubCommand1_Click()DimxAsInteger,yAsInteger,zAsIntegerx=5:y=7:z=0Text1.Text=Callp1(x,y,z)6Text1.Text=zEndSub运行程序,单击命令按钮,文本框中显示的内容是____。8.在窗体上添加一个文本框(名为Text1)和一个命令按钮(名为Command1),编写如下的事件过程:PrivateSubCommand1_Click()Dimarr(5)AsIntegerFori=1To5arr(i)=iNextm=20Callfun1(arr,m)Text1.Text=mEndSubPublicSubfun1(a()AsInteger,ByValxAsInteger)Fori=1ToUBound(a)x=x+a(i)NextEndSub运行程序,单击命令按钮,文本框中显示的内容是______。9.下面的程序执行时,可以从键盘输入一个正整数,然后把该数的每位数字按逆序输出,例如:输入5678,则输出8765,输入1000,则输出0001,请填空。PrivateSubCommand1_Click()DimxAsIntegerx=InputBox(请输入一个正整数)Whilex=_________PrintxMod10;x=x\10WendPrintxEndSub10.设有以下函数过程:Functionfun(mAsInteger)AsIntegerDimkAsInteger,sumAsIntegersum=0Fork=mTo1Step-2sum=sum+kNextkfun=sumEndFunction若在程序中用语句s=fun(10)调用此函数,则s的值为___________。