习题3及其解答(第二版)doc.doc
《习题3及其解答(第二版)doc.doc》由会员分享,可在线阅读,更多相关《习题3及其解答(第二版)doc.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 函数3.1 选择题1以下正确的函数原型为( d )。(a) f1( int x; int y ); (b) void f1( x, y );(c) void f1( int x, y ); (d) void f1( int, int );2有函数原型 void fun2( int ); 下面选项中,不正确的调用是( c )。(a) int x = 21; fun2( x );(b) int a = 15; fun2( a*3 ); (c) int b = 100; fun2( &b );(d) fun2( 256 );3有函数原型 void fun3( int * ); 下面选项中,正
2、确的调用是( c )。(a) double x = 2.17; fun3( &x );(b) int a = 15 ; fun3( a*3.14 ); (c) int b = 100; fun3( &b );(d) fun3( 256 );4有函数原型 void fun4( int & ); 下面选项中,正确的调用是( c )。(a) int x = 2.17; fun4( &x );(b) int a = 15; fun4( a*3.14 );(c) int b = 100; fun4( b );(d) fun4( 256 ) ;5有声明 int fun5( int ); int (*pf)
3、(int) = fun5; 下面选项中,正确的调用是( c )。(a) int a=15; int n=fun5(&a); (b) int a = 15; cout(&pf)(a);(c) cout(*pf)( 256 ); (d) cout *pf( 256 );6在VC中,假设定义一个函数的返回类型为void,以下表达正确的选项是( c )。(a) 函数返回值需要强类型转换(b) 函数不执行任何操作(c) 函数本身没有返回值(d) 函数不能修改实际参数的值7函数参数的默认值不允许为( c )。(a) 全局常量(b) 直接常量(c) 局部变量(d) 函数调用8使用重载函数编程序的目的是( a
4、 )。(a) 使用相同的函数名调用功能相似的函数(b) 共享程序代码(c) 提高程序的运行速度(d) 节省存贮空间9以下的描述中( b )是错误的。(a) 使用全局变量可以从被调用函数中获取多个操作结果(b) 局部变量可以初始化,假设不初始化,那么系统默认它的值为0(c) 当函数调用完后,静态局部变量的值不会消失(d) 全局变量假设不初始化,那么系统默认它的值为010以下选项中,( c )的具有文件作用域。(a) 语句标号(b) 局部变量(c) 全局变量(d) 静态变量3.2 阅读以下程序,写出执行结果1. #include #include int f( int ) ;void main()
5、 int i; for( i = 0; i 3; i + ) cout f( i ) endl;int f( int a ) int b = 0 , c = 1; b +; c+; return ( a + pow( b, 2 ) + c ); 【答案】 3 4 52. void func(int a, int b, int c = 3, int d = 4 );#include void main() func( 10, 15, 20, 30 ); func( 10, 11, 12 ); func( 12, 12 );void func( int a, int b, int c, int d
6、 ) cout a t b t c t d endl; 【答案】 10 15 20 30 10 11 12 4 12 12 3 43. #include void func( int, int, int * ) ;void main() int x, y, z; func( 5, 6, &x ); func( 7, x, &y ); func( x, y, &z ); cout x , y , z endl;void func( int a , int b , int *c ) b += a ; *c = b a ; 【答案】 6, 6, 64. #include void func( int
7、, int, int & );void main() int x=0 , y=1 , z=2; func( 1 , 2 , x ); func( x + y , y , y ); func( z , x + y , z ); cout x , y , z endl ;void func( int a , int b , int &c ) b += a ; c = b a ; 【答案】 2, 1, 35. #include int f2( int, int );int f1( int a , int b ) int c ; a += a ; b += b ; c = f2( a+b , b+1
8、); return c;int f2( int a , int b ) int c ; c = b % 2 ; return a + c;void main() int a = 3 , b = 4; cout f1( a , b ) endl;【答案】 156. #include int age( int n ) int f; if( n = 1 ) f = 10 ; else f = age( n-1 ) + 2; return f ;void main() cout age : age( 5 ) endl; 【答案】 age:187. #include int f1( int a , in
9、t b ) return a + b ; int f2( int a ,int b ) return a b ; int f3( int( *t )( int , int ) , int a , int b ) return ( *t )( a, b ) ; void main() int ( *p )( int, int ); p = f1 ;cout f3( p, 4, 8 ) endl; p = f2 ;cout f3( p, 8, 4 ) endl;【答案】 12 48. #include int sub( int, int );int a = 1 ;void main() int m
10、 = 1, n = 2, f; f = sub( m, n ); cout a t f endl; f = sub( m, n ) ; cout a t f endl; int sub( int c, int d ) static int m = 2, n = 5 ; cout m t n t endl; a = + a ; c = m + ; d = n +; return c + d ; 【答案】2 52 73 63 93.3 思考题1函数的作用是什么?如何定义函数?什么叫函数原型?2什么叫函数值的返回类型?什么叫函数的类型?如何通过指向函数的指针调用一个已经定义的函数?请写一个验证程序说
11、明。3 什么叫形式参数?什么叫实际参数?C+函数参数有什么不同的传递方式?请写一个验证程序说明。4C+函数通过什么方式传递返回值?当一个函数返回指针类型时,对返回表达式有什么要求?假设返回引用类型时,是否可以返回一个算术表达式?为什么?5变量的生存期和变量作用域有什么区别?请举例说明。6静态局部变量有什么特点?编写一个应用程序,说明静态局部变量的作用。7在一个语句块中能否访问一个外层的同名局部变量?能否访问一个同名的全局变量? 如果可以,应该如何访问?请写一个验证程序说明。3.4 编程题1已经知道 , 其中sh为双曲正弦函数,即。编一程序,输入x的值,求y的值。【解答】#include #in
12、clude double sh( double t );void main() double x,y; cout x; y = sh( 1+sh(x) )/( sh( 2*x )+sh( 3*x ) ); cout y= y endl;double sh( double t ) return ( exp( t )-exp( -t ) )/2; 2输入m、n和p的值,求s = 的值。注意判断运算中的溢出。【解答】#include #include double f( long k,long num );void main() long m,n,p; double s,f1,f2,f3; cout
13、 mnp; f1=f( 1,m ); f2=f( 3,n ); f3=f( 5,p ); if (f1 & f2 & f3 ) s = ( f1 + f2) /f3; cout s= s endl; else cout溢出!n;double f( long k,long num ) long i; double sum=0; for( i=1; i=num & sum2147483647; i+ ) sum = sum + pow( i,k ); if (i=num) return 0; /溢出时返回0 return sum;3输入a,b和c的值,编写一个程序求这三个数的最大值和最小值。要求把
14、求最大值和最小值编写成函数,并使用指针或引用作为形式参数把结果返回函数main。【解答】1使用指针参数#includevoid fmaxmin( float,float ,float ,float *,float * );void main() float a,b,c,max,min; cout a b c; fmaxmin( a,b,c,&max,&min ); cout max= max endl; cout min= min y ) u = x; v = y; else u = y; v = x; ; if ( zu ) u = z; if ( zv ) v = z; *p1 = u;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 及其 解答 第二 doc
限制150内