【题目描述】
假定在窗体中的通用声明段已经定义有如下的子过程:
打开窗体运行后,单击命令按钮,消息框输出的值分别为( )。
A)20和10
B)10和20
C)10和10
D)20和20
【我提交的答案】: D【参考答案与解析】:
正确答案:A答案分析:
本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。本题中形参完成了交换,由于默认为传址传递,交换后的值也会影响到实参a和b,即a和b也完成了交换。
Y和X事交换了么 Y=X的时候X已经=Y了 所以结果不是20.20?
先看sub到endsub的内容:x、y传入子过程f中,然后把y的值赋给x,即x=y,然后y=x(由于此时x=y,即y=x=y,y的值不变)再看调用f(a,b),此时a相当于x,b相当于y,执行后,a=b=20,b=b=20,然后把(a&b)即(20&20)送到消息框,其中20&20=20,所以输出值为20.
¥29.8
¥9.9
¥59.8
订单号: 支付后,系统自动为您完成注册 遇到问题请联系 在线客服
恭喜您 ! 购买会员成功
账 号
密 码
绑定手机 保存账号
温馨提示:请截图保存您的账户信息,以方便日后登录使用。