全国计算机二级笔试C++.docx
- 文档编号:11563147
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:34
- 大小:1.96MB
全国计算机二级笔试C++.docx
《全国计算机二级笔试C++.docx》由会员分享,可在线阅读,更多相关《全国计算机二级笔试C++.docx(34页珍藏版)》请在冰豆网上搜索。
全国计算机二级笔试C++
2009年9月全国计算机二级笔试C++
(11)已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则
A)FA必须定义在FB之前
B)FB必须定义在FA之前
C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
(12)有如下两个类定义
classAA{};
classBB{
AAv1,*v2;
BBv3;
int*v4;
};
其中有一个成员变量的定义是错误的,这个变量是
A)v1
B)v2
C)v3
D)v4
(13)有如下类定义:
classXX{
intxdata;
public:
XX(intn=0):
xdata(n){}
};
classYY:
publicXX{
intydata;
public:
YY(intm=0,intn=0):
XX(m),ydata(n){}
};
YY类的对象包含的数据成员的个数是
A)1
B)2
C)3
D)4
(14)下列有关运算符函数的描述中,错误的是
A)运算符函数的名称总是以operator为前缀
B)运算符函数的参数可以是对象
C)运算符函数只能定义为类的成员函数
D)在表达式中使用重载的运算符相当于调用运算符重载函数
(15)下列关于模板形参的描述中,错误的是
A)模板形参表必须在关键字template之后
B)模板形参表必须用括弧()括起来
C)可以用class修饰模板形参
D)可以用typename修饰模板形参
(16)在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是
A)ios_base:
:
cur
B)ios_base:
:
beg
C)ios_base:
:
out
D)ios_base:
:
end
(17)下列字符串可以用作C++标识符的是
A)2009var
B)goto
C)test-2009
D)_123
(18)下列枚举类型的定义中,包含枚举值3的是
A)enumtest{RED,YELLOW,BLUE,BLACK};
B)enumtest{RED,YELLOW=4,BLUE,BLACK};
C)enumtest{RED=-1,YELLOW,BLUE,BLACK};
D)enumtest{RED,YELLOW=6,BLUE,BLACK};
(19)有如下程序段:
inti=1;
while
(1){
i++;
if(i==10)break;
if(i%2==0)cout<<'*';
}
执行这个程序段输出字符*的个数是
A)10
B)3
C)4
D)5
(20)已知数组arr的定义如下:
intarr[5]={1,2,3,4,5};
下列语句中输出结果不是2的是
A)cout<<*arr+1< B)cout<<*(arr+1)< C)cout< D)cout<<*arr< (21)计算斐波那契数列第n项的函数定义如下: Intfib(intn){ if(n==0)return1; elseif(n==1)return2; elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib (2),函数fib被调用的次数是 A)1 B)2 C)3 D)4 (22)Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是 Samplea[2],*p=newSample; A)0 B)1 C)2 D)3 (23)下列关于虚基类的描述中,错误的是 A)使用虚基类可以消除由多继承产生的二义性 B)构造派生类对象时,虚基类的构造函数只被调用一次 C)声明“classB: virtualpublicA”说明类B为虚基类 D)建立派生类对象时,首先调用虚基类的构造函数 (24)将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是 A)不合法的运算符 B)一元运算符 C)无操作数的运算符 D)二元运算符 (25)有如下模板声明: template 下列声明中,与上述声明不等价的是 A)template B)template C)template D)template (26)下列关于C++流的描述中,错误的是 A)cout>>'A'表达式可输出字符A B)eof()函数可以检测是否到达文件尾 C)对磁盘文件进行流操作时,必须包含头文件fstream D)以ios_base: : out模式打开的文件不存在时,将自动建立一个新文件 27)有如下程序: #include usingnamespacestd; classToy{ public: Toy(char*_n){strcpy(name,_n);count++;} ~Toy(){count--;} char*GetName(){returnname;} staticintgetCount(){returncount;} private: charname[10]; staticintcount; }; intToy: : count=0; intmail(){ Toyt1(“Snoopy”),t2(“Mickey”),t3(“Barbie”); cout< return0; } 运行时的输出结果是 A)1 B)2 C)3 D)运行时出错 (28)有如下程序 #include usingnamespacestd; classA{ public: A(inti): rl(i){} voidprint(){cout<<'e'< voidprint()const{cout<<'C'< private: intrl; }; intmain(){ Aal (2); constAa2(4); al.print(); a2.print(); return0; } 运行时的输出结果是 A)运行时出错 B)E2-C16- C)C4-C16- D)E2-E4- 29)有如下程序: #include usingnamespacestd; className{ charname[20]; public: Name(){ strcpy(name,""); cout<<'? '; } Name(char*fname)){ strcpy(name,fname); cout<'? '; } }; intmain(){ Namenames[3]={Name(“张三”),Name(“李四”)}; Return0; } 运行此程序输出符号? 的个数是 A)0 B)1 C)2 D)3 (30)有如下程序: #include usingnamespacestd; public: AA(){cout<<'1';} }; classBB: publicAA{ intk; public: BB(): k(0){cout<<'2';} BB(intn): k(n){cout<<'3';} } intmain(){ BBb(4),c; return0; } 运行时的输出结果是 A)1312 D)132 C)32 D)1412 (31)有如下程序: #include usingnamespacestd; classC1{ public: ~C1(){cout<<1;} }; ClassC2: publicc1{ public: ~c2(){cout<<2;} }; intmain(){ C2cb2; C1*cb1; return0; } 运行时的输出结果是 A)121 B)21 C)211 D)12 (32)有如下程序 #include usingnamespacestd; classPublication{//出版物类 charname[30]; public: Publication(char*name="未知名称"){ strcpy(this->name,name); } constchar*getName()const{returnname;} virtualconstchar*getType()const{return"未知类型";} }; classBook: publicPublication{//书类 public: Book(char*name): Publication(name){} virtualconstchar*getType()const{return"书";} }; voidshowPublication(Publication&p){ cout< "< } intmain(){ Bookbook("精彩人生"); showPublication(book); return0; } 运行时的输出结果是 A)未知类型: 未知名称 B)未知类型: 精彩人生 C)书: 未知名称 D)书: 精彩人生 (33)下列关于运算符重载的描述中,错误的是 A): : 运算符不能重载 B)类型转换运算符只能作为成员函数重载 C)将运算符作为非成员函数重载时必须定义为友元 D)重载[]运算符应完成“下标访问”操作 (34)有如下程序: #include #include Usingnamespacestd; intmain(){ ints[]={123,234}; cout< for(inti=0;i<2;i++){cout< return0; } 运行时的输出结果是 A)123 B)***123 C)***123 D)***123 234 234 ***234 234*** (35)有如下类定义 classA{ char*a; public: A(): a(0){} A(char*aa){ //把aa所指字符串拷贝到a所指向的存储空间 a= ; strcpy(a,aa); strcpy(a,aa); } ~A(){delete[]a;} }; 横线处应填写的表达式是 A)neschar[strlen(aa)+1] B)char[strlen(aa)+1] C)char[strlen(aa)] D)newchar[sizeof(aa)-1] 2009年9月全国计算机等级考试二级C++笔试参考答案 选择题 (11)D (12)C (13)B (14)C (15)B (16)A (17)D (18)A (19)C (20)D(21)B (22)D (23)C (24)B(25)D(26)A (27)C (28)B (29)D (30)A(31)B (32)D (33)C (34)B (35)A 2010年3月计算机等级考试二级C++笔试试题 一、选择题(每小题2分,共70分) (11)下列关于函数的描述中,错误的是 A)函数可以没有返回值 B)函数可以没有参数 C)函数可以是一个类的成员 D)函数不能被定义为模板 (12)若MyClass是一个类名,且有如下语句序列 MyClassc1,*c2; MyClass*c3=newMyClass; MyClass&c4=c1; 上面的语句序列所定义的类对象的个数是 A)1 B)2 C)3 D)4 (13)下列关于继承方式的描述中,错误的是 A)如果不显式地指定继承方式,缺省的继承方式是私有(private) B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员 C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员 D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员 (14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是 A)Decr&operator--(int); B)Decroperator--(Decr&,int); C)friendDecr&operator--(Decr&); D)frlendDecroperator--(Decr&,int); (15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTempp2; MyTempp3[2]; 编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是 A)1 B)2 C)3 D)0 (16)在C++中,cin是个 A)类 B)对象 C)模板 D)函数 (17)在下列字符中,不允许作为C++标识符的是 A)b B)B C)_ D)2 (18)下列叙述中,错误的是 A)false是一个逻辑型常量 B)"b"是一个字符型常量 C)365是一个int常量 D)3.1415926是一个double常量 (19)若x和y是程序中的两个整型变量,则下列if语句中正确的是 A)if(x==0)y=1;elsey=2; B)if(x==0)theny=1elsey=2; C)if(x==0)y=1elsey=2; D)ifx==0y=1;elsey=2; (20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是 A)intx[3]={0,0,0}; B)intx[]={0}; C)staticintx[3]={0}; D)intx[]={0,0,0}; (21)关于函数中的<返回类型>,下列表述中错误的是 A)<返回类型>中有可能包含关键字int B)<返回类型>中有可能包含自定义标识符 C)<返回类型>中有可能包含字符* D)<返回类型>中可能包含[] (22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是 A)MyClassp=MyClass; B)MyClassp=newMyClass; C)MyClass&p=newMyClass; D)MyClassa,&p=a; (23)有如下两个类定义 classXX{ private: doublex1; protected: doublex2; public: doublex3; }; classYY: protectedXX{ private: doubley1; protected: doubley2; public: doubley3; }; 在类YY中保护成员变量的个数是 A)1 B)2 C)3 D)4 (24)下列关于运算符重载的描述中,错误的是 A)可以通过运算符重载在C++中创建新的运算符 B)赋值运算符只能重载为成员函数 C)运算符函数重载为类的成员函数时,第一操作数是该类对象 D)重载类型转换运算符时不需要声明返回类型 (25)下列关于类模板的描述中,错误的是 A)类模板的成员函数都是模板函数 B)可以为类模板参数设置默认值 C)类模板描述了一组类 D)类模板中只允许有一个类型参数 (26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是 A)setprecision B)setw C)setfill D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是 intfun1(); classTest{ public: intfun2(); friendintfun3(); staticintfun4(); }; A)fun1 B)fun2 C)fun3 D)fun4 (28)有如下程序 #include usingnamespacestd; classTest{ public: Test(){} Test(constTest&t){cout<<1;} }; Testfun(Test&u){Testt=u;returnt;} intmain(){Testx,y;x=fun(y);return0;} 运行这个程序的输出结果是 A)无输出 B)1 C)11 D)111 (29)有如下程序 #include usingnamespacestd; classA{ public: A(inti=0): r1(i){} voidprint(){cout<<'E’< intr1; }; intmain(){ Aa1; constAa2(4); a1.print (2); a1.print(); return0; } 运行时的输出结果是 A)P8-E4 B)P8-C16- C)P0-E4- D)P0-C16- (30)下列代码声明了3个类 classPerson{}; classStudent: publicPerson{}; classUndergraduate: Student{}; 下列关于这些类之间关系的描述中,错误的是 A)类Person是类Undergraduate的基类 B)类Undergraduate从类Student公有继承 C)类Student是类Person的派生类 D)类Undergraduate是类Person的派生类 (31)有如下程序 #include usingnamespacestd; ClassBase{ public: Base(intx=0): valB(x){cout< intvalB; }; classDerived: publicBase{ public: Derived(intx=0,inty=0): Base(x),valD(y){cout< intvalD; }; intmain(){ Derivedobj12(2,3); retuen0; } 运行时的输出结果是 A)2332 B)2323 C)3232 D)3223 (32)下面是类Shape的定义: classShape{ public: virtualvoidDraw()=0; }; 下列关于Shape类的描述中,正确的是 A)类Shape是虚基类 B)类Shape是抽象类 C)类Shape中的Draw函数声明有误 D)语句“Shapes;”能够建立Shape的一个对象s (33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是 A)MyClockoperator+(MyClock,long); B)MyClockoperator+(MyClock,MyClock);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 笔试 C+