




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual Basic (.NET)程序设计(第 2 版) 第6章过程习题及答案 、选择题 Sub过程与Function过程最根本的区别是: (A) (B) (C) (D) 前者可以使用 Call或直接使用过程名调用,后者不可以 后者可以有参数,前者不可以 两种过程参数的传递方式不同 前者无返回值,但后者有返回值 答案:D 知识点:Sub过程、Function过程 难度:1 提示:无 题解:无 2 在定义函数过程时,不可能用到的关键字是: (A) Exit (B) As (C) Sub (D) End 答案:C 知识点:Function过程 难度:1 提示:无 题解:无 3 在定义通用过程时
2、,下列关键字中不能用来修饰形参的是: (A) ByVal (B) ByRef (C) Op tio nal (D) Static 答案:D 知识点:Sub过程、Function过程 难度:1 提示:无 题解:无 返回值类型不同 参数类型不同 参数名称 参数传递方式不同 4 .在同一模块中定义了两个同名的过程,以下哪一项可以让它们实现重载: (A) (B) (C) (D) 答案:B 知识点:过程重载 难度:1 提示:无 题解:无 递归有直接递归和间接递归 递归过程可以无限次调用自己 递归过程的形参必须是按地址传递 递归过程必须有返回值 5. 以下关于递归的说明中正确的是: (A) (B) (C)
3、 (D) 答案:A 知识点:递归 难度:1 提示:无 题解:无 6. 下列定义一个Function过程的首部,语法正确的是()o (A) Fu nction MyFu nc(ByVal i As In teger) As In teger (B) F un cti on MyFun c(var i :ln teger):I nteger (C) F unction MyFun c(Dim i As In teger) As In teger (D) Fu nction In teger MyFu nc() 答案:A 知识点:Function过程 难度:1 提示:无 题解:无 7. 在Sub过程
4、MySub中,不等过程执行结束就将控制权立即返回调用者的语句为() (A) E nd Sub (B) E nd MySub (C) Exit Sub (D) Exit MySub 答案:C 知识点:Sub过程 难度:1 提示:无 题解:无 8. Function过程MyFunc返回整型值,过程中不等到执行结束就将控制权立即返回调用者的语 句为()。 (A) E nd (B) Retur n (C) Exit (D) MyFu nc 答案:B 知识点:Function过程 难度:1 提示:无 题解:无 9 .对于通用过程,下列叙述中正确的是( (A) 过程的定义不能嵌套,但过程调用可以嵌套 (B
5、) 过程的定义可以嵌套,但过程调用不能嵌套 (C) 过程的定义和调用都不能嵌套 (D) 过程的定义和调用都可以嵌套 答案:A 知识点:调用过程 难度:1 提示:无 题解:无 10. 有过程定义如下: Private Sub Fun(x As In teger, y As In teger, z As In teger) 则下列调用语句不正确的是()。 (A) Call F un( a,b,c) (B) Call Fu n(3,4,c) (C) Fun a,5 (D) Fu n(a,b,c) 答案:C 知识点:Function过程 难度:1 提示:无 题解:无 11. 在过程中定义的变量,如果希
6、望在离开该过程后,还能保存过程中局部变量的值 就应该使用(。关键字在过程中定义变量。 (A) Dim (B) Private (C) Public (D) Static 答案:D 知识点:定义变量 难度:1 提示:无 题解:无 12. 在过程内定义的变量(不在控制结构语句块中)也称为( (A) 全局变量 (B) 模块级变量 (C) 局部变量 (D) 静态变量 答案:C 知识点:定义变量 难度:1 提示:无 题解:无 关键字表示形参是按地址传递的。 13. 在过程定义中用 (A) Var (B) ByDef (C) ByVal (D) ByRef 答案:D 知识点:参数传递方式 难度:1 提示:
7、无 题解:无 7 .下面过程运行后显示的结果是 Sub Mai n() Dim x, y As In teger x = 12 : y = 34 Call f(x, y) Con sole.WriteL in e(x (3) 2010; (4) 2010 答案:(1) 2010; (2) 知识点:参数传递方式 难度: 提示: 题解: 4 下面是一个控制台程序,窗口中输出的结果第一行是 (1) ,第五行是(2)。 1 Sub Main() 2 3 5 6 7 8 9 Dim x, y As Integer Dim n, z As Integer x = 1 : y = 1 For n = 1 T
8、o 6 z = f1(x, y) Console.WriteLine(n (2) 526 知识点:参数传递方式 难度: 提示: 题解: 5.窗体上有一个按钮 Button1和两个文本框 TextBox1、TextBox2。下面是这个窗体模块的全 部代码。运行程序,第一次单击按钮时,两个文本框中的内容分别是(1) 和(2) 第二次单击按钮,两个文本框中的内容又分别是 (3)和(4)。 1 Dim y As Integer Tprivate Sub Button1_Click() Handles Button1.Click s 4 0 E 7 End Sub E 9 P rivate Functi
9、on f1(ByRef x As Integer) As Integer 10 x = x + y : y = x + y Dim x As Integer x = 2 TextBoxl.Text = f2(f1(x), y) TextBox2.Text = f1(x) 模块级变量 11 f1 = x + y 12 End Function 13 13 P rivate Function f2(ByRef x As lnteger,ByRef y As Integer) As Integer 14 f2 = 2 * x + y 15 End Function 答案:(1)10;(2)10;(3
10、)58;( 13)58 知识点:参数传递方式 难度: 提示: 题解: 6 .运行如下程序,控制台窗口中显示内容的第一行是 (1);第二行是(2)。 1 Sub Main() 田 Call Test(2) 31 Console.Read() 4 End Sub 5 6-private Sub Test(ByRef x As Integer) 0 8 可 12 x = x * 2 + 1 If x 6 Then Call Test(x) End If x = x * 2 + 1 Console.WriteLine(x) 13 End Sub 答案:(1)23;( 2)47 知识点:递归 难度: 提
11、示: 题解: 7 .下面控制台程序在窗口中显示的两行内容分别是 过程的第二个形参 y前的ByRef删除,则在窗体上显示的内容是 (1) 与 (2)。如果将sub1 (3)与 (4)。 1 Sub Main() 2 3 4 E 6 Dim x As Integer, y As Integer, z As Integer x = 1 : y = 2 : z = 3 Call sub1(x, X, z) Call sub1(x, y, y) Console.Read() 7 End Sub 8 P rivate Sub sub1(ByRef x As Integer, ByRef y As Inte
12、ger, ByRef z As Integer) x = 3 * z y = 2 * z z = x + y Console.WriteLine(x (4) 6410 答案:(1) 66 12; (2) 61010; 知识点:参数传递方式 难度: 提示: 题解: 8.假设下面控制台程序中的 使用语句时,输出的内容是_ 当使用语句时,输出的内容是 4条语句: (1) (3) 语句语句,每次只使用其中的一条语句。当 _;当使用语句时,输出的内容是(2) ;当使用语句时,输出的内容是(4 1 P ublic Sub Main() Dim x As Integer Console.WriteLine(
13、a(x) * 2) Console.WriteLine(x + a(x) * 2) Console.WriteLine(x + a(x) + a(x) Console.WriteLine(x + a(a(x) Console.Read() 2 3 4 5 6 7 语句 语句 语句 语句 TEnd Sub 9_private Function a(ByRef y As Integer) As Integer 10 I y = y + 1 11 a = y + 1 12 End Function 答案:(1) 4; (2) 4; ( 3) 5; (4) 4 知识点:参数传递方式 难度: 提示: 题
14、解: 9.下面程序段运行的输出结果是( ): For j = i To 4 x = i * j Console.Write(x (2) (n 1000) * 100; (3) Return -1 知识点:参数传递方式 难度: 提示: 题解: 3. 本程序判断一个四位数的各位数逆向排列形成的新的四位数是否是原四位的整数倍( 以上),并输出满足条件的四位数,如8712 = 2187X 4。请完善本程序。 1 I 2 3 4 5 6 8 9 T0| Sub Main() Dim t As Boolean, i, k As Integer For i = 1000 To 9999 Call f( If
15、 t Then Console.Write(i (2) m*10+i Mod 10 ; (3) True 知识点:Sub过程 难度: 提示: 题解: 五、编程题 1.编写递归函数求 1+2+3+, +n的值。 答案:见题解。 知识点:Function过程 难度:2 提示:无 题解:以下函数 Add返回1+2+3+, +n的值。 1 P rivate Function Add(n As Integer) As Integer If n = 1 Then Return 1 Exit Function End If Return n + Add(n - 1) 2 3 4 5 6 7 End Func
16、tion 2 .编写判断某年是否为闰年的函数。该函数有一个整型参数表示年份,返回值为逻辑型, 当该年份是闰年时,函数返回值为True,否则返回False。 答案:见题解。 知识点:Function过程 难度:1 提示:闰年是指能被4整除的年份,不包括去掉后面两个零之后不能被4整除的世纪年。如: 2000年是闰年,1900年不是闰年。 题解: 解法一: If (year Mod 4 = 0 And year Mod 100 0) Or year Mod 400 = 0 Then Return True Else Return False End If Tprivate Function Lea
17、py ear(year As Integer) As Boolean 2 3 4 0 E 7 End Function 解法二,更简洁的写法: 1 P rivate Function Lea py ear(year As Integer) As Boolean 2 Return year Mod 4 = 0 And year Mod 100 0 Or year Mod 400 = 0 3 End Function 3.编写程序调用例6.4中的函数过程Fib,计算Fibonacci数列中从第几项开始起数列项的值 超过10000。 答案:第21项。 知识点:调用过程 难度:1 提示:无 Fib函数
18、。 题解:以下是控制台程序的 Main过程,调用教材中的 1 Sub Main() 2 3 5 6 7 E 9 Dim n As Integer n = 1 Do If Fib(n) 10000 Then Exit Do n = n + 1 Loop Console.WriteLine(n) Console.Read() 4 .编写一个首部为C(m As Integer,n As Integer)As Integer n! (m -n J 的函数,函数的返回值为: c =cm (其中nA 0, m A n, m 0 ,设 0!=1 ) 10 End Sub 答案:见题解。 知识点:Functi
19、on过程 难度:1 提示:无 题解: 1 P rivate Function c(m As Integer, n As Integer) As Integer 2 Return f(m) / f(n) / f(m - n) 3 End Function 4private Function f(i As Integer) As Long If i = 1 Or i = 0 Then Return 1 Else Return i * f(i - 1) End If 5 6 8 9 10 End Function ,此函数返回 m+mm+mmm+nrm 5 .编写函数 S(m As lnteger,n As Integer) As Long (n个m)的值。比如 S(2,5)的返回值为 2+22+222+2222+22222的值。 答案:见题解。 知识点:Function过程 难度:1 提示:无 题解: 解法 1 P rivate Function s(m As Integer, n As Integer) As Long 2 3 4 5 6 7 Dim i A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年系统分析师考试工具使用试题及答案
- 评测师职业发展的路径规划与实施案例试题及答案
- 提高答题技巧系统集成试题及答案
- 长治市期末考试卷子及答案
- 长春市一年级试卷及答案
- 理论与实践结合的多媒体设计试题及答案
- 系统复习的中级社会工作者考试关键法则及试题及答案
- 2025年多媒体应用设计的研究现状试题及答案
- 网络规划设计师考试全面准备试题及答案
- 2025年Msoffice考试内容剖析试题及答案
- RITTAL威图空调中文说明书
- 马工程教育学项贤明第九章-教师与学生
- 精选最近九年北京高考数学(理)压轴题(含答案)
- 临床路径汇编(完整版)资料
- XX市救护车管理办法
- GB/T 13460-2008再生橡胶
- 中小学学习《民法典》主题班会图文ppt
- 简明新疆地方史赵阳
- 12.注浆法施工技术(PPT版共60)
- TCVN-2622-越南建筑防火规范(中文版)
- 拖欠工资起诉状模版
评论
0/150
提交评论