为什么“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://scgulin.cn/article/ddojhos.html