参考答案和解析
参考答案:D
更多“设int a[10],*p;p=a;则对数组元素正确的引用是()。 ”相关问题
  • 第1题:

    若有下面的程序片段: int[12]={0},*p[3],**pp,i; for(i=0;i<3;i) p[i]=&a[i*4]; pp=p 则对数组元素的错误引用是

    A.pp[0][1]

    B.a[10]

    C.p[3][1]

    D.*(*(p+2)+2)


    正确答案:C
    解析:本题综合考查一维数组和多维数组指针变量的表示方法。在C语言中,引用数组元素的方法有两种,即:下标法和指针法。下标法如a[i]形式;指针法如*(a+i)或*(p+1)。其中a是数组名,p是指向数组的指针变量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意语句中指针型数组的书写格式,不能写成“(*数组名)[长度]”,因为这是定义指向含有“长度”个元素的一维数组的指针变量。例如有定义语句“inta,b,c,c,*P[3]={&a,&b,&c};”,它定义了一个名为p的指针型数组,其3个元素p[0],p[1],p[2]分别指向B个整型变量a,b,c。注意:数组元素的引用方法。

  • 第2题:

    若有下面的程序片段: int[12]={0},*p[3],**pp,i; for(i=0;i<3;i) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引用是


    正确答案:C
    C

  • 第3题:

    有以下语句: int a[5]={0,1,2,3,4,5},i; int *p=a; 设0≤i<5,对a数组元素不正确的引用是()。

    A.*(&a[i])

    B.a[p-a]

    C.*(*(a+i))

    D.p[i]


    1;2;3;4

  • 第4题:

    若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;A.p+5 B.*a+1

    若有下列定义,则对a数组元素地址的正确引用是( )。

    int a[5],*p=a;

    A.p+5

    B.*a+1

    C.&a+1

    D.&a[0]


    正确答案:D
    本题考查数组元素的地址的引用。A中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误(注:数组元素下标从0开始);B中,*a+1指的是将数组a的第一个元素加1;选项C中,不存在这种引用方式;D中,&a[0]引用的是数组的首地址。

  • 第5题:

    假定有语句为"int *p=calloc(10+20,sizeof(int)),则p所指向的动态数组中所包含的元素个数为()。

    A10

    B20

    C30

    D40


    C