有声明int a[]={8.2.5}、*p=a;则取值为2的是()A、p+1B、*(a+1)C、*p++D、a+l

题目

有声明int a[]={8.2.5}、*p=a;则取值为2的是()

  • A、p+1
  • B、*(a+1)
  • C、*p++
  • D、a+l
参考答案和解析
正确答案:B
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若已有定义int x=2; int *p=&x;则*p的值为( )

A. 2

B. &x

C. *x

D. &p


正确答案:A

第2题:

有以下程序: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是正确的。

第3题:

设有以下定义: int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*ptr)[3]=a,*p=a[0];则下列能够正确表示数组元素a【1】【2】的表达式是( )。A.*((*ptr+1)[2])B.*(*(p+5))C.(*ptr+1)+2D.*(*(a+1)+2)


正确答案:D
a[1][2]的值为6. *ptr的值为1,*ptr+1=2是一个数组,所以(*ptr+1)[2]表示不正确。P=a,指向1,p+5是指针向后移动5个单元,即指向6,*(p+5)即是6,C项解释同A,

第4题:

在下列叙述中,错误的一条是______。

A.有下列语句组,则c=(*p)(a,b)与c=max(a,b)等价 int max();int(*p)();int c;p=max;

B.执行下列语句后,则*p的值为1 int a=1,*p;*p=&a;

C.已知指针变量p1指向数组元素a[1],p2指向数组元素a[4],则p2-p1=4-1=3

D.2个指针变量指向同一数组时可以进行比较,其值为1或0


正确答案:B

第5题:

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

有以下程序: #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
解析:本题考查的是指针和结构的应用。首先定义的数组tt中有两个成员,一个整型变量,一个结构指针。当i=1时,P指针指向结构数组的第一个元素,并输出此元素的第一个成员x,即20;当i=2时,P指针指向结构数组的第二个元素的第一个成员,所以输出15。

第6题:

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

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

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

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

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


正确答案:B

第7题:

执行下面的语句后,表达式*(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。

第8题:

下列程序的运行结果为 include void main( ) { int a=2; int b=a+1; cout < < a/b

下列程序的运行结果为

#include<iostream.h>

void main( )

{

int a=2;

int b=a+1;

cout < < a/b < < endl;

}

A.0.66667

B.0

C.0.7

D.0.66666666…


正确答案:B
解析:表达式值的类型是由操作数的类型决定的,因为本题的两个数都是int型的,所以得出的结果也为int型,即去掉小数点后的部分,只取商的整数部分。

第9题:

有以下定义: int a[4] [3]={1,2,3,4,5,6,7,8,9.10,11,12}; int(*ptr)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是( )。

A.*((*ptr+1}+2)

B.*(*(p+5))

C.(*ptr+1)+2

D.*(*(a+1)+2)


正确答案:C
解析:本题定义了一个二维数组a,一个含有3个元素的指针数组ptr和一个指针变量p,并使指针数组和指针变量p指向数组a。

第10题:

下列程序的运行结果为include < iostream.h >void main( ){ int a=2; int b=a+l; cout < < a/b

下列程序的运行结果为 #include < iostream.h > void main( ) { int a=2; int b=a+l; cout < < a/b < < end1; }

A.0.66667

B.0

C.0.7

D.0.66666666…


正确答案:B
解析:表达式值的类型是由操作数的类型决定的,因为本题的两个数都是int型的,所以得出的结果也为int型,即去掉小数点后的部分,只取商的整数部分。