更多“若有语句int *point, a=4; point=&a; 下面均代表地址的一组选项是”相关问题
  • 第1题:

    ( 33 )下面程序中对一维坐标点类 Point 进行运算符重载

    #include

    using namespace std;

    class point {

    public:

    point ( int vaI ) {x=val;}

    point & operator++ () {x++;retum*this;}

    print operator++ ( int ) {point ld=*this,++ ( *this ) ;retum old;}

    int GetX () const {retum x;}

    private:

    int x;

    };

    int main ()

    {

    point a ( 10 ) ;

    cout<< ( ++a ) .GetX () ;

    cout<<A++.GETX () ;

    retum () ;

    }

    编译和运行情况是

    A )运行时输出 1011

    B )运行时输出 1111

    C )运行时输出 1112

    D )编译有错


    正确答案:B

  • 第2题:

    有如下程序:includeusing namespace std;class Point{public: static int number;

    有如下程序:#include<iostream>using namespace std;class Point{public: static int number;public: Point(){number++;} ~Point(){number--;}};int Point::number=0;void main(){ Point*ptr; Point A,B; { Point*ptr_point=new Point[3]; ptr=pb_point; } Point C cout<<Point::number<<endl; delete[]ptr; }运行时输出的结果是

    A.3

    B.4

    C.6

    D.7


    正确答案:C
    解析:本题考查的知识点是:静态成员,对象的构造,对象的生存周期。静态成员的特性是不管这个类创建了多少个对象,它的静态成员都只有一个拷贝(副本),这个副本被所有属于这个类的对象共享。本题的Point类中就定义了一个静态成员变量 number。其初始值为0,每次构造则自动增1,析构则自动减1,所以number是Point类对象的计数值。在主函数中,第1行定义了1个Point类型指针ptr,这并不会构造 Point类对象,因此number值为0;第2行定义了2个Point对象,所以此时number值为2;第3~6行是一个语句块,其中通过new运算符又定义了1个包含3个Point对象元素的数组,由于是动态创建的,所以其生命周期只能通过delete运算符来结束,否则会一直占据内存直到程序结束,所以现在number的值为5:第7行定义了1个 Point对象C,number的值变为6;第8行输出number的内容,所以最后输出的结果是6。故本题应该选择C。

  • 第3题:

    若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是( )。

    A.a, p, &*a

    B.*&a, &a, *p

    C.&a, p, &*p

    D.*&p, *p, &a"


    参考答案C

  • 第4题:

    有如下程序:

    #include<iostream>

    #include<cmath>

    using std::cout;

    class Point{

    public:

    friend double distance(const Point &p); //P距原点的距离

    Point(int xx=0,int yy=0):x(xx),Y(YY){}//①

    private:

    int x,y;

    };

    double distance(const Point &p){ //②

    return sqrt(P.x*P.x+P.y*P.y);

    }

    int main(){

    Point p1(3,4);

    cout<<distance(p1);

    return 0; //③

    }

    下列叙述中正确的是

    A.程序编译正确

    B.程序编译时语句①出错

    C.程序编译时语句②出错

    D.程序编译时语句③出错


    正确答案:A

  • 第5题:

    若有语句int * point,a=4;和point=&a;下面均代表地址的一组选项是()。A.a,point,*&aB.&am

    若有语句int * point,a=4;和point=&a;下面均代表地址的一组选项是( )。

    A.a,point,*&a

    B.&*a,&a,*point

    C.*&point,*point,&a

    D.&a,& * point,point


    正确答案:D
    解析:“&”是求地址运算符,“*”是指针变量说明符,本题只有选项D)中的各项均代表地址,其中&*point等价于point。

  • 第6题:

    有如下类定义:class Point{int x__, y__;public:Point(): x_(0), y_(0) {}Point(int x, int y =0): x_(x), y_(y) {}若执行语句Point a(2),b[3], *c[4];则Point 类的构造函数被调用的次数是( )。

    A.2次

    B.3次

    C.4次

    D.5次


    正确答案:C

  • 第7题:

    有如下程序: include using namespace std; class point {int x,y; public:point( i

    有如下程序: #include <iostream> using namespace std; class point { int x, y; public: point( int vx, int vy ) { x = vx; y = vy; } point ( ) { x = 0; y = 0; } point operator+( point pl ) { point p; int px = x + p1.x; int py = y + p1.y; return point( px, py ); } point operator-( point p1 ) { point p; int px = x - p1.x; int py = y - p1.y; return point( px, py ); } void print() { cout<<x<<", "<<y<<end1; } }; int main () { point pl ( 10, 10 ), p2 ( 20, 20 ); p1 = p1 + p2; p1.print (); return 0; } 执行后的输出结果是( )。

    A.10,10

    B.20,20

    C.10,20

    D.30,30


    正确答案:D
    解析:本题主要考察C++中运算符重载的机制与实现。运算符重载函数一般分为成员函数形式和友元函数形式,这两种形式都可以访问类中的私有成员。本题中的运算符重载形式为成员函数形式。程序在类point中声明了私有数据成员intx和inty,并定义了两种形式的构造函数以完成对对象的初始化:之后,程序对运算符“+”进行了重载,令其输入参数为类point的对象,输出为操作符“+”右侧该对象的私有数据成员x和y与操作符“+”左侧同类型对象的私有数据成员x和y的两数之和;print()函数则输出对象中数据成员的值。主函数中,实例化了类point的两个对象p1和p2,并完成对对象的初始化。在语句“p1=p1+p2;”中,由于操作符“+”左右两端的操作数为point类的对象,复合类point定义中的操作符“+”的重载函数,因此程序将调用重载后的操作符函数,并返回两point对象数据成员的加和值,覆盖对象p1的数据成员。因此print()函数输出对象p1的数据成员值应该为:x=10+20=30,y=10+20=30。

  • 第8题:

    有以下类定义: class Point { public: Point(int x=0,int y=0){_x=x; _y=y;} void Move(int x Off, int y Off) {_x+=x Off; _y+=y Off; } void Print() const { cout <<'(' << _x << ',' << _y << ')'<< end 1;} private: int _x,_y; }下列语句中会发生编译错误的是______。

    A.Point pt; pr. Print();

    B.const Point pt; pt. Print();

    C.Point pt; pt. Move(1,2);

    D.const Point pt; pt. Move(1,2);


    正确答案:D
    解析:const修饰符改变值出错。

  • 第9题:

    若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是 A.a,point,*&

    若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是

    A.a,point,*&a

    B.&*a,&a,*point

    C.*&point,*point,&a

    D.&a,&*point,point


    正确答案:D

  • 第10题:

    若有语句int*p,a=4;和p=&a;下面均代表变量值的一组选项是()

    • A、a,p,*&a
    • B、&*a,&a,*p
    • C、*&p,*p,&a
    • D、*&a,*p,a

    正确答案:D

  • 第11题:

    单选题
    下列语句中错误的是(  )。
    A

    const int a;

    B

    const int a=10;

    C

    const int*point=0;

    D

    const int*point=new int(10);


    正确答案: B
    解析:
    A项错误,由关键字const声明符号常量的同时必须为其赋初值。

  • 第12题:

    单选题
    有以下说明语句:struct point{int x;int y;}p;则正确的赋值语句是()
    A

    point.x=1;point.y=2;

    B

    point={1,2};

    C

    p.x=1;p.y=2;

    D

    p={1,2};


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

  • 第13题:

    下列语句中错误的是( )。

    A.const int a;

    B.const int a=10;

    C.const int*point=0;

    D.const int*point=new int(10);


    正确答案:A
    解析:此题考查的是符号常量的概念。符号常量必须在声明的同时赋初值,故选项A)错误。

  • 第14题:

    下面程序中对一维坐标点类Point进行运算符重载 include using namespace std;

    下面程序中对一维坐标点类Point进行运算符重载 #include <iostream> using namespace std; class Point { public: Point(int val) {x=val;} Point & operator++() {x++; return *this; } Point operator++(int) {Point ld = *this; ++(*this); return old;} int GetX() const {return x;} private: int x; }; int main() { Point a(10); cout << (++a).GetX(); cout << a++.GetX(); return 0; }编译和运行情况是

    A.运行时输出1011

    B.运行时输出1111

    C.运行时输出1112

    D.编译有错


    正确答案:B
    解析:本题考查的知识点是:重载增1运算符“++”。++既可以是前缀运算符(前增1),又可以是后缀运算符(后增1)。为了区分这两种情况,重载这两个运算符时必须在格式上有所区别:重载后缀++时必须多一个虚拟参数:int。在本题中,Point& operator++()重载的是前缀形式,而Point operator++(int)则是后缀形式。所以,主函数中第1条输出语句cout(++a).GetX();等价于couta.operator++().GetX();,即输出 11,此时a.x的值为11。而第2条输出语句couta++.GetX();等价于cout a.operator++(0).GetX();(式中的0可以是任意整数),在这个后缀++的重载函数中,首先创建了一个Point对象old保存自身(*this),然后通过语句++(*this];调用前缀++的重载函数,此时自身虽然已经改变,但它返回的是改变前保存的old对象,因此还是输出11。故本题应该选择B。

  • 第15题:

    有以下程序: include using namespace std; class Point' { public: void SetPoint(

    有以下程序: #include <iostream> using namespace std; class Point' { public: void SetPoint(int x,int y); void Move(int xOff,int yOff); int GetX() { return X; } int GetY() { return Y; } private: int X,Y; }; void Point::SetPoint(int x, int y) { X=x; Y=y; } void Point: :Move(int xOff, int yOff) X+=xOff; Y+=yOff; } int main () { Point p1; p1.SetPoint(1,2); p1.Move (5, 6); cout<<"Point1 is ("<<p1.GetX()<<','<<p1.GetY()<<")"<<end1; return 0; } 执行后的输出结果是( )。

    A.Point1 is (6,8)

    B.Point1 is (1,2)

    C.Point1 is (5,6)

    D.Point1 is (4,4)


    正确答案:A
    解析:本题考核对象的定义与使用。程序中定义了一个类Point,在主函数中定义了一个Point类的对象p1,然后通过对象p1调用其成员函数SetPoint()和Move()实现移位的操作。

  • 第16题:

    若有语句int *point,a=4;和 point=&a;,下面均代表地址的一组选项是A.a,point,*&a B.&am

    若有语句int *point,a=4;和 point=&a;,下面均代表地址的一组选项是A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point


    正确答案:D
    本题主要考查指针变量对数值的引用。在题目中,首先定义了整型指针变量point和一个整型变量a,变量a的初值为4,然后是指针变量指向a,或者说将变量a所在存储单元的地址值赋给指针变量。
    在选项A中,很显然,不全是地址,只有point表示地址,而*&a等价于*(&a),表示取一个数值。
    在选项B中,也不都表示地址,其中*point表示数值,其他两个表示地址。
    在选项C中,与选项B类似,其中的*point表示数值。
    在选项D中,都表示地址,是题目的选择答案。

  • 第17题:

    有如下程序: #inClude<iostream> using namespaCe std; Class Point{ publiC: statiC int number; publiC: Point( )t.number++;} ~Point( ){number--;} }; , int P0int::number=0; int main( ){ Point *ptr: Point A,B; Point*ptr_point=new Point[3]; ptr=ptr_point;’ } Point C; Cout<<Point:::number<<endl; delete[]ptr; return 0; } 执行这个程序的输出结果是( )。

    A.3

    B.4

    C.6

    D.7


    正确答案:C
    本题考查默认构造函数.题目中定义.个对象A、B以及对象数组Point[3],又定义了对象C,共执行6次构造函数,number变为了6,所以本题答案为C。

  • 第18题:

    若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是

    A.a,point,*&a

    B.&*a,&a,*point

    C.*&point,*point,&a

    D.&a,&*point,point


    正确答案:D
    解析:“&”是求址运算符,“*”是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。本题中选项D)中的第一和第三项所表达的是同样的意思。注意:选项A)中9是一个整型变量。选项B)中&,a等价于a,*point是指针变量所指的内容。选项C)中也是同理。注意:在指针运算中,&和*的作用相互抵消。

  • 第19题:

    若有以下程序:include using namespace std;define PI 3.14class Point{private: in

    若有以下程序: #include <iostream> using namespace std; #define PI 3.14 class Point { private: int x,y; public: Point(int a,int b) { x=a; y=b; } int getx() { return x; } int gety() { return y; } }; class Circle : public Point { private: int r; public: Circle(int a, int b,int c) :Point(a,b) { r=c; } int getr() { return r; } double area() { return PI*r*r; } }; int main() { Circle c1(5,7,10); cout<<c1.area()<<end1; return 0; } 程序执行后的输出结果是( )。

    A.314

    B.157

    C.78.5

    D.153.86


    正确答案:A
    解析:本题考核派生类的定义和应用。本程序设计了一个点类Point,包含了横、纵两个坐标数据x和y,由它派生出了圆类Circle,并加入了新的数据成员,即一个半径数据,和一个求圆面积的函数成员area。在主函数中,首先定义了一个圆Circle类的对象c1,并通过它的构造函数初始化其数据成员。由此可知,其半径r的值为10,所以其面积为PI*10*10=314,即对象c1的函数成员area的返回值为314。

  • 第20题:

    若有以下程序:include using namespace std;class point{private: int x, y;public:

    若有以下程序: #include <iostream> using namespace std; class point { private: int x, y; public: point ( ) { x=0; y=0; } void setpoint(int x1,int y1) { x=x1; y=y1;

    A.12,12

    B.5,5

    C.12,5

    D.5,12


    正确答案:D
    解析:本题考核对象指针的定义与使用。分析程序:程序首先定义一个类point。类point中有两个私有成员,整型变量x和y,还有两个公有成员函数setpoint(intx1,inty1)和dispoint()。函数setpoint()用来设置私有成员x和y的值,而函数dispoint()用来显示私有成员x和y的值。主函数中,首先定义了类point的指针对象p,并申请了内存空间,然后调用对象p中公有成员setpoint给对象p中的私有成员x和y赋值,然后调用成员函数dispoint显示x和y的值。由此可知,最后输出的值应该是5,12。

  • 第21题:

    若有定义:int *p,a=4;p=&a;则以下均代表地址的是()

    • A、a,p
    • B、&a,p
    • C、&a,*p
    • D、a,*p

    正确答案:B

  • 第22题:

    有以下说明语句:struct point{int x;int y;}p;则正确的赋值语句是()

    • A、point.x=1;point.y=2;
    • B、point={1,2};
    • C、p.x=1;p.y=2;
    • D、p={1,2};

    正确答案:C

  • 第23题:

    单选题
    下列语句中,错误的是(  )。
    A

    const int buffer=256;

    B

    const double*point;

    C

    int const buffer=256;

    D

    double*const point;


    正确答案: C
    解析:
    常量指针是指向一个常量的指针变量,指针自身的内容可以改变但指针指向的内容不可以改变;指针常量是一个常量,不能修改指针自身的内容,但可以通过指针修改其所指向的内容。A项和C项声明常量buffer=256;B项声明常量指针point;D项,指针常量point没有初始化,编译无法通过。

  • 第24题:

    单选题
    若有定义:int *p,a=4;p=&a;则以下均代表地址的是()
    A

    a,p

    B

    &a,p

    C

    &a,*p

    D

    a,*p


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