《程序设计基础课后答案 第五章.docx》由会员分享,可在线阅读,更多相关《程序设计基础课后答案 第五章.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、程序设计基础课后答案 第五章 一、问答题1、什么是函数重载?如何进行函数重载?答:函数重载指同一函数名可以对应多个函数的实现。eg:函数名add(),功能是求和即两个操作的和。其中,一个函数实现两个整型数的和,另一个函数实现两个浮点型数的和,再一个函数实现两个复数的和。每种函数实现对应一个函数体,函数名字相同,但函数的参数类型不同。这就是函数的重载。函数重载在类和对象的应用中尤为重要。函数重载要求编译器能唯一确定调用一个函数时应执行哪个函数代码,即采取哪个函数实现。确定函数的实现时,要从函数参数的个数和类型上来区分。这就是说,进行函数重载时,要求同命名的函数的参数个数或参数类型不同;否则,无法
2、实现重载。举例:#includeint add(int,int);double add(double,double);void main()coutcoutint add(int x,int y)return x+y;double add(double a, double b)return a+b;4、下列两个函数是否为重载?void func(int a,int b);int func(int a,int b);答:不是重载。因为它们参数个数和类型都相同,只有返回值不同,返回值不足以区分两个函数。7、什么是函数的类型和值?是否所有函数都有返回值?是否所有函数都有类型?函数类型是指函数返回值的
3、数据类型,函数的返回值可以是指针、值或者引用。并不是所有的函数都有返回值,有的函数可以没有返回值,函数无返回值,要根据函数实现的功能来决定。如:函数add()int add (int a ,int b)return a+b;用来实现两个整数的求和,那么就需要返回值来返回求和结果,而print()只向屏幕上输出一些信息,就不需返回值,所以返回类型为void。void print(char *str)coutstr;所有的函数都有返回类型,如果没有显示指出函数的返回值类型,默认返回类型为int型二、选择题2、B8、B三、分析题4、#includevoid swap_values(int a,int
4、 b)int temp;temp=a;a=b;b=temp;void main(void)int big=2022,small=0;coutvalues before functionbigandsmallendl;swap_values(big,small);coutvalues after functionbigandsmallendl;分析:输出结果:Values before function 2022 and 0Values after function 2022 and 0在函数调用中,可以通过值传递方式在函数间传递数据。但是,这种传递无法改变实参的值。只是因为在进入被调用函数时,
5、变量进行了复制。被调用函数的任何更改和实参没有任何联系。所以,在主程序中打印它的局部变量时,变量值没有任何改变。四、编程题2、编写一个函数,在一个字符串数组中查找Hello,如果找回返回指向“H ello”开始出的指针;否则抛出一个异常“Not Found”.#include#include#includechar*findstring(char*a,char*dest)int i,m,n;m=strlen(dest);n=strlen(a)-m;try/用于抛出错误for(i=0;i=n;i+)int k=i;/用于记录当前i的位置,便于追溯for(int j=0;j=m-1;j+)if(a
6、k=destj)k+;/如果当前字符相等进行下一个字符比较elsebreak;if(j=m-1)return &ai;throw Not found!;catch(char*str)coutthere is a exception is:strendl;void main(void)char str1=This is a test char array.Hello is here.;char dest=Hello;char*result=NULL;result=findstring(str1,dest);coutThe string is:resultendl;3、编写一个程序其中包括3个重载
7、函数Display()用于显示数值。这些函数根据实参类型,将数值显示在屏幕上。第一个函数输出一个double值,前面用字符串“A double:”引导;第二个数值输出一个int值,前面用“A int:”引导;第三个函数输出一个char字符,前面用“A char:”引导。在主函数中,分别用double,float,int,char和short型变量去调用Display()函数。#includevoid Display(int idata)printf(A int:%dn,idata);void Display(double ddata)printf(A double:%16fn,ddata);void Display(char cdata)printf(A char:%cn,cdata);void main(void)int a=3;double b=3.33;float c=1.2;char d=a;short e=34;Display(a);Display(b);Display(c);Display(d);Display(e);