自己做的,不是标准答案,仅供参考,如有错误请指正,谢谢!
一、选择题。
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<<" ";
}
}
正文
C++练习题(函数部分)含答案2005-03-31 23:06:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/yaozheng/435.html
阅读(11610) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论