第六章 小模块大作用-函数:学习 C 语言有一个知识点是必须要学的,那就是函数,这个知识点是 C 语言的主体和核心。可以说,C 程序的全部工作都是由各式各样的函数完成的。不会写函数,就无从谈写C程序。由此可见,学习函数的重要性,所以初学者一定要好好学。函数的好处有什么呢?1、方便代码重用。这样可以解决大量同类型的问题,避免重复性操作。2、方便代码的维护。哪个功能出问题了,或者需要修改某个功能,那就只需要修改某个功能的函数就可以了。面向过程语言最基本的单位不是语句,而是函数。本章我们主要学习函数的相关知识。6.1函数小常识:第一,函数就是 C 语言的模块,一块一块的,有较强的独立性,可以相互调用,换句话说,C 语言中,一个函数里面可以调用 n 个函数,即大函数调用小函数,小函数又调用“小小”函数。这就是结构化程序设计,所以面向过程的语言又叫结构化语言。第二,函数就是一系列 C 语句的集合,能完成某个特定的功能。需要该功能的时候直接调用该函数即可,不用每次都堆叠代码。需要修改该功能时,也只需要修改和维护这一个函数即可。
6.2嵌套和递归:在 C 语言中,所有函数的定义,包括主函数 main 在内,都是“平行”的。也就是说,在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。但是函数之间允许相互调用,也允许嵌套调用。习惯上将调用者称为主调函数,被调用者称为被调函数。函数还可以自己调用自己,称为递归调用。此外,main 函数是主函数,它可以调用其他函数,但不允许被其他函数调用。C 程序的执行总是从 main 函数开始的(也是由 main 结束的),就算定义的函数放在 main 的前面,程序仍然从 main 开始执行。如果执行到函数调用则执行被调用的函数,完成函数调用后再返回到 main 函数继续往下执行,最后由 main 函数结束整个程序。一个 C 语言程序必须有且仅有一个主函数 main。
6.3函数的左膀-数组参数:一个函数的形参是普通的局部变量。当发生函数调用时,程序创建这些形参,然后用对应的实参来初始化这些形参。形参的作用域就是函数块。函数内可以改变形参的值,而不会影响调用上下文中实参的值。数组元素的作用与变量相当,一般来说,变量可以出现的地方,都可以用数组元素代替。除了用数组元素作为函数参数外,还可以用数组名作为函数参数(包括实参和形参)。本节主要学习数组作参数的相关知识。
6.4函数的右臂-变量:形参变量要等到函数被调用时才分配内存,调用结束后立即释放内存。这说明形参变量的作用域非常有限,只能在函数内部使用,离开该函数就无效了。所谓作用域,就是变量的有效范围。不仅对于形参变量,C语言中所有的变量都有自己的作用域。决定变量作用域的是变量的定义位置。本节主要介绍局部变量和全局变量的相关知识。
6.5内部函数和外部函数:变量有作用域,有局部变量和全局变量之分,那么函数有没有类似问题呢?函数也由此类问题,有的函数可以在本文件中使用,也可以在其他文件中使用,而有的函数只能在本文件中使用,不能被其他文件使用。根据函数能否被其他源文件使用,将函数分为内部函数和外部函数。本节主要介绍内部函数和外部函数的定义和调用方法等知识点。
[单选题]以下函数f()的返回值的类型是blob.png/

选项:[单精度型, 整型, 空类型, 双精度型]
[单选题]函数和变量的定义如下:blob.png/则正确的函数调用语句是

选项:[blob.png/, blob.png/, blob.png/, blob.png/]
[单选题]若用数组名作为函数实参,则传递给形参的是

选项:[数组的首地址, 数组全部元素的值, 数组元素的个数, 数组第一个元素的值]
[单选题]以下对函数形参的说明,有语法错误的是

选项:[blob.png/, blob.png/, blob.png/, blob.png/]
[单选题]以下程序有语法错误,有关错误原因的正确说法是blob.png/

选项:[语句void f_c( );是函数调用语句,不能用void说明, 变量名不能使用大写字母, 函数声明和函数调用语句之间有矛盾, 函数名不能使用下画线]
[单选题]以下关于函数的叙述中正确的是

选项:[函数定义不能嵌套,但函数调用可以嵌套, 函数定义与调用都能嵌套, 函数定义可以嵌套,但函数调用不能嵌套, 函数定义与调用都不能嵌套]
[单选题]下列程序的运行结果是:

fun(int x)

{ int p;

if(x==0||x==1)  return(3);

p=x-fun(x-2);

  return  p;

}

 main()

{  printf(“%d”,fun(9));

}

选项:[2, 0, 3, 7]
[单选题]下列程序的运行结果是blob.png/

选项:[11 31, 11,31, 9 49, 9,49]
[单选题]语言程序中函数如果没有返回值,则定义时该函数的返回值类型设为

选项:[double, float, void, int]
[单选题]关于函数声明,不正确的说法是

选项:[标准库函数只需要包含相应的头文件即可,不需要再进行函数声明, 如果函数定义出现在函数调用之前,则可以省略函数声明, 自定义函数在调用之前,必须进行函数声明,否则编译会出错, 如果调用之前已在主调函数外部进行了函数声明,则调用时不必再作函数声明]
[单选题]下列程序的运行结果是blob.png/

选项:[9,4, 8,4, 8,5, 9,6]
[单选题]下列程序的运行结果是blob.png/

选项:[blob.png/, blob.png/, blob.png/, blob.png/]
[单选题]在一个源程序文件中定义的全局变量,其默认的有效范围是

选项:[本源程序文件的全部范围, 从定义变量的位置开始到源程序文件结束, 所有源程序文件, 在整个main()函数内]
[单选题]未指定存储类别的局部变量,其存储类别默认是

选项:[static, auto, extern, register]
[单选题]以下叙述中不正确的是

选项:[在不同函数中可以使用相同的变量名, 在函数内复合语句中定义的变量在本函数内有效, 在函数内定义的变量只在本函数内有效, 形式参数是局部变量]
[单选题]以下关于return语句的叙述中,正确的是

选项:[没有returm语句的自定义函数在执行结束后不能返回到调用处, 一个自定义函数中可以根据需要设置多条return语句, 定义成void类型的函数中可以有带返回值的return语句, 一个自定义函数中必须有一条retun语句]
[单选题]关于函数调用,下面叙述中正确的是

选项:[函数的实参和对应的形参共占同一存储单元, 形参只是形式上的参数,不占用具体存储单元, 函数的实参和对应的形参,如果名称相同,则它们共占同一存储单元, 调用函数时,实参可以是表达式]
[单选题]如果实参为变量,则它与形参之间的数据传递方式是

选项:[实参值传给形参,形参值再传回给实参, 地址传递, 从实参到形参的单向值传递, 由用户指定传递方式]

温馨提示支付 ¥1.00 元后可查看付费内容,请先翻页预览!
点赞(0) dxwkbang
返回
顶部