参考答案和解析
正确答案:B
解析:程序中定义了数组a[10],则其元素的下标范围为0~9,而B选项中的a[10]所表示的元素已经超出a数组元素的范围,故应该选择B。
更多“若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a则不能表示a数组元素的表达式是()。A. ”相关问题
  • 第1题:

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


    &p[i]

  • 第2题:

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

    A.a[10]

    B.*p++

    C.a[p-a]

    D.*p


    A typedef的主要功能是为存在的类型命名,后面的代码中可以利用该新定义的类型名定义变量,题目中定义了整型指针类型T,而后利用T定义了整型指针数组a,含有10个元素,选项A中定义了整型指针数组a,选项B定义了一个指向一维数组的指针a,选项C定义指针变量,而选项D为定义整型数组最常用的形式,数组a中可以存放10个数据元素。

  • 第3题:

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

    A.*p

    B.a[10]

    C.*a

    D.a[p-a]


    A 本题考查的是通过指针引用二维数组元素。通过一维数组名或指向一维数组元素的指针来引用数组元素有两种写法:a[i]和*(a+i),它们是等价的。这是一种运算符之间的等价转换,就好像a一(b—c)等价于a-b+c一样。知道了这种转换,我们可以将之扩展到二维数组甚至任意维数组上来。因为口运算符的结合性是从左至右的,所以w[i珩]等价于(w[i][j],此时可以先将任意一个口运算符转换为指针形式为(·(w+i))[j]或*(w[i]+j),或者同时转换为*(*(W+i)+j)。上述几种形式都完全等价于w[il[j]。

  • 第4题:

    若有以下定义和语句: 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]


    8,16,10

  • 第5题:

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

    A.*p

    B.b[10]

    C.*b

    D.b[p-b]


    D