niusouti.com

定义由n个指向整形数据的指针组成的数组p,其正确的方式为( )。A int p;B int (*p)[n];C int *p[n];D int (*p)( );

题目

定义由n个指向整形数据的指针组成的数组p,其正确的方式为( )。

A int p;

B int (*p)[n];

C int *p[n];

D int (*p)( );


相似考题
更多“定义由n个指向整形数据的指针组成的数组p,其正确的方式为( )。A int p; B int (*p)[n]; C int ”相关问题
  • 第1题:

    若有定义“int*p[3];”,则以下叙述中正确的是( )。

    A.定义了一个基类型为int的指针变量p,该变量具有3个指针

    B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int的指针

    C.定义了一个名为*p的整型数组,该数组含有3个int类型元素

    D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有3个int类型元素


    正确答案:B
    解析:本题定义了一个指针数组p,每个元素都是基类型为int,它的长度为3即该数组含有3个元素。选项A、C和D都不正确,只有选项B符合题意。

  • 第2题:

    定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。

    A、int*p=newint[30];

    B、int*p=newint(30);

    C、int*p=new[30];

    D、*p=newint[30];


    参考答案:A

  • 第3题:

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

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

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

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

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


    正确答案:A
    解析:本题考核的知识点是manoc()函数的应用。该函数的调用格式是“malloc(n)”,作用是申请n个字符的存储单元并把该存储区的首地址作为返回值,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址。选项D多了一个参数,不符合malloc()函数的调用格式;整型变量在有的计算机系统里占4个字节,并不一定在所有的计算机系统里都是两个字节,所以选项C不正确;选项A中是申请一个整型的存储空间并把该存储空间的首地址乘以2,这样的做法是不正确的,其存储空间为没乘以2之前的存储空间的2倍的连续存储空间的地址,选项A不正确。所以,4个选项中B为所选。

  • 第4题:

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

    A. int p=&x;

    B. int *p=&x;

    C. int p=x;

    D. int *p=x;


    正确答案:B

  • 第5题:

    若有定义:iht*p[3];,则以下叙述中正确的是

    A.定义了一个基类型为int的指针变量p,该变量具有三个指针

    B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

    C.定义了一个名为*p的整型数组,该数组含有三个int类型元素

    D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素


    正确答案:B
    解析:指针数组也是一种数组,所有有关的概念都适用于它。但它与普通的数组又有区别,它的数组元素是指针类型,只能用来存放地址。其格式为:存储类型数据类型*指针数组名[长度1],其含义为:定义了一个长度1的数组,其中数组元素为相应存储类型的指针。

  • 第6题:

    有以下程序#include <stdio.h>main { int n,*p=NULL; *p=&n; printf("Input n:"); scanf("%d",&p); printf("output n:"); printf("%d\n",p);}该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是A.int n,*p=NULL; B.*p=&n; C.scanf("%d",&p) D.printf("%d\n",p);


    正确答案:A
    在C语言中存在直接存取和间接存取两种访问内存数据的方法。前者利用变量名隐式地访问内存:首先定义变量,然后由编译系统完成从变量名到内存地址的映射工作,用户通过变量名访问内存空间,变量地址对用户完全透明。后者则通过指针显式地访问内存:用户直接使用变量的地址,或者将变量的地址值储存于特殊的变量中,然后通过此特殊的变量获取地址值访问内存。
    为了更好地使用指针变量,C语言提供了获取变量地址和通过地址访问变量的运算符“&”和“*”。
    (1)取地址运算符“&”的使用格式为:&变量名,如&a表示变量a在内存中的地址。本运算符实现从变量到地址的转化。
    (2)指针运算符“*”的使用格式为:*指针变量名,如*p表示指针变量p所指向的变量的值。本运算符实现从地址到变量的转化。
    在本题中,程序的作用已经给出,下面分别分析各选项中的语句。在选项A中,定义了一个整型变量n和一个整型指针变量p,并使其指向一个空,即不指向任何变量,该语句是正确的语句;在选项B中,由于*p表示值,而&n表示地址,它们之间进行赋值操作明显是错误的;在选项C中,由于p是指针变量,没有&p表示方法,因此错误;在D选项中,输出的是p指针所指向的地址,而不是p指针所指向的变量值,不符合题目的要求。

  • 第7题:

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

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

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

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

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


    正确答案:A
    解析:本题考查malloc函数和calloc函数的应用。C语言中库函数malloc和calloc的功能都是向系统申请分配内存空间。其中函数malloc的调用为:malloc(size),其中size是一个无符号整数,表示向系统申请多大的存储空间;calloc(n,size)表示向系统申请n个大小为size的存储空间。新标准C提供的malloc和calloc函数的类型规定为void*类型,使用时根据需要进行强制类型转换。选项B、C、D都能满足p指向两个连续的整型存储单元的要求,其中(int*)表示强制类型转换。

  • 第8题:

    若有int(*p)[3]:则以下表述中正确的是 ______。

    A.p是一个指向具有3个元素的整型数组的指针

    B.p是一个指向int型变量的指针

    C.p是一个有3个元素的指针数组,每个元素是一个int型指针

    D.p是一个具有3个int型元素的一维数组


    正确答案:A

  • 第9题:

    指向数组元素为整型的一维数组的指针变量的定义是()。

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

    正确答案:C

  • 第10题:

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

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

    正确答案:C

  • 第11题:

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

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

    正确答案:A

  • 第12题:

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

  • 第13题:

    有以下程序:inlucdemain()D)2 3 3{int n,*P=NULL;*p=&n;printf("input n:");scanf("%d

    有以下程序: #inlucde<stdio.h> main()D)2 3 3 {int n,*P=NULL; *p=&n; printf("input n:");scanf("%d",&p);printf("output n:");printf("%d\n",p); } 该程序试图通过指针P为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( )。

    A.int n,*P=NULL;

    B.*P=&n;

    C.scanf(“%d",&p)

    D.printf("%d\n",p);


    正确答案:A

  • 第14题:

    下列定义中,( )是定义指向数组的指针p.

    A、int*p[5]

    B、int(*p)[5]

    C、(int*)p[5]

    D、int*p[]


    参考答案:B

  • 第15题:

    若有定义"int*p[3];",则以下叙述中下确的是

    A.定义了一个基类型为int的指针变量p,该变量具有三个指针

    B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类犁为int的指针

    C.定义了一个名为*p的整型数组,该数组含有三个int类型元素

    D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素


    正确答案:B
    解析:本题考核的知识点是指针数组的定义。指针数组也是一种数组,所有有关的概念都适用于它。但它与普通的数组又有区别,它的数组元素是指针类型,只能用来存放地址。其格式为:存储类型数据类型*指针数组名[长度1],其含义为:定义了一个长度1的数组,其中数组元素为相应存储类型的指针,对比定义可知,选项A、c和D都不正确,所以,4个选项中选项B符合题意。

  • 第16题:

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

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

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

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

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


    正确答案:D

  • 第17题:

    在下面语句中,其含义为“p为指向含n个元素的一维数组的指针变量”的定义语句是 ( )

    A.int p [n]

    B.int * p( );

    C.int * p(n);

    D.int( * p)[n]


    正确答案:D

  • 第18题:

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

  • 第19题:

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

    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

  • 第20题:

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

  • 第21题:

    若有说明int(*p)[3];则以下()是正确的叙述。

    • A、p是一个指针数组
    • B、(*p)[3]与*p[3]等价
    • C、p是一个指针,它可以指向一个一维数组中任一元素
    • D、p是一个指针,它只能指向一个包含3个int类型的一维数组

    正确答案:D

  • 第22题:

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

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

    正确答案:C,D

  • 第23题:

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

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

    正确答案:D