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

题目
单选题
设变量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选项。
更多“单选题设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于(  )。A p= ;B p='0';C p=0;D p='';”相关问题
  • 第1题:

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

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

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

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

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


    正确答案:D

  • 第2题:

    l设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是( )。A.float*p=&x;S

    l设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是( )。

    A.float*p=&x;

    B.int*p-(float)x;

    C.float p=&x;

    D.float*p=1024;


    正确答案:A
    指针是用来存放地址的变量,用(类型名*指针变量名)的形式定义。赋值时应将某个变量地址即&x赋给指针变量,因此选择A)。

  • 第3题:

    若已定义: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

  • 第4题:

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

    A.p="";

    B.p="0";

    C.p=0;

    D.p=";


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

  • 第5题:

    若有以下定义和语句; 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

  • 第6题:

    以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误的原因是()。    main( )  { int *p,*q,a,b;     p=&a;     printf(“input a:”);     scanf(“%d”,*p);     ……  }

    • A、*p表示的是指针变量p的地址
    • B、*p表示的是变量a的值,而不是变量a的地址
    • C、*p表示的是指针变量p的值
    • D、*p只能用来说明p是一个指针变量

    正确答案:B

  • 第7题:

    若变量已正确定义,()不可以使指针p成为空指针。

    • A、p=NULL
    • B、p=0
    • C、p=’/0’
    • D、p!=0

    正确答案:D

  • 第8题:

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


    正确答案:p=a

  • 第9题:

    p是指针变量,给指针变量赋NULL值,它等价于()

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

    正确答案:C

  • 第10题:

    下面关于指针变量int*p;描述不正确的是()

    • A、*p表示的是指针变量p的地址
    • B、int*p表示定义了一个指针类型变量
    • C、*p表示的是指针变量p的值
    • D、p=&a将a的值赋值给变量p

    正确答案:A,C,D

  • 第11题:

    填空题
    指针变量的值是一个()。指针p==0表明p是()指针。

    正确答案: 地址,空
    解析: 暂无解析

  • 第12题:

    单选题
    有以下程序 #include  main() {  int n,*p=NULL;  *p=&n;  printf(Input n:);  scanf(%d,&p);  printf(output n:);  printf(%d,p); } 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是(  )。

    正确答案: A
    解析:
    B项的正确写法应为“p=&n;”,将变量n的地址赋给指针p;C项的正确写法应为“scanf("%d",p);”;D项的正确写法应为“printf("%d",*p);”。答案选择A选项。

  • 第13题:

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

  • 第14题:

    若有定义“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指针所指向地址的内容。“&”是取变量地址。

  • 第15题:

    若有如下定义: int (*p)(), *q(); 则下列说法正确的是( )

    A.p是一个函数名,q是一个指针变量

    B.p是一个指向整型变量的指针变量,q是一个指向一维数组的指针变量

    C.p和q是等价的,都是指针变量

    D.p是指向函数的指针变量,函数的返回值是整型数据;q是带回指针值的函数


    正确答案:D

  • 第16题:

    设P是指针变量,语句P=NULL;等价于

    A.P=′0′;

    B.P=";

    C.P="";

    D.P=0;


    正确答案:D
    P=NULL;等价P=0;因此D选项正确。

  • 第17题:

    有如下定义语句: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

  • 第18题:

    指针变量的值是一个()。指针p==0表明p是()指针。


    正确答案:地址;空

  • 第19题:

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

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

    正确答案:B

  • 第20题:

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

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

    正确答案:C

  • 第21题:

    若已定义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

  • 第22题:

    单选题
    以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误的原因是()。    main( )  { int *p,*q,a,b;     p=&a;     printf(“input a:”);     scanf(“%d”,*p);     ……  }
    A

    *p表示的是指针变量p的地址

    B

    *p表示的是变量a的值,而不是变量a的地址

    C

    *p表示的是指针变量p的值

    D

    *p只能用来说明p是一个指针变量


    正确答案: A
    解析: 暂无解析

  • 第23题:

    单选题
    若已定义: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
    解析: 暂无解析