国家二级C++机试(操作题)模拟试卷510
基本操作题
1.请打开考生文件夹下的解决方案文件proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
This object is no.1
注意:只修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include<iostream>
using namespace std;
class MyClasS
{
public:
MyClass( ):count(0){cout<<\\
(1)void Inc( )
(2)int count;
(3)obj->Inc( );
解析:(1)考查考生对const,的掌握,在Inc函数的函数体{cout<<\\
简单应用题
2.请打开考生文件夹下的解决方案文件proj2,其中有类Point(“点”)、Rectangle(“矩形”)和Circle(“圆”)的定义。在程序所使用的平面坐标系统中,x轴的正方向是水平向右的,Y轴的正方向是竖直向下的。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应该是:
–圆形———-
圆心=(3,2)
半径=1
面积=3.14159
–外切矩形——
左上角=(2,1)
右下角=(4,3)
面积=4
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include<ioStream>
#include<cmath>
using namespace std;
//平面坐标中的点
//本题坐标系统中,x轴的正方向水平向右,y轴的正方向竖直向下。
class Point{
public:
Point(double x=0.0,doubley=0.0):x_(x),y_(y){}
double getX( )const{returnx;}
double getY( )const{return y;}
void setX(double x){x_=x;}
void setY(double y){y_=y;)
private:
double x_;//x坐标
double y_;//y坐标
};
class Rectanqle(
public:
Rectangle(Point p,intW,int h)
:point(P),width(W),height(h){}
double aEea( )const//矩形面积
{
return width*height;
}
Point topLeft( )const//左上角顶点
{
return point;
)
PointbottomRight( )const
//右下角顶点(注:y轴正方向竖直向下)
{
//*******found*******
return Point(_______);
}
private:
Point point;//左上角顶点
double width;//水平边长度
double height;//垂直边长度
};
//圆形
class Cirole{
public:
Circle(Point p,double r):center(p),radius(r){}
Rectangle boundingBox( )
conSt;
//外切矩形
double area( )const//圆形面积
{
//*******found*******
return PI*_______;}
public:
static const double PI;//圆周率
private:
Point center;//圆心
double radius;//半径
};
const double Circle::PI=3.14159;
RectangleCircle::boundingBOx
( )const
{
//*******found*******
Point pt(_______);
int w,h;
//*******found*******
w=h=_______;
return Rectangle(pt,w,h);
)
int main( )
{
Point p(3,2);
Circle c(p,1);
cout<<\\
(1)point.getX( )+width,point.getY( )+height
(2)radius*radius
(3)center.getX( )-radius,center.getY( )-radius
(4)2*radius
解析:(1)主要考查考生对成员函数的掌握,程序要求返回右下角顶点,该点的x坐标为左上角顶点的x坐标加上width,该点的y坐标为左上角顶点Y坐标加上height,即return Point(point.getX( )+width,point.getY( )+height);。
(2)主要考查考生对成员函数的掌握,程序要求计算圆形面积,也就是返回圆面积,即return PI*radius*radius;。
(3)主要考查考生对成员函数的掌握,首先看函数声明:Rectangle Circle::boundingBox( )const,可知该函数要返回的是一个Rectangle类型,即要返回的是圆的外切矩形。再看Rectangle类的构造函数Rectangle(Point p,int w,int h),由此可知,空格处要定义的点pt为左上角点,即Point pt(center.getX( )-radius,center.getY( )-radius);。
(4)由函数声明和Rectangle类的构造函数可知,w和h应该为直径,即w=h=2*radius;。
综合应用题
3.请打开考生文件夹下的解决方案文件proj3,此工程包含一个源程序文件proj3.cpp,其中定义了用于表示二维向量的类MyVector;程序应当显示(6,8)。但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:
(1)在“//**1** ****found****”的下方是构造函数的定义,它用参数提供的坐标对x和y进行初始化。
(2)在“//**2** ****found****”的下方是减法运算符函数定义中的一条语句。两个二维向量相减生成另一个二维向量:其X坐标等
本文档预览:3600字符,共5147字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载