数组和过程习题(有).doc_第1页
数组和过程习题(有).doc_第2页
数组和过程习题(有).doc_第3页
数组和过程习题(有).doc_第4页
数组和过程习题(有).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数 组一、思考题1. 要分配存放12个元素的整型数组,下列数组声明(下界若无,按默认规定)哪些符合要求?(1) n=12 (2) Dim a%( ) Dim a(1 To n) As Integer n=11 ReDim a(n) (3) Dim a%2,3(4) Dim a(1,1,2) As Integer(5) Dim a%(10) (6) Dim a!( ) ReDim a(1 To 12) ReDim a(3,2) As Integer (7) Dim a%(2,3) 8) Dim a(1 to 3, 1 to 4) As Integer2. 已知下面的数组声明,写出它的数组名、数组类型、维数、各维的上、下界、数组的大小、并按行的顺序列出各元素。Dim a(-1 to 2,3) As Single 3. 已声明了静态数组A(3, 4),能否在下面再用重定义动态数组A(4, 4)来重定义A数组的大小吗?二、选择题1. 以下关于数组的说法,不正确的是_。(A)静态数组在声明时大小必须固定 (B)动态数组在声明时大小可以不确定(C)默认情况下数组的下界为0 (D)运行时可改变动态数组或静态数组的大小2. 有关数组的说法,错误的是_。(A)数组是一种特殊的数据类型 (B)一个数组中可存放多种类型的数据(C)数组是一组相同类型的变量的集合 (D)数组可以被声明为变体类型 3. 如下数组声明语句,_正确。(A)Dim a3, 4 As Integer (B)Dim a(3, 4) As Integer(C)Dim a(n, n) As Integer (D)Dim a(3 4) As Integer4. 要分配存放如下方阵的数据,_数组声明语句能实现(不能浪费空间)。(A)Dim a(9) As Single (B)Dim a(3, 3) As Single(C)Dim a( 1 To 3 , 1 To 3) As Single (D)Dim a( -3 To -1 , 5 To 7) As Integer5. 如下数组声明语句,则数组a包含元素的个数有_。Dim a(3, -2 to 2,5)(A)120 (B)75 (C)60 (D)136. 以下程序输出的结果是_。Dim aa = Array(1, 2, 3, 4, 5, 6, 7)For i = Lbound (a) To Ubound (a)a(i) = a(i) * a(i)Next iPrint a(i)(A)49 (B)0 (C)不确定 (D)程序出错7下列数组声明语句中的数组a包含了_个数组元素Dim a(4,-1 To 2, 3) (A) 120 (B) 11 (C)60 ( D)80 8. 有如下程序段:Type studentnl as Integername as String*13End TypeDim stu As student该程序段定义了两个程序成分,它们分别是_ (A)数据类型和自定义类型变量 (B)自定义类型和变量(C)显示类型和变量 (D)自定义类型和自定义类型变量 9.在窗体的通用声明段自定义了数据类型student,下列 定义方式是正确的。(A) Private Type student (B)Type student No as Integer No as Integer Name as String *8 Name as String *8 End Type End student(C) Type student (D)Type studentNo Integer No as Integer Name String *8 Name as String *8 End Type End Type 10. 设数组a中有N个元素,并已按递增次序排列,下面_程序段可以使a数组的元素按递减次序排列。(A) For i = 1 To N (B) For i = 1 To N / 2a(N - i + 1) = a(i) a(i) = a(N - i + 1)Next i Next i(C)For i = 1 To N (D)For i = 1 To N / 2t = a(i) t = a(i)a(i) = a(N - i + 1) a(i) = a(N - i + 1)a(N - i + 1) = t a(N - i + 1) = tNext i Next i 三、填空题1. 在VB中,若要设定每个数组默认的下界固定为1,其声明语句是_option base 1_ 。2. 程序中自动测试数组的下界用_Lbound_函数来实现,上界用_Ubound_函数来实现。3. 当数组首次被声明时,对所有数值型数组默认初值是_0_;字符串数组默认初值是_空_。4. 当用ReDim语句要改变动态数组的大小时,数组元素的值会_丢失_;用_Preserve_关键字可保留数组元素原来的值。5. 已知建立了5个元素的Command1控件数组,用_Index_参数可识别用户单击了某控件数组元素。6. 在一个二维数组中,第一个下标指明了一个元素的_行_;第二个下标指明了元素的_列_。7. 已知如下a(1 To 5)数组和i、j、k变量有了初值: 13579246a(1)a(2)a(3)a(4)a(5)ijk请写出下列各数组元素的值或会产生什么情况:a(3)=_5_;a(i)=_3_; a(i+j)=_越界_;a(k-i)=_;a(a(i)=_; a(3+k3)=_;a(i*j)=_; a(0)=_;8. 如下程序中随机产生6位学生的分数(分数范围1100),存放在数组a中,以每2分一个*显示,如图1.5.14所示。Private Sub Command1_Click()Dim a%(1 To 6)For i = 1 To 6a(i) = _Int(Rnd*100+1)_Print string(a(i)2,_”*”);”A” & “(“ & “)” & “=” & a(i)_Next iEnd Sub图1.5.14: 随机分数运行界面9. 下面程序的功能是从键盘输入6个整数,找出最大数和最小数所在的位置,并把两者对调,然后输出调整后的6个数。Private Sub Command1_Click()Dim a(5) As Integer, max%,maxi%, min%,mini%, i%,t%For i = 0 To 5a(i) = _val(text1)_Next imin=a(0):mini=0max=a(0):maxi=0For i = 1 To 5If _a(i)max_ Then maxi=iNext it=a(maxi)_a(maxi)=a(mini)_a(mini) = tFor i = 0 To 5Print a(i);Next iEnd Sub过 程一、思考题1. 简述子过程与函数过程的共同点、不同处?2. 什么是形参?什么是实参?什么是值引用?什么是地址引用?地址引用时,对应的实参有没有限制?3. 请比较函数过程和子过程调用的区别。4. 请说明局部变量与静态变量的区别。5. 指出下面过程语句说明中的错误。(1) Sub f1( n%) As Integer 子过程f1没有类型(2) Function f1%(f1%) 函数过程名和形参同名(3) Sub f1(ByVal n%() 形参数组必须是传址(4) Sub f1( x(i) as Integer) 形参不能指定大小,6. 已知有如下求两个平方数和的fsum子过程:Public Sub fSum(sum%, ByVal m%, ByVal n%)sum = a * a + b * bEnd Sub在事件过程中有如下变量声明: Private Sub Command1_Click()Dim a%, b%, c!a = 10: b = 20则指出如下过程调用语句错误所在:(1) fsum 3, 4, 5(2) fsum c, a, b(3) fsum a + b, a, b(4) Call fsum(Sqr(c), sqr(a), Sqr(b)(5) Call fsum c,a, b7. 要使变量在某事件过程中保值,有哪几种变量声明的方法?声明变量为全局(public),通用声明段或标准模块声明的模块级变量,局部过程声明的静态变量(static).8. 为了使某变量在所有的窗体中都能使用,应在何处声明该变量?在标准模块声明的全局变量9. 在同一模块、不同过程中声明的相同变量名,两者是否表示同一个变量?有没有联系?表示不同的变量,没有任何关系二、选择题1.下面的过程定义语句中,_是合法的。(A)Function Sub1(Sub1) (B)Function Sub1(ByVal n)(C)Sub Sub1(Sub1) (D)Sub Sub1(n) As Integer 2主过程通过参数传递将一个参数传递给子过程A,并返回一个结果,下列子过程定义中正确的是_。 (A) Sub A (m+1, n+2) (B) Sub A( byval m!,byval n!) (C) Sub A (byval m!, n+2) (D) sub A (byval m!, n!) 3. 在Visual Basic中,下列关于变量的叙述正确的是_.(A) 在窗体的Form_Load事件过程中声明的变量是全局变量(B) 局部变量的作用域为窗体内的全部过程(C) 在某个子过程中声明的变量不能与其他事件过程中声明的变量同名(D) 在调用过程时,所有局部变量被系统初始化为0或空字符串4. 子过程与函数过程最根本的区别是_。(A) 前者可以使用Call或者直接使用过程名调用,后者不可以(B) 前者不可以有参数,后者可以有参数(C) 两种过程参数的传递方式不同(D) 前者无返回值,但后者有返回值5. 假定有如下的Sub过程:Sub fun(x As Single,y As Single)t=xx=tyy=t Mod yEnd Sub在窗体上画一个命令按钮和两个文本框(其Name属性分别为Txtl和Txt2),然后编写如下事件过程:Private Sub Command1_Click()Dim a As Single,b As Singlea=CInt(Txt1.Text) Cint函数表示转换成整型b=CInt(Txtl.Text)Call fun(a,b)Print a,bEnd Sub程序运行时在两个文本框中输入5, 6,单击命令按钮,输出结果为_(A)5 6 (B) 0 5 (C) 1 4 (D) 1 2 6. 若要编写一些Sub子过程,并能从多个窗体中访问这些过程,最好应将它们放在_中。(A) 标准模块 (B) 窗体 (C) 类模块 (D) 以上都不可以三、填空题1. 在过程定义时,参数有值传递和地址传递,若形参是数组,不能使用Byval 来修饰参数。2.传地址方式是当过程被调用时,形参和实参共享 存储单元 。3.有一个函数过程,其形参有两个:a为整型,b为一维整型数组,函数过程名为Myfun,函数返回值为逻辑型,请写出函数过程定义的首语句 Function Myfun (Byval a%,b%() as boolean 。4. Exit Function语句只能出现在_ Function _的过程体。5. 在过程体,用_static_方式声明的局部变量,其值可以保留至下次过程被调用。6.VB中的变量按其作用域分为全局变量、模块级变量和 局部 变量。7.窗体中的模块级变量应在 通用 段声明,它作用于该窗体 所有过程 。8. 过程自己调用自己称为_递归_。9. 如下程序,运行的结果是144_,函数过程的功能是_将十进制数转换成八进制数_。Public Function f(ByVal n%, ByVal r%)If n 0 Thenf = f(n r, r)Print n Mod r;End IfEnd FunctionPrivate Sub Command1_Click()Print f(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论