2011年3月全国计算机考试真题及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Point(int x1=0, int y1=0):x(x1),y(y1) {} int get(){return x+y;} }; class Circle { Point center; int radius; public: Circle(int cx, int cy, int r):center(cx,cy),radius(r) {} int get() {return center.get()+radius;} }; int main() { Circle c(3,4,5); cout<<c.get()<<endl; return 0; } 运行时的输出结果是 A. 5 B. 7 C. 9 D. 12 答案:D 解析:主函数中语句“cout<<c.get()<<endl;”调用Circle类成员函数get(),返回 x+y+radius的值,即3+4+5=12。 24. 若要对类BigNumber中重载的类型转换运算符long进行声明, BigNumber中重载的类型转换运算符long进行声明 24. 若要对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的 是 A. operator long() const; B. operator long(BigNumber);
2011年 月全国计算机等级考试二级C++真题及答案解析 2011年3月全国计算机等级考试二级C++真题及答案解析
一、选择题(每小题2分,共70分) 选择题(每小题2 70分 下列各题A 下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题 四个选项中,只有一个选项是正确的, 卡相应位置上,答在试卷上不得分。 卡相应位置上,答在试卷上不得分。 1. 下列关于栈叙述正确的是 A. 栈顶元素最先能被删除 B. 栈顶元素最后才能被删除 C. 栈底元素永远不能被删除 D. 上述三种说法都不对 答案: 答案:A 解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为 栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总 是最先被插入的元素,从而也是最后才能被删除的元素。故本题选A。 2. 下列叙述中正确的是 A. 有一个以上根结点的数据结构不一定是非线性结构 B. 只有一个根结点的数据结构不一定是线性结构 C. 循环链表是非线性结构 D. 双向链表是非线性结构 答案:B 解析:如果一个非空的数据结构满足以下两个条件:(1)有且只有一个根结点; 如果一个非空的数据结构满足以下两个条件:(1 有且只有一个根结点; 如果一个非空的数据结构满足以下两个条件:( 每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。 (2)每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。 如果一个数据结构不是线性结构,则称之为非线性结构, 如果一个数据结构不是线性结构,则称之为非线性结构,故A项错误。有一个根结点的 项错误。 数据结构不一定是线性结构,如二叉树, 项说法正确。 数据结构不一定是线性结构,如二叉树,B项说法正确。循环链表和双向链表都属于 线性链表, 线性链表,故C、D项错误。 项错误。 某二叉树共有7个结点,其中叶子结点只有1 则该二叉树的深度为( 3. 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结 点在第1 点在第1层) A. 3
B. 4 C. 6 D. 7 答案:D 解析:根据二叉树的性质:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比 度为2的结点多一个。所以n2=0,由n=n0+n1+n2可得n1=6,即该二叉树有6个度为1的结 点,可推出该二叉树的深度为7。 在软件开发中, 4. 在软件开发中,需求分析阶段产生的主要文档是 A. 软件集成测试计划 B. 软件详细设计说明书 C. 用户手册 D. 软件需求规格说明书 答案:D 解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之 一。 5. 结构化程序所要求的基本结构不包括 A. 顺序结构 B. GOTO跳转 C. 选择(分支)结构 D. 重复(循环)结构 答案:B 解析:结构化程序设计的三种基本控制结构为:顺序结构、选择结构和重复结构。 6. 下面描述中错误的是 A. 系统总体结构图支持软件系统的详细设计 B. 软件设计是将软件需求转换为软件表示的过程 C. 数据结构与数据库设计是软件设计的任务之一 D. PAD图是软件详细设计的表示工具
14. 若要对Data类中重载的加法运算符成员函数进行声明, Data类中重载的加法运算符成员函数进行声明 14. 若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是 A. Data +(Data); B. Data operator+(Data); C. Data +operator(Data); D. operator+(Data,Data); 答案:B 解析:运算符函数的函数名由运算符前加关键字operator构成,且“+”是一个二元运 算符,作为成员函数重载时形参表中只有一个参数。故可排除A、B、D项,本题答案为 B。 15. 下列关于函数模板的描述中, 15. 下列关于函数模板的描述中,正确的是 A. 函数模板是一个实例函数 B. 使用函数模板定义的函数没有返回类型 C. 函数模板的类型参数与函数的参数相同 D. 通过使用不同的类型参数,可以从函数模板得到不同的实例函数 答案:D 解析:函数模板是一系列相关函数的模型或样板;使用函数模板定义的函数可以带有 返回类型;函数模板的类型参数为虚拟类型参数,与函数的参数不同。故A、B、C项错 误。定义好函数模板后,编译系统将依据每一次对函数模板调用时实际所使用的的数 据类型生成适当的调用代码,并生成相应的函数版本,故D项正确。 16. ++系统预定义了 个用于标准数据流的对象, 系统预定义了4 16. C++系统预定义了4个用于标准数据流的对象,下列选项中不属于此类对象的是 A. cout B. cin C. cerr D. cset 答案:D 解析:C++流的4个预定义的流对象为:cin标准输入,cout标准输出,cerr标准出错信 息输出,clog带缓冲的标准出错信息输出。 17. Windows环境下 环境下, ++源程序文件编译而成的目标文件的扩展名是 17. Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是
Βιβλιοθήκη Baidu
A. cpp B. exe C. obj D. lik 答案:C 解析:在VC6集成开发环境中,编译命令将一个以cpp为扩展名的C++源程序文件转换成 一个以obj为扩展名的目标文件。 18. 字符串" 12\ 18. 字符串"a+b=12\n\t"的长度为 A. 12 B. 10 C. 8 D. 6 答案:C 19. 有如下程序: 19. 有如下程序: #include <iostream> using namespace std; int main() { int f,f1=0,f2=1; for(int i=3;i<=6;i++) { f=f1+f2; f1=f2; f2=f; } cout<<f<<endl; return 0; } 运行时的输出结果是
答案:A 7. 负责数据库中查询操作的数据库语言是 A. 数据定义语言 B. 数据管理语言 C. 数据操纵语言 D. 数据控制语言 答案:C 解析:数据操纵语言负责数据的操纵,包括查询及增、删、改等操作。 一个教师可讲授多门课程,一门课程可由多个教师讲授, 8. 一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联 系是 A. 1∶1联系 B. 1∶m联系 C. m∶1联系 D. m∶n联系 答案:D 有三个关系R 如下: 9. 有三个关系R、S和T如下:
A. 2 B. 3 C. 5 D. 8 答案:C 20. 有如下程序: 20. 有如下程序: #include <iostream> using namespace std; int main() { a[ 23,15,64,33,40,58}; int a[6]={23,15,64,33,40,58}; int s1,s2; s1=s2=a[0]; for(int* p=a+1;p<a+6;p++) { if(s1>*p)s1=*p; if(s2<*p)s2=*p; } cout<<s1+s2<<endl; return 0; } 运行时的输出结果是 A. 23 B. 58 C. 64 D. 79 答案:D 解析:程序实现的功能为输出数组a中最小值和最大值的和。for循环结束后,变量s1
中存放最小值15,变量s2中存放最大值64,输出s1+s2的值为79。 21. 有如下程序: 21. 有如下程序: #include <iostream> using namespace std; void f1(int& x, int& y){int z=x; x=y; y=z;} void f2(int x, int y){int z=x; x=y; y=z;} int main() { int x=10,y=26; f1(x,y); f2(x,y); cout<<y<<endl; return 0; } 运行时的输出结果是 A. 10 B. 16 C. 26 D. 36 答案:A 解析:函数f1的参数传递方式采用传引用方式,调用函数f1后,实参变量x、y的值被 交换。此时,x=26,y=10。函数f2的参数传递方式采用传值方式,调用函数f2后,不会 改变实参变量x、y的值。故程序输出y的值为10。 22. 有如下程序: 22. 有如下程序: #include <iostream> using namespace std; class XA { int a;
public: static int b; XA(int aa):a(aa){b++;} ~XA() {} int get(){return a;} }; int XA::b=0; int main() { XA d1(2),d2(3); cout<<d1.get()+d2.get()+XA::b<<endl; return 0; } 运行时的输出结果是 A. 5 B. 6 C. 7 D. 8 答案:C 解析:主程序中创建了两个XA类的对象d1、d2,并将它们的数据成员a分别初始化为2 和3。在创建了两个对象后静态数据成员b=2。程序输出三个变量的和2+3+2=7。 23. 有如下程序: 23. 有如下程序: #include <iostream> using namespace std; class Point { int x,y; public:
A. 自然连接 B. 交 C. 除 D. 并 答案:C 10. 定义无符号整数类为UInt 下面可以作为类UInt UInt, UInt实例化值的是 10. 定义无符号整数类为UInt,下面可以作为类UInt实例化值的是 A. -369 B. 369
C. 0.369 D. 整数集合{1,2,3,4,5} 答案:B 解析:A项为有符号型,C项为实型常量,D项为整数集合,只有B项符合,故本题选B。 11. 为了提高函数调用的实际运行速度, 11. 为了提高函数调用的实际运行速度,可以将较简单的函数定义为 A. 内联函数 B. 重载函数 C. 递归函数 D. 函数模板 答案:A 12. AA为一个类 为一个类, 为该类的非静态数据成员,在该类的一个成员函数定义中访问a 12. 若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a 时,其书写格式为 A. a B. AA.a C. a() D. AA::a() 答案:A 13. 当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员, 13. 当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员, 这些成员在基类中原有的访问属性是 A. 任何 B. 公有或保护 C. 保护或私有 D. 私有 答案:B 解析:派生类从基类保护继承时,基类的公有成员在派生类中改变为保护成员,基类 的保护成员在派生类中仍为保护成员,基类中的私有成员在派生类中是隐藏的,不可 访问。