当前位置:嗨网首页>书籍在线阅读

13-第12章复习题答案

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

A.12 第12章复习题答案

1.自动存储类别;寄存器存储类别;静态、无链接存储类别。

2.静态、无链接存储类别;静态、内部链接存储类别;静态、外部链接存储类别。

3.静态、外部链接存储类别可以被多个文件使用。静态、内部链接存储类别只能在一个文件中使用。

4.无链接。

5.关键字 extern 用于声明中,表明该变量或函数已定义在别处。

6.两者都分配了一个内含 100int 类型值的数组。第 2 行代码使用 calloc() 把数组中的每个元素都设置为 0

7.默认情况下, daisy 只对 main() 可见,以 extern 声明的 daisy 才对 petal()stem()root() 可见。文件 2 中的 extern int daisy; 声明使得 daisy 对文件 2 中的所有函数都可见。第 1lilymain() 的局部变量。 petal() 函数中引用的 lily 是错误的,因为两个文件中都没有外部链接的 lily 。虽然文件 2 中有一个静态的 lily ,但是它只对文件 2 可见。第 1 个外部 roseroot() 函数可见,但是 stem() 中的局部 rose 覆盖了外部的 rose

8.下面是程序的输出:

color in main() is B
color in first() is R
color in main() is B
color in second() is G
color in main() is G

first() 函数没有使用 color 变量,但是 second() 函数使用了。

9.a.声明告诉我们,程序将使用一个变量 plink ,该文件包含的函数都可以使用这个变量。 calu_ct() 函数的第 1 个参数是指向一个整数的指针,并假定它指向内含 n 个元素的数组。这里关键是要理解该程序不允许使用指针 arr 修改原始数组中的值。

b.不会。 valuen 已经是原始数据的备份,所以该函数无法更改主调函数中相应的值。这些声明的作用是防止函数修改 valuen 的值。例如,如果用 const 限定 n ,就不能使用 n++ 表达式。