niusouti.com
更多“有如下定义:int b[10]={1,2,3,4,5,6,7,8,9,10},*q=b;则数值为8的表达式是()。A.*q+8B.*(q+7)C. *q ”相关问题
  • 第1题:

    有如下说明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的首地址。
    通过指针引用数组元素主要分如下两种情况。
    (1)引用数组a首元素的常用等价方式有:
    ① 获取首元素地址:a,p;
    ② 访问首地址的值:a[0],p[0],*a,*p。
    (2)引用数组第i个元素(从0开始计数)的常用等价方式有:
    ① 获取i元素地址:a+i,&a[i],p+i,&p[i];
    ② 访问i运算的值:*(a+i),a[i],*(p+i),p[i]。
    题目要求访问值为9的元素,从数组中不难看出该元素是数组的第8个元素(从0开始计数),结合上面的分析可以知道,用指针变量p引用数组a中的第8个元素的值的方法可以为*(p+8)或p[8],因此本题的正确答案选B。

  • 第2题:

    设有如下定义:typedefint*INTEGER;INTEGERp,*q;则()是正确的叙述。

    A.p是int型变量

    B.q是基类型为int的指针变量

    C.p是基类型为int的指针变量

    D.程序中可用INTEGER代替int类型名


    参考答案:C

  • 第3题:

    有如下语句 int a[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+i))

  • 第4题:

    有如下说明: 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是指针,p+8是地址值,D是错的;*p是p的目标变量,即a[0],值为1,所*p+9的值是10,而*p+=9值是重新给a[0]赋了值(1+9);所以A和C也是错的。p+8是地址值,指向a[8],那么*(p+8)的值就是a[8]的值,即9。

  • 第5题:

    有如下说明: 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)。