[vb默认的参数传递方式是]VB参数传递方式判别与解题应用

学习交流 2023-06-16 网络整理 可可

【shitiku.jxxyjl.com--学习交流】

vb过程中使用的参数分为实参和形参,简单的讲,在过程定义中给定的参数是形参,而在过程调用语句中给定的参数是实参。当调用一个有参数的过程时,形参和实参逐一匹配传递,根据传递方式不同,可分为按值和按地址两种。对参数传递方式的正确判别是过程学习中的一个难点,也是等级考试中的一个考点。

一、 按值与按地址方式的内涵

按值传递参数,实质上是将实参的值复制一份给形参,因此形参获得的是实参的副本,当过程执行中对形参进行改变,并不会影响实参本身;按地址传递参数,实质上是将实参变量的地址传递给形参,因此形参与实参将指向同一内存单元,当过程执行中形参发生改变时,对应实参也将跟着改变。

二、 参数传递方式判别方法


   判断参数传递方式,不能单纯的看过程定义中形参前的修饰限定词有无byval。参数传递到底采用何种方式,不仅取决于过程定义,还取决于过程调用,即与对应实参的具体形式也有很大关系。因此,应该从以下三个方面综合考虑:

1. 形参是否为数组或者控件

2. 形参前是否有byval修饰

3. 对应实参是否为表达式或者值

  具体判别方法,请见如下判别流程图。

  三、不同传递方式对参数类型的要求


  若参数按地址传递,则vb要求实参的数据类型与形参的数据类型完全一致;若参数按值传递,则实参数据类型不要求与形参完全一致,但是必须能够由vb默认转化。


四、解题应用


  (一) 以江苏省计算机等级考试2001年春季的一道考题为例:


  在应用程序中用“private function fun(x as integer, y as single)”定义了函数fun. 调用函数fun的过程中的变量i,j均定义为 integer型,能正确引用函数fun的是____

①fun(i,j) ②call fun(i,3.65)

③fun(3.14,234) ④fun(“245”, “231.5”)

a.①③ b.②③④ c.①②③ d.①②③④

分析:


  1. 根据判别流程图,对每个引用做如下判断:


  对于①fun(i,j),实参i与形参x匹配,由于形参x不是数组并且无byval修饰,而实参i为变量,不是值或表达式,因此该参数将按照地址传递;同理,可以推断实参j与形参y也将按照地址传递。根据vb要求,按照地址传递的实参和形参数据类型必须完全一致,而根据题意,j为integer,y为single,因此①不正确;对于②call fun(i,3.65),i与x按地址传递;而实参3.65为值,与形参y匹配时,将按值传递,因此②正确;对于③fun(3.14,234),虽然实参3.14对应的形参x为integer,实参234对应的形参y为single,但由于它们都是按照值传递,因此3.14将转化为3,而234可以直接赋给y,因此③正确;对于④fun(“245”, “231.5”),由于实参“245”和“231.5”均为字符串值,因此其与对应形参x、y将按照值传递,而数字字符串是可以转化为数值类型的,因此④正确。


  综上所述,正确答案为b。


  2. 对于该题,由于要求是“能正确引用函数fun的是”,因此,③④虽带括号,并且无call引导,但却可以通过诸如:print fun(3.14,234)加以引用。若改为:“能正确调用函数fun的语句是”,则此时③④不可选,只能选②。


  (二) 以江苏省计算机等级考试2002年春季的一道考题为例:

  调用由语句private sub convent(y as integer)定义的sub过程时,以下不是按值传递的语句____。

a.call convent((x)) b.call convent(x*1)

c.convent(x) d.convent x


  分析:


  1. 对于a、b选项,实参分别为(x)和x*1,均为表达式,因此a、b选项中的实参将按照值传递;对于d选项,实参x未用括号引导,此时不可加call,因此语句正确,同时,根据判别流程图,实参x与形参y必按地址传递。分析至此,对于该题为单选题,已经可以断定答案是d。


  2. 现在考虑c选项语句convent(x)带括号,但却无call引导,因此直觉上似乎不能正确执行。但若我们在vb代码编辑器中输入该句,回车后,该语句自动调整为:convent (x),注意此时convent与(x)之间有一个空格,因此该句中的括号是用于x,而不是用于convent,所以尽管无call引导但其却能够执行,此时实参为(x),因此参数将按值传递。所以对于call convent(x)和convent(x),虽然都能执行,并非是由于convent(x)前可以省略call,而在于它们的实参分别是x和(x),其传递参数的方式自然就不同。


  (三) 阅读程序写出运行结果:


