c++ 高级语言程序设计案例,实践辅导第七章作业答案,高级语言程序设计(C++)函数作业及答案.doc...

高级语言程序设计(C++)函数作业及答案.doc

C++函数作业

习题

填空题:

1.1被定义为形参的是在函数中起 (1)起形式 作用的变量,形参只能用 (2)变量名 表示。实参的作用是 (3)具体要处理的数据量 ,实参可以用 (4)变量名 、 (5)常量 、 (6)表达式表示。

1.2局部域包括(1)块域、(2)函数域 。使用局部变量的意义在于 (4)节省存储空间 ,防止错误扩散,使程序易于维护。

1.3静态局部变量存储在(1)全局数据区,在 (2)第一次被执行 时候建立,生命期为 (3)全局生命期 ,如果定义时未显式初始化,则其初值为 (4) 0 。

1.4局部变量存储在 (1)栈区,在 (2)函数被调用或执行到所定义的块中 时候建立,生命期为 (3)局部生命期 如果定义时未显式初始化,则其初值为 (4)随机数 。

1.5编译预处理的作用是 (1)源程序文件进行处理,生成一个中间文件,编译器对此中间文件进行编译并生成目标代码 ,预处理命令的标志是 (2)# 。在多文件系统中,程序由 (3)项目 来管理。用户自定义头文件中通常定义一些 (4) 自己项目中用到的函数 。

1.6 设有函数说明如下:

f(int x,int y){return x%y+1;}

假定a=10,b=4,c=5,则下列语句的执行结果分别是:

(1)cout<

1.7下列程序的运行结果分别为 (1) 和 (2)

(1)

#include

using namespace std;

int a,b;

void f(int j){

static int i=a;

int m,n;

m=i+j;j++;i++;n=i*j;a++;

cout<

cout<

}

int main(){

a=1;b=2;

f(b);f(a);

cout<

return 0;

}

结果是:(1)

i=2 j=3 m=3 n=6

i=3 j=3 m=4 n=9

a=3 b=2

(2)

#include

using namespace std;

float sqr(float a){ return a*a;}

float p(float x,int n){

cout<

if(n==0)return 1;

else if(i%2!=0)return x*sqr(p(x,n/2));

}

int main(){

cout<

return 0;

}

结果是:(2)

in-process:x=2 n=13

in-process:x=2 n=6

-1.#IND

二、简答题

2.1 函数的形参和实参是如何对应的?形参和实参的数目必须一致吗?什么情况下可以不一致?

答: 函数的形参和实参是按照位置对应的,一般情况下形参和实参的数目应该一致,当函数定义为具有默认参数的函数时,形参与实参个数可以不同。.

2.2 函数和内联函数的执行机制有何不同?定义内联函数有何意义?有何要求?

答:执行函数时,系统要建立堆栈空间、保护现场、传递参数以及控制程序执行等。内联函数则是在编译过程中直接将内联函数代嵌入到调用函数中。

将函数调用变为顺序执行。

内联函数的本质是空间换时间,所以内联函数只适用于功能简单、代码段小且被重复使用的函数。

2. 3 全局变量和全局静态变量的区别在哪里?为什么提倡尽量使用局部变量?

全局变量存储在全局数据区,在它定义后的所有函数中都可见,而局部变量只在定义它的函数内或块内可见。

使用局部变量可以节省内存空间,不使错误扩散,易于维护。

2.4 函数重载的作用是什么?满足什么条件的函数才可以成为重载函数?重载函数在调用时是怎样进行对应的?

可以用相同的函数名来定义一组功能相同或相似的函数。

参数类型必须不同。

调用时,按如下过程对应:

如果有严格匹配的函数,则调用该函数。

参数内部转换后如果匹配,则调用该函数。

通过用户定义的转换寻求匹配。

2.5 多文件结构的程序是如何进行管理并运行的?采用多文件结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值