1、国家二级 C+机试(操作题)模拟试卷 459及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,此工程中包含程序文件 main cpp,其中有 ElectricFan(“电风扇 ”)类和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 品牌:清风牌,电源:关,风速: 0 品牌:清风牌,电源:开,风速: 3 品牌:清风牌,电源:关,风速: 0 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #include usi
2、ng namespace std; class ElectricFan “电扇 ”类 char*brand; int intensity; 风速: 0一关机, 1一弱, 2一中, 3一强 public: ElectricFan(const char*the_brand): intensity(0) brand=new char Strlen(thebrand)+1 ; strcpy(brand, the brand); ElectricFan()deletebrand; ERROR*found* const char*theBrand()constreturn*brand; 返回电扇品牌 in
3、t theIntensity()constreturn intensity; 返回风速 bool isOn()constreturn intensity0; 返回电源开关状态 ERROR*found* void turnOff()intensity=1; 关电扇 void setIntensity(int inten) 开电扇并设置风速 ERROR*found* if(intensity=1&intensity using namespace std; char*GetNum(char*src, char*bur) while(*src!= 0) if(isdigit(*src)break;
4、src+; if(*src= 0) *found* _; while(*src!= 0&isdigit(*src) *found* _; buf+; src+; *bur= 0; return src; int main() char str100, digits20; cin getlihe(str, 100); char*p=str; int i=1; while(p=CetNum(p, digits)!=NULL) cout using namespace std; class DataList数据表类 int len; double*d; public: DataList(int le
5、n, double data=NULL); DataList()deleted; ) int length()constreturnlen; 数据表长度 (即数据元素的个数 ) double getElement (int i) constreturn di; ) void sort();数据表排序 void show()const;显示数据表 ; void writeToFile(char *, const DataList&); main cpp #include“DataList h“ DataList: DataList(int len, double data): len(1en)
6、d=new double1en; for(int i=0; i=1&intendj) di和 dj比较,如果大于,就 di和 dj值交换 int temp=di; 把临时整型变量 temp赋值为 di di=dj; 把 dj赋值给 di dj=temp; 把 temp值赋给 dj 【试题解析】 本题使用最简单的冒泡排序算法,首先明确要排序的动态数组 d,其长度为 len,在此可以使用两个下标 i和 j相比较,当 didj时,数组 内的值利用中间变量 temp进行交换。 (2)tout“), length=“length(*this)“。 “endl; (3)return sqrt(1 getX1()-1 getX2()*(1 getX1()-1 getX2()+(1 getY1()-1 getY2()*(1 getY1()-1 getY2();