#include
inline double sum(double radius) //定义内联函数,计算圆的面积 { return 3.14*radius*radius; }
void main() { double area,r; cout<<\请输入半径值:\ cin>>r; area=sum(r); //调用内联函数求圆的面积,编译时此处被替换为sum函数体语句 cout<<\园的面积为:\}
程序执行结果为: 请输入半径值: 2.5
园的面积为:19.625
第五节 函数重载
函数重载是指同一个函数名可以对应着多个不同函数的实现。 函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码。确定函数时,编译器是通过函数的参数个数、参数类型和参数顺序来区分的。也就是说,进行函数重载时,要求同名函数参数个数不同、参数类型不同或参数顺序不同。 注意:函数的返回类型不能区分不同的函数体。 【例3.8】求三个操作数之和。 #include \int sum(int,int,int);
double sum(double,double,double); void main() { cout<<\ cout<<\}
int sum(int a,int b,int c) { return a+b+c; }
double sum(double a,double b,double c) { return a+b+c; }
程序执行结果为: Int:9
Double:7.9
在函数的声明或定义中可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的形参值。
第六节 带默认参数值的函数
在C++中可以为函数指定默认的形参值,在函数调用时,按从左到右的顺序将实参和形参结合,若参数不够,用函数的默认参数来补足缺少的实参。 默认形参值必须由右向左的顺序定义。如果某个参数有默认值,则其右边的参数必须都有默认值;如果某个参数没有默认值,则其左边的参数都不能有默认值。如: int fun(int a,int b,int c=3); //正确 int fun(int a=1,int b=2,int c); //错误 在使用带默认参数的函数时,只能在函数定义或声明中的一个位置给出默认值,不能在两个位置同时给出
【例3.9】利用带默认参数值的函数求x的n次方(n是正整数)。 #include
double power(double x=10.0,int n=2); void main() { cout< double power(double x,int n) { int i; double s=1.0; for(i=1;i<=n;i++) { s*=x; } return s; } 程序执行结果为: 16 4 100 return 第七节 C++的系统函数 C++系统提供了很多常用的系统函数,为程序员的使用带来了很大的方便。C++将所提供的系统函数的说明分别放在不同的头文件中,即.h文件。在程序中可以使用系统函数,但是要在程序开始处说明函数所在的头文件名。 常用的头文件有: bios.h BIOS中断 complex.h C++的复数 conio.h 操纵台和I/O端口 ctype.h 字符函数 dos.h DOS中断 graphics.h 图形例程 io.h 文件处理和低级I/O iostream.h C++的流例程 stdio.h C的流例程 stdlib.h 标准库例程 string.h 字符串处理函数 time.h 日期和时间例程 在使用系统函数时,要注意以下几点: ⑴不同的C++编译系统提供的系统函数不完全相同,要了解所使用的C++系统提供了哪些系统函数。 ⑵清楚所使用的系统函数的说明在哪个头文件中。 ⑶调用一个系统函数时,一定熟悉该函数的功能、参数的类型、参数的意义和返回值类型。 return 作业 教材P63-64所有习题 第4章 数组 本章课时: 12课时 本章重点:: 一维数组的使用 二位数组的使用 字符数组的使用 本章难点: 二位数组的使用 教学内容及目标: 了解: 数组的适用范围 理解: 1.一维数组和二维数组的初始化 2.字符串存储和字符串的访问 掌握: 1.一维数组和二维数组的定义和访问方式 2.指针数组的使用:指向基本数据类型的指针数组,指向数组的指针数组,指向函数的指针数组 3.数组作函数参数的应用:向函数传送数组元素,数组名作函数参数 4.字符数组与字符串的使用 第一节 一维数组的定义和数组元素的引用 把若干个同类型的数据线性的组合在一起,就构成一维数组。在使用一维数组之前必须先定 义。定义一维数组的一般格式为: 数据类型 数组名[常量表达式]; 例如: int A[100]; float b[20]; 在定义一维数组时要注意以下几点: 1.数据类型一般指的是该数组元素的类型。 2.常量表达式必须用方括号括起来,指的是数组的元素个数,即数组长度,可以是常数或符号常量,但不能包含变量。 例如:int a[]; //不合法 int a[x]; //不合法。 3.数组元素的下标从0开始 4.一次可以说明多个同类型数组。 例如:int a[10],b[15],c[20]; //定义a,b,c三个整型数组。 注意区别下列语句: int A(100); //定义了一个整型变量A,并赋予初值为100 int A[100]; //定义了一个整型数组变量A,数组长度为100 一维数组的初始化: 一维数组的初始化格式为: 数据类型 数组名[常量表达式]={初始化列表}; 例如:int a[5]={0,1,2,3,4}; 说明: ⑴在定义数组时既可以对所有元素进行初始化,也可以只对其中的一部分元素进行初始化。例如:int a[4]={7,8}对前两个元素]赋值,其余默认为0。 return ⑵要使一个数组中全部元素的值为0,可以有如下定义方法: int a[4]={ }; int a[4]={0,0,0,0}; int a[4]={0}; ⑶全部数组元素赋初始值时,可以不指定数组长度。 例如:int a[]={1,2,3,4,5}语句表示数组的长度为5。 ⑷利用for循环语句赋初始值。 例如:for(int i=0;i<100;i++) a[i]=i+1; 数组元素引用的格式为:数组名[下标] 【例4.1】求出一个数组a[8],使a[i]的值为下标值的平方,然后按 逆序输出。 #include int i,a[8]; for (i=0;i<=7;i++) a[i]=i*i; //利用for语句给每个数组元素赋初值。 for (i=7;i>=0;i--) cout< cout< 运行结果如下: 49 36 25 16 9 4 1 0 一维数组元素的存储: 一维数组各元素在内存中是连续存储的,例如定义数组:short a[4]={1,2,3,4}; 假设数组存储的首地址为2000,则该数组在内存中的存储情况如图4-1所示。 另外,数组名就代表数组在内存中的首地址,例如上面的数组a就代表首地址,它是一个地址常量,可以用a+i的形式来依次引用其他元素的地址。 注意:a+n代表的不是加n个字节,而是加n个数据的存储单位。 【例4.2】从键盘上输入任意4个整数赋给数组,显示该数组,最后计算并显示该数组的累加和与平均值。 #include int a[4],i,sum=0; //声明数组和变量 double avg; for (i=0;i<4;i++) { cout<<\ //利用for语句给数组赋值。 cin>>a[i]; } //直接显示数组元素 cout< for (i=0;i<4;i++) //利用for循环显示数组元素的值 cout< sum=a[0]+a[1]+a[2]+a[3]; //计算数组元素之和,并显示计算结果 200020012002200320042005200620071a[0]234a[1]a[2]a[3]图4-1 一维数组元素的存储