若有以下C语言语句,且0≤i<10,则对数组元素的错误引用是(29)。 int a[i]={1,2,3,4,5,6,?,8,9,0)

题目

若有以下C语言语句,且0≤i<10,则对数组元素的错误引用是(29)。 int a[i]={1,2,3,4,5,6,?,8,9,0),*p,i; p=a;

A.*(a+i)

B.p+I

C.a[p-a)

D.*(&a[i])

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

for(i=0;i<3;i)

p[i]=&a[i*4];

pp=p;

则对数组元素的错误引用是

A.pp[0][1]

B.a[10]

C.p[3][1]

D.*(*(p+2)+2)


正确答案:C
解析:考查指向数组的指针。本题综合考查一维数组和多维数组指针变量的表示方法。在C语言中,引用数组元素的方法有两种,即下标法和指针法。下标法如a[i]形式;指针法如*(a+i)或*(p+1)。其中,a是数组名,p是指向数组的指针变量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意语句中指针型数组的书写格式,不能写成"(*数组名)[长度]",因为这是定义指向含有"长度"个元素的一维数组的指针变量。例如有定义语句"int a,b,c,c,*p[3]={&a,&b,&c};",它定义了一个名为p的指针型数组,其3个元素p[0],p[1],p[2]分别指向f3个整型变量a,b,c。

第2题:

若有程序片段: int a[12]={0},* p[3],* *pp,i for (i=0;i<3;i++) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引用是 ( )

A.pp[0][1]

B.a[10]

C.p[3][1]

D.*(*(p+2)+2)


正确答案:C

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

若已定义以下语句,其中0≤i≤9,则对a数组元素不正确的引用为______。 int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

A.a[p-a]

B.*(&a[i])

C.p[i]

D.a[10]


正确答案:D

第6题:

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

第7题:

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

第8题:

有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)

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

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))


正确答案:D

第9题:

有以下语句,则对a数组元素的引用不正确的是(0≤i≤9) int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A.a[p=a)

B.*(&a[i])

C.p[i]

D.*(*(a+i)


正确答案:D
解析:选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。

第10题:

若有以下定义语句: double a[5]; int i=0; 能正确给a数组元素输入数据的语句是 ( )

A.scanf("%lf%lf%lf%lf%lf,a) ;

B.for(i=0;i<=5;i++)scanf("%lf,a+i);

C.while(i<5)scanf("%lf",&a[i++]);

D.while(i<5)seanf("%lf,a+i);


正确答案:C

更多相关问题