C++语言程序设计(第3版)清华大学教程c++3.pptVIP

  • 39
  • 0
  • 约1.16万字
  • 约 67页
  • 2018-03-29 发布于河南
  • 举报

C++语言程序设计(第3版)清华大学教程c++3.ppt

C++语言程序设计(第3版)清华大学教程c++3.ppt

第三章 函数 清华大学 郑 莉 本章主要内容 函数的声明和调用 函数间的参数传递 内联函数 带默认形参值的函数 函数重载 C++系统函数 函数的声明 函数是面向对象程序设计中,对功能的抽象 函数声明的语法形式 类型标识符 函数名(形式参数表) 语句序列 函数的声明 形式参数表 name1, name2, ..., namen 函数的返回值 由 return 语句给出,例如: return 0 无返回值的函数(void类型),不必写return语句。 函数的调用 调用前先声明函数原型: 在调用函数中,或程序文件中所有函数之外,按如下形式说明: 类型标识符 被调用函数名(含类型说明的形参表); 调用形式 函数名(实参列表) 嵌套调用 函数可以嵌套调用,但不允许嵌套定义。 递归调用 函数直接或间接调用自身。 例3-1编写一个求x的n次方的函数 #include using namespace std; double power double x, int n ; int main 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的n次方的函数 运行结果: 5 to the power 2 is 25 例3-2 数制转换 题目: 输入一个8位二进制数,将其转换为十进制数输出。 例如:11012 1 23 +1 22 +0 21 +1 20 1310 所以,如果输入1101,则应输出13 #include using namespace std; double power double x, int n ; int main int i; int value 0; char ch; cout Enter an 8 bit binary number ; for i 7; i 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 * x; return val ; 例3-3编写程序求π的值 其中arctan用如下形式的级数计算: 直到级数某项绝对值不大于10-15为止;π和x均为double型。 #include using namespace std; int main double a,b; double arctan double x ;//函数原型声明 a 16.0*arctan 1/5.0 ; b 4.0*arctan 1/239.0 ; //注意:因为整数相除结果取整, //如果参数写1/5,1/239,结果就都是0 cout PI a-b endl; double arctan double x int i; double r,e,f,sqr; sqr x*x; r 0; e x; i 1; while e/i 1e-15 f e/i; r i%4 1 ? r+f : r-f; e e*sqr; i+ 2; return r; 例3-4 寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。 回文:各位数字左右对称的整数。 例如:11满足上述条件 112 121,113 1331。 分析: 10取余的方法,从最低位开始,依次取出该数的各位数字。按反序重新构成新的数,比较与原数是否相等,若相等,则原数为回文。 #include using namespace std; int main bool symm long n ; long m; for m 11; m 1000; m++ if symm m symm m*m symm m*m*m cout m m m*m m*m m*m*m m*m*m endl; bool symm long n long i, m; i n ; m 0 ; while i m m*10+i%10; i i/10 ; return m n ; 运行结果: m 11 m*m 121 m*m*m 1331 m 101

文档评论(0)

1亿VIP精品文档

相关文档