若有定义:int a[10],*p; 则

题目

若有定义:int a[10],*p; 则*(p+5)表示()。

  • A、元素a[5]的值
  • B、元素a[5]的地址
  • C、元素a[6]的值
  • D、元素a[6]的地址
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

若有定义语句:"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的基本类型不同。

第2题:

若有定义语句: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。

第3题:

若有定义语句: 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

第4题:

若有定义语句: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不合法,两者类型不匹配。

第5题:

若有以下定义,则对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个元素。

第6题:

若有定义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]。

第7题:

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

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


正确答案:√

第8题:

若有定义语句int b=2;,则表达式(b<<2)/(3||b)的值是( )。A.4B.8C.0D.2

若有定义语句int b=2;,则表达式(b<<2)/(3||b)的值是( )。

A.4

B.8

C.0

D.2


正确答案:B
2的二进制数为010,移两位后的二进制数为01000,转成十制数为8,(3||2)为真即1,8/ 1=8,所以结果为8。

第9题:

若有定义和语句: int**pp,*p, a=20,b=1O; pp=&p; p=&a; p=&b; printf ("%d,%d\n",*p,**pp); 则输出结果是( )。

A.20,10

B.20,20

C.10,20

D.10,10


正确答案:D
解析:本题考查指针变量的赋值。**pp是定义了一个指向指针的指针变量,语句pp=&p的意思是将pp指向指针p,*p和**pp都足指针p所指的内存空间的内容,即b的值。

第10题:

若有定义和语句:

int**pp,*p,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);

则输出结果是( )。

A.20,10

B.20,20

C.10,20

D.10,10


正确答案:D
解析:本题考查指针变量的赋值。**pp是定义了一个指向指针的指针变量,语句pp=&p是将pp指向指针p,*p和**pp都是指针p所指的内存空间的内容,即b的值。