在c语言中函数既可以吗 c语言中可以在函数里定义函数吗

为什么“C语言既可以嵌套定义又可以递归调用”是错的?

C语言可以递归调用,但是(函数)不能嵌套定义。

站在用户的角度思考问题,与客户深入沟通,找到牟平网站设计与牟平网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、申请域名、网页空间、企业邮箱。业务覆盖牟平地区。

例如:

int fact(int n)

{

if (n == 0)

return 1;

else

return n * fact(n - 1);

}

图中的递归调用是允许的。

而:

void foo()

{

void bar()

{

// Some code

}

}

这样在函数内定义函数是不允许的。

不过结构体是可以嵌套定义的,例如:

struct test {

int a;

struct demo {

char b;

};

};

这样在结构体内定义结构体,是可以的。

c语言中的函数可以嵌套调用也可以递归调用,这句话对吗?

这句话是不对的。

嵌套是两种结构间的关系,而不是函数间的关系。递归是一个函数调用自身,可以看作是一个函数调用另一个函数中的较特别的例子。

函数嵌套与递归调用的区别函数嵌套是语言特性,递归调用是逻辑思想。

扩展资料:

函数嵌套函数嵌套允许在一个函数中调用另外一个函数。

递归调用而递归是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作。递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。递归最明显的特点就是,自己调用自己。

函数嵌套就是函数调用函数,是普遍的,递归就是函数调用自身,使函数嵌套的一个特例。嵌套调用就是某个函数调用另外一个函数,递归调用是一个函数直接或间接的调用自己。

1、以下对C语言函数的有关描述中,不正确的描述是: A、C函数既可以嵌套定义又可以递归调用 B、函数必须有

1、ABCD。理由:A、C函数不可以嵌套定义。B、定义成void类型的函数没有返回值。C、不必要放在同一源程序,只要分别编译后连接起来则可。D、参数值可以传回给实参,函数参数的回传是一种技术。

2、如果说“合法”是以能通过编译为标准的话,ABCD都是正确的,其中D涉及到类型转换。

必须注意C代码中的符号都是半角的!

4、ACD都是正确的。数组的最高维数可以省略。显然B违反此规则。A诡异了一点但还是正确的,编译器能正确匹配。

5、CD正确。A类型不匹配。B初始化列表的元素数目超出了定义。

1. 在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )考试求答案

1. 在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。(y)

2. 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。(x)

3. 在对数组全部元素赋初值时,不可以省略行数,但能省略列数。(x)

4. case语句后如没有break,顺序向下执行。(y)

5. 函数的实参可以是常量,变量或表达式。(y)

6. C 语言程序中可以有多个函数 , 但只能有一个主函数。(y)

7. C 语言的应用比较广泛 , 不仅可用来编写应用软件 , 而且可用来编写系统软件。(y)

8. 在c程序中,整型数是能准确表示的,而实型数有时不能准确无误的表示。(x)

9. break语句不能用于循环语句和switch语句之外的任何其他语句中。(y)

10. 内存单元的地址与内存单元中的数据是两个完全相同的概念。(x)

11. do-while循环的while后的分号可以省略。(x)

12. 在 C 程序中,函数既可以嵌套定义,也可以嵌套调用。(x)

14. 在C程序中,APH 和 aph 代表不同的变量。y

15. 表达式 0195 是一个八进制整数。 x

16. 表达式 _ya是不合法的C语言标识符。x

17. C程序总是从main( ) 函数的第一条语句开始执行的。x

18. A-=7等价于a=a-7。x

19. 一个C程序必须有而且只能有一个main函数。y

20. main函数中定义的局部变量可以在其他自定义函数中访问( x )

21. 执行printf("%d",12345);, 输出 12345 。y

22. 一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。y

23. main函数必须写在一个C程序的最前面。x

24. 一个C程序可以包含若干的函数。x

25. C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。x

26. C程序的注释只能是一行。x

27. 在C程序的表达式中,为了明确表达式的运算次序,常使用括号“(y)”。

28. 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。x

29. continue 不是结束本次循环,而是终止整个循环的执行。x

30. 在对数组全部元素赋初值时,不可以省略行数,但能省略列数。x

31. case语句后如没有break,顺序向下执行。y

32. do-while循环至少要执行一次循环语句。y

33. 函数的实参可以是常量,变量或表达式。y

34. break 则是结束整个循环过程,不再判断执行循环的条件是否成立。y

35. C 语言程序中可以有多个函数 , 但只能有一个主函数。y

36. C语言的三种循环不可以互相嵌套。x

37. C 语言的应用比较广泛 , 不仅可用来编写应用软件 , 而且可用来编写系统软件。y

38. 局部变量如果没有指定初值,则其初值为0。x

39. 在C语言中,”A”和’A’是等价的。x

40. 字符串"china"在内存中占据的存储空间是5个字节x

41. 在C程序中,每行只能写一条语句。x

42. 任何复杂的程序都是由顺序结构、选择结构、循环结构这三种结构构成的。x

43. 在c程序中,整型数是能准确表示的,而实型数有时不能准确无误的表示。y

44. C语言认为变量number和NuMbEr是相同的。x

45. break语句不能用于循环语句和switch语句之外的任何其他语句中。y

46. 表达式 4/7 和 4.0/7 的值相等。x

47. int i,*p=i;是正确的C说明。y

48. 函数中有多少个return语句,就能返回多少个值。x


名称栏目:在c语言中函数既可以吗 c语言中可以在函数里定义函数吗
网页地址:http://ybzwz.com/article/ddojhos.html