自己做的,不是标准答案,仅供参考,如有错误请指正,谢谢! 一、选择题。 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<<" "; } }

评论