第五章单元测试
  1. 假设有下面定义语句:

    float a[10];

    float *p=a;

    则p++相当于是加上()个字节 


  2. A:sizeof(float) B:sizeof(float*) C:1 D:sizeof(a)
    答案:sizeof(float)
  3. 以下哪个定义中的p不是指针,请选择恰当的选项( ):


  4. A:char *p[6]; B:给出的三项中,p都是指针 C:char **p; D:char (*p)[10];
  5. 以下程序的执行结果是( )。

    int main()

    {

      int a, b, k = 4, m = 6, * p1 = &k, * p2= &m;

      a = p1 == &m;

      b = (-*p1)/(*p2) + 7;

      printf("%d, %d", a, b);

      return 0;

    }


  6. A:0, 7 B:1, 5 C:-1, 7 D:0, 5
  7. 下面程序的运行结果是()。

    #include<stdio.h>
    int main(void)
    {  
         int x[5] = { 2, 4, 6, 8, 10 }, *p, **pp;
         p = x;
         pp = &p;
         printf(“%d ”, *(p++));
         printf(”%d”, **pp);
         return 0;
    }



  8. A:4 4 B:4 6 C:2 4 D:
  9. 已有如下代码:

    char a[5],*p=a;

    则下面选项中正确的赋值语句是()


  10. A:p=“abcd” B:a=“abcd” C:*a=“abcd” D:*p=“abcd”
  11. 以下程序的运行结果是()
    #include <stdio.h>
    sub (int x,int y,int *z)
    {
       *z=y-x;

    int main ( )
    {    
       int a,b;
       sub(10,5,&a);
       sub(7,a,&b);   
       printf("%d,%d",a,b);
       return 0;
    }


  12. A:-5, -12 B:5, -2 C:5, 2 D:-5,-2
  13. 如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 () 。

  14. A:m = &n; B:*p = *&n; C: D:m = **p;
  15. 若有定义:int *p[3]; 则以下叙述中正确的是( )。


  16. A:定义了一个名为*p的整型数组,该数组含有三个int类型元素 B:定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C:定义了一个基类型为int的指针变量p,该变量具有三个指针 D:定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
  17. 若已定义int num[10];,则下面表达式中不表示num[1]的地址的是()。


  18. A:&num[0]+1 B:&num[1] C:num+1 D:num++
  19. 对于如下说明,语法和语义都正确的赋值是_____。int c, *s, a[]={1, 3, 5};


  20. A:c=*s; B:s[0]=a[0]; C:c=a; D:s=&a[1];

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