正文

C++练习题(函数部分)含答案2005-03-31 23:06:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yaozheng/435.html

分享到:

自己做的,不是标准答案,仅供参考,如有错误请指正,谢谢! 一、选择题。 1、    下列叙述错误的是___ B _____。 A)    一个函数中可以有多条return语句    B)    调用函数必须在一条独立的语句中完成 C)    函数中通过return语句传递函数值 D)    主函数main也可以带有形参 2、在C++语言中,对函数参数默认值描述正确的是_____D_______。 A)    函数参数的默认值只能设定一个 B)    一个函数的参数若有多个,则参数默认值的设定可以不连续 C)    函数参数必须设定默认值 D)    在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值 3、不能作为函数重载判断依据的是______D_______。 A)const   B)返回类型     C)参数个数    D)参数类型 4、下列函数参数默认值定义错误的是______C________。 A)Fun(int x,int y=0)     B)Fun(int x=100) C)Fun(int x=0,int y)     D)Fun(int x=f( ))  (假定函数f( )已经定义) 5、在函数定义前加上关键字”inline”,表示该函数被定义为___B_____。 A)重载函数    B)内联函数    C)成员函数     D)普通函数 6、函数定义为Fun(int &k),变量定义n=100,则下面调用正确的是____C____。 A)Fun(20)     B)Fun(20+n)    C)Fun(n)    D)Fun(&n) 7、下列是正确的递归函数的是____B________。 A)int fun(int n)                        B)int fun(int n)   {  if (n<1) return 1;                    {  if (abs(n)<1  return 1; else return n*fun(n+1);                  else return n*fun(n/2);   }                                     } C)int fun(int n)                        D)int fun(int n)   {  if (n>1) return 1;                    {  if (n>1) return 1; else return n*fun(n*2);                  else return n*fun(n-1);   }                                     } 二、阅读程序。 1、下列程序的输出结果是? #include <iostream.h> int fun(int x,int y) {  return  x*y;} void main() {  int k=5;    cout<<fun(k++, ++k)<<endl; } 结果: 36 2、写出下列程序的运行结果。 #include <iostream.h> #include <math.h> void  fun(int a, int b, double& s, double &t) {   s=sqrt(a*a+b*b);     t=sqrt(a*a-b*b); } void main() {   double m, n;     fun(4,3,m,n); cout<<m+n<<endl; } 结果: 7.64575 3、写出下列程序的运行结果。 #include <iostream.h> int n=0; int& fun (int x) {  n -=x;    return n; } void main() {  fun(100)+=10;    cout<<”n=”<<n<<endl;    } 结果: n=-90 4、下列程序运行结果是。 #include <iostream.h> int func(int x) {   int p; if (x==0 || x==1)  return (3); p=x- func(x-2); return p; } void main( ) {    cout<<func(9);  } 结果: 7 三、编程题。 1、已知三角形的三边,求三角形面积,将其编写成一个函数。 #include<iostream> #include<cmath> using namespace std; double area(int a,int b,int c); void main() {     int a,b,c;     cin>>a>>b>>c;     cout<<"Area:"<<area(a,b,c)<<endl; } double area(int a,int b,int c) {     double s,area;     s=(a+b+c)/2.0;     area=sqrt(s*(s-a)*(s-b)*(s-c));     return area; } 2、    输入的整数按字符串形式逆序输出,要求分别用递归算法和非递归算法实现。如:输入12345,输出:5  4  3  2  1 #include<iostream> using namespace std; void print(int a); void print1(int a); void main() {     int n;     cin>>n;     print(n);     cout<<endl;     print1(n); } void print(int a)   //非递归 {     while(a>0)     {         cout<<a%10<<" ";         a=a/10;     } } void print1(int a)   //递归 {     if(a>0)     {         cout<<a%10<<" ";         print1(a/10);     }         } 3、    编写递归函数将输入的整数按字符串形式正序输出。如:输入12345,输出:1  2  3  4  5 #include<iostream> using namespace std; void print(int a); void print1(int a); void main() {     int n;     cin>>n;     print(n); } void print(int a)   //递归 {     if(a>0)     {         print(a/10);         cout<<a%10<<" ";     }         }

阅读(11711) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册