itgle.com

若有定义: int *p[4];,则标识符p______。A.是一个指向整型变量的指针B.是一个指针数组名C.是一个指针,指向一个含有4个整型元素的一维数组D.说明不合法

题目

若有定义: int *p[4];,则标识符p______。

A.是一个指向整型变量的指针

B.是一个指针数组名

C.是一个指针,指向一个含有4个整型元素的一维数组

D.说明不合法


相似考题
更多“若有定义: int *p[4];,则标识符p______。”相关问题
  • 第1题:

    若有定义int a[9],+P=a;,则P+5表示( )。A.数组元素a[5]的值B.数组元素a[5]的地址SXB

    若有定义int a[9],+P=a;,则P+5表示( )。

    A.数组元素a[5]的值

    B.数组元素a[5]的地址

    C.数组元素a[6]的地址

    D.数组元素a[0]的值加上5


    正确答案:B
    本题考查了通过指针来引用一维数组元素的方法。题中*P=a;这一赋值语句是指针P指向了数组a的首地址,P+5是指针P向后移动了5个int类型的存储单元,所以P+5指向了数组元素a[5]。

  • 第2题:

    若有定义:int (*p)[4]; 则标识符 p( ) 。

    A. 是一个指向整型变量的指针

    B. 是一个指针数组名

    C. 是一个指针,它指向一个含有四个整型元素的一维数组

    D. 定义不合法


    正确答案:C

  • 第3题:

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

    int a[5],*p=a;

    A)*&a[5]

    B)*a 1

    C)*(p 5)

    D)*(a 2)


    正确答案:D
    本题考查通过指针引用数组元素。选项A)、B),没有这种引用形式;选项c),*(p 5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D),*(a 2)引用数组的第3个元素。

  • 第4题:

    若有以下定义和语句:includeinta=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则

    若有以下定义和语句: #include<stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是( )。

    A.*q=0;

    B.w=p;

    C.*p=a;

    D.*p=*w;


    正确答案:A
    解析:本题中定义了3个指向整型的指针变量p、q、w,并让p指向a,让q指向b,通过将q的值赋给w,使w也指向b,最后将q指向NULL。因为q指向NULL,所以选项A中对q所指地址进行写入是非法的。故A选项为所选。

  • 第5题:

    若有以下结构类型说明和变量定义,则变量a在内存中所占字节数是struct stud{ char num[6]; int s[4]; double ave;}a,*p;


    正确答案:22
    对于结构stud来说,char  num[6];占6个字节;int s[4];占2´4 = 8个字节;double ave;占8个字节;所以a占的字节数为6+8+8=22个字节。

  • 第6题:

    若有下列定义,则对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],所以引用错误;选项B)中,*a+1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。

  • 第7题:

    若有定义语句:"int a[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是( )。

    A.D=a

    B.q[i]=a[i]

    C.p=a[l]

    D.P=&a[2][1]


    正确答案:A
    数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

  • 第8题:

    若有下列定义,则对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]引用的是数组的首地址。

  • 第9题:

    若有如下定义:  struct sk{      int a;  int b;  }data,*p=&data;  则对data中的成员x的正确引用的是()。 

    • A、(*p).a
    • B、(*p).data.a
    • C、p->data.a
    • D、p.data.a

    正确答案:A

  • 第10题:

    若有定义:int *p,a=4;p=&a;则以下均代表地址的是()

    • A、a,p
    • B、&a,p
    • C、&a,*p
    • D、a,*p

    正确答案:B

  • 第11题:

    若有定义:int a[10],*p=a;则表示数组元素a[3]的错误选项是()。

    • A、*(a+=3)
    • B、*(p+=3)
    • C、*(a+3)
    • D、p[3]

    正确答案:A

  • 第12题:

    填空题
    若有定义:int a[ ]={2,4,6,8,10,12},*p=a; ;则*(p+1)的值是()

    正确答案: 4
    解析: 暂无解析

  • 第13题:

    若有定义语句:int a[4][10],* P,* q[4];且0<=i<4,则错误的赋值是( )。

    A.P=a

    B.q[i]=a[i]

    C.p=a[i]

    D.p=&a[2][1]


    正确答案:A
    二维数组名是指向指针的指针,所以a和q都为指向指针的指针,而P为指向int类型的指针。所以选项A)是将一个指向int类型的指针用来指向一个指针的指针,显然是错误的。其他几个选项都是正确的赋值,其中选项D)是用&返回整数的地址,然后赋值给P。

  • 第14题:

    若有定义,inta=5;则int*p=&a;表示在对P进行说明的同时进行初始化,使p指向a。

    此题为判断题(对,错)。


    正确答案:√

  • 第15题:

    若有定义语句:int u[4][10],*P,*q[4];且0≤i<4,则错误的赋值是

    A.p=a

    B.q[i]=a[i]

    C.p=a[i]

    D.p=&a[2][1]


    正确答案:A
    解析:直接将二维数组a赋给p不合法,两者类型不匹配。

  • 第16题:

    若有定义int a[5],*p=a;则正确引用数组元素的是( )。

    A.*&a[5]

    B.*a+2

    C.*(p+5)

    D.*(a+2)


    正确答案:D

  • 第17题:

    若有以下定义,则对数组元素的正确引用是( )。 int a[5],*p=a;

    A.*&a[5]

    B.(*A)2

    C.*p+4

    D.(a+2)


    正确答案:D

  • 第18题:

    若有以下定义和语句,且0<=I<10,则对数组元素的错误引用是 ( )

    int a [ ]={1,2,3,4,5,6,7,8,9,0};

    int*p,I

    p=a;

    A.* (a+I)

    B.a[p-a]

    C.p+I

    D.* (&a[I])


    正确答案:C

  • 第19题:

    若有以下的定义, int a[ ]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是 ______。

    A.p+=2,*(p++)

    B.p+=2,*++p

    C.p+=3,*p++

    D.p+=2,++*p


    正确答案:A

  • 第20题:

    若有定义:int a[ ]={2,4,6,8,10,12},*p=a; ;则*(p+1)的值是()


    正确答案:4

  • 第21题:

    若有以下的定义:int a[]= {1,2,3,4}.*p=a;则值为3的表式是()

    • A、p+=2,*(p++)
    • B、p+=2.*++p
    • C、p+=3,*kp++
    • D、*p+=2

    正确答案:A

  • 第22题:

    设有C语句int a[3][4];, 则每次移动过a数组一行元素的指针变量定义形式是()

    • A、int *p;
    • B、int **p;
    • C、int(*p)[4];
    • D、int *p[4];

    正确答案:C

  • 第23题:

    单选题
    若有定义:int *p,a=4;p=&a;则以下均代表地址的是()
    A

    a,p

    B

    &a,p

    C

    &a,*p

    D

    a,*p


    正确答案: B
    解析: 暂无解析

  • 第24题:

    单选题
    若有定义语句:int a[4][10],*P,*q[4];且0≤i<4,则错误的赋值是(  )。
    A

    p=a

    B

    q[i]=a[i]

    C

    p=a[i]

    D

    p=&a[2][1]


    正确答案: C
    解析:
    二维数组名是指向指针的指针,所以a和q都为指向指针的指针,而p为指向int类型的指针,p和a不同类型,故A选项中p=a赋值语句错误。其余选项可以正确赋值,其中D项是用取地址符&返回整数的地址,然后赋值给p。所以答案选择A选项。