C++语言程序设计 第三章函数 清华大学计算机与信息管理中心 郑莉
第三章 函数 清华大学计算机与信息管理中心 郑 莉 C++语言程序设计
本章主要内率 函数的声明和调用 函数间的参数传递 内联函数 带缺省形参值的函数 函数重载 函数模板 C++系统函数 休息
前一页 休息 2 本章主要内容 ⚫ 函数的声明和调用 ⚫ 函数间的参数传递 ⚫ 内联函数 ⚫ 带缺省形参值的函数 ⚫ 函数重载 ⚫ 函数模板 ⚫ C++系统函数
函数的声明 函数 的。函数是面向对象程序设计中的基本抽象 声单元,是对功能的抽象 明·函数声明的语法形式 与「类型标识符函数名(形式参数表) 使 若无参数,写void 用语句序列 是被初始化的内部 变量,寿命和可见 性仅限于函数内部 若无返回值,写void 休息 3
前一页 休息 3 函数的声明 ⚫ 函数是面向对象程序设计中的基本抽象 单元,是对功能的抽象 ⚫ 函数声明的语法形式 类型标识符 函数名(形式参数表) { 语句序列 } 函 数 的 声 明 与 使 用 若无参数,写void 是被初始化的内部 变量,寿命和可见 性仅限于函数内部 若无返回值,写void
函数的声明 函 数 的 ●形式参数表 声 name,, name2, 明 namen 与。函数的返回值 使 由 return语句给出,例如: 用 return 0 无返回值的函数(void类型),不必写 return语句。 休息
前一页 休息 4 函数的声明 ⚫ 形式参数表 name1 , name2 , ..., namen ⚫ 函数的返回值 – 由 return 语句给出,例如: return 0 – 无返回值的函数(void类型),不必写 return语句。 函 数 的 声 明 与 使 用
函数的调用 函数的声明与 ●调用前先说明函数原型 在调用函数的说明部分,或程序文件开头 所有函数之前,按如下形式说明: 类型标识符被调用函数名(含类型说明的形参表) 调用形式 使 函数名(实参列表) 用°嵌套调用 函数不允许嵌套声明,但可以嵌套调用 递归调用 函数直接或间接调用自身 休息
前一页 休息 5 函数的调用 ⚫ 调用前先说明函数原型: – 在调用函数的说明部分,或程序文件开头 所有函数之前,按如下形式说明: 类型标识符 被调用函数名 (含类型说明的形参表); ⚫ 调用形式 函数名(实参列表) ⚫ 嵌套调用 – 函数不允许嵌套声明,但可以嵌套调用。 ⚫ 递归调用 – 函数直接或间接调用自身。 函 数 的 声 明 与 使 用
例3-1编写一个求X的次方的函数 函 35 #include 3s double power (double x, int n)i void main(void) 声明 cout < 5 to the power s 与 <<P。wer(5,2)<end1; Ts double power (double x, int n 用 double val 1.0 while (n val Va⊥x; return(val) 了一页休息
前一页 休息 6 例3-1编写一个求x的n次方的函数 #include double power (double x, int n); void main(void) { cout << "5 to the power 2 is " << power(5,2) << endl; } double power (double x, int n) { double val = 1.0; while (n--) val = val*x; return(val); } 函 数 的 声 明 与 使 用
例3-1编写一个求X的次方的函数 函数的声明与使用 运行结果: 5 to the power 2 is 25 休息
前一页 休息 7 运行结果: 5 to the power 2 is 25 例3-1编写一个求x的n次方的函数 函 数 的 声 明 与 使 用
例3-2数制转换 数的声明与使用 约题目 输入一个8位二进制数,将其转换 为十进制数输出 例如:11012=1(2)+1(221+0(21)+1(2 =13. 10 所以,如果输入110,则应输出13大 休息
前一页 休息 8 例3-2 数制转换 题目: 输入一个8位二进制数,将其转换 为十进制数输出。 例如:11012 = 1(23 ) + 1(22 ) + 0(21 ) + 1(20 ) = 1310 所以,如果输入1101,则应输出13 函 数 的 声 明 与 使 用
Include double power (double x, int n)i void main(void) int i int value =0; char ch cout =0;i--) Cln ch if(ch 1) value + int(power(2, i))i cout <<Decimal value is <<value<<endli
#include double power (double x, int n); void main(void) { int i; int value = 0; char ch; cout = 0; i--) { cin >> ch; if (ch == '1') value += int(power(2,i)); } cout <<"Decimal value is "<<value<<endl; }
double power (double x, int n) double val = 1.0 while (n-- val * xi return(val)i 运行结果: Enter an 8 bit binary number 01101001 Decimal value is 105
double power (double x, int n) { double val = 1.0; while (n--) val *= x; return(val); } 运行结果: Enter an 8 bit binary number 01101001 Decimal value is 105