全国计算机等级考试历年真题及答案
B)enum test {RED, YELLOW=4, BLUE, BLACK}; (13)有如下类定义: C)enum test {RED=-1, YELLOW,BLUE, BLACK}; class XX{ D)enum test {RED, YELLOW=6, BLUE, BLACK}; int xdata; (19)有如下程序段: public: int i=1; XX(int n=0) : xdata (n) { } while (1) { }; i++; class YY : public XX{ if(i == 10) break; int ydata; if(i%2 == 0) cout << '*'; public: } YY(int m=0, int n=0) : XX(m), ydata(n) { } 执行这个程序段输出字符*的个数是 }; A)10 YY类的对象包含的数据成员的个数是 B)3 A)1 C)4 B)2 D)5 C)3 D)4 (20)已知数组arr的定义如下: int arr[5] = {1,2,3,4,5}; (14)下列有关运算符函数的描述中,错误的是 下列语句中输出结果不是2的是 A)运算符函数的名称总是以operator为前缀 A)cout << *arr+1 <26 / 30
全国计算机等级考试历年真题及答案
A)使用虚基类可以消除由多继承产生的二义性 cout< B)一元运算符 using namespace std; C)无操作数的运算符 class A { D)二元运算符 public: A(int i):rl(i) { } (25)有如下模板声明: void print( ) {cout<<'e'< class A; void print( ) const {cout<<'C'< class A; int rl; B)template class A; }; C)template class A; int main(){ D)template class A; A al(2); const A a2(4); al.print(); a2.print(); (26)下列关于C++流的描述中,错误的是 return 0; A)cout>>'A'表达式可输出字符A } B)eof()函数可以检测是否到达文件尾 运行时的输出结果是 C)对磁盘文件进行流操作时,必须包含头文件 A)运行时出错 fstream B)E2-C16- D)以ios_base::out模式打开的文件不存在时,将 C)C4-C16- 自动建立一个新文件 D)E2-E4- 27)有如下程序: #include 29)有如下程序: using namespace std; #include class Toy{ using namespace std; public: class Name{ Toy(char* _n) { strcpy (name,_n); count++;} char name[20]; ~Toy(){ count--; } public: char* GetName(){ return name; } Name(){ static int getCount(){ return count; } strcpy(name,\cout<<'?'; private: } char name[10]; Name(char *fname)){ static int count; strcpy(name,fname); cout<'?'; }; } int Toy::count=0; }; int mail(){ int main(){ Toy t1(“Snoopy”),t2(“Mickey”),t3(“Barbie”); Name names[3]={Name(“张三”),Name(“李四”)};
27 / 30
全国计算机等级考试历年真题及答案
Return 0; #include } using namespace std; 运行此程序输出符号?的个数是 class Publication{ //出版物类 A)0 B)1 C)2 D)3 (30)有如下程序: #include using namespace std; public: AA(){ cout<<'1'; } }; class BB: public AA{ int k; public: BB():k(0){ cout<<'2'; } BB(int n):k(n){ cout<<'3';} } int main(){ BB b(4), c; return 0; } 运行时的输出结果是 A)1312 D)132 (31)有如下程序: #include using namespace std; class C1{ public: ~C1(){ cout<<1; } }; Class C2: public c1{ public: ~c2(){ cout<<2; } }; int main(){ C2 cb2; C1 *cb1; return 0; } 运行时的输出结果是 A)121 B)21 (32)有如下程序 char name[30]; public: Publication(char *name=\未知名称\strcpy(this->name,name); } const char * getName()const{ return name; } virtual const char * getType()const{ return \未知类型\}; class Book: public Publication{ //书类 public: Book(char *name): Publication(name){} virtual const char * getType()const{ return \书\}; void showPublication( Publication &p){ cout< #include Using namespace std; int main(){ int s[]={123, 234}; cout<28 / 30
全国计算机等级考试历年真题及答案
A)123 B)***123 C)***123 D)int k=a[0]; ***123 a[0]=a[size-1]; 234 234 ***234 234*** a[size-1]=k; reverse(a+1, 【9】 ); (35)有如下类定义 } class A { char *a; (10)类Sample的构造函数将形参data赋值给数据成public: 员data。请将类定义补充完整。 A():a(0){} class Sample{ A(char *aa){ //把aa所指字符串拷贝到a所指向的存储public: 空间 Sample(int data=0); a= ; Private: strcpy(a,aa); Int data; strcpy(a,aa); }; } Sample::Sample(int data){ ~A() {delete []a;} 【10】 }; } 横线处应填写的表达式是 A)nes char[strlen(aa)+1] B)char[strlen(aa)+1] (11)有如下类定义: C)char[strlen(aa)] D)new char[sizeof(aa)-1] class Sample{ 二、填空题(每空2分,共30分) public: (1)某二叉树有5个度为2的结点以及3个度为1的结Sample(); 点,则该二叉树中共有 【1】 个结点。 ~Sample(); (1)某二叉树有5个度为2的结点以及3个度为1的结Private: 点,则该二叉树中共有 【1】 个结点。 Static int date; (2)程序流程图中的菱形框表示的是 【2】 。 }; (3)软件开发过程主要分为需求分析、设计、编码与测将静态数据成员data初始化为0的语句是 【11】 。 试四个阶段,其中 【3】 阶段产生“软件需求规格说 明书”。 (12)“图形”类Shape中定义了纯虚函数CalArea(),“三(4)在数据库技术中,实体集之间的联系可以是一对角形”类Triangle继承了类Shape,请将Triangle类中的一或一对多或多对多的,那么“学生”和“可选课程”CalArea函数补充完整。 的联系为 【4】 。 class Shape{ (5)人员基本信息一般包括:身份证号,姓名,性别,public: 年龄等。其中可以作为主关键字的是 【5】 。 virtual int CalArea()=0; (6)若表达式(x+(y-z)*(m/n))+3中的变量均为double} 型,则表达式值的类型为 【6】 。 class Triangle: public Shape{ (7)有如下循环语句: public: For(int i=50; i>20; i-=2) cout<
29 / 30
全国计算机等级考试历年真题及答案
using namespace std; class GrandChild{ (15)请将下列模板类Data补充完整。 public: template GrandChild(){ strcpy (name,\class Data{ const char * getName()const { return name; } public: virtual char * getAddress()const=0; void put (T v) { val=v; } private: 【15】 get() //返回数据成员val的值,返回类型不加char name[20]; 转换 }; { return val; } class GrandSon : public GrandChild{ private: public: T val; GrandSon{char *name} {} }; Char * getAddress() const { return \ }; 2009年9月全国计算机等级考试二级C++笔试参考答案 int main(){ 选择题 GrandChild *gs=new GrandSon(\ (1)C (2)B (3)D (4)A (5)B cout<getName()<<\住在\ delete gs; (6)A (7)C (8)B (9)C (10)D (11)D return 0; (12)C (13)B (14)C (15)B } (16)A (17)D (18)A (19)C (20)D 运行时的输出结果是 【13】 。 (21)B (22)D (23)C (24)B (25)D (14)如下程序定义了“单词”类word,类中重载了<(26)A (27)C (28)B (29)D (30)A 运算符,用于比较“单词”的大小,返回相应的逻辑值。(31)B (32)D (33)C (34)B (35)A 程序的输出结果为:After Sorting: Happy Welcome,请 填空 将程序补充完整。 (1)14 #include (2)判断 #include (3)需求分析 using namespace std; (4)多对多 class Word{ (5)身份证号 public: (6)double Word(string s) : str(s) { } (7)15 string getStr(){ return str; } (8)*(p+i) 【14】 const { return (strdata=data; Word &w) (11)int Sample::data = 0; { output<if(w130 / 30