函数是C源码程序中最基本的功能单位,是一个可以从程序其它地方调用执行的语句块
C语言是一种结构化程序设计语言,结构化程序设计思想是“分解”大问题,依次解决小问题,通过小问题解决实现大问题的解决,描述“小问题”解决方法的工具即是函数。
函数的定义格式如下:
type name ( argument1, argument2, ) statement 说明:
type
是函数返回的数据的类型
name
是函数被调用时使用的名
argument
是函数调用需要传入的参量(可以声明任意多个参量)。每个参量(argument)由一个数据类型后面跟一个标识名称组成,就像变量声明中一样(例如,int
x)。参量仅在函数范围内有效,可以和函数中的其它变量一样使用,
它们使得函数在被调用时可以传入参数,不同的参数用逗号(comma)隔开
statement
是函数的内容。它可以是一句指令,也可以是一组指令组成的语句块。如果是一组指令,则语句块必须用花括号{}括起来,这也是我们最常见到情况。其实为了使程序的格式更加统一清晰,建议在仅有一条指令的时候也使用花括号,这是一个良好的编程习惯。
简述C语言函数的重要性
1用C语言中的函数作为参照,有助于区分面向过程与面向对象两种重要的编程思想,C语言中的基本单位是函数,Java,C++,C#中的基本单位是类。
2简述为什么需要函数
1>避免了重复性 *** 作
在很多地方,虽然针对的数据不一样,但是 *** 作都是一样的
2>有助于程序的模块化
所谓的模块化思想就是自上而下,逐步求精,将大问题分解成小问题进行解决
3简述编译器是如何识别函数的
当编译器遇到一个字符串,并且字符串后面跟着一个括号的时候,编译器通常会将这个字符串当做函数来进行处理
4简述逗号表达式是如何执行的
在逗号表达式中先执行第一个式子,表达式整体的数值是最后一个式子的数值
5简述什么叫做函数
逻辑上:能够完成特定功能的独立的代码块
物理上:能够接受数据[也可以不接受数据]
能够对接受的数据进行处理[不处理的话就没有什么意义了]
能够将数据处理的结果返回[亦可以不返回任何值]
综上:函数是个工具,它是为了解决大量类似问题而设计的,函数可以当做一个黑匣子,其内部的原理不用知道
6简述如何定义函数以及函数定义的本质
函数的返回值函数的名字(形式参数)
{
函数的执行体;
Return10;
}
函数定义的本质:详细描述函数之所以能够实现某个特定功能的具体方法
函数中的变量叫做形式参数,数组的变量叫做元素
7简述return和break的具体用法
return表达式;
return是用来终止被调函数,同时向调用函数的地方返回一个数值;如果表达式为空,则只用来终止被调函数,不向调用函数的地方返回任何数值
return与函数是匹配的,用来终止所在的函数
break是用来终止距离它最近的且包裹它的循环(forwhile)和switch语句的
功效:return>break>continue
8简述函数返回值的类型
函数返回值的类型,也称为函数的类型,即函数的返回值以函数名前的数值类型为准
9如何在软件开发中合理的设计函数来解决实际问题
要求函数的功能尽量独立,单一,同时还要考虑安全因素
10简述函数的分类以及注意事项
1>有参函数和无参函数
2>有返回值和无返回值
3>系统函数和用户自定义函数
4>主函数和普通函数
5>值传递函数和地址传递函数
一个程序必须有且只能有一个主函数
Main函数既是程序的入口,也是程序的出口
主函数可以调用普通函数,但是普通函数不能调用主函数
普通函数之间可以相互调用
11简述C语言当中bool的数据类型
c语言当中bool类型是一个数据类型,分为真与假两种结果,true与false是c语言当中中的两个关键字
12简述函数voidf(void)中两个void的含义
第一个void表示函数没有返回值,第二个void表示函数不接受形式参数,也就是不接受任何数据
13简述函数前置声明的作用
如果函数的调用写在了函数定义的前面,则必须加函数前置声明
函数前置声明的作用是:
1>告诉编译器即将可能出现的若干个字母代表的是一个函数,同时传达出函数的返回值以及形式参数等具体信息
2>函数的前置声明是一个语句,所以必须在函数声明的末尾加一个分号
3>对库函数即系统函数的声明是通过#include<库函数所在的文件的名字h>来实现的,printf()函数之所以不用声明是因为前置声明已经放在了头文件里面了
14简述形式参数与实际参数的关系
要求:个数相同位置一一对应数据类型必须相互兼容
形式参数与实际参数永远是不同的局部变量,所以形式参数的改变并不会影响实际参数,如果想改变实际参数的数值,必须发送实际参数的地址
15简述素数的判断中两个函数的功能
第一个函数的作用是:判断数字m是否是素数,是返回true,不是返回false
第二个函数的作用是:将1到n之间所有的素数在显示器上输出
16C语言中的函数如何进一步掌握
1>进一步学习数据结构加深理解
2>学习一门面向对象语言进行函数的对比
函数原型申明就是在main函数前面需要申明一下,否则main函数调用这个函数时会找不到,原型申明可以不定义具体的函数体,然后可以把函数体的具体部分放在main函数后面再来单独定义,这样程序整体上更整洁,要不然自定义函数都在main函数的前面就定义了,那代码一多还得找主函数。
函数调用是指:简单来讲,假如小明是班长,小红是本班的生活委员,小明要想收班费,但每个人都有不同的职责,而班长是用来组织和统筹工作的,而作为生活委员的小红的职责之一就是收取和管理班费,所以这样的话,小明只需让小红去做就行,也就是说只需发出指令给小红就可以了,而小红就是执行这项活动的承担者;在这里小红就相当于被调用函数,小明是调用函数。
函数调用总共有三种方式:
1 函数表达式:
1函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。
2 函数语句:
函数调用的一般形式加上分号即构成函数语句。例如: printf ("%d",a);scanf ("%d",&b);都是以函数语句的方式调用函数。
3 函数实参:
函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。例如: printf("%d",max(x,y)); 即是把max调用的返回值又作为printf函数的实参来使用的。在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指对实参表中各量是自左至右使用呢,还是自右至左使用。对此,各系统的规定不一定相同。
注意的是:1假如在你的那句调用语句开始,例如:
#include<stdioh>
int max(int x,int y){
if(x>y||x=y)
return x;
else
return y;
}
void main(){
int a,b;
scanf("%d%d",&a,&b) ;
printf("%d",max(a,b));
printf("程序结束\n");
}
在这个函数中,我们是在main()函数中用函数实参进行调用的,这样的话。main()函数是一个程序的入口, 在执行 printf("%d",max(a,b)); 这条语句的max(a,b)时候,开始转到max(int,int)函数中执行,执行完后在回到printf("%d",max(a,b)); 进行输出a,b中的最大值,然后再接着执行main()函数的剩下语句 printf("程序结束\n");推出程序。但我们调用的时候,main()函数(即调用函数)需要给被调用函数提供必要的具体数据,即x,y的值。所以表达式max(a,b)即把a的值赋给x,b的值赋值给y;如此执行下去。
即若输入 3 4
程序结果为: 4 程序结束
2还是上面的那个例子,若int max(int x,int y)在main()函数的下面,要调用的话,就需要在main()函数之前进行声明,声明格式为: 函数返回值类型 函数名 (形参类型1 形参名1,形参类型2 形参名2);其中分号不可少,形参名可以省去,但是形参类型和返回值类型均不可省!!!如下所示:
#include<stdioh>
int max(int x,int y); //函数声明1
或者int max(int ,int ); //函数声明2
void main(){
或者 int max(int x,int y); //函数声明3
或者int max(int ,int ); //函数声明4
int a,b;
scanf("%d%d",&a,&b) ;
printf("%d",max(a,b));
printf("程序结束\n");
}
int max(int x,int y){
if(x>y||x=y)
return x;
else
return y;
}
函数声明的作用是让调用函数认识被调用函数,这样才可以想被调用函数发送指令!
至于为什么用调用这个名字,个人觉得这个是因为很贴切吧,便于理解!!!
你明白了吗?不明白可以追问哦!希望采纳哦!
virtual 关键字是将函数声明为虚函数,定义他为虚函数是为了允许用基类的指针来调用子类的这个函数
override关键字是将函数声明为重载的函数
这段代码的结果是"other vshow"
SomeClass someObj = (SomeClass)otherObj;//这一句是将子类的指针强转为基类指针
someObjvshow();//虽然说用基类指针调用了vshow函数,但却执行了子类的vshow函数,这就virtual 关键字的作用,这就是虚函数的多态;
在代码工程不大时,可以不用函数声明, 只要确保 定义的函数 在调用函数(main等)之前即可; 代码工程规模大时,需要组织好,将函数声明放在头文件中,其他源文件包含该头文件 即可调用对应的函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)