柠檬试题库
search
首页 计算机 公务员 驾照 关于

假定有以下两个过程: Sub s1(ByVal x As Integer,ByVal y As Integer)   Dim t As Integer   t=x   x=y   y=t End Sub Sub S2(x As Integer,y As Integer)   Dim t As Integer   t=x:x=y:y=t End Sub 下列说法正确的是(  )。


  • A.用过程S1可以实现交换两个变量的值的操作,S2不能实现
  • B.用过程S2可以实现交换两个变量的值的操作,S1不能实现
  • C.用过程S1和S2都可以实现交换两个变量的值的操作
  • D.用过程S1和S2都不可以实现交换两个变量的值的操作
热度🔥614
参考答案:B
解析:

【解析】VBA中定义过程时如果省略传值方式则默认为按地址传递,过程S2中省略了参数传递方式说明,因此,参数将按传址调用,而过程S1由于声明为按值传递(ByVal)所以会按传值调用参数。而在过程调用时,如果按传值调用,实参只是把值传给了形参,在过程内部对形参值进行改变不会影响实参变量,按址调用却不同,这种方式是把实参的地址传给了形参,在过程中对形参值进行改变也会影响实参的值。因此,过程S2能够交换两个变量的值,而S1不能实现。
复制题目向AI提问


扫码免费计算机二级刷题
2025年计算机等级考试题库
推荐 软件生命周期中的活动不包括(  )。 设有工作表(工作编号,最低工资,最高工资),其中工作编号、最低工资和最高工资均为整型,工作编号为主码。现要求最高工资必须大于等于最低工资,但不能超过最低工资的2倍。在SQL Server 2008环境中有下列创建该表的语句: I. CREATE TABLE 工作表( 工作编号 int primary key, 最低工资 int, 最高工资 int check(最高工资 between 最低工资and 最低工资 * 2)) II.CREATE TABLE 工作表( 工作编号 int, 最低工资 int, 最高工资 int, primary key(工作编号), check(最高工资 between 最低工资 and 最低工资 * 2)) III. CREATE TABLE 工作表( 工作编号 int primary key(工作编号), 最低工资 int, 最高工资 int, check(最高工资 between 最低工资 and 最低工资 * 2)) IV. CREATE TABLE 工作表( 工作编号 int primary key(工作编号), 最低工资 int, 最高工资 int check(最高工资 between 最低工资and 最低工资 * 2)) 上述语句中正确的是( ) 有关系模式:系(系号,系名,系办公电话),教师(教师号,教师名,职称,聘任日期,工资,所在系号)。现要定义下列约束: Ⅰ.系号是系关系的主码,教师号是教师关系的主码 Ⅱ.职称列的取值只能为"教授","副教授","讲师","助理"和"其他" Ⅲ.教授的默认工资为10000元,副教授的默认工资为8000元,讲师的默认工资为5000元 Ⅳ.每个教师的所在系号不能为空,且其值必须在系关系中存在 若在数据库中实现以上约束,需要使用触发器才能实现的是() 在可变分区存储管理方案中,在对一个分区进行回收时,若该分区的起始地址加长度等于空闲区表中某个登记项所表示空闲区的起始地址,则表示 下列排序方法中,最坏情况下时间复杂度(即比较次数)低于O(n2)的是( )。