private sub form_click()

dim x as integer, y as integer, z as integer

x = 1: y = 2: z = 3

call sub1(x, y, y)

print x,y,z

end sub

private sub sub1(x as integer, y as integer, byval z as integer)

dim i as integer

x = 3 * z: y = 2 * z: z = x y

print x, y, z

end sub

分析:

  根据判别流程图知,第一、二参数按地址传递,第三参数按值传递。因此第一、二形参与对应实参指向同一内存单元,而第三形参与对应实参值相同,但却指向不同内存单元。因此,可以作出如下参数传递与过程调用示意图。

虽然实参和形参均为x、y、z,但是请注意区分,它们具有不同的作用域。

经分析,最后答案为:

6 4 10

6 4 3

vb过程中使用的参数分为实参和形参,简单的讲,在过程定义中给定的参数是形参,而在过程调用语句中给定的参数是实参。当调用一个有参数的过程时,形参和实参逐一匹配传递,根据传递方式不同,可分为按值和按地址两种。对参数传递方式的正确判别是过程学习中的一个难点,也是等级考试中的一个考点。

一、 按值与按地址方式的内涵

按值传递参数,实质上是将实参的值复制一份给形参,因此形参获得的是实参的副本,当过程执行中对形参进行改变,并不会影响实参本身;按地址传递参数,实质上是将实参变量的地址传递给形参,因此形参与实参将指向同一内存单元,当过程执行中形参发生改变时,对应实参也将跟着改变。

二、 参数传递方式判别方法


   判断参数传递方式,不能单纯的看过程定义中形参前的修饰限定词有无byval。参数传递到底采用何种方式,不仅取决于过程定义,还取决于过程调用,即与对应实参的具体形式也有很大关系。因此,应该从以下三个方面综合考虑:

1. 形参是否为数组或者控件

2. 形参前是否有byval修饰

3. 对应实参是否为表达式或者值

  具体判别方法,请见如下判别流程图。

  三、不同传递方式对参数类型的要求


  若参数按地址传递,则vb要求实参的数据类型与形参的数据类型完全一致;若参数按值传递,则实参数据类型不要求与形参完全一致,但是必须能够由vb默认转化。


四、解题应用


  (一) 以江苏省计算机等级考试2001年春季的一道考题为例:


  在应用程序中用“private function fun(x as integer, y as single)”定义了函数fun. 调用函数fun的过程中的变量i,j均定义为 integer型,能正确引用函数fun的是____

①fun(i,j) ②call fun(i,3.65)

③fun(3.14,234) ④fun(“245”, “231.5”)

a.①③ b.②③④ c.①②③ d.①②③④

