欢迎来到天天文库
浏览记录
ID:45034585
大小:697.50 KB
页数:72页
时间:2019-11-08
《C语言程序设计(清华大学郑莉)三》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章函数清华大学郑莉C++语言程序设计2本章主要内容函数的定义和调用函数间的参数传递内联函数带默认形参值的函数函数重载C++系统函数深度探索3函数的定义函数是面向对象程序设计中,对功能的抽象函数定义的语法形式类型标识符函数名(形式参数表){语句序列}函数的声明与使用是被初始化的内部变量,寿命和可见性仅限于函数内部若无返回值,写void4函数的定义形式参数表name1,name2,...,namen函数的返回值由return语句给出,例如:return0无返回值的函数(void类型),不必写return语句。函数
2、的声明与使用5函数的调用调用前先声明函数:若函数定义在调用点之前,则无需另外声明;若函数定义在调用点之后,则需要在调用函数前按如下形式声明函数原型:类型标识符被调用函数名(含类型说明的形参表);调用形式函数名(实参列表)嵌套调用函数可以嵌套调用,但不允许嵌套定义。递归调用函数直接或间接调用自身。函数的声明与使用6例3-1编写一个求x的n次方的函数#includeusingnamespacestd;//计算x的n次方doublepower(doublex,intn){doubleval=1.0;while(n--)val*=x;retu
3、rnval;}intmain(){cout<<"5tothepower2is"<usingnamespacestd;//计算x的n次方doublepower(do
4、ublex,intn);intmain(){intvalue=0;cout<<"Enteran8bitbinarynumber";for(inti=7;i>=0;i--){charch;cin>>ch;if(ch=='1')value+=static_cast(power(2,i));}cout<<"Decimalvalueis"<5、narynumber01101001Decimalvalueis105910例3-3编写程序求π的值其中arctan用如下形式的级数计算:直到级数某项绝对值不大于10-15为止;π和x均为double型。函数的声明与使用#includeusingnamespacestd;doublearctan(doublex){doublesqr=x*x;doublee=x;doubler=0;inti=1;while(e/i>1e-15){doublef=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=2;}returnr;}6、11intmain(){doublea=16.0*arctan(1/5.0);doubleb=4.0*arctan(1/239.0);//注意:因为整数相除结果取整,如果参数写1/5,1/239,结果就都是0cout<<"PI="<7、原数是否相等,若相等,则原数为回文。函数的声明与使用#includeusingnamespacestd;//判断n是否为回文数boolsymm(unsignedn){unsignedi=n;unsignedm=0;while(i>0){m=m*10+i%10;i/=10;}returnm==n;}14intmain(){for(unsignedm=11;m<1000;m++)if(symm(m)&&symm(m*m)&&symm(m*m*m)){cout<<"m="<8、"<
5、narynumber01101001Decimalvalueis105910例3-3编写程序求π的值其中arctan用如下形式的级数计算:直到级数某项绝对值不大于10-15为止;π和x均为double型。函数的声明与使用#includeusingnamespacestd;doublearctan(doublex){doublesqr=x*x;doublee=x;doubler=0;inti=1;while(e/i>1e-15){doublef=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=2;}returnr;}
6、11intmain(){doublea=16.0*arctan(1/5.0);doubleb=4.0*arctan(1/239.0);//注意:因为整数相除结果取整,如果参数写1/5,1/239,结果就都是0cout<<"PI="<7、原数是否相等,若相等,则原数为回文。函数的声明与使用#includeusingnamespacestd;//判断n是否为回文数boolsymm(unsignedn){unsignedi=n;unsignedm=0;while(i>0){m=m*10+i%10;i/=10;}returnm==n;}14intmain(){for(unsignedm=11;m<1000;m++)if(symm(m)&&symm(m*m)&&symm(m*m*m)){cout<<"m="<8、"<
7、原数是否相等,若相等,则原数为回文。函数的声明与使用#includeusingnamespacestd;//判断n是否为回文数boolsymm(unsignedn){unsignedi=n;unsignedm=0;while(i>0){m=m*10+i%10;i/=10;}returnm==n;}14intmain(){for(unsignedm=11;m<1000;m++)if(symm(m)&&symm(m*m)&&symm(m*m*m)){cout<<"m="<8、"<
8、"<
此文档下载收益归作者所有