第5题
A.每进行一次过程调用,用户栈从高地址向低地址增长出一个栈帧
B.从被调用过程返回调用过程之前,被调用过程会释放自己的栈帧
C.只能通过将栈指针ESP作为基址寄存器来访问用户栈中的数据
D.过程嵌套调用深度越深,栈中栈帧个数越多,严重时会发生栈溢出
第6题
①过程Q保存P的现场,并为非静态局邵变量分配空间
②过程P将实参仔放到Q能访问到的地方
③过程P将返回地址存放到特定处,并跳转创Q执行
④过程Q取出返回地址,并跳转回到过程P执行
⑤过程Q恢复P的现场,并释放局部变量所古空间
⑥执行过程Q的函数体
过程调用的正确执行步骤是()。
A.②→③→④→①→⑤→⑥
B.②→③→①→④→⑥→⑤
C.②→③→①→⑥→⑤→④
D.②→③→①→⑤→⑥→④
第7题
过程参数的传递方式有几种?简述“传地址”和“传值”的实现原理。
答:
参数的传递方式有下述几种:
“传值”- Call by Value。
“传地址”- Call by Address。
“换名”- Call by Name。
“得结果”- Value-result。
“传值”方式,这是最简单的参数传递方法。即将实参计算出它的值,然后把它传给被调过程。具体来讲是这样的:
1.形式参数当作过程的局部变量处理,即在被调过程的活动记录中开辟了形参的存储空间,这些存储位置即是我们所说的实参或形式单元。
2.调用过程计算实参的值,并将它们的右值(r-value) 放在为形式单元开辟的空间中。
3.被调用过程执行时,就像使用局部变量一样使用这些形式单元。
“传地址”方式,也称作传地址,或引用调用。调用过程传给被调过程的是指针,指向实参存储位置的指针。
1.如实参是一个名字或是具有左值的表达式,则左值本身传递过去。
2.如实参是一个表达式,比方a+b或2,而没有左值,则表达式先求值,并存入某一位置,然后该位置的地址传递过去。
3.被调过程中对形式参数的任何引用和赋值都通过传递到被调过程的指针被处理成间接访问。
5.过程参数的传递方式有几种?简述“传地址”和“传值”的实现原理。
第10题
A.C语言程序中的函数调用就是过程调用
B.从P传到Q的实参无需重新分配空间存放
C.从P跳转到Q执行应使用CALL指令
D.从Q跳回到P执行应使用RET指令
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!