十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C源程序是由函数组成的。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的仙居网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
C程序是由一组或是变量或是函数的外部对象组的。 函数是一个自我包含的完成一定相关功能的执行代码段。
从函数定义的角度看,函数可分为库函数和用户定义函数两种。
1)库函数
由C系统提供,用户无须定义, 也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。在前面各章的例题中反复用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函数均属此类。
(2)用户定义函数
由用户按需要写的函数。对于用户自定义函数, 不仅要在程序中定义函数本身, 而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。
2. C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。
(1)有返回值函数
此类函数被调用执行完后将向调用者返回一个执行结果, 称为函数返回值。如数学函数即属于此类函数。 由用户定义的这种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。
(2)无返回值函数
此类函数用于完成某项特定的处理任务, 执行完成后不向调用者返回函数值。这类函数类似于其它语言的过程。 由于函数无须返回值,用户在定义此类函数时可指定它的返回为“空类型”, 空类型的说明符为“void”。
3. 从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。
(1)无参函数
函数定义、函数说明及函数调用中均不带参数。 主调函数和被调函数之间不进行参数传送。 此类函数通常用来完成一组指定的功能,可以返回或不返回函数值。
(2)有参函数
也称为带参函数。在函数定义及函数说明时都有参数, 称为形式参数(简称为形参)。在函数调用时也必须给出参数, 称为实际参数(简称为实参)。 进行函数调用时,主调函数将把实参的值传送给形参,供被调函数使用。
4. C语言提供了极为丰富的库函数, 这些库函数又可从功能角度作以下分类。
(1)字符类型分类函数
用于对字符按ASCII码分类:字母,数字,控制字符,分隔符,大小写字母等。
(2)转换函数
用于字符或字符串的转换;在字符量和各类数字量 (整型, 实型等)之间进行转换;在大、小写之间进行转换。
(3)目录路径函数
用于文件目录和路径操作。
(4)诊断函数
用于内部错误检测。
(5)图形函数
用于屏幕管理和各种图形功能。
(6)输入输出函数
用于完成输入输出功能。
(7)接口函数
用于与DOS,BIOS和硬件的接口。
(8)字符串函数
用于字符串操作和处理。
(9)内存管理函数
用于内存管理。
(10)数学函数
用于数学函数计算。
(11)日期和时间函数
用于日期,时间转换操作。
(12)进程控制函数
用于进程管理和控制。
(13)其它函数
用于其它各种功能。
函数可以避免重复的书写。比如一个运算要在不同的地方多次进行,就不必把这么多行都写一遍,调用一个函数就行了。同时减少不必要的变量。从而使程序大大简化。
库函数就比较高深了,它的好处我现在还没有切实体会到。
标准ANSI/ISO C不允许函数的嵌套定义。某些方言如GNU C允许函数的嵌套定义,并有限地支持闭包。学习C语言应以标准C为准,所以,C正确。fun((2,3), (4,5+6,7))含有2个参数,每个参数均为一个逗号表达式,值分别为3和7,相当于fun(3, 7)。所以,B正确。
1iscore是整数数组,iscore[10]是一个整数,并且这个整数已经超出了数组定义时的内存范围;average( )函数的参数为数组,你提供个整数当参数当然不对
2average函数,不论是从函数类型,到内部实现,计算的平均数都是整型,所以输出就没小数了。
average函数 改为 float 型,average函数和main函数中的iresult 改为 float 型;
main中 printf("%d",iresult); %d改为%f
正确答案是A.
B选项。不能嵌套定义。C选项,函数可以没有返回值。D选项,没有必要放在同一个c文件中,用其他c文件的函数可以给其定义的地方函数名前面加extern修饰。
A:不可以嵌套定义,可以递归调用
B:不一定有函数值,像void类型。
C:可以放在多个文件中,包含相应的头文件,就像库函数的调用,包含相应的头文件即可。
D:这个正确,函数值传递,是单向传递。
所以ABC
C正确
A.函数可以没有返回值,如:
void Show(int x)
{
printf("%d\n",x);
}
这个函数的功能仅仅是将传入的x输出到控制台,它没有返回值,但是可用。
B.函数可以嵌套调用,但不可以嵌套定义。标准C语言不支持嵌套定义,但是有编译器是支持的,如gcc,下面这个程序在gcc编译和运行是没有任何问题的,在VC6.0中编译不过,本题中指的应该是标准C语言。
#includestdlib.h
#includestdio.h
int main()
{
void f(int i)//嵌套定义函数体
{
printf("%d\n",i);
}
int i=1;
f(i);
i=2;
f(i);
return 0;
}
C,对。函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,如想实参的值也改变就必须传入指针。
D.main函数也是一个函数,将它看成普通的函数就可以了,它可以放在任何的位置,只是C语言是以main为入口的,那么在执行main函数时,在它(main)的前面就必须要有其他函数的声明或者定义。如下面例子的两种形式都是正确的。
形式1,其它函数的定义放在main函数前。
#includestdio.h
void Show(int x) //函数定义
{
printf("%d\n",x);
}
void main()
{
int x = 0;
Show(0);
}
形式2,其他函数定义放在main函数后。
#includestdio.h
void Show(int x);//函数声明
void main()
{
int x = 0;
Show(0);
}
void Show(int x) //函数定义
{
printf("%d\n",x);
}