C++程序设计课件 设计制作:徐龙琴 1
1 在函数声明中,是不必要的。
A)函数名 B)函数类型
C)函数体 D)参数类型
2 下列描述错误的是
A)函数返回值类型决定返回表达式类型。
B) 返回表达式类型决定函数返回值的类型 。
C) 函数返回值类型与返回表达式的类型可以不同 。
D) 函数返回值类型由函数类型定义, 返回表达式类型由
return语句后面的表达式定义 。
3 C++中若对函数类型没有显式说明, 函数的隐含类型是
A)void B)char C)double D)float
C
B
一、选择题,
A
C++程序设计课件 设计制作:徐龙琴 2
4.采用函数重载的目的是
A)实现共享 B)减少空间
C)提高速度 D)增加可读性
5.下列有关设置函数参数默认值的描述中正确的是
A) 设置了默认的参数右边不允许出现没有指定默认值的参数
B) 参数默认的设置顺序从参数表的左端开始
C) 参数默认值要设置在定义语句中, 不能设置在说明语句中
D) 参数默认值可以是数值也可以是表达式
D
A
C++程序设计课件 设计制作:徐龙琴 3
6.下列哪个不是重载函数在调用时选择的依据:
A) 参数类型 B) 参数个数
C) 函数类型 D) 函数名
7.在参数传递过程中, 对形参和实参的要求是:
A) 函数定义时, 形参一直占用存储空间 。
B) 实参可以是常量, 变量或表达式 。
C) 形参可以是常量, 变量或表达式 。
D) 形参和实参类型和个数都可以不同 。
8.对于一个功能不太复杂,并且要求加快执行速度,选用:
A) 内联函数 B) 重载函数
C) 递归调用 D) 嵌套调用
D
B
A
C++程序设计课件 设计制作:徐龙琴 4
二 分析下列程序的输出结果
#include <iostream.h>
int add(int x,int y=8);
void main( )
{int a=4;
cout<<add(a)<<endl;
cout<<add(a,add(a))<<endl;
}
int add(int x,int y)
{ return x+y;
}
输出结果为:
12

16
C++程序设计课件 设计制作:徐龙琴 5
#include <iostream.h>
void fun( );
int n=5;
void main( )
{int n=10;
cout<<n<<endl;
fun();
}
void fun( )
{ cout<<n<<endl;
}
输出结果为:
10

5
C++程序设计课件 设计制作:徐龙琴 6
#include <iostream.h>
void fun( );
void main( )
{int i;
for(i=0;i<5;i++)
fun( );
}
void fun( )
{ static int m=0;
cout<<m++<<endl;
}
输出结果为:
0

1
2
3
4
C++程序设计课件 设计制作:徐龙琴 7
#include <iostream.h>
#define M 20
#define N 10
#define L(r) r*r
void main( )
{
cout<<L(M)<<endl;
cout<<L(N+N)<<endl;
}
输出结果为:
400

120
C++程序设计课件 设计制作:徐龙琴 8
#include <iostream.h>
void swap(int,int);
void main()
{ int a=2,b=5;
swap(a,b);
cout<<"a="<<a<<",b="<<b<<endl;
}
void swap(int x,int y)
{ int t;
t=x;x=y;y=t;
}
输出结果为:
a= 2,b= 5

C++程序设计课件 设计制作:徐龙琴 9
#include <iostream.h>int max(int,int);
int max(int,int,int);double max(double,double);
double max(double,double,double);void main()
{cout<<"max(3,4)="<<max(3,4)<<endl;cout<<"max(3,4,5)="<<max(3,4,5)<<endl;
cout<<"max(3.2,4.3)="<<max(3.2,4.3)<<endl;cout<<"max(3.2,4.3,5.4)="<<max(3.2,4.3,5.4)<<endl;}
int max(int x,int y){return x>y?x:y;}
int max(int x,int y,int z){int t1,t2;
t1=max(x,y);t2=max(y,z);
return max(t1,t2);}double max(double x,double y)
{return x>y?x:y;}double max(double x,double y,double z)
{double t1,t2;t1=max(x,y);
t2=max(y,z);return max(t1,t2);}
运行结果为:
max(3,4)=4
max(3,4,5)=5
max(3.2,4.3)=4.3
max(3.2,4.3,5.4)=5.4
C++程序设计课件 设计制作:徐龙琴 10
运行结果为:
5
2.72
#include <iostream.h>
double a=2.72;
void main()
{
int a=5;
cout<<a<<endl;
cout<<::a<<endl;
}

C++程序设计课件 设计制作:徐龙琴 11
三 编程
⒈ 编程求 ex 的近似解。要求最后一项不小于 10-6。
ex=1+x/1!+x2/2!+x3/3!+‥ ‥ ‥ +xn/n!
#include <iostream.h>
int fac(int);
double exp(int);
void main()
{ int x;
cout<<"Input x:";
cin>>x;
cout<<"e("<<x<<")="<<exp(x)<<endl;}
int fac(int n)
{ if(n==1) return 1;
else return n*fac(n-1);}
double exp(int x)
{ double sum =1.0;
double m =x,t;
int n=1;
t=m/fac(n);
while(t>1e-6){
sum+=t;
m*=x;
n++;
t=m/fac(n); }
return sum; }
C++程序设计课件 设计制作:徐龙琴 12
⒉ 用递归调用求 n!
#include <iostream.h>
long fact(int);
void main()
{
int m;
long sum;
cout<<"input one integer:";
cin>>m;
sum=fact(m);
cout<<m<<"!="<<sum<<endl;
}
long fact(int n)
{
if(n==1)
return 1;
else
return fact(n-1)*n;
}