考证宝(kaozhengbao.com)

已知函数f132、f232的定义如下图所示。设调用函数f1时传递给形参x的值是1,若函数调用f2(a)采用引用调用(call by reference)的方式传递信息,则函数f1的返回值为(请作答此空

考证宝 分享 时间: 加入收藏

考试:

问题:

已知函数f132、f232的定义如下图所示。设调用函数f1时传递给形参x的值是1,若函数调用f2(a)采用引用调用(call by reference)的方式传递信息,则函数f1的返回值为(请作答此空);若函数调用f2(a)以值调用(call by value)的方式传递信息,则函数f1的返回值为( )。
A:-5
B:6
C:15
D:35

答案:

C

解析:

本题考查程序语言基础知识。函数f1被调用而运行时,其局部变量值的变化情况如下:在调用f2(a)之前,x的值为1,a的值为5。在以引用调用方式调用f2(a)时,形参x是实参a的引用,在函数f2中的x就是函数f1中a的别名(或者说此时x与a所对应的存储单元是同一个,只是角度不同而已),因此执行函数f2时,条件表达式x>1即等同于a>1,a的值是5所以该条件表达式成立,从而执行了"x=x*x",就将x所对应存储单元的内容改为了25,然后结束f2的执行并将所返回的-10赋值给f1中的x,因此在f1结束时返回的值为a+x=25-10=15。在值调用方式下调用f2(a)时,是将实参a的值5传递给f2的形参x,a和x所对应的存储单元是不同的,此后执行f2时,由于x的值是5,所以条件表达式x>1即等同于5>1,是成立的,从而执行了"x=x*x",此时是将f2中的x修改为25,与f1中的a和x都无关,在结束f2的执行并将返回值-10赋值给f1中的x后,f1结束时进行的计算为a+x=5-10=-5。

相关标签:

(初级)程序员     函数     调用     形参     下图     已知    

热门排序

推荐文章

用例是一种描述系统需求的方法,以下关于用例建模的说法中,正确的是( )。 某单位IP地址需求数如下表所示,给定地址192.168.1.0/24,按照可变 长子网掩码的设计思想,部门3的子网掩码为( ) 下图为某工程进度网络图,结点1为起点,结点11为终点,那么关键路径为(请作答此空),此工程最快( )天完成。 已知函数f( )、g( )的定义如下所示,执行表达式"x=f(5)"的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行"x=f(5)"后x的值为(请作答此空);若 以太网的数据帧如下,包含在IP数据报中的数据部分最长应该是( )字节。 有四种食品:马铃薯、松子仁、奶油、牛奶,请根据食物成分表和成年男性(轻体力劳动者)每日膳食营养素需要量进行相关计算。(计算结果保留小数点后三位)计算上述四种食品德各自的能量密度。 某市数字城市项目主要包括 A、 B、 C、 D、E等五项任务,且五项任务可同时开展。各项任务的预计建设时间以及人力投入如下表所示。以下安排中, ( ) 能较好地实现资源平衡,确保资源的有效利用。 &n 阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]函数ReverseList(LinkList headptr)的功能是将含有头结点的单链表就地逆置。处理思路是将链表中的指针 在Windows命令窗口中输入-命令后,得到如下图所示结果。图中结果表明()。 已知一个文件中出现的各个字符及其对应的频率如下表所示。若采用定长编码,则该文件中字符的码长应为 (请作答此空) 。若采用Huffman编码,则字符序列"face"的编码应为 ( ) 。
221381
领取福利

微信扫码领取福利

微信扫码分享