若已定义inta=5;下面对(1)int*p=&a;(2)*p=a;两个语句的正确解释是()A、语句(1)和(2)中的*P含义相同,都表示给指针变量p赋值B、语句(1)和语句(2)的执行结果,都是把变量a的地址值赋给指针变量pC、语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋给指针变量pD、语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋于*p

题目

若已定义inta=5;下面对(1)int*p=&a;(2)*p=a;两个语句的正确解释是()

  • A、语句(1)和(2)中的*P含义相同,都表示给指针变量p赋值
  • B、语句(1)和语句(2)的执行结果,都是把变量a的地址值赋给指针变量p
  • C、语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋给指针变量p
  • D、语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋于*p

相似考题
参考答案和解析
正确答案:D
更多“若已定义inta=5;下面对(1)int*p=a;(2)*p=a;两个语句的正确解释是()A、语句(1)和(2)中的*P含义相同,都表示给指针变量p赋值B、语句(1)和语句(2)的执行结果,都是把变量a的地址值赋给指针变量pC、语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋给指针变量pD、语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋于*p”相关问题
  • 第1题:

    在下列叙述中,正确的一条是( )

    A.语句int *pt中的*pt是指针变量名

    B.语句"int *p=a;"等价于"int *p;p=&a[0];”

    C.运算符*和&都是取变量地址的运算符

    D.已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值


    正确答案:D

  • 第2题:

    对下列语句正确的描述是( )。 const int *x; int *const x;

    A.语句1的含义是指针变量x不能更改

    B.语句2的含义是指针变量x所指向的值不能更改

    C.语句2的含义是指针变量x不能更改

    D.语句1和语句2含义是相同的


    正确答案:C
    解析:语句1的含义是指针变量x所指向的地址的值不能更改。但是指针变量x的值可以进行修改。

  • 第3题:

    若有以下定义和语句:“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正确。

  • 第4题:

    若有定义“floata=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为( )。

    A.两个语句都是将变量a的值赋予变量p

    B.*p=a是使P指向变量a,而P=&a是将变量的值赋予变量指针p

    C.*p=a是将变量a的值赋予变量b,而&;a是使P指向变量a

    D.两个语句都是使p指向变量a


    正确答案:C
    “p”是指针变量,指向一个地址:“*p”为p指针所指向地址的内容。“&”是取变量地址。

  • 第5题:

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

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

    B.定义语句中的木号是-个说明符

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

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


    正确答案:A
    在变量定义doublea,*P:&a;中,}号是一个指针运算符,而非间址运算符,所以A错误。

  • 第6题:

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

    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

  • 第7题:

    设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于( )。

    A.p="";

    B.p="0";

    C.p=0;

    D.p=";


    正确答案:C
    在C语言中null等价于数字0。

  • 第8题:

    若有以下定义和语句; double r=99,*p=7; *p=r; 则以下正确的叙述是( )

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

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

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

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


    正确答案:D

  • 第9题:

    设p1和p2均为指向int型的指针变量,k为int型变量,下列不正确的赋值语句是(C)。

    A.k=*p1+*p2

    B.k=*p1*(*p2)

    C.p2=k

    D.p1=p2


    正确答案:C

  • 第10题:

    设有定义:int x,*p;,能使指针变量p指向变量x的语句是()

    • A、*p=&x;
    • B、p=&x;
    • C、*p=x;
    • D、p=*&x;

    正确答案:B

  • 第11题:

    设变量p是指针变量,语句p=NULL;,是给指针变量赋NULL值,它等价于()

    • A、p="";
    • B、p=’0’;
    • C、p=0;
    • D、p=’’;

    正确答案:C

  • 第12题:

    单选题
    设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于(  )。
    A

    p= ;

    B

    p='0';

    C

    p=0;

    D

    p='';


    正确答案: A
    解析:
    NULL的ASCII码值为0,p=NULL等价于p='\0';或p=0。答案选择C选项。

  • 第13题:

    有如下定义语句:int a[]={1,2,3,4,5};,则对语句int*p=a;正确的描述是( )。

    A.语句int*p=a;定义不正确

    B.语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素

    C.语句int*p=a;是把a[0]的值赋给变量p

    D.语句iht*p=a;是把a[l]的值赋给变量p


    正确答案:B

  • 第14题:

    设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是

    A.k=*p1+*p2

    B.p2=k;

    C.p1=p2;

    D.k=*p1*(*p2);


    正确答案:B
    解析:本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针,而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误。

  • 第15题:

    设p1和p2是指向一个血型一维数组的指针变量,k为int型变量,则不能正确执行的语句是

    A.k=*p1+*p2

    B.p2=k;

    C.p1=p2;

    D.k=*p1*(*p2);


    正确答案:B
    解析: 本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针,而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误。

  • 第16题:

    若已定义:int x=12;对①int *p=&x;和②*p=x;这两条语句的正确理解是()

    A.语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p所指向的变量

    B.语句①和②中的*p含义相同,都表示给指针变量赋值

    C.语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p

    D.语句①和②的执行结果都是把变量x的地址赋给指针变量p


    参考答案:A

  • 第17题:

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

    若有定义语句:

    double a,+P=&;a;

    以下叙述中错误的是( )。

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

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

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

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


    正确答案:A
    指针运算符(通常称为间接引用运算符:indirectionopemlor或复引用运算符:derefereneingoperator)返回其操作数(即一个指针)所指向的对象的值。定义语句中的+号不是一个问址运算符,而是定义指针变量的说明符,因此,A项错误,B选项正确,原则上说变量P可以放double兼容性的变量地址,C选项正确,根据指针的赋值运算,可知D选项正确。故答案为A选项。’

  • 第18题:

    若有以下定义和语句: double r=23,*p=&r; *p=r;则以下正确的叙述是______。

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

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

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

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


    正确答案:D
    解析:*p=&r使p指向变量r的地址,*p=r是再取变量r的值,并放回r中。

  • 第19题:

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

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

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

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

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


    正确答案:A
    解析:本题中的*p=&a中,*不是间址运算符,只是一个指针说明符。间址运算符用于表示某变量是指针型数据,用于存放某个地址,例如int*p,k;p=&k;*p=2;这里的*就是间址运算符。

  • 第20题:

    有如下定义语句:int a[]={1,2,3,4,5};,则对语句int * p=a;正确的描述是( )。

    A.语句int * p=a;定义不正确

    B.语句int * p=a;初始化变量p,使其指向数组对象a的第一个元素

    C.语句int * p=a;是把a[0]的值赋给变量p

    D.语句int * p=a;是把a[1]的值赋给变量p


    正确答案:B

  • 第21题:

    试题23

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

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

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

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

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


    正确答案:A
    试题23分析
    *号只是一个说明符,而非间址运算符。说明只能存放double类型的变量。
    试题23答案
    A

  • 第22题:

    将数组a的首地址赋给指针变量p的语句是()


    正确答案:p=a

  • 第23题:

    有语句:inta[10],;则()是对指针变量p的正确定义和初始化。

    • A、intp=*a;
    • B、int*p=a;
    • C、intp=&a;
    • D、int*p=&a;

    正确答案:B