题目内容

已有定义“int a[2][3]={0},*p=a[0];”,下面表达式中有语法错误的是() 。

A. a[0]=1
B. p[0]=1
C. *p=1
D. a[0][0]=1

查看答案
更多问题

已有定义“int a[4][4]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};”,若需要引用值为15的数组元素,则下列选项中错误的是() 。

A. *(a+3)+2
B. *(*(a+3)+2)
C. *(a[3]+2)
D. a[3][2]

已有定义“int a[3][3]={5,4,3,2,1},*p1=a[0],(*p2)[3]=a;”,下面选项中不能输出1的语句是()。

A. printf("%d", a[1][1]);
B. printf("%d", p2[0][1]);
C. printf("%d", p1[4]);
D. printf("%d", p2[1][1]);

若有定义“int a[3][4]={0}, *p1=a[1], (*p2)[4]=a;”,下面表达式中与“a[1][1]=1;”不等价的是( )。

A. *(p1+1)=1;
B. p1[1][1]=1;
C. *(*(p2+1)+1)=1;
D. p2[1][1]=1;

下面的叙述中正确的是________。

A. 将指向函数的指针作为函数的参数,不符合结构化程序设计的原则
B. 数组名实际上是数组的首地址,所以数组名相当于一个指针变量
C. 若定义了数组a[2][3],则a+1和*(a+1)完全等价
D. 某函数的形参为一个数组,则调用此函数时,对应的实参只能是数组名

答案查题题库