第九章单元测试
  1. 下面四段程序中,能正确输出变量a的值的是( )。

  2. A:int a=1, *p; *p=&a; printf("%d",*p);
    B:int a=1,*p; *p=a; printf("%d",*p);
    C:int a=1,*p=a; printf("%d",*p);
    D:int a=1, *p=&a; printf("%d",*p);

    答案:int a=1, *p=&a; printf("%d",*p);

  3. 关于指针和指针变量,下面说法正确的是( )。

  4. A:指针和指针变量是同一个东西
    B:指针和指针变量各自有各自的范畴,互相之间没有关系
    C:指针变量的范畴包含着指针的范畴
    D:指针的范畴包含着指针变量的范畴
  5. 关于直接寻址和间接寻址,下面说法错误的是( )。

  6. A:直接寻址比间接寻址直观
    B:直接寻址不需要指针
    C:间接寻址必须用指针
    D:间接寻址比直接寻址高效
  7. 关于指针变量的属性以及它是否占用内存空间,下面说法正确的是( )。

  8. A:指针变量的值是一个整数
    B:指针变量既有值,又有地址
    C:char *型的指针变量,占1字节的内存空间
    D:指针变量不占内存空间
  9. 要定义两个指针变量,下面代码正确的是( )。

  10. A:int *p1, int *p2;
    B:int *p1,*p2;
    C:int* p1,p2;
    D:int *(p1,p2);
  11. 若有定义:
    int *p;
    则以下说法正确的是( )。

  12. A:变量类型是int
    B:变量名是p
    C:变量名是*p
    D:变量的基类型是int*
  13. 关于指针变量指向哪里,下面说法正确的是( )。

  14. A:若定义指针变量(局部自动型)但是不赋值,则它指向内存0单元处
    B:若定义指针变量并且赋值为NULL,表示它指向内存0单元处的对象
    C:若定义指针变量(局部自动型)但是不赋值,则它不指向任何对象
    D:若定义指针变量并且赋值为NULL,表示它不指向任何实际对象
  15. 若有定义
    int x,*p;
    则能使p指向x的表达式是( )。

  16. A:p=*x
    B:p=&x
    C:*p=x
    D:p=x
  17. 若有定义:
    int *p, a=1, b;
    则以下正确的程序段是( )。

  18. A:p=&b; scanf("%d",&p);
    B:p=&b; scanf("%d",p);
    C:p=&b; scanf("%d",*p);
    D:scanf("%d", &b); *p=b;
  19. 若有定义:
    int a=511, *b=&a;
    则printf("%d\n", *b)的输出结果为( )。

  20. A:511
    B:不确定值
    C:b的地址
    D:a的地址

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(2) dxwkbang
返回
顶部