niusouti.com

已知:int *p(); 则p是A.一个函数,该函数的返回值是指向int型的指针变量B.指向int型的指针变量C.int型的指针数组D.一个指向函数的指针变量,该函数的返回值是int型

题目

已知:int *p(); 则p是

A.一个函数,该函数的返回值是指向int型的指针变量

B.指向int型的指针变量

C.int型的指针数组

D.一个指向函数的指针变量,该函数的返回值是int型


相似考题
参考答案和解析
一个函数,该函数的返回值是指向int型的指针变量
更多“已知:int *p(); 则p是”相关问题
  • 第1题:

    已知“int*p;fun(p);”,其中,函数fun没有返回值,且其形参定义为引用调用方式,则下列给出的fun函数原型中正确的是()。

    A.voidfun(inta[]);

    B.voidfun(int*&a);

    C.voidfun(int&a[]);

    D.voidfun(int&*a);


    正确答案:B

  • 第2题:

    已知有如下结构体:

    struct sk

    { int a; float b; }data,*p;

    若有P=&data,则对data的成员a引用正确的是( )。

    A.(*p).data.a

    B.(*p).a;

    C.p->data.a

    D.p.data.a


    正确答案:B
    本题主要考查结构指针:P=&data,访问结构体的成员。它可以通过结构变量访问,即data,可以用等价的指针形式:(*p).a和P->a来访问结构体变量中的成员。

  • 第3题:

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

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

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

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

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


    正确答案:D

  • 第4题:

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

  • 第5题:

    已知:intn=10;那么下列语句中错误的是

    A.int*p=new long[n];

    B.int p[n];

    C.int*p=new long(n);

    D.int p[10];


    正确答案:B
    解析:本题考核指针、数组和new运算符。运算符new用于动态申请存储空间,它的操作数为某种数据类型且可以带有初值表达式或元素个数,若带初值,则其表达式为:指针>=new类型>(初值);如C选项所示,若带有元素个数,则其语法格式为:《指针》=new类型>[元素个数>],如A选项所示。数组定义中数组大小必须为常量,而B选项中的n为一变量所以是错误的。

  • 第6题:

    若要说明x是整型变量,p为指向x的整型指针变量,则正确的说明是______。

    A.iht x,*p=&x;

    B.int x,p=&x;

    C.int x,*p=*x;

    D.int*p=&x,x;


    正确答案:A
    解析:整型指针变量p指向整型变量x,显然是先定义x,后定义p。定义p时,必须在指针变量名前加*(否则,p只是不同整型变量),取变量x的地址,要用取地址符&。

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

    已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。

    Afree(p);

    Bfree p;

    Cfree(*p);

    Dfree[p];


    A

  • 第9题:

    已知int a[]={ 0,2,4,6,8,10 },*p=a+1;其值等于0的表达式是()

    • A、*(p++)
    • B、*(++p)
    • C、*(p--)
    • D、*(--p)

    正确答案:D

  • 第10题:

    定义指针变量int*p;则下列说法正确的是()

    • A、*p是指针常量
    • B、*p是一个地址
    • C、*p是指针变量
    • D、指针指向int型数据

    正确答案:C,D

  • 第11题:

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

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

    正确答案:A

  • 第12题:

    已知:int**p;则变量p是()

    • A、指向int型变量的指针、
    • B、指向指针的指针
    • C、int型变量
    • D、以上三种说法均不正确

    正确答案:B

  • 第13题:

    已知有结构体: struct sk { int a; float b; }data,*p; 若有p=&data,则对data的成员a的正确引用是( )。

    A.(*p).data.a

    B.(*p).a;

    C.p->data.a

    D.p.data.a


    正确答案:B
    解析:本题主要考查结构指针:p=&data,访问结构体的成员,可以通过结构变量访问,即data.a,也可以用等价的指针形式:(*p).a和p->a来访问结构体变量中的成员。

  • 第14题:

    设int*p2=&x,*p1=a;p2=*b,则a和b的类型分别是______ 。

    A.int*和int

    B.int*和int**

    C.int 和int*

    D.int*和int*


    正确答案:B
    解析:a的类型一定是一个int*型,而b的类型是int**类型。

  • 第15题:

    以下程序段中,能够通过调用函数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选项为所选。

  • 第16题:

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

    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

  • 第17题:

    已知:int n=10;那么下列语句中错误的是

    A.int*p=new long[n];

    B.int p[n];

    C.int*p=new long(n);

    D.int p[10];


    正确答案:B
    解析:本题考核指针、数组和new运算符。运算符new用于动态申请存储空间,它的操作数为某种数据类型且可以带有初值表达式或元素个数,若带初值,则其表达式为:指针>=new类型>(初值),如C选项所示,若带有元素个数,则其语法格式为:指针>=new类型>[元素个数>],如A选项所示。数组定义中数组大小必须为常量,而B选项中的n为一变量所以是错误的。

  • 第18题:

    已知定义“int x = 1, *p”,则合法的赋值表达式是( )。

    A、p = &x

    B、p = x

    C、*p = &x

    D、*p = *x


    参考答案A

  • 第19题:

    假定变量m定义为int m=7;则定义变量p的正确语句为( )。

    A.int p=&m;

    B.int *p=&m;

    C.int &p=*m;

    D.int *p=m;


    正确答案:B
    解析:将变量m的地址赋给指针p。

  • 第20题:

    若有语句:int x,*p=&x;则与该语句等价的语句是()

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

    正确答案:B

  • 第21题:

    设有C语句int a[3][4];, 则每次移动过a数组一行元素的指针变量定义形式是()

    • A、int *p;
    • B、int **p;
    • C、int(*p)[4];
    • D、int *p[4];

    正确答案:C

  • 第22题:

    假定变量m定义为“intm=7;”,则定义变量p的正确语句为()。

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

    正确答案:B

  • 第23题:

    若已定义a为int型变量,则对指针p的说明和初始化正确的是()。

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

    正确答案:D

  • 第24题:

    单选题
    已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。
    A

    free(p);

    B

    free p;

    C

    free(*p);

    D

    free[p];


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