单选题有以下程序段 int *p; p=______ malloc(sizeof(int)); 若要求使p指向一个int型的动态存储单元,在横线处应填入的是(  )。A intB (int*)C int*D (*int)

题目
单选题
有以下程序段 int *p; p=______ malloc(sizeof(int)); 若要求使p指向一个int型的动态存储单元,在横线处应填入的是(  )。
A

int

B

(int*)

C

int*

D

(*int)


相似考题
更多“有以下程序段 int *p; p=______ malloc(sizeof(int)); 若要求使p指向一个int型的动”相关问题
  • 第1题:

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

    A.int

    B.int*

    C.(*int)

    D.(int*)


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

  • 第2题:

    以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是______。

    A.main() { int *p; fun(p); …… } int fun(int *p) {int s; p=&s;}

    B.main() { int *p; fun(&p); …… } int fun(int **p) {int s; *p=&s;}

    C.# include<stdlib. h> main() {int *p; fun(&p); …… } int fun(int **p) {*p=(int *)malloc(2);}

    D.# include<stdlib. h> main() { int *p; fun(p); …… } int fun(int *p) {p=(int *)malloc(sizeof(int));}


    正确答案:C
    解析:选项A和B中p指向局部变量s的地址,退出函数fun后,该局部变量也被释放,不能使p指向一个整型单元地址;选项D中通过malloc函数分配一个整型地址,但不能被返回到main函数中,因为指针参数指向的地址不能被改变;选项C中,p是指向指针的指针,函数fun改变的是其指向的内容,而不是其地址。

  • 第3题:

    若指针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

  • 第4题:

    有以下程序#include <stdio.h>#include <stdlib.h>int fun(int t){ int *p; p=(int*)malloc(sizeof(int)); *p=t; return *p;}main(){ int a; a = fun(8); printf("%d\n", a+fun(10));}程序的运行结果是A.0 B.10 C.18 D.出错


    正确答案:C
    本题考查函数的调用。题目给出的程序可以分为两个部分,一个是函数fun,另一个是主函数main。fun函数的功能是输入一个整型变量t,设置一个指向该整型变量的指针p,并将该指针所指向的值返回给main函数。main函数中两次调用了fun函数,第一次变量t的值为8,第二次变量t的值为10,第一次返回值8,使得a=8,第二次返回值10,使得a+fun(10)=18。

  • 第5题:

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

    A.1

    B.7

    C.9

    D.11


    正确答案:C

  • 第6题:

    有以下程序段

    若要求使P指向一个int型的动态存储单元,在横线处应填入的是

    A.(int*)

    B.int

    C.int*

    D.(*int)


    正确答案:A
    本题考查malloc函数,题目中要求P指向一个int型的动态存储单元,那么就应该将分配的存储单元转化为int,所以选项A正确。

  • 第7题:

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

    A.int

    B.int*

    C.(*int)

    D.(int*)


    正确答案:D

  • 第8题:

    以下程序的输出结果是______。 fun(int **s,int p[2][3]) { **s=p[1][1]; } main() { int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fun(&p,a); printf("%d\n",*p); }

    A.1

    B.7

    C.9

    D.11


    正确答案:C

  • 第9题:

    下列程序的输出结果是()。  #include   FUN(int **b,int p[2][3])   {      **b=p[1][1];  } main( )  {   int a[2][3]={2,4,6,8,10,12},*p;     p=(int *)malloc(sizeof(int));      FUN(&p,a);  printf(“%d/n”,*p);  }


    正确答案:10

  • 第10题:

    单选题
    有以下程序:#include #include void fun(int **s, int x[2][3]){ **s =*(x[1]+1);}void main(){ int a[2][3]={1,2,3,4,5,6},*p; p = (int *)malloc(sizeof(int)); fun(&p,a); printf("%d",*p);}程序的运行结果是(  )。
    A

    5

    B

    2

    C

    6

    D

    3


    正确答案: D
    解析:
    malloc()函数的返回值是新分配的存储区的首地址,将该地址赋值给p指针,然后取p指针的地址,调用fun函数。fun函数中对指向指针的指针s指向的内存单元赋值,其中x[1]表示二维数组x的第二行的行地址,x[1]+1表示二维数组x的第二行第二列的地址,所以fun函数的功能是将二维数组x的第二行第二列的值,即x[1][1]赋值给**s,*s为p,所以**s代表*p,*p即为a[1][1],答案选择A选项。

  • 第11题:

    填空题
    下列程序的输出结果是()。  #include   FUN(int **b,int p[2][3])   {      **b=p[1][1];  } main( )  {   int a[2][3]={2,4,6,8,10,12},*p;     p=(int *)malloc(sizeof(int));      FUN(&p,a);  printf(“%d/n”,*p);  }

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

  • 第12题:

    单选题
    假定指针变量p定义为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为()。
    A

    free(p)

    B

    delete(p)

    C

    free(*p)

    D

    free(&p)


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

  • 第13题:

    以下程序段中,能够通过调用函数fun(),使main()函数中的指针变量p指向一个合法的整型单元的是( )。

    A.main() {int*p; fun(p); … } int fun(int*p) {int s; p=&s; }

    B.main {int*p fun(&p); … } iht fun(int**p) {int s; *p=&s;}

    C.main() {int*p; fun(&p); } int fun(int**p) {*p=(int*)malloc(2);}

    D.main() {int*p; fun(p); } int fun(int*p) {p=(int*)malloc(sizeo(int));}


    正确答案:C
    解析:在选项A中,main()函数中定义了一个指针变量p,调用fun()函数时把p传给形参p,在函数中让p指向局部变量s,由于函数调用返回后,局部变量s将被释放,因此无法实现让实参p指向一个整型单元,故选项A错误。选项B中实现的也是让实参p,指向一个在函数fun()中定义的局部变量s,因此也是错误的;选项C在函数fun()中分配了两个字节的内存单元并把首地址赋值给形参p指向的变量,即main()函数的指针变量p中,由于整型变量占两个字节,因此,选项C是正确的;选项D在主函数中定义了一个指针地址变量p,并把指针变量的值传给形参变量p,在fun()函数中分配了一个整型单元并把首地址赋值给行参指针变量p,由于C语言中变量作为参数是传值的,所以并没有改变对应实参指针变量的值,因此选项D也是错误的。所以,C选项为所选。

  • 第14题:

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

    A.int

    B.int*

    C.(*int)

    D.(int*)


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

  • 第15题:

    以下程序的输出结果是______。 fun(int**p,int a[2][3]) {**p=a[1][2]; } main() { int a[2][3]=}1,3,5,7,9,11},*p; p=(int*)malloc(sizeof(int)); fun(&p,a) ; printf("%d\n",*p); }

    A.9

    B.7

    C.1

    D.11


    正确答案:D
    解析:主函数中指针变量指向两字节的存储空间,这两个字节可以存放 int型数据,函数fun是将实参数组a中的元素a[1][2]的值11赋给指针变量p所指的存储空间,程序输出该空间的值。本题函数fun中形参p是二级指针变量,它指向实参指针变量p。

  • 第16题:

    有以下程序 include include int fun(int n) {int *

    有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) {int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是______。

    A.0

    B.10

    C.20

    D.出错


    正确答案:C
    解析:malloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了—个整型的指针变量p。然后执行语句“*p=n”,使得*p的值为10,并通过返回此值,在主函数中输出a+10的值,即输出20。

  • 第17题:

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

    A.int

    B.int*

    C.(*int)

    D.(int*)


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

  • 第18题:

    以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

    A.main() { int *p; fun(p); … } int fun(int *p) { ints; p=&s;}

    B.main() { int *p; fun(&p); … } int fun(int **p) { int s; *p=&s;)

    C.#include main() { int *p; fun(&p); … } int fun(int **p) *p=(int*)malloc(2);}

    D.#include main() { iht *p; fun(p); … } iht fun(iht *p) { p=(int*)malloc(sizeof(int)); }


    正确答案:C
    解析:本题考核的知识点是指针变量作为函数的参数以及变量的作用域。在选项A中,main()函数中定义了一个指针变量p,调用fun()函数时把p传给形参p,在函数中让p指向局部变量s,由于函数调用返回后,局部变量s将被释放,因此无法实现让实参p指向一个整型单元,故选项A错误.选项B中实现的也是让实参p,指向一个在函数fun()定义的局部变量s,因此也是错误的;选项C在函数fun()中分配了两个字节的内存单元并把首地址赋值给形参p指向的变量,即main()函数的指针变量p中,由于整型变量占两个字节,因此,选项C是正确的;选项D在主函数中定义了一个指针地址变量p,并把指针变量的值传给形参变量p,在fun()函数分配了一个整型单元并把首地址赋值给行参指针变量p,由于C语言中变量作为参数是传值的,所以并没有改变对应实参指针变量的值,因此选项D也是错误的.所以,C选项为所选。

  • 第19题:

    若指针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符合题意。

  • 第20题:

    假定指针变量p定义为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为()。

    Afree(p)

    Bdelete(p)

    Cfree(*p)

    Dfree(&p)


    A

  • 第21题:

    若指针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

  • 第22题:

    单选题
    有以下程序:#include #include void fun(int*p1,int*p2,int*s){ s=(int*)malloc(sizeof(int)); *s=*p1+*p2; free(s);}main(){ int a=1,b=40,*q=&a; fun(&a,&b,q); printf(%d,*q);}程序运行后的输出结果是(  )。
    A

    42

    B

    0

    C

    1

    D

    41


    正确答案: A
    解析:
    main函数中定义了3个变量,a,b和指针变量q,并且q存放的是a的地址,fun函数中s是重新分配的空间,将重分配的空间中存放*p1和*p2即为1和40,然后释放s,而q没有变化,仍然指向变量a,故*q仍然为1,答案选择C选项。

  • 第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题:

    单选题
    有以下程序段 int *p; p=______ malloc(sizeof(int)); 若要求使p指向一个int型的动态存储单元,在横线处应填入的是(  )。
    A

    int

    B

    (int*)

    C

    int*

    D

    (*int)


    正确答案: D
    解析:
    C语言标准规定malloc函数返回值的类型为void*,函数的调用形式为:malloc(size),size的类型为unsigned int。p是指向int型的指针,要把void *强制转换成int *。答案选择B选项。