niusouti.com

若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()A.p=2*(int*)malloc(sizeof(int));B.p=(int*)malloc(2*sizeof(int));C.p=(int*)malloc(2*2);D.p=(int*)calloc(2,sizeof(int));

题目

若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()

A.p=2*(int*)malloc(sizeof(int));

B.p=(int*)malloc(2*sizeof(int));

C.p=(int*)malloc(2*2);

D.p=(int*)calloc(2,sizeof(int));


相似考题
更多“若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()”相关问题
  • 第1题:

    若指针ps已正确定义,要使ps指向能够存储8个字符的动态存储单元,以下不正确的语句是( )

    A.ps=(char*)malloc(8);

    B.ps=(char *)malloc(sizeof(char)* 8);

    C.ps=(char*)calloc(8,sizeof(char))

    D.ps=8*(char*)malloc(sizeof(char))


    正确答案:D

  • 第2题:

    若有如下图所示5个连续的int类型的存储单元并赋值,a[0]的地址小于a[4]的地址。 p和s为int型的指针变量。请对以下问题填空。

    ①若p已指向存储单元a[1]。通过指针p给s赋值,使s指向最后一个存储单元a[4]的语句是【 】。

    ②若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是【 】。


    正确答案:s=p+3; 2
    s=p+3; 2 解析:若p指向了a[1],则p+3将指向其后的第3个元素a[4],把它赋值给s,s就指向了a[4],所以第1空填“s=p+3;”。由于s指向了a[2],p指向了a[0],s和p为指向同一个数组元素的指针变量,它们的差为它们指向元素的下标差值(即间隔多少个元素),所以“s-p”的结果为2。

  • 第3题:

    说明语句int*(*p)();的含义是______。

    A.p是一个指向int型数组的指针

    B.p是指针变量,它构成了指针数组

    C.p是一个指向函数的指针,该函数的返回值是一个整型

    D.p是一个指向函数的指针,该函数的返回值是一个指向整型的指针


    正确答案:D

  • 第4题:

    已有定义:int *p;,请写出完整的语句,利用malloc函数使p指向一个整型的动态存储单元


    正确答案:p =(int *)malloc(sizeof(int));
    本题主要考查动态存储分配函数。动态内存分配就是指在程序执行过程中,动态分配或者回收存储空间分配内存的方法。动态内存分配相对于静态内存分配而言不需要预先分配存储空间;分配空间可根据程序的需要扩大或缩小。在C语言中,用于动态存储分配的函数只有malloc函数与calloc函数。
    其中,malloc函数的调用格式为:(类型说明符*)malloc(sizeof(类型说明符)),例如,pi =(int *)malloc(sizeof(int));而函数calloc与malloc函数的区别仅在于一次可以分配的块区域,malloc一次只能分配一块,而calloc一次可以分配多块。
    本题要求用malloc函数使p指向一个整型的动态存储单元,那么相应的语句应该为:p =(int *)malloc(sizeof(int));。

  • 第5题:

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

  • 第6题:

    若要用下面的程序片段使指针变量p指向—个存储整型变量的动态存储单元 int *p; p=______malloc(sizeof(int)); 则应填入______。

    A.int

    B.int*

    C.(*int)

    D.(int*)


    正确答案:D
    解析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之为在型一致,强制类型转换的格式为(数据类型*)。

  • 第7题:

    若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确的语句是( )。

    A.p=2*(int*)malloc (sixeof(int))

    B.p=(int*)calloc (2*sixeof(int))

    C.p=(int*)malloc (2*sizeof(int))

    D.p=2*(int*)calloc (sizeof(int))


    正确答案:C
    解析:malloc函数的调用形式:malloc(size)。malloc函数用来分配size个字节的存储区,返回一个指向存储区首地址基类型为void的地址,可以利用强制类型转换将其换成所需的类型,这里需转换为整型(int*)。若不能确定数据类型所占的字节数,可使用sizeof运算符来求得,这里要求两个连续的整型动态存储单元即2*sizeof(int)。4个选项中只有C符合题意。

  • 第8题:

    若使P指向包含30个整型元素的动态数组空间,则使用的定义语句为()。

    • A、int*p=newint[30]
    • B、int*p=newint(30)
    • C、int*p=new[30]
    • D、*p=newint[30]

    正确答案:A

  • 第9题:

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

  • 第10题:

    若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()。

    • A、p=2*(int*)malloc(sizeof(int));
    • B、p=(int*)malloc(2*sizeof(int));
    • C、p=(int*)malloc(2*2);
    • D、p=(int*)calloc(2,sizeof(int))。

    正确答案:A

  • 第11题:

    单选题
    假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句()。
    A

    deletep;

    B

    delete*p;

    C

    delete&p;

    D

    delete[]p;


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

  • 第12题:

    单选题
    若p1、p2都是指向整型的指针,p1已经指向变量x,要使p2也指向x,正确的是()。
    A

    p2=p1;

    B

    p2=**p1;

    C

    p2=&p1;

    D

    p2=*p1;


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

  • 第13题:

    若已有定义int x;下列说明指针变量p指向x的正确语句是( )

    A. int p=&x;

    B. int *p=&x;

    C. int p=x;

    D. int *p=x;


    正确答案:B

  • 第14题:

    若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元 int *p p=______malloc(sizeof(int)); 则应填入______。

    A.int

    B.int*

    C.(*int)

    D.(int*)


    正确答案:D
    解析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。

  • 第15题:

    若要用下面的程序片段指针变量p指向一个存储整型变量的动态存储单元int *p;p=______ malloc (sizeof (int));则应填入 ______。

    A.int

    B.int*

    C.(*int)

    D.(int*)


    正确答案:D
    解析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。

  • 第16题:

    若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是( )

    A.p=2 *(int *)malloc(sizeof(int));

    B.p=(int*)calloc(2*sizeof(int));

    C.p=(int*)malloc(2* sizeof(int));

    D.p=2 *(int*)calloc(sizeof(int));


    正确答案:C

  • 第17题:

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

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

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

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

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


    正确答案:D

  • 第18题:

    动态分配一整型数据长度的空间,使指针p指向该存储空间,则下列空缺处应填入的正确语句是( )。 int*p; p=______malloc (sizeof(int));

    A.int

    B.int*

    C.(*int)

    D.(int*)


    正确答案:D

  • 第19题:

    若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,()是正确的。

    • A、p2=p1;
    • B、p2=**p1;
    • C、p2=&p1;
    • D、p2=*p1;

    正确答案:A

  • 第20题:

    若变量已正确定义并且指针p已经指向变量x,则&*p相当于()

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

    正确答案:C

  • 第21题:

    若p1、p2都是指向整型的指针,p1已经指向变量x,要使p2也指向x,正确的是()。

    • A、p2=p1;
    • B、p2=**p1;
    • C、p2=&p1;
    • D、p2=*p1;

    正确答案:A

  • 第22题:

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


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

  • 第23题:

    单选题
    若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()。
    A

    p=2*(int*)malloc(sizeof(int));

    B

    p=(int*)malloc(2*sizeof(int));

    C

    p=(int*)malloc(2*2);

    D

    p=(int*)calloc(2,sizeof(int))。


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

  • 第24题:

    单选题
    若使P指向包含30个整型元素的动态数组空间,则使用的定义语句为()。
    A

    int*p=newint[30]

    B

    int*p=newint(30)

    C

    int*p=new[30]

    D

    *p=newint[30]


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