itgle.com
更多“有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5的是().”相关问题
  • 第1题:

    有如下定义: inta[5]={1,3,5,7,9},*p=a; 下列表达式中不能得到数值5的是

    A.a[2]

    B.a[3]

    C.*(p+2)

    D.*p+4


    正确答案:B

  • 第2题:

    现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是

    A.p=&a;

    B.q=&b;

    C.p=q;

    D.p=a;


    正确答案:D

  • 第3题:

    设有如下定义: struct sk { int a;float b; } data; int *p; 若要使p指向data中的a域,正确的赋值语句是( )。

    A.p=&a;

    B.p=data.a;

    C.p=&data.a;

    D.p=a;


    正确答案:C
    解析:要注意不能将结构体变量作为一个整体进行输入和输出,只能对结构体变量中的各个成员进行输入和输出。引用结构体变量中成员的方式有以下几种:结构体变量名.成员名;指针变量名->成员名;(*指针变量名).成员名。

  • 第4题:

    有如下定义: int a[5]={1,3,5,7,9}, * p=a; 下列表达式中不能得到数值5的是

    A.a[2]

    B.a[3]

    C.*(p+2)

    D.*p+4


    正确答案:B

  • 第5题:

    若有如下定义和语句: int s[4][5],(*p)[5]; p=S; 则指针对s数组中第三个元素的正确引用形式是( )。

    A.p[0][3]

    B.p[1][2]

    C.p[0][2]

    D.p[1][3]


    正确答案:C
    解析: “p=s;”语句将指针p指向数组s。而数组为二维数组,下标标识由0开始,所以第二个元素为下标为0行的2列,即p[0][2]。

  • 第6题:

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

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

    B.p+=2,* + +p

    C.p+=3,* p+ +

    D.p +=2,+ + * p


    正确答案:A

  • 第7题:

    若有如下定义: int s[3] 则下面表达式中不能代表数组元素s[1]的地址的是( )

    A.&s[1]

    B.&s[0]+1

    C.s+1

    D.s++


    正确答案:D

  • 第8题:

    设有以下定义: int a[3][3]={1,2,3,4,5,6,7,8,9}; int(*Ptr)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是_______。

    A.*((*ptr+1)[2])

    B.*(*(p+5))

    C.(*ptr+1)+2

    D.*(*(a+1)+2)


    正确答案:D
    解析:*(p+5)所指向的数组元素是a[1][2],所以B不对;ptr所指向的是—个含有三个元素的一维数组,所以A和C是错误的。

  • 第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题:

    设有如下定义成的链表,structst{intn;structst*next;}a[3]={5,&a[1],7,&a[2],9,NULL},*p=&a;则值为6的表达式是()。

    • A、p++->n
    • B、p->n++
    • C、(*p).n++
    • D、++p->n

    正确答案:D

  • 第11题:

    单选题
    有如下说明int a[10]=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为9的表达式是(  )。
    A

    *p+9

    B

    *(p+8)

    C

    *p+=9

    D

    p+8


    正确答案: B
    解析:
    A项,*p = a[0] = 1;表达式*p + 9 = 1 + 9 = 10;B项,*(p+8) = a[8] = 9;C项,*p = *p + 9 = a[0] + 9 = 1+9 =10;D项,p+8表示a[8]的地址值,该值无法确定。

  • 第12题:

    单选题
    有如下定义:int b[10]=1,2,3,4,5,6,7,8,9,10,*q=b;则数值为8的表达式是(  )。
    A

    *q+8

    B

    *(q+7)

    C

    *q+=8

    D

    q+7


    正确答案: B
    解析:
    数组的下标是从0到数组的长度减1。*(p+i)是取数组的
    第i+1个元素,即下标为i的元素。因此*(p+7)取数组的第八个元素,即元素8

  • 第13题:

    现有如下定义语句

    int*p,s[20],i;

    p=s;

    表示数组元素s[i]的表达式不正确的是

    A.*(s+i)

    B.*(p+i)

    C.*(s=s+i)

    D.*(p=p+i)


    正确答案:C

  • 第14题:

    有如下定义:inta[5],*p;p=a;则下列描述错误的是()。

    A.表达式p=p+1合法的

    B.表达式a=a+1是合法的

    C.表达式p-a是合法的

    D.表达式a+2是合法的


    正确答案:B

  • 第15题:

    有如下定义语句:int a[]={1,2,3,4,5);,则对语句int *p=a;正确的描述是( )。

    A.语句int *p=a;定义不正确

    B.语句int *p=a;初始化变量p,使其指向数组对象a的第一个元素

    C.语句int *p=a;是把a[0]的值赋给变量p

    D.语句int *p=a;是把a[1]的值赋给变量p


    正确答案:B

  • 第16题:

    有如下说明int a[10]={1,2,3,4,5,6,7 },*p=a;则数值为5的表达式是A.*p+4 B.*(p+4) C.*p+=4 D.p+4


    正确答案:B
    本题考查C语言的数组元素的引用方法。我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0)即*p来引用;对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”*(p+1)就代表存储单元a[1],注意,一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式*(p+2)来引用,……,对于数组元素a[9],可以用表达式*(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i10,则数组元素a[i]可以用*(p+i)来表示。

  • 第17题:

    若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},* p=a则不能表示a数组元素的表达式是 ( )

    A.* p

    B.a[10]

    C.* a

    D.a[p-a]


    正确答案:B

  • 第18题:

    有如下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},* P=a; 则数值为9的表达式是( )。 A.*P+9SXB

    有如下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},* P=a; 则数值为9的表达式是( )。

    A.*P+9

    B.木(P+8)

    C.*P+=9

    D.P+8


    正确答案:B
    本题考查指向数组的指针,本题中指针变量P指向数组a,那么*P的值就是1,即表示数组的第一个元素,那么数值为9的表达式就是将指针向后移动8个地址,即P+8指向的是数组元素值为9,所以数值为9的表达式是*(P+8)。

  • 第19题:

    有如下定义: int a[5]={1,3,5,7,9},* P=a; 下列表达式中不能得到数值5的是( )。 A.a[2]SXB

    有如下定义: int a[5]={1,3,5,7,9},* P=a; 下列表达式中不能得到数值5的是( )。

    A.a[2]

    B.a[3]

    C.*(P+2)

    D.+P+4


    正确答案:B
    本题考查指向数组的指针,本题中指针变量P指向数组a,直接使用数组下标即可取值,数组F标是从0开始标号的,所以a[2]能取到5,而a[3]取不到5,(:选项中使用指针后移方法能够取到5,D选项中*P为1,所以*P+4为5。

  • 第20题:

    若有以下说明:int [10]={1,2,3.4,5,6,7,8,9,10},*p= a;则数值为6的表达式是()

    • A、p+6
    • B、*(p+6)
    • C、p+=5
    • D、p+5

    正确答案:C

  • 第21题:

    设有如下定义:int a=1,b=2,c=3,d=4,m=5,n=6;则执行表达式:(m=a>b)‖(n=c>d)后,n的值是()    

    • A、1
    • B、0
    • C、5
    • D、6

    正确答案:B

  • 第22题:

    若有以下定义      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

  • 第23题:

    单选题
    若有如下定义:  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
    解析: 暂无解析

  • 第24题:

    单选题
    有如下说明语句inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=a;则数值为9的表达式是()
    A

    *p+9

    B

    *(p+8)

    C

    *p+=9

    D

    p+7


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