6、 什么叫函数指针?什么指针函数?
答:函数指针是一个函数执行代码的起始地址。指针函数是指一个函数的返回值为地址量的函数。 7、 什么叫内联函数?
答:内联函数是将很简单的函数\内嵌\到调用他的程序代码中,只样做的目的是为了节省了调用函数的开销。 8、 什么叫函数重载?
答:函数重载是指使用一个函数名称定义了多个完成不同功能的函数,这些函数的输入参数类型或个数不一样,相应的函数类型也有可能改变。 9、 什么叫预编译语句?
答:在C++程序的源代码中可以包括各种编译用的命令语句,这些语句都称为预编译语句。
10、 什么叫宏?谈谈带参数宏与内联函数之间的异同点.
答:宏是指定义一个标识符来代替一个字符序列。内联函数和宏都是在程序出现的地方展开,都不是通过函数调用实现的,是在调用该函数的程序处将它展开。内联函数可以在编译期间完成诸如类型检测,语句是否正确等编译功能。宏就不具有这样的功能,而且宏展开的时间和内联函数也是不同的,宏在运行期间展开而内联函数在编译期间完成。
11、 指出下列函数说明语句有哪些错误并说出原因。 (1) char *volume ( int height, width, char background ) ;
答:函数的参数部分说明错误;width参数没有指出数据类型。 (2) double work ( double &matrix[10] ) ;
答:参数部分引用数组的说明形式错误;不符合引用数组的说明形式。 (3) void display ( int arr[ ][ ], int size ) ;
答:参数二维数组的说明不对;右下标大小不能为空。 (4) void sum ( int (&a) [ ] ) ;
答:不符合引用数组的说明形式;大小不能缺省。 (5) int fun( double a, int b = 0, int c );
答:缺省值位置说明错误;指定缺省值必须从右向左给出,不能跳跃指定缺省值。 (6) double Matrix ( double *m[] );
答:指针变量数组的说明形式不对;大小不能缺省。 (7) char * fetch ( int a= 24, int b, char c=0);
答:缺省值位置说明错误;指定缺省值必须从右向左给出,不能跳跃指定缺省值。 (8) void length( int &a [2 ] );
答:引用数组说明错误;不符合引用数组的说明形式。 12、 什么叫递归函数?简述其执行过程。
答:递归函数是指一个函数的函数体中直接调用或间接调用了该函数自身的函数。 递归函数调用的执行过程分为两个阶段:
(1)递推阶段:从原问题出发,按递归公式递推,从未知到已知,最终达到递归终止条件。
(2)回归阶段:按递归终止条件求出结果,逆向逐步代入递归公式,回归到原问题求解。
13、 阅读下列程序并给出运行结果。 (1) #include
int fun(int x,int y) {
return x*y; }
void main(void) {
int k=5;
cout< 运行结果是:10 (2) #include void fun (int a, int b, double &s, double &t) { s=sqrt (a*a+b*b); t=sqrt (a*a-b*b); } void main(void) { double m, n; fun (4,3,m,n); cout< 运行结果是:7.64575 (3) #include int n=0; int &fun (int x) //引用型函数 { n -=x; return n; } void main(void) { fun(100) += 10; cout<<\ } 输出结果是:n=-90 (4) #include \ int d=0; int fun( int p) { static int g=10 ; g += ++d - p; printf(\,g); return ( g ); } void main( void ) { int d=10; printf(\,fun( fun(d) - fun(2) ) ); } 运行结果是:1,1,4,4 (5) #include \ int afox(int x,int &y,int *v,int *w) { * v = - -x + y++; *w= x - y; return(v); } void main(void) { int a=3,b=3,c=3,d=3; afox ( a,b,&c, &d ); cout<< a<< \; } 运行结果是:3,4,6,-1 14、 已知三角形的三边,求三角形面积,将其编写成一个函数。 答: #include double area( double a,double b,double c,double s) // 求三角行的面积 { double p; p=sqrt(s*(s-a)*(s-b)*(s-c)); return p; } void main() { double x,y,z,q; cout<<\请输入三角形三边的长度\ cin>>x>>y>>z; //输入三边长度 if(!(((x+y)>z)&&((x+z)>y)&&((y+z)>x))) //判断给出的三边能否构成三角形 cout<<\你输入的三边不能构成三角形\ else { q=area(x,y,z,(x+y+z)/2); cout<<\三角形面积是:Area=\ } } 15、 编写函数求两个整型参数a和b的最小公倍数。 答: #include int arg[100]; int m=0,n=0,j=0; for(int i=0;i<100;i++) arg[i]=0; m=n=x>y?x:y; for (;n<=(x*y);n++) { { if ((n%x==0)&&(n%y==0)) } arg[j]=n; j++; } for(int k=0;k if(arg[0]>arg[k]) { 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++第一至第八章课后习题答案(6)在线全文阅读。
相关推荐: