计算机二级

下列程序段执行以后,内存变量A和B的值是( )。 CLEAR A:5 B=20 SET UDFPARMS TO REFERENCE DO SQ WITH(A),B&&参数A是值传送,B是引用传送 ?A,B PROCEDURE SQ PARAMETERS X1,Y1 X1:X1*X1 Y1=2*X1 ENDPROCA. 5 50B. 25 50C. 25 10D. 5 20

题目

下列程序段执行以后,内存变量A和B的值是( )。 CLEAR A:5 B=20 SET UDFPARMS TO REFERENCE DO SQ WITH(A),B&&参数A是值传送,B是引用传送 ?A,B PROCEDURE SQ PARAMETERS X1,Y1 X1:X1*X1 Y1=2*X1 ENDPROC

A. 5 50

B. 25 50

C. 25 10

D. 5 20

参考答案和解析
正确答案:A
过程定义时,如果形式参数被说明为传值,则过程调用只是将相应位置实参的值传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的值。由于这个过程中,数据的传递只是单向的,故称为引用传送。反之,如果形式参数被说明为传址,则过程调用是将相应位置实参的地址传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化又会反向影响实参的值。在这个过程中,数据的传递具有双向性,故称为值传送。
此题中参数A为值传送,即A最后的值也为5;参数B为引用传送,根据X1=X1*X1,Y1=2*X1得Y1值为50,即B的最终值。故本题答案为A。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

执行下列程序段以后,内存变量a的内容是

A.1
B.3
C.5
D.7

答案:C
解析:
成需求单价大于10元的股票数,从sk.dbf中可知,满足条件的有5项。

第2题:

( 26 )下列程序段执行以后,内存变量 X 和 Y 的值是

CLEAR

STORE 3 TO X

STORE 5 TO Y

PLUS((X),Y)

? X,Y

PROCEDURE PLUS

PARAMETERS A1,A2

A1=A1+A2

A2=A1+A2

ENDPROC

A) 8 13

B) 3 13

C) 3 5

D)8 5


正确答案:C

第3题:

执行下列程序段以后,内存变量a的内容是 CLOSE DATABASE a=0 USE shock GO TOP DO WHILE .NOT.EOF() IF单价>10 a=a+1 ENDIF SKIP ENDDO

A.1

B.3

C.5

D.7


正确答案:C
解析:该程序的功能是统计数据表db stock中“单价”字段大于10的记录个数,并且将这个数值存放在变量a中。该程序的一个难点在于程序的第7行:a=a+1,这条语句相当于将变量a自增,实现计数器的功能,明白了这一点,就能够看出该程序是从数据表db stock的第一条记录开始逐条记录进行判断,如果当前记录的“单价”大于10,就使计数器加1。然后将记录指针移向下一条记录。通过查看数据表中的记录,我们发现,第2、3、4、6、8条记录是满足条件的,因此变量a的值为5,答案为选项C。

第4题:

下列程序段执行以后,内存变量X和Y的值是( )。

CLEAR

STORE 3 TO X

STORE 5 To Y

PLUS((X),Y)

?X,Y

PROCEDURE PLUS

PARAMETERS Al,A2

A1=Al+A2

A2=Al+A2

ENDPROC

A.8 13

B.3 13

C.3 5

D.8 5


正确答案:C
C。【解析】两个参数都是按值传递的,形参值的改变不会影响实参的值。

第5题:

下列程序段执行以后,内存变量A和B的值是( )。 CLEAR A=10 B=20 SET UDFPARMS TO REFERENCE DO SQ WITH(A),B ?A,B PROCEDURE SQ PARAMETERS Xl,YI X1=X1*X1 Y1=2*X1 ENDPROC ( )。

A. 10 200

B. 100 200

C. 100 20

D. 10 20


正确答案:A
Visual FoxPro的参数传递规则为:如果实际参数是常数或表达式则传值,如果实际参数是变量则传址,即传递的不是实参变量的值而是实参变量的地址,这样,过程中对形参变量值的改变也将使实参变量值改变。如果实参是内存变量而又希望进行值传递,可以用圆括号将该内存变量括起来,强制该变量以值方式传递数据。题目中参数A按值传递,参数B按引用传递。

第6题:

执行下列程序段以后,内存变量a的内容是______。 CLOSEDATABASE A=0 use STOCK GOTOP DOWHILE.NOT.EOF() IP单价>10 a=a+1 ENDIF SKIP ENDDO

A.1

B.3

C.5

D.7


正确答案:C
解析:题面中的程序要使用DO-WHILE语句遍历数据表,如果该记录的单价>10,则a加1,也就是求库中有多少条记录的单价值大于10,所以本题答案是C。

第7题:

下列程序段执行以后,内存变量 A 和 B 的值是

CLEAR

A=10

B=20

SET UDFPARMS TO REFERENCE

DO SQ WITH (A),B && 参数是值传送, B 是引用传送

? A , B

PROCEDURE SQ

PARAMETERS X1,Y1

X1=X1*X1

Y1=2*X1

ENDPROC

A)10 200

B)100 200

C)100 20

D)10 20


正确答案:A

第8题:

下列程序段执行以后,内存变量X和Y的值是( )。 CLEAR STORE 3 TO X STORE 5 TO Y PLUS((X),Y) ?X,Y PROCEDURE PLUS PARAMETERS A1,A2 A1=A1+A2 A2=A1+A2 ENDPROC

A.8 13

B.3 13

C.3 5

D.8 5


正确答案:C
解析:两个参数都是按值传递的,所以形参变量值的改变不会影响实参变量的值。

第9题:

下列程序段执行以后,内存变量A和B的值是 ______。 CLEAR A=10 B=20 SET UDFPARMS TO REFERENCE DO SQ WITH(A) ,B &&参数A是值传送,B是引用传送 ?A,B PROCEDURE SQ PARAMETERS X1,Y1 X1=X1*X1 Y1=2*X1 ENDPROC

A.10 200

B.100 200

C.100 20

D.10 20


正确答案:A
解析:过程定义时,如果形式参数被说明为传值,则过程调用只是相应位置实参的值“单向”传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的值。由于这个过程,数据的传递只是单向性,故称为“传值调用”的“单向”作用形式。反之,如果形式参数被说明为传址,则过程调用是将相应位置实参的地址传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化又会反向影响实参的值。在这个过程中,数据的传递具有双向性,故称为“传址调用”的“双向”作用形式。此题中参数A为值传送,即A值为10;参数B为引用传送,根据X1=X1*X1;Y1=2*X1得Y1值为200即B的值。