计算机二级

设有定义:int a,*p=&a,* *pp=&p;,则与a=100;等价的语句为()A.**p=100;B.**pp=100;C.&amp设有定义:int a,*p=&a,* *pp=&p;,则与a=100;等价的语句为( )A.**p=100;B.**pp=100;C.&*p=100;D.*pp=10;

题目
设有定义:int a,*p=&a,* *pp=&p;,则与a=100;等价的语句为()A.**p=100;B.**pp=100;C.&

设有定义:int a,*p=&a,* *pp=&p;,则与a=100;等价的语句为( )

A.**p=100;

B.**pp=100;

C.&*p=100;

D.*pp=10;

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

第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[10],*p[3],**pp,i; for(i=0;i<3:i++) p[i]=&a[i*4); pp=p; 则正确表示数组a元素的表达式是 ______。

A.pp

B.a[10]

C.p[3]

D.*(*(p+2))


正确答案:D

第3题:

已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。

a. free(p);

b. free p;

c. free(*p);

d. free[p];


正确答案是:C

第4题:

若有定义和语句:

int**pp,*p,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);

则输出结果是( )。

A.20,10

B.20,20

C.10,20

D.10,10


正确答案:D
解析:本题考查指针变量的赋值。**pp是定义了一个指向指针的指针变量,语句pp=&p是将pp指向指针p,*p和**pp都是指针p所指的内存空间的内容,即b的值。

第5题:

以下程序运行后,输出结果为______。 main() { int a[2][3]={1,3,5,7,9,11},*s[2],**pp,*p: s[0]=a[0],s[1]=a[1]; pp=s; p=(int*)malloc(sizeof(int)); **pp=s[1][1]; p=*pp; printf("%d\n",*p); }

A.1

B.7

C.9

D.11


正确答案:C
解析:s是一个含有两个元素的指针数组,pp是一个指向指针变量的指针,s[0]是指向二维数组a行下标为0的元素的首地址,即a[0][0]的地址,s[1]为a[1][0]的地址。pp的值为s[0]的地址。**pp=s[1][1]后,a[0][0]的值将被赋值为a[1][1]的值,执行p=*pp;后,p中将是s[0]的值,最后的输出语句将输出地址s[0]所指向的数据,即a[0][0]。

第6题:

若有程序片段: 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

第7题:

若有定义和语句: int**pp,*p, a=20,b=1O; pp=&p; p=&a; p=&b; printf ("%d,%d\n",*p,**pp); 则输出结果是( )。

A.20,10

B.20,20

C.10,20

D.10,10


正确答案:D
解析:本题考查指针变量的赋值。**pp是定义了一个指向指针的指针变量,语句pp=&p的意思是将pp指向指针p,*p和**pp都足指针p所指的内存空间的内容,即b的值。

第8题:

已有定义:int i,a[10],*p;,则合法的赋值语句是

A.p=100;

B.p=a[5];

C.p=a[2]+2;

D.p=a+2;


正确答案:D
解析:本题中定义了一个整型数组a和一个整型指针变量p。选项A中将一个整型数赋值给一个指针变量,C语言规定,只能将地址赋给指针指针变量;选项B中a [5]为一数组元素,同样不是一个地址;选项C中a[2]为一数组元素,同样是一个整型数据,不是个地址;选项D中数组名a代表数组首地址加2,代表第三个元素的地址。

第9题:

下列程序段的输出结果是______。 int **pp,*p; int a=10,b=20; p=&a; pp=&p; p=&b; printf("%d,%d\n",*p,**pp);

A.10,20

B.10,10

C.20,20

D.20,10


正确答案:C
解析:指针变量p先是指向变量a,后指向变量b,但二级指针变量始终指向指针变量p。

第10题:

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

A.p=100;

B.p=a[5];

C.p=a[2]+2;

D.p=a+2;


正确答案:D

更多相关问题