1、国家二级 C+机试(操作题)模拟试卷 220及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,此工程包含一个源程序文件 proj1 cpp。其中位于每个注释 “ ERROR*found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: You are fight 注意:只修改注释 “ ERROR *found*”的下一行语句,不要改动程序中的其他内容。 1 proj 1 cpp 2 #include 3 using namespace std; 4 class MyClass 5 6 public: 7 MyClas
2、S(int x): number(x) 8 ERROR *found* 9 MyClasS(int X) 10 ERROR *found* 11 void Judge(MyClasS 12 private: 13 int number; 14 ; 15 void Judge(MyClasS 11 double getY()constreturn y_; 12 void setX(double x)x_=x; 13 void setY(double y)y_=y; 14 Private: 15 double x_; x坐标 16 double y_; y坐标 17 ; 18 19 矩形 20 c
3、lass Rectangle 21 public: 22 Rectangle(Point P, int w, int h): point(P), width(w), height(h) 23 double area()const矩形面积 24 25 return width*height; 26 27 Point topLeft()const左上角顶点 28 29 return point; 30 31 Point bottomRight()const 32 右下角顶点 (注: y轴正方向竖直向下 ) 33 34 *found* 35 return Point(_); 36 37 privat
4、e: 38 Point point;左上角顶点 39 double width;水平边长度 40 double height;垂直边长度 41 ; 42 圆形 43 class Circle 44 public: 45 Circle(Point p, double r): center(p), radius(r) 46 47 Rectangle boundingBox()const;外切矩形 48 double area()const圆形面积 49 50 *found* return PI*_; 51 52 public: 53 static const double PI;圆周率 54 pr
5、ivate: 55 Point center; 圆心 56 double radius; 半径 57 ; 58 const double Circle: PI=3 14159; 59 Rectangle Circle: boundingBox ()const 60 61 *found* 62 Point pt(_); 63 int w, h; 64 *found* 65 W=h=_; 66 return Rectangle(pt, w, h); 67 68 int main() 69 70 Point P(3, 2); 71 Circle C(p, 1); 72 cout 6 using na
6、mespace std; 7 8 const int MAXELEMENTS=100; 9 集合最多可拥有的元素个数 10 11 class Integers 12 int elemMAXELEMENTS; 13 用于存放集合元素的数组 14 int counter; 15 用于记录集合中元素个数的计数器 16 public: 17 Integers(): counter(0) 18i 创建一个空集合 19 Integers(int data, int size); 20 利用数组提供的数据创建一个整数集合 21 void add(int element); 22 添加一个元素到集合中 23
7、void remove(int element); 24 删除集合中指定的元素 25 int getCount()constreturn count-er; 26 返回集合中元素的个数 27 int getElement(int i)constreturn elemi;) 28 返回集合中指定的元素 29 void sort(); 30 8集合中的整数按由小到大的次序进行排序 31 void show()const; 32 显示集合中 的全部元素 33 ; 34 void writeToFile(const char*path); 35 #endif 1 main cpp 2 #include
8、“Integers h“ 3 #include 4 5 Integers: Integers(int data, int size): counter(0) 6 for(int i=0; i=0; j-) 17 if(elemj=element)break; 18 for(int i=j;ii ; j-) 从最后一位到 i到前一位遍历 elem 3 if(elemielemj)如果 elemi大于 elemj,则两值替换 4 5 int temp: elemi;定义整形变量 temp并赋值为 elemi; 6 elemi=elemj;给 elemi赋值 elemi 7 elemj=temp;给 elemj赋值 temp 8 【试 题解析】 主要考查考生对排序算法的掌握,要排序的数组为 elem,元素个数为 counter,在这里使用下标 i和 j进行比较,当 elemielemj时,数组元素通过中间变量 temp进行交换。