• C Primer+Plus(十二)复习题


    1、哪一类存储类生成的变量对于包含他们的函数来说是局部变量?

    答:自动存储类。

    2、哪一存储类的变量在包含他们的程序运行时期内一直存在?

    答:静态存储类。

    3、哪一存储类的变量可以在多个文件中使用?哪一存储类变量只限于在一个文件中使用?

    答:外部链接的静态存储变量、内部链接的静态存储变量。

    4、代码块作用域变量具有哪种链接?

    答:空链接。

    5、关键字extern的用处?

    答:一种是对外部文件中外部变量的引用声明;另外一种是对同文件中外部链接或内部链接静态变量的引用声明。

    6、考虑如下代码段:

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

    考虑最终结果,下面语句有何不同?

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

    答:均可分配100块int类型大小的内存区,但calloc()函数可初始化0.

    7、下列每个变量对哪些函数可见?程序有什么错误么?

    //文件1
    int daisy;   //对文件1和2中任何函数都可见;
    int main(void)
    {
        int lily; //对本文件中main()可见
        ...
    }
    int petal()
    {
        extern int daisy,lily;   //此句lily定义有问题
        ...
    }
    
    //文件2
    extern int daisy;
    static int lily;         //对文件2可见;是内链接静态变量
    int rose;              //对文件2可见;但是被本文件中stem屏蔽,同时也是外链接静态变量
    int stem()
    {
        int rose;          //对文件2中stem()函数可见
        ...
    }
    void root()
    {...
    }

    8、下面程序会打印出什么?P350

    答:B-R-B-G-G

    9、文件开始处做如下声明:

    static int plink;

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

    a、这些声明表明什么意图?

    b、用const int value和const int n代替int value 和int n会增强对调用程序中值的保护么?

    答:1、变量plink仅限于本文件作为全局变量使用;对于函数value_ct,ar[]数组的值受保护。

    2、不会。被调函数不能改变实际参数的值。而对于第一个参数,因为传递的是数组指针,被调函数可能会改变地址内的值,从而间接改变调用函数中的实际参数地址中的值。

  • 相关阅读:
    程序结束时执行
    Flex动画效果
    Flex_As操作大全
    bat文件格式
    flex builder 1037:包不能嵌套
    JAVA延时
    RMAN备份详解2
    linux系统监控示例:vmstat
    RMAN还原与恢复2(RMAN Incomplete Recovery)
    Oracle有效地使用块(1)
  • 原文地址:https://www.cnblogs.com/tsembrace/p/3147408.html
Copyright © 2020-2023  润新知