全国计算机等级考试二级C++笔试试题.docx
- 文档编号:10133587
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:14
- 大小:20.43KB
全国计算机等级考试二级C++笔试试题.docx
《全国计算机等级考试二级C++笔试试题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C++笔试试题.docx(14页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级C++笔试试题
2009年全国计算机等级考试二级C++笔试试题
一、选择题(
(1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)
(1)下列数据结构中,属于非线性结构的是
A)循环队列
B)带链队列
C)二叉树
D)带链栈
(2)下列数据结果中,能够按照“先进后出”原则存取数据的是
A)循环队列
B)栈
C)队列
D)二叉树
(3)对于循环队列,下列叙述中正确的是
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
(4)算法的空间复杂度是指
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
(5)软件设计中划分模块的一个准则是
A)低内聚低耦合
B)高内聚低耦合
C)低内聚高耦合
D)高内聚高耦合
(6)下列选项中不属于结构化程序设计原则的是
A)可封装
D)自顶向下
C)模块化
D)逐步求精
(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- (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; else returnfib(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)有如下模板声明: templateclassA; 下列声明中,与上述声明不等价的是 A)templateclassA; B)templateclassA; C)templateclassA; D)templateclassA; (26)下列关于C++流的描述中,错误的是 A)cout>>’A’表达式可输出字符A B)eof()函数可以检测是否到达文件尾 C)对磁盘文件进行流操作时,必须包含头文件fstream D)以ios_base: : out模式打开的文件不存在时,将自动建立一个新文件 (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 234 B)***123 234 C)***123 ***234 D)***123 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] 二、填空题(每题2分,共30分) (1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有 【1】个结点。 (2)程序流程图中的菱形框表示的是【2】。 (3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中【3】产生“软件需求规格说明书”。 (4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为【4】。 (5)人员基本信息一般包括: 身份证号,姓名,性别,年龄等。 其中可以作为主关键字的是【5】。 (6)若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为【6】。 (7)有如下循环语句: For(inti=50;i>20;i-=2) cout< 运行时循环体的执行次数是【7】。 (8)利用表达式a[i]可以访问int型数组a中下标为i的元素。 在执行了语句int*p=a;后,利用指针p也可访问该元素,相应的表达式是【8】。 (9)下面是一个递归函数,其功能是使数组中的元素反序排列。 请将函数补充完整。 voidreverse(int*a,intsize){ if(size<2)return; intk=a[0]; a[0]=a[size-1]; a[size-1]=k; reverse(a+1, 【9】); } (10)类Sample的构造函数将形参data赋值给数据成员data。 请将类定义补充完整。 classSample{ public: Sample(intdata=0); Private: Intdata; }; Sample: : Sample(intdata){ 【10】 } (11)有如下类定义: classSample{ public: Sample(); ~Sample(); Private: Staticintdate; }; 将静态数据成员data初始化为0的语句是【11】 (12)“图形”类Shape中定义了纯虚函数CalArea(),“三角形”类Triangle继承了类Shape,请将Triangle类中的CalArea函数补充完整。 classShape{ public: virtualintCalArea()=0; } classTriangle: publicShape{ public: Triangle{ints,inth}: side(s),height(h){} 【12】{returnside*height/2;} private: intside; intheight; }; (13)有如下程序: #include usingnamespacestd; classGrandChild{ public: GrandChild(){strcpy(name,”Unknown”);} constchar*getName()const{returnname;} virtualchar*getAddress()const=0; private: charname[20]; }; classGrandSon: publicGrandChild{ public: GrandSon{char*name}{} Char*getAddress()const{return“Shanghai”;} }; intmain(){ GrandChild*gs=newGrandSon(“Feifei”); cout deletegs; return0; } 运行时的输出结果是【13】。 (14)如下程序定义了“单词”类word,类中重载了<运算符,用于比较“单词”的大小,返回相应的逻辑值。 程序的输出结果为: AfterSorting: HappyWelcome,请将程序补充完整。 #include #include usingnamespacestd; classWord{ public: Word(strings): str(s){} stringgetStr(){returnstr;} 【14】const{return(str friendostream&operator<<(ostream&output,constWord&w) {output< private: stringstr; }; Intmain(){ Wordw1(“Happy”),w2(“Welcome”); Cout<<”Aftersorting: “; if(w1< elsecout< return0; } (15)请将下列模板类Data补充完整。 template classData{ public: voidput(Tv){val=v;} 【15】get() //返回数据成员val的值,返回类型不加转换 {returnval;} private: Tval; }; 2009年9月全国计算机等级考试二级C++笔试参考答案 一、选择题 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (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 *本答案仅供参考 (15)T (14)booloperator<(Wordw) (13)Unknown住在Shanghai (12)intCalArea(size,height) (11)intSample: : data=0; (10)this->data=data; (9)size-1 (8)*(p+i) (7)15 (6)double 二、填空题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 C+ 笔试 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)