#include
GrandChild(){ strcpy (name,\const char * getName()const { return name; } virtual char * getAddress()const=0; private:
char name[20]; };
class GrandSon : public GrandChild{ public:
GrandSon{char *name} {}
Char * getAddress() const { return \};
int main(){
GrandChild *gs=new GrandSon(\
cout<
运行时的输出结果是 【13】 。
(14)如下程序定义了“单词”类word,类中重载了<运算符,用于比较“单词”的大小,返回相应的逻辑值。程序的输出结果为:After Sorting: Happy Welcome,请将程序补充完整。
#include
Word(string s) : str(s) { } string getStr(){ return str; }
bool operator < (Word w) const { return (str friend ostream& operator << (ostream& output, const Word &w) { output< Int main(){ Word w1(\Cout<<\ if(w1 21 } (15)请将下列模板类Data补充完整。 template void put (T v) { val=v; } T get() //返回数据成员val的值,返回类型不加转换 { return val; } private: T val; }; 2009年9月全国计算机等级考试二级C++笔试参考答案 (6)double (7)15 (8)*(p+i) (9)size-1 (10)this->data=data; (11)int Sample::data = 0; (12)int CalArea(size,height) (13)Unknown住在Shanghai 2012年3月全国计算机等级考试二级笔试试卷 一、选择题(每小题2分,共70分) (1)下列叙述中正确的是 A A)循环队列是队列的一种链式存储结构 B)循环队列是一种逻辑结构 C)循环队列是队列的一种顺序存储结构 D)循环队列是非线性结构 (2)下列叙述中正确的是 D A)栈是一种先进先出的线性表 B)队列是一种后进先出的线性表 C)栈与队列都是非线性结构 D)以上三种说法都不对 (3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为 A A)4 B)16 C)10 D)6 (4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是 B A)逻辑模式 B)概念模式 C)内模式 D)外模式 (5)在满足实体完整性约束的条件下 A A)一个关系中可以没有候选关键字 B)一个关系中只能有一个候选关键字 C)一个关系中必须有多个候选关键字 D)一个关系中应该有一个或多个候选关键字 (6)有三个关系R、S和T如下: D R s t A B C A B C A B C a 1 2 a 1 2 b 2 1 b 2 1 d 2 1 c 3 1 c 3 1 则由关系R和S得到关系T的操作是 A)并 B)差 C)交 D)自然连接 (7)软件生命周期的活动中不包括 A A)软件维护 B)需求分析 C)市场调研 D)软件测试 (8)下面不属于需求分析阶段任务的是 D 22 A)确定软件系统的性能需求 B)确定软件系统的功能需求 C)制定软件集成测试计划 D)需求规格说明书评审 (9)在黑盒测试方法中,设计测试用例的主要根据是 D A)程序外部功能 B)程序数据结构 C)程序流程图 D)程序内部结构 (10)在软件设计中不使用的工具是 A A)系统结构图 B)程序流程图 C)PAD图 D)数据流图(DFD图) (11)若一个函数的原型为\则该函数的返回值类型为 B A)int * B)int C)int& D)char (12)若AA为一个类,a为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回a的值。如果x为该类的一个对象,要在类外访问x对象中a的值,正确的访问格式为 A A)AA.getA() B)x.getA() C)x.a D)AA::a (13)当派生类继承一个基类时,默认的继承方式为 C A)public B)protected C)private D)不确定 (14)若需要为XV类重载乘法运算符,运算结果为XV类型,在将其声明为类的成员函数时,下列原型声明正确的是 D A)XV operator *(XV,XV) B)XV *(XV) C)operator *(XV) D)XV operator *(XV); (15)在定义函数模板或类模板时,开头的保留字是 A A)typename B)template C)class D)typedef (16)若需要向一个二进制文件尾部添加数据,则该文件的打开方式为 A A)ios_base::app B)ios_base::binary | ios_base::out C)ios_base::out D)ios_base::binary | ios_base::app (17)在开发一个c++程序的整个过程中,第3个步骤为 C A)链接 B)运行 C)编辑 D)编译 (18)若有定义\则表达式\的值为 C A)3 B)4 C)5 D)6 (19)有如下程序: #include for(i=1;s<20;i+=2)s+=i*i; cout< 运行这个程序的输出结果是 D A)3 B)5 C)7 D)9 (20)若字符指针p所指向的字符串为\在执行语句char *ap=new char[strlen(p)+1];之后,ap指向的字符数组的元素个数为 B 23 A)9 B)8 C)7 D)6 (21)有如下程序: #include int x=10,y=12; f1(x); f2(y); cout< 运行这个程序的输出结果是 D A)22 B)23 C)24 D)25 (22)有如下程序: #include static int b; XA(int aa):a(an){b++;} int getA(){return a;} }; int XA::b=0; int main(){ XA d1(4),d2(5); cout< 运行这个程序的输出结果是 B A)9 B)11 C)13 D)15 (23)有如下程序: #include XX(int xx=0):x(xx){} int getX(){return x;} }; class YY:public XX{ int y; 24 public: YY(int xx,int yy):x(xx),y(yy){} int getV(){return getX()+y;} }; int main(){ YY c(3,4); cout< 运行这个程序的输出结果是 B A)3 B)4 C)7 D)10 (24)在类中重载赋值运算符时,应将其声明为类的 B A)静态函数 B)友元函数 C)成员函数 D)构造函数 (25)若有函数模板mySwap和一些变量定义如下: template void mySwap(T X,T Y); double d1,d2;int i1,i2; 下列对mySwap的调用中,错误的是 A A)mySwap(i1,i2) B)mySwap(d1,d2) C)mySwap(i1,d1) D)mySwap (26)在C++中,打开一个文件时与该文件建立联系的是 B A)流对象 B)模板 C)函数 D)类 (27)已知类IMS中两个成员函数的声明为\与\speak();\另有两个对象的定义为\与\则下列语句中,产生编译错误的是 B A)obj1.listen(); B)obj1.speak(); C)obj2.listen(); D)obj2.speak(); (28)有如下程序: #include Monkey() {cout<<'M';} Monkey(char n){cout< int main(){ Monkey p1,*p2; p2=new Monkey('X'); delete p2; return 0; } 运行这个程序的输出结果是 A 25