问题 填空题

在窗体上画一个命令按钮,其名称为Command1,然后编写如下程序:
Private Sub Command1_Click()
Dim a(10)As Integer
Dim x As Integer
For i=1 To 10
a(i)=i
Next i
x=1
MsgBoxa(f(x)+x)
End Sub
Function f(y As Integer)
y=y+2
f=y
End Function
程序运行后,单击命令按钮,消息框的输出结果为______。

答案

参考答案:F

解析: 本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。本题中函数f的形参y没有使用ByVal声明,则默认为传址传递。当求a(f(x)+x)值的时候,先要求出f(x)+x的值。由于x的值为1,那么调用函数f以后得到f(x)的返回值为3,同时由于函数f中改变了形参y的值,在传址传递的前提下这一改变会影响到对应的实参x,故此函数调用结束后x的值变为3,也就是最后输出的应该是a(6)的值也就是6。举一反三,如果最后输出的不是a(f(x)+x)而是 a(x+f(x)),则会先取得x的值1,然后再计算f(x)的值为3,那么最后输出的就不是a(6)的值而是a(4)的值了。

问答题

某大型建筑工程,由于技术难度大,对施工单位的施工设备和同类工程施工经验要求高,而且对工期的要求也比较紧迫。业主在对有关单位和在建工程考察的基础上,仅邀请了3家国有一级施工企业参加投标,并预先与咨询单位和该3家施工单位共同研究确定了施工方案。业主要求投标单位将技术标和商务标分别装订报送。经招标领导小组研究确定的评标规定如下:
1.技术标共30分,其中施工方案10分(因已确定施工方案,各投标单位均得10分)、施工总工期10分、工程质量10分。满足业主总工期要求(36个月)者得4分,每提前1个月加1分,不满足者不得分;业主希望该工程今后能被评为省优工程,自报工程质量合格者得4分,承诺将该工程建成省优工程者得6分(若该工程未被评为省优工程将扣罚合同价的2%,该款项在竣工结算时暂不支付给承包商),近三年内获鲁班工程奖每项加2分,获省优工程奖每项加 1分。
2.商务标共70分。报价不超过标底(35 500万元)的:5%者为有效标,超过者为废标。报价为标底的98%者得满分(70分),在此基础上,报价比标底每下降1%,扣1分,每上升 1%,扣2分(计分按四舍五入取整)。
各投标单位的有关情况列于表4-1。
表4-1

投标单位报价(万元)总工期(月)自报工程质量鲁班工程奖省优工程奖
A3564233优良11
B3436431优良02
C3386732合格01
问题: (1)该工程采用邀请招标方式且仅邀请3家施工单位投标,是否违反有关规定为什么
(2)请按综合得分最高者中标的原则确定中标单位。
(3)若改变该工程评标的有关规定,将技术标增加到40分,其中施工方案20分(各投标单位均得20分),商务标减少为60分,是否会影响评标结果为什么若影响,应由哪家施工单位中标

问答题 论述题