图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
C语言中所有函数的定义都是平行的,也就是说,不能在函数定义中再定义其他函数。但是C语言允许在函数定义中再调用其他函数(比如说函数a调用函数b,而函数b又调用函数c),这就是函数的嵌套调用。
例5.13 计算22!+32!+42!。
本例可编写两个函数,一个是用来计算平方值的函数f1(),另一个是用来计算阶乘值的函数f2()。
在本程序中,主函数main()先调用f1()函数计算出平方值;再在f1()函数中以平方值为实参,调用f2()函数计算其阶乘值;然后返回f1()函数,再返回主函数。这种函数调用套函数调用的结构如图5.4所示。
(www.chuimin.cn)
图5.4 函数的嵌套调用
函数的嵌套调用使程序形成了一种自顶向下树型结构,如图5.5所示。
图5.5 程序的树型结构
也就是说,C程序总是从main()函数开始执行,在main()函数中往往需要调用其他函数,而这些函数又可以调用另一些函数。通过这样的形式,我们可以用自顶向下,逐步求解的方法编写程序:在顶层只考虑做什么,在需要的地方写一个函数调用,而把函数实现放到。同样在定义一个被调函数时也采用同样的办法,把更细的实现放到更下层的函数中,直到一个函数只完成简单、单一的功能为止。这种结构的程序更易于阅读理解,更容易保证正确性,也更容易维护和修改。一个C语言程序通常不是由少数几个大函数组成,而是由许许多多小函数组成。
有关C语言程序设计 第2版的文章
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
但是允许在一个函数的定义中出现对另一个函数的调用,即函数的嵌套调用。图5.9函数嵌套调用与子程序嵌套类似,是在执行主函数main()中调用函数a()的语句时,转去执行函数a();在函数a()中调用函数b()时,转去执行函数b();在函数b()执行完毕,返回函数a()的继续执行;函数a()执行完毕,返回主函数main()。函数嵌套调用举例。图5.11程序运行结果统计一批数据中大于平均值的数据总数。图5.12程序运行结果......
2023-10-21
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
在C语言中,以函数首部声明函数的形式称为函数原型。使用函数原型是C语言的一个重要特征,主要作用是利用它在程序的编译阶段对调用函数的合法性进行全面检查。......
2023-11-18
在C 语言程序中,是通过对函数的调用来执行函数体,其过程与子程序调用相似。在调用函数时,大多数情况下主调函数和被调函数之间有数据传递。图5.2程序运行结果函数调用在程序中起一个表达式或者语句的作用。在调用函数时,有3 种不同的方式。这就要求该函数必须是有返回值的。getchar 函数调用作为表达式使用,即赋值表达式的右操作。......
2023-10-21
表1.4scanf()附加说明字符注意:“*”符:用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。例1.4输入输出数据类型控制。现将改动程序如下:则运行结果为:input a long integer12345678901234567890当输入数据改为长整型后,输入输出数据相同。......
2023-11-18
一个循环结构的循环体内又包含另外一个完整的循环结构,称为循环的嵌套。循环嵌套层数可以是多层,称为多重循环。在某些具有规律性重复计算的问题中,如果被重复计算部分的某个局部又包含着另外的重复计算问题,就可以通过使用循环的嵌套结构来处理。while和for 3种循环控制结构均可互相嵌套,并且可以多层嵌套以适应不同的应用,下面列出最常见的几种二层循环嵌套结构:多层循环嵌套时,外层循环每执行一次,内层循环就完整执行一遍。......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
相关推荐