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

29-复习题

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

12.8 复习题

复习题的参考答案在附录A中。

1.哪些类别的变量可以成为它所在函数的局部变量?

2.哪些类别的变量在它所在程序的运行期一直存在?

3.哪些类别的变量可以被多个文件使用?哪些类别的变量仅限于在一个文件中使用?

4.块作用域变量具有什么链接属性?

5. extern 关键字有什么用途?

6.考虑下面两行代码,就输出的结果而言有何异同:

int * p1 = (int *)malloc(100 * sizeof(int));
int * p1 = (int *)calloc(100, sizeof(int));

7.下面的变量对哪些函数可见?程序是否有误?

/* 文件 1 */
int daisy;
int main(void)
{
     int lily;
     ...;
}
int petal()
{
     extern int daisy, lily;
     ...;
}
/* 文件 2 */
extern int daisy;
static int lily;
int rose;
int stem()
{
     int rose;
     ...;
}
void root()
{
     ...;
}

8.下面程序会打印什么?

#include <stdio.h>
char color = 'B';
void first(void);
void second(void);
int main(void)
{
     extern char color;
     printf("color in main() is %c\n", color);
     first();
     printf("color in main() is %c\n", color);
     second();
     printf("color in main() is %c\n", color);
     return 0;
}
void first(void)
{
     char color;
     color = 'R';
     printf("color in first() is %c\n", color);
}
void second(void)
{
     color = 'G';
     printf("color in second() is %c\n", color);
}

9.假设文件的开始处有如下声明:

static int plink;
int value_ct(const int arr[], int value, int n);

a.以上声明表明了程序员的什么意图?

b.用 const int valueconst int n 分别替换 int valueint n ,是否对主调程序的值加强保护。