当前位置:中级软件设计师题库>程序语言基础知识题库

问题:

[单选]

函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数中以传值调用(callbyvalue)方式调用函数f时,输出为(1)();在函数t中以引用调用(callbyreference)方式调用函数时,输出为(2)。
空白(1)处应选择

A . 12
B . 16
C . 20
D . 24

若某文件系统的目录结构如图所示,假设用户要访问文件f1.java,且当前工作目录为Program,则该文件的全文件名为(1),其相对路径为(2)。空白(1)处应选择()。 f1.java。 DocumentJava-progf1.java。 D:ProgramJava-progf1.java。 ProgramJava-progf1.java。 算术表达式采用逆波兰式表示时不用括号,可以利用(1)进行求值。与逆波兰式ab-cd+*对应的中缀表达式是(2)。空白(2)处应选择() a-b+c*d。 (a-B.*c+d。 (a-B.*(c+D.。 a-b*c+d。 算术表达式采用逆波兰式表示时不用括号,可以利用(1)进行求值。与逆波兰式ab-cd+*对应的中缀表达式是(2)。空白(1)处应选择() 数组。 栈。 队列。 散列表。 如图所示为一个有限自动机(其中,A是初态、C是终态),该自动机识别的语言可用正规式()表示。 (0|1)*01。 1*0*10*1。 1*(0)*01。 1*(0|10)*1*。 若二维数组arr[1..M,1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为()。 base+((i-1)*M+j-1)*K。 base+((i-1)*N+j-1)*K。 base+((j-1)*M+i-1)*K。 base+((j-1)*N+i-1)*K。

函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数中以传值调用(callbyvalue)方式调用函数f时,输出为(1)();在函数t中以引用调用(callbyreference)方式调用函数时,输出为(2)。
空白(1)处应选择

参考答案:

  参考解析

本题主要考查函数调用时参数的传递方式。如果采用传值方式调用,则形参值的变化不会影响实参;如果采用引用方式调用,则形参值的变化会直接反映到实参。本题中如果在函数t中采用传值方式调用函数f,a的值传给形参r,在函数f中,a的值变为6,r的值为10并返回赋给变量x,由于a是全局变量,退出函数f后a的值依然为6,所以函数t的输出结果为16。如果函数t采用传值方式调用函数f,则形参r就是对实参a的引用,对r的修改就是对a的修改,在执行a=r+1时,a和r的值都变为6,执行r=r*2,a和r的值都变为12,并将r的值返回给x,因此函数t的输出结果为24。

在线 客服