欢迎来到天天文库
浏览记录
ID:55725932
大小:539.50 KB
页数:67页
时间:2020-06-01
《C++语言程序设计 清华大学郑莉 3 .ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章函数清华大学郑莉C++语言程序设计2本章主要内容函数的声明和调用函数间的参数传递内联函数带默认形参值的函数函数重载C++系统函数3函数的声明函数是面向对象程序设计中,对功能的抽象函数声明的语法形式类型标识符函数名(形式参数表){语句序列}函数的声明与使用是被初始化的内部变量,寿命和可见性仅限于函数内部若无返回值,写void4函数的声明形式参数表name1,name2,...,namen函数的返回值由return语句给出,例如:return0无返回值的函数(void类型),不必写return
2、语句。函数的声明与使用5函数的调用调用前先声明函数原型:在调用函数中,或程序文件中所有函数之外,按如下形式说明:类型标识符被调用函数名(含类型说明的形参表);调用形式函数名(实参列表)嵌套调用函数可以嵌套调用,但不允许嵌套定义。递归调用函数直接或间接调用自身。函数的声明与使用6例3-1编写一个求x的n次方的函数#includeusingnamespacestd;doublepower(doublex,intn);intmain(){cout<<"5tothepower2is"<3、doublepower(doublex,intn){doubleval=1.0;while(n--)val=val*x;return(val);}函数的声明与使用7运行结果:5tothepower2is25例3-1编写一个求x的n次方的函数函数的声明与使用8例3-2数制转换题目:输入一个8位二进制数,将其转换为十进制数输出。例如:11012=1(23)+1(22)+0(21)+1(20)=1310所以,如果输入1101,则应输出13函数的声明与使用#includeusingnamespacestd;doublepow4、er(doublex,intn);intmain(){inti;intvalue=0;charch;cout<<"Enteran8bitbinarynumber";for(i=7;i>=0;i--){cin>>ch;if(ch=='1')value+=int(power(2,i));}cout<<"Decimalvalueis"<5、ynumber01101001Decimalvalueis105910例3-3编写程序求π的值其中arctan用如下形式的级数计算:直到级数某项绝对值不大于10-15为止;π和x均为double型。函数的声明与使用#includeusingnamespacestd;intmain(){doublea,b;doublearctan(doublex);//函数原型声明a=16.0*arctan(1/5.0);b=4.0*arctan(1/239.0);//注意:因为整数相除结果取整,//如果参数写1/5,1/239,结果6、就都是0cout<<"PI="<1e-15){f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=2;}returnr;}运行结果:PI=3.141591213例3-4寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。回文:各位数字左右对称的整数。例如:11满足上述条件112=121,113=1331。分析:10取余的方法,从最7、低位开始,依次取出该数的各位数字。按反序重新构成新的数,比较与原数是否相等,若相等,则原数为回文。函数的声明与使用#includeusingnamespacestd;intmain(){boolsymm(longn);longm;for(m=11;m<1000;m++)if(symm(m)&&symm(m*m)&&symm(m*m*m))cout<<"m="<8、i){m=m*10+i%10;i=i/10;}return(m==n);}15运行结果:m=11m*m=121m*m*m=1331m=101m*m=10201m*m*m=1030301m=111m*m=12
3、doublepower(doublex,intn){doubleval=1.0;while(n--)val=val*x;return(val);}函数的声明与使用7运行结果:5tothepower2is25例3-1编写一个求x的n次方的函数函数的声明与使用8例3-2数制转换题目:输入一个8位二进制数,将其转换为十进制数输出。例如:11012=1(23)+1(22)+0(21)+1(20)=1310所以,如果输入1101,则应输出13函数的声明与使用#includeusingnamespacestd;doublepow
4、er(doublex,intn);intmain(){inti;intvalue=0;charch;cout<<"Enteran8bitbinarynumber";for(i=7;i>=0;i--){cin>>ch;if(ch=='1')value+=int(power(2,i));}cout<<"Decimalvalueis"<5、ynumber01101001Decimalvalueis105910例3-3编写程序求π的值其中arctan用如下形式的级数计算:直到级数某项绝对值不大于10-15为止;π和x均为double型。函数的声明与使用#includeusingnamespacestd;intmain(){doublea,b;doublearctan(doublex);//函数原型声明a=16.0*arctan(1/5.0);b=4.0*arctan(1/239.0);//注意:因为整数相除结果取整,//如果参数写1/5,1/239,结果6、就都是0cout<<"PI="<1e-15){f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=2;}returnr;}运行结果:PI=3.141591213例3-4寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。回文:各位数字左右对称的整数。例如:11满足上述条件112=121,113=1331。分析:10取余的方法,从最7、低位开始,依次取出该数的各位数字。按反序重新构成新的数,比较与原数是否相等,若相等,则原数为回文。函数的声明与使用#includeusingnamespacestd;intmain(){boolsymm(longn);longm;for(m=11;m<1000;m++)if(symm(m)&&symm(m*m)&&symm(m*m*m))cout<<"m="<8、i){m=m*10+i%10;i=i/10;}return(m==n);}15运行结果:m=11m*m=121m*m*m=1331m=101m*m=10201m*m*m=1030301m=111m*m=12
5、ynumber01101001Decimalvalueis105910例3-3编写程序求π的值其中arctan用如下形式的级数计算:直到级数某项绝对值不大于10-15为止;π和x均为double型。函数的声明与使用#includeusingnamespacestd;intmain(){doublea,b;doublearctan(doublex);//函数原型声明a=16.0*arctan(1/5.0);b=4.0*arctan(1/239.0);//注意:因为整数相除结果取整,//如果参数写1/5,1/239,结果
6、就都是0cout<<"PI="<1e-15){f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=2;}returnr;}运行结果:PI=3.141591213例3-4寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。回文:各位数字左右对称的整数。例如:11满足上述条件112=121,113=1331。分析:10取余的方法,从最
7、低位开始,依次取出该数的各位数字。按反序重新构成新的数,比较与原数是否相等,若相等,则原数为回文。函数的声明与使用#includeusingnamespacestd;intmain(){boolsymm(longn);longm;for(m=11;m<1000;m++)if(symm(m)&&symm(m*m)&&symm(m*m*m))cout<<"m="<8、i){m=m*10+i%10;i=i/10;}return(m==n);}15运行结果:m=11m*m=121m*m*m=1331m=101m*m=10201m*m*m=1030301m=111m*m=12
8、i){m=m*10+i%10;i=i/10;}return(m==n);}15运行结果:m=11m*m=121m*m*m=1331m=101m*m=10201m*m*m=1030301m=111m*m=12
此文档下载收益归作者所有