若有定义语句:double a,*p=&a;以下叙述中错误的是(  )。

题目
单选题
若有定义语句:double a,*p=&a;以下叙述中错误的是(  )。
A

定义语句中的p只能存放double类型变量的地址

B

定义语句中的*号是一个说明符

C

定义语句中的*号是一个间址运算符

D

定义语句中*p=&a把变量a的地址作为初值赋给指针变量p

参考答案和解析
正确答案: D
解析:
C项错误,只有取指针变量的值时,星号*才是间址运算符,引用指针指向的存储单元。A项正确,p是double类型的指针,只能存放double类型的地址;B项正确,定义指针变量时,星号*是一个说明符,用来说明该变量是指针变量;D项正确,“&”是求地址运算符,*p=&a用来求出double变量a的地址赋给指针变量p,而使p指向a。答案选择C选项。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有一些定义和语句 include int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q

若有一些定义和语句 #include <stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是

A.*q=0;

B.w=p;

C.*p=va;

D.*p=*w;


正确答案:A
解析:给一指针赋空值的正确语句是q=NULL;或q='\0';或q=0;。选项B)的含义为使指针p指向指针q所指向的存储单元。选项C)的含义为使指针P指向变量a所在的存储单元。选项D)的含义为把指针a赋给指针p。

第2题:

若有定义语句:“int year=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是( )。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P


正确答案:D

第3题:

若有定义语句: int a[2][3],*p[3]; ,则以下语句中正确的是A ) p=a;B)p[0]=a; C) p[0]=&am

若有定义语句: int a[2][3],*p[3]; ,则以下语句中正确的是

A ) p=a;

B)p[0]=a;

C) p[0]=&a[1][2];

D)p[1]=&a;


正确答案:C

                                           

第4题:

若有以下定义和语句 int a=4.b=3.* p, * q, * w; p=&a;q=& b; w=q;q=NULL; 则以下选项中错误的语句是

A.*q=0;

B.w=p;

C.*p=a;

D.*p=* w;


正确答案:D
解析:考生遇到这么复杂的变量间关系时,可以在草稿纸上画出各个变量的内存存放示意图,然后用箭头指向表示指针变量与其他变量之间的关系。如果能够清晰的画出这些变量间关系,则可以会让你容易的判断出正确答案为D。

第5题:

若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是______。

A.*p

B.x[5]

C.*(p+1)

D.*x


正确答案:B
解析:本题定义了一个有5个数组元素的—维数组x和指针变量p,且将x的首地址(即x[0])的地址)赋给了指针变量p,即p指向了x数组的第0号元素,所以*p的值为x[0]的值,选项A的引用正确;由于p+1就是x[1]的地址,所以*(p+1)所指向的数组元素为x[1],故选项C的引用正确;由于x就是数组x的首地址,所以*x即对x[0]的引用,所以选项D引用正确;由于数组最大下标是元素个数减一,所以选项B的引用越界。

第6题:

若有以下定义和语句:includeinta=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则

若有以下定义和语句: #include<stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是( )。

A.*q=0;

B.w=p;

C.*p=a;

D.*p=*w;


正确答案:A
解析:本题中定义了3个指向整型的指针变量p、q、w,并让p指向a,让q指向b,通过将q的值赋给w,使w也指向b,最后将q指向NULL。因为q指向NULL,所以选项A中对q所指地址进行写入是非法的。故A选项为所选。

第7题:

若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。 A.定义语句中的*号是一个间址运算符S

若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。

A.定义语句中的*号是一个间址运算符

B.定义语句中的*号只是一个说明符

C.定义语句中的P只能存放double类型变量的地址

D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P


正确答案:C
doublea,*p=&a语句的意思是将a的值存放到指针变量P中,P是指针可以随意指向任何地址,所以答案C错误。

第8题:

若有定义语句: double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x; 则错误引用 x 数组元素的是

A)*p

B)x[5]

C)*(p+1)

D)*x


正确答案:B

第9题:

若有以下定义和语句:“double r=99,*p=&r;*P =r;”,则以下正确的叙述是( )。

A.两个*p含义相同,都说明给指针变量p赋值

B.在“double r=99,*p=&r;”中,把r的地址赋值给了P所指的存储单元

C.语句“*p=r;”把变量r的值赋给指针变量P

D.语句“*p=r;”取变量r的值放回r中


正确答案:B
在定义*p=&r时,是表示r的地址赋给了p所指的存储单元,因此选项B正确。

第10题:

若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。A.p=a; B.p[0]=a;

若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

A.p=a;

B.p[0]=a;

C.p[o]=&a[1][2];

D.p[1]=&a;


正确答案:B
选项B表示把整型数组a[o]的指针赋给p[0]。

更多相关问题