文章教程

全国计算机等级考试二级C语言8.2函数定义的一般形式

8/22/2020 10:24:52 PM 人评论 次浏览

8.2 函数定义的一般形式

考点2 函数的定义

真考链接

考点2主要以选择题的形式出现,要求选择函数的正确定义。此知识点属于重点识记内容,其在选择题中的考核概率为10%。在操作题中,一般会在修改题中进行考查。比如要求改正函数定义错误的方法,使函数通过编译、连接和运行,考核概率为50%。

C语言中函数定义的一般形式如下:

函数返回值的类型名:

函数名(类型名形式参数1,类型名形式参数2,……)

说明部分;

语句部分;

}

说明:函数名和各个形式参数都是由用户命名的合法标识符,与普通变量名的定义规则相同。在同一程序中,函数名必须唯一,不能出现重名的情况。形式参数名只要在同一函数中唯一即可,由于形式参数的作用域不同,因此形式参数名可以与其他函数中的变量名同名。

(1)定义时若在函数的首部省略了函数返回值的类型名,可以把函数首部写成:

函数名(类型名 形式参数1,类型名 形式参数2,……,类型名 形式参数n

(2)紧跟在函数名之后的圆括号中的内容是形式参数和类型说明表,在每个形参之前都要有类型名,以标识形式参数的类型。各定义的形参之间用逗号分隔。

例如,求两整数和的函数:

int add(int a,int b)

{ int t;/* 函数体中声明部分 */

t=a+b;

return t;

若所定义的函数没有形参,函数名后的一对圆括号依然不能省略。本例中函数体中的语句是用来完成求和的功能。在某些情况下,函数体可以是空的,例如:

fun()

{}

该函数中没有任何语句,即没有任何实际作用。之所以要在主调函数上这样写,是为了表明此处要调用一个函数,而现在这个函数的具体功能可能还没有设计好,不起作用,等以后扩充函数功能时补上即可。

(3)在函数体中,除形参外,用到的其他变量必须在说明部分进行定义,这些变量(包括形参)只在函数被调用时才被临时分配内存单元,当退出函数时,这些临时开辟的存储单元全部被释放掉,即在该函数体内部定义的变量都将不存在。因此,这些变量只在函数体内部起作用,与其他函数体的内部变量不相关。

小提示

C语言规定,不能在一个函数内部再定义函数,也就是说函数不能嵌套定义。

常见问题

在函数的定义中,对形式参数有什么具体的要求?

形式参数名只要在同一函数中唯一即可,由于形式参数的作用域不同,因此形式参数名可以与其他函数中的变量同名。

真题精选

【例1】以下函数

fff(float x)

{ printf("% d\n",x*x);}

的类型是( )。

A.与参数x的类型相同    B.void类型

C.int类型    D.无法确定

【答案】C

【解析】在函数的首部(第一行),函数名(在此是fff)的前面应当是一个类型名,此类型名规定了函数返回值的类型;此类型名可以省略,这时C默认函数返回值的类型为int,因此本题的答案应当是C。读者应当记住:当定义函数时,函数名前缺类型名时,函数返回值的类型应为int。

【例2】下列给定程序中,函数fun()的功能是进行数字字符转换。若形参ch中是数字字符‘0’ ~‘9’,则将‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,…,‘9’转换成‘0’;若是其他字符则保持不变,并将转换后的结果作为函数值返回。

请在标号处填入正确的内容,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构。

试题程序

#include <stdio.h>

【1】fun(char ch)

{ if(ch> = '0'&&【2】)

return '9'-(ch-【3】);

return ch;

main()

{ char c1,c2;

printf("\nThe result:\n");

c1= '2';c2 = fun(c1);

printf("c1=% cc2=% c\n",c1,c2);

c1= '8';c2 = fun(c1);

printf("c1=% cc2 =% c\n",c1,c2);c1= 'a';c2 = fun(c1);

printf("c1=% cc2=% c\n",c1,c2);

【答案】【1】char 【2】ch<='9' 【3】 '0

【解析】本题考查:函数定义,注意函数定义的一般形式以及有参函数和无参函数的区别;if语句条件表达式,本题的条件表达式是判断数字字符;函数返回值,其一般形式为“return 表达式;”。

标号【1】:函数定义时,类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型,所以此处应该填入char。

标号【2】:通过if条件语句判断字符串中字符是否是数字字符,即大于等于字符'0',同时小于等于字符'9'。

标号【3】:return语句完成函数返回操作,要实现字符转换,完整语句为return '9'-(ch-'0');

教程类别