执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为()。 inta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;A、8B、7C、6D、5

题目

执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为()。 inta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;

  • A、8
  • B、7
  • C、6
  • D、5
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

对于如下的表达式:inta[3][4],*p;p=*a;执行p++操作之后,*p表示取()的内容。

A、a[0][0]

B、a[1][0]

C、a[1][1]

D、a[0][1]


参考答案:D

第2题:

有如下定义:inta[5],*p;p=a;则下列描述错误的是()。

A.表达式p=p+1合法的

B.表达式a=a+1是合法的

C.表达式p-a是合法的

D.表达式a+2是合法的


正确答案:B

第3题:

表达式0x13while(*(str+num)!=\0)num++;return(num);}main(){charstr[10],*p=str;gets(p);printf(“%d\n“,func(p));}如果从键盘上输入ABCDE回车,则输出结果为()

A、8

B、7

C、6

D、5


参考答案:D

第4题:

执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。 int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;

A.8

B.7

C.6

D.5


正确答案:D
解析:p为指针数组,其元素分别为指向数组a的4个元素的指针。q为指向指针的指针变量,其初值为指针数组p的首地址。所以:表达式*(p[0]+1)+**(q+2)=*(a+3+1)+**(p+2)即是*(a+4)+*(a+1)=a[5]+a[2]=1+4=5。

第5题:

定义如下一维数组:int a[5],*p;,则下列描述错误的是( )。

A.表达式p=p+1是合法的

B.表达式a=a+1是合法的

C.表达式p-a是合法的

D.表达式a+2是合法的


正确答案:B

第6题:

已知“inta[]={1,2,3};constint*p=a;”,则语句“*p=5;”会将元素a[0]的值赋为5.()

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


正确答案:正确

第7题:

定义如下一维数组: inta[5],*p=a; 则下面描述中,错误的是( )。

A.表达式p=p+1是合法的

B.表达式a=a+1是合法的

C.表达式p-a是合法的

D.表达式a+2是合法的


正确答案:B
解析:本题考核指针与数组的关系。对于选项A,由于在定义时指针p指向数组a[0],那么表达式“p=p+1”就是让指针p指向数组中的元素a[1],所以是合法的。对于选项C,数组名a代表该数组的首地址,指针p中存的也是地址,所以它们之间可以进行加减运算。对于选项D,数组名a代表该数组的首地址,那么表达式“a+2”代表的是数组元素a[2]的地址。对于选项B,由于数组名代表该数组的首地址,并且只能引用该地址而不能进行修改,所以是不合法的。

第8题:

若有下面的变量定义,inti,a[10],*p;以下语句中合法的是()

A、p=a+2;

B、p=a[5];

C、p=a[2]+2;

D、p=


参考答案:A

第9题:

有以下程序:includestruct tt{int x;struct tt*y;}*p;struct tt a[4]={20,a+1,15,a+2,

有以下程序: #include<stdio.h> struct tt {int x;struct tt*y;}*p; struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a} main() { int i; p=a; for(i=1;i<=2;i++){printf("%d",p->x);p=P->y;} } 程序的运行结果是( )。

A.20,30,

B.30,17

C.15,30

D.20,15


正确答案:D
解析:本题考查的重点是对结构体的运用与理解。在a[4]的初始化中,相当于将其生成为一个链表,故打印两次相当于将前两个整数值打印出来.因此选项D是正确的。

第10题:

经过下面的语句定义后:int i,a[10],*p;下列语句中,合法的是______。

A.p=100;

B.p=a[5];

C.p=a[2]+2;

D.p=a+2;


正确答案:D

更多相关问题