第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 )编译有错
第2题:
有如下程序:#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
第3题:
A.a, p, &*a
B.*&a, &a, *p
C.&a, p, &*p
D.*&p, *p, &a"
第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.程序编译时语句③出错
第5题:
若有语句int * point,a=4;和point=&a;下面均代表地址的一组选项是( )。
A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,& * 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次
第7题:
有如下程序: #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
第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);
第9题:
若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是
A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,&*point,point
第10题:
若有语句int*p,a=4;和p=&a;下面均代表变量值的一组选项是()
第11题:
const int a;
const int a=10;
const int*point=0;
const int*point=new int(10);
第12题:
point.x=1;point.y=2;
point={1,2};
p.x=1;p.y=2;
p={1,2};
第13题:
下列语句中错误的是( )。
A.const int a;
B.const int a=10;
C.const int*point=0;
D.const int*point=new int(10);
第14题:
下面程序中对一维坐标点类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.编译有错
第15题:
有以下程序: #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)
第16题:
若有语句int *point,a=4;和 point=&a;,下面均代表地址的一组选项是A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point
第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
第18题:
若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是
A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,&*point,point
第19题:
若有以下程序: #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
第20题:
若有以下程序: #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
第21题:
若有定义:int *p,a=4;p=&a;则以下均代表地址的是()
第22题:
有以下说明语句:struct point{int x;int y;}p;则正确的赋值语句是()
第23题:
const int buffer=256;
const double*point;
int const buffer=256;
double*const point;
第24题:
a,p
&a,p
&a,*p
a,*p