本文来源:https://shitiku.jxxyjl.com/xuexijiaoliu/27257.html

  • [vb默认的参数传递方式是]VB参数传递方式判别与解题应用

    vb过程中使用的参数分为实参和形参,简单的讲,在过程定义中给定的参数是形参,而在过程调用语句中给定的参数是实参。当调用一个有参数的过程时,形参和实参逐一匹配传递,根据传递方式不同,可分为按值和按地址两种。对参数传递方式的正确判别是过程学习中的一个难点,也是等级考试中的一个考点。一、 按值与按地址方式...

    发布于:2023-06-16

    详细阅读
  • [安徽文科生哭了]文科生顺利过等级考心得

    文科生一样能学好计算机。我本是一名政治专业的学生,经过自学,已顺利通过了等级考试二级、三级和初级程序员考试。现就我个人的学习谈点体会,希望对大家的考试能有所启发。  ★不理解的放一放由于文科生计算机基础差,第一次拿起教材时,一定会有很多不太理解的地方,在这个时候,不要急于把它弄懂,以...

    发布于:2023-06-16

    详细阅读
  • 安全教育的内容和形式及对象|对象、内容、形式,计算机等级考试三大困惑

    全国计算机等级考试自1994年由原国家教委考试中心推出以来,历经9年的实践,在推动计算机知识普及、促进计算机技术推广应用方面功不可没。然而近几年来,随着计算机应用的飞速发展,计算机等级考试并没有很好地跟上时代的变化,和社会实际需求的差距越来越大。 虽然计算机等级考试大纲...

    发布于:2023-06-16

    详细阅读
  • 全国计算机等级考试真题(上机考试)|全国计算机等级考试上机考试应试技巧(一)

    握好上机考试的应试技巧,可以使考生的实际水平在考试时得到充分发挥,从而取得较为理想的成绩。历次考试均有考生因为忽略了这一点,加之较为紧张的考场气氛影响了水平的发挥,致使考试成绩大大低于实际水平。因此每个考生在应试前,都应有充分的准备。下面是本人从历次考试实践中总结出来的几点经验,提供大家参...

    发布于:2023-06-16

    详细阅读
  • 计算机等级考试官网|计算机等级考试常见问题问答

    问:全国计算机等级考试何时报名?在哪里报名?  答:全国计算机等级考试的报名时间根据各地情况略有不同,一般上半年考试的科目从头一年的12月份到2月份,下半年考试的科目,从6月初到7月底,具体报名时间考生可打电话向省自考办咨询。一般大中型城市的高校中都设有考点,也可向本省主考办公室咨询...

    发布于:2023-06-16

    详细阅读
  • 【计算机等级考试三级含金量】计算机等级考试三级网络的经验

    一、考试简介 我只捡大家关心的说吧。考试分为两个部分:笔试和机试(即上机考试)。 笔试是4月3日上午9:00开考,时间是120分钟,60道单项选择题,每题1分;20道填空题,每题2分;满分100分,60分合格。 机试时间是4月3日下午至4月8日,分批考试(就是说你可能是在4月3日考,...

    发布于:2023-06-16

    详细阅读
  • 【广东计算机等级考试考场】计算机等级考试考场注意事项

    1 凭本准考证和身份证(军人身份证)参加考试,缺一不可。  2 笔试时,开考前20分钟凭两证进入考场,对号入座。 考试中须将两证放在课桌右上角上接受检查。上机考试时, 应交验两证。3 进入考场,只能带铅笔,橡皮,钢笔,圆珠笔等必备工具,不得携带书籍、资料、磁盘,以及寻呼机、移动电...

    发布于:2023-06-16

    详细阅读
  • 【全国计算机等级考试四级含金量】全国计算机等级考试四级:经典论述题及写作要点

    第一部分 基本概念 问题一: ⑴ 试述操作系统的概念,作用,特征  ⑵ 基本的操作系统类型有哪些?操作系统的目标是什么?有哪些主要特点? 问题二:⑴ 什么是中断?中断有哪些类型? ⑵ 什么是中断响应?什么是中断优先级?什么是中断屏敝? ⑶ 中断处理分哪几个阶段?第二部分 进程管理 问题...

    发布于:2023-06-16

    详细阅读
  • 【考研备考经验】备考经验,千万不要去相信所谓“考前密卷”

    临近考试,有很多出版社都出版了考前密卷,声称其试卷具有良好的押题效果,很多考生对其的效果的真假感到困惑,近期内我们接收到了不少关于此方面的咨询。事实上,据等级考试的有关人员调查研究发现,目前市场上各种考前密卷都是出自以前历年的考试真题和根据历年真题改编而成的题目。 等...

    发布于:2023-06-16

    详细阅读
  • 教师职称等级考试|阅卷教师谈等级考试

    等级考试笔试是由选择题和填空题两大部分组成。选择题是由阅卷系统改卷,而填空题是由阅卷教师评阅,下面我们就从分析阅卷的得分丢分情况来谈谈如何让阅卷教师在公平、公正的前提下尽可能的给予高分,让考生尽量避免不必要的损失。   我们先来看看阅卷的过程:   为了保证评阅工作前后一...

    发布于:2023-06-16

    详细阅读

Copyright @ 2011- 考试题库网 All Rights Reserved. 版权所有

免责声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

 站长统计