如果有定义int a=5;,则下面对①、②两个语句的正确解释是()。A.语句①和②的含义相同,都表示给指针变量p赋值B.语句①和②的执行结果,都是把变量a的地址值赋给指针变量pC.①在说明p的同时进行初始化,使p指向a;②将变量a的值赋给指针变量pD.①在说明p的同时进行初始化,使p指向a;②将变量a的值赋给*p

题目

如果有定义int a=5;,则下面对①、②两个语句的正确解释是()。

A.语句①和②的含义相同,都表示给指针变量p赋值

B.语句①和②的执行结果,都是把变量a的地址值赋给指针变量p

C.①在说明p的同时进行初始化,使p指向a;②将变量a的值赋给指针变量p

D.①在说明p的同时进行初始化,使p指向a;②将变量a的值赋给*p


相似考题
更多“如果有定义int a=5;,则下面对①、②两个语句的正确解释是()。”相关问题
  • 第1题:

    类MyClass的定义如下: class MyClass { public: MyClass(){value=0;} SetVariable(int i){value=i;} private: int value; }; 则对下列语句序列正确的描述是( )。

    A.语句p=&my,是把对象:my赋值给指针变量p

    B.语句MyClass*p,my;会调用两次类MyClass的构造函数

    C.对语句*P.SetVariable(5)的调用是正确的

    D.语句P->SetVariable(5)与语句my.SetVariable(5)等价


    正确答案:D
    解析: 选项A,语句p=&my;是把对象my的地址值赋值给指针变量P;选项B,语句MyClass*p,my;由于 p只是一个指向对象的指针,因此定义指针p不调用构造函数,所以此语句只调用一次构造函数:对成员函数的引用可以通过两种形式:指针->成员函数(形参表)或者对象名。成语函数名(形参表),故选项C错误,选项D正确。

  • 第2题:

    若有以下变量定义和函数调用语句: int a=5; fun(&a); 则执行下面函数后正确的输出结果是( )。 void fun(int*x) { cout<<++*x<<end1; }

    A.3

    B.4

    C.5

    D.6


    正确答案:D
    解析:fun函数中的x参数为整型指针变量。调用fun函数, &a是取a的地址,即将实际参数a的地址传递。函数fun中的*x是变量x所指的存储单元即值5。*运算符的等级高于++,所以先取值5,然后加1输出,即为6。

  • 第3题:

    下面是类MyClass的定义,对定义中各种语句描述正确的是( )。

    class MyClass { publiC: void MyClass(int a) //①

    { x=a; ) int func(int a,int b) //②

    { x=a; y=b; } int func(int a,int b,int c=0) //③

    { x=a; y=b; z=c; } static void resetValue() //④

    { x=0; } private: int X,y,Z; };

    A.语句①是类MyClass的构造函数定义

    B.语句②和语句③实现类成员函数的重载

    C.语句④实现对类成员变量x的清零操作

    D.语句①、②、③和④都不正确


    正确答案:D
    解析:类的构造函数没有返回类型,所以语句①是错误的;语句②和语句③将会使函数func()的调用产生歧义;成员函数resetValue()是静态成员函数,那么它不能访问类MyClass中的非静态数据成员,所以语句④也不正确。

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

    下面是类MyClass的定义,对定义中各语句描述正确的是( )。 class MyClass { private: int x,y, z; public: void MyClass(int A) { x=a; } //① int f(int a, int B) //② { x=a; y=b; } int f(int a,

    A.语句①是类MyClass 的构造函数的定义

    B.语句②和③实现类成员函数的重载

    C.语句④实现对类成员变量x的更新操作

    D.语句①、②、③和④都不正确


    正确答案:D
    解析:在C++中构造函数没有返回类型,所以语句①是错误的。语句②和语句③在进行f(x,y)调用时会产生二义性。静态成员函数不能直接访问类中说明的非静态成员。所以语句④也是错误的。

  • 第6题:

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

  • 第7题:

    有定义语句:int[,]a=new int[5,6]; 则下列正确的数组元素的引用是()。

    • A、a(3,4)
    • B、a(3)(4)
    • C、a[3][4]
    • D、a[3,4]

    正确答案:C

  • 第8题:

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

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

    正确答案:B

  • 第9题:

    有定义语句: int[,] a=new int[5,6];  则下列正确的数组元素引用是()

    • A、 a(3,4)
    • B、 a(3)(4)
    • C、 a[3][4]
    • D、 a[3,4]

    正确答案:D

  • 第10题:

    有语句:inta[10],;则()是对指针变量p的正确定义和初始化。

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

    正确答案:B

  • 第11题:

    单选题
    以下的数组定义语句中,不正确的是()
    A

     int[] a=new int[5]{1,2,3,4,5};

    B

     int[,] a=new int[3][4];

    C

     int[][] a=new int[3][];

    D

     int[] a={1,2,3,4,5};


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

  • 第12题:

    单选题
    若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是(  )。

    正确答案: A
    解析:
    D项正确,标号可以是整型表达式。A项错误,case是关键字,与其后面的常量表达式合称case语句标号。常量表达式的类型必须与swicth后圆括号中的表达式类型相同,各case语句标号的值应该互不相同。c是变量,不能作为表达式放在case后面;B项错误,switch后面不应该有分号;C项错误,switch参数值类型必须是这几种类型之一:int,long,short,byte,char。答案选择D选项。

  • 第13题:

    有如下定义语句: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.语句iht*p=a;是把a[l]的值赋给变量p


    正确答案:B

  • 第14题:

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

  • 第15题:

    要正确定义并初始化一个数组a,它含有5个元素,则正确的语句是______。

    A.int a[5]=(0,0,0,0,0);

    B.int a[5]={};

    C.int a[]={0,0,0,0,0};

    D.int a[]={5*0};


    正确答案:C
    解析:A项是错误的,赋值时用的是花括号而不是圆括号。B项错在不能初始化时在花括号内为空。D项错在不可以用表达式对数组一一赋值。C项虽然没有直接定义数组的大小,但是初始化时只赋了5个元素的值,系统会自动定义数组的大小为5,这种形式是正确的。

  • 第16题:

    若变量a,b已正确定义,且b已正确赋值,则合法的语句是( )。

    A.b=double(b);

    B.(int)a=(int)b;

    C.a=a++=5;

    D.a=double(b);


    正确答案:B
    在C语名中规定进行强制类型转换的格式是:(类型名)变量名;并且给表达式赋值。

  • 第17题:

    若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。


    正确答案:A
    B选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。

  • 第18题:

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

    A.int p=&m;

    B.int *p=&m;

    C.int &p=*m;

    D.int *p=m;


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

  • 第19题:

    在下面的二维数组定义中,只有()语句是正确的。

    • A、int a[5][];
    • B、int a[](10);
    • C、int a[][];
    • D、int a[][5]={{1,2,3},{4,5}};

    正确答案:D

  • 第20题:

    数组定义与赋值语句如下:int[]a={1,2,3,4,5};则a[2]的值是()


    正确答案:3

  • 第21题:

    以下的数组定义语句中,不正确的是()

    • A、 int[] a=new int[5]{1,2,3,4,5};
    • B、 int[,] a=new int[3][4];
    • C、 int[][] a=new int[3][];
    • D、 int[] a={1,2,3,4,5};

    正确答案:B

  • 第22题:

    单选题
    有定义语句: int[,] a=new int[5,6];  则下列正确的数组元素引用是()
    A

     a(3,4)

    B

     a(3)(4)

    C

     a[3][4]

    D

     a[3,4]


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

  • 第23题:

    填空题
    数组定义与赋值语句如下:int[]a={1,2,3,4,5};则a[2]的值是()

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

  • 第24题:

    单选题
    若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是(  )。
    A

    m[--i]

    B

    m[2*2]

    C

    m[m[0]]

    D

    m[m[i]]


    正确答案: A
    解析:
    在C语言中,数组的下标是从0开始的,所以它的上限是数组元素个数减1。如果超过这个范围来引用数据元素就会溢出,造成运行时错误。本题的数组m有5个元素,所以它的下标范围是0~4。A项,--i的值为3;B项,2*2的值为4;C项,m[0]等于5,超出范围,出现溢出错误;D项,m[i]的值为4,即m[4]的值为1。答案选择C选项。