全国计算机等级考试二级C++模拟试题20套.docx





《全国计算机等级考试二级C++模拟试题20套.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C++模拟试题20套.docx(298页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国计算机等级考试二级C+模拟试题笔试部分一、选择题1 .树是结点的集合,它的根结点数目是()A.有且只有1 B. 1或多于1 C. 0或1 D.至少2【参考答案】A2 .在设计程序时,应采纳的原则之一()A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理【参考答案】D3 .下列叙述中,不属于软件需求规格说明书的作用的是()A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析【参考答案】D4 .单个用户使用的数据视图的描述称为()A.外模式B.概念模式C.内
2、模式D.存储模式【参考答案】A5 . SQL语言又称为()A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言【参考答案】C6 .若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其 后序遍历的结点访问顺序是()A. bdgcefha B.gdbecfha C. bdgaechf D. gdbehfca【参考答案】D7 .软件工程的理论和技术性研究的内容主要包括软件开发技术和()A.消除软件危机B.软件工程管理C.程序设计自动化D.实现软件可重用【参考答案】B8 .在软件测试设计中,软件测试的主要目的是()A.实验性运行软件B.证明软件正
3、确C.找出软件中全部错误D.发现软件错误而执行程序【参考答案】D9 .索引属于()A.模式B.内模式C.外模式D.概念模式【参考答案】B10 .数据库系统的核心是()A.数据库B.数据库管理系统C.模拟模型D.软件工程【参考答案】B11 .下面关于类和对象的描述中,错误的是()A.类就是C语言中的结构体类型,对象就是C语言中的结构体变量B.类和对象之间的关系是抽象和具体的关系C.对象是类的实例,一个对象必须属于一个已知的类D.类是具有共同行为工的若干对象的统一描述体【参考答案】A12 .设 int a=10, b=ll,c=12;,表达式(a+b)&B=C 的值是(p )0A. 2 B. 0
4、C.-2 D. 1【参考答案】B13 .下列语句中不是死循环的是()A. int i=10; B. for (int i=l; i=0);if (i=l)break;【参考答案】A14 .下面关于数组的描述错误的是()A.在C+语言中数组的名字就是指向该数组第一个元素的指针15 长度为n的数组,下标的范围是0-1C.数组的大小必须在编译时确定D.数组只能通过值参数和引用参数两种方式传递给函数【参考答案】D16 ,下面的哪个选项不能作为函数的返回类型?()A. void B. int C. new D. long【参考答案】C16,下列程序的输出结果为()#includeint func (in
5、t n)if (nl) return 1;else return n+func(n-1);return 0;void main()coutFUNC(5)ENDL;A. 0 B. 10 C. 15 D. 16【参考答案】D17.以下程序中,错误的行为()1. #include2. class A3. (4. public:5. int n=2;6. A (int val) coutVALENDL; 7. A() )8. (;9. void main ()10 11. A a(0);12JA. 5 B. 6 C, 7 D. 11【参考答案】A18,下面程序的运行结果为()#include clas
6、s A ( int num; public: A (int i) num=i; A (A &a) num=a. num+; void print 0 coutNUM; );void main0 (A a (1), b (a);a.print 0;b. print 0; )A. 11 B. 12 C. 21 D. 22【参考答案】C19.如果类A被说明成类B的友元,则()A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元 【参考答案】D20 .建立派生类对象时,3种构造函数分别是a (基类的构造函数)、b (成员对象的构造函 数)、
7、c (派生类的构造函数)这3种构造函数的调用顺序为()A. a be B. acb C. cab D. cba【参考答案】A21 .下面关于模板的描述,错误的是()A.函数模板和类模板的参数可以是任意的数据类型B.类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才 能使用C.函数模板不能直接使用,需要实例化为模板函数后才使用D.类模板的成员函数都是模板函数【参考答案】A22 .下面程序的运行结果是()#includevoid main0(int num=l;int &ref=num;ref=ref+2;coutNUM;num=num+3;coutREFENDL; A.
8、13 B. 16 C. 36 D. 33【参考答案】C23 .下列程序的运行结果为()#includeint i=0;class A public:A() i+;)void main()A a, b3, *c;c=b;coutIENDL; A. 2 B. 3 C. 4 D. 5【参考答案】C24.下列字符串中可以用C+语言标识符的是()A. .1234 B. foo barC.virtua D. 34var【参考答案】A25 .下列语句的输出结果()coutSTRLENC T 065XFFN* );A. 5 B. 14 C. 8 D.输出项不合法,无正常输出【参考答案】A26 .若有如下语句(
9、)#includevoid main()int x=3;do x=x-2;coutX; wh i1e(! (x);则上面程序段A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环【参考答案】B27 .以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是()#includevoid main0 int *p, *q, a, b;p=&a;cout input a:cinp;A. *p表示的是指针变量P的地址B. p表示的是变量a的地址,而不是变量a的值C.*p表示的是指针变量p的值D.*p只能用来说明p是一个指针变量【参考答案】B28.有以下程序#include
10、void fun (int a, int b, int c)a=456, b=567, c=678;void mainOint x=10, y=20, z=30;fun (x, y, z);coutXz YZ ,z ZENDL; 输出结果是()A. 30, 20, 10 B. 10, 20, 30C.456, 567, 678 D. 678, 567, 456【参考答案】B29 .下列定义中p指向的地址可更改,但*p不能够更改的是()A. const int *P B. int * const p; C. const int *const p; D. int *p;【参考答案】A30 .下面程
11、序的结果是()#includeclass A(int a;public:A():a(l) )void showa 0 coutA; );class Bint a;public:B():a(2) )void showa 0 coutA;) );class C:public A,public Bint a;public:C():a(3) void showa 0 coutA;) ;void main()C c;c. showa ();)A. 1 B. 2 C. 3 D.程序有错误【参考答案】C31 .如果表达式x*y+z中,是作为友元函数重载的,是作为友元函数重载的,则该 表达式还可为()A. o
12、perator+ (operator* (x, y), z)B. x. operator+ (operator* (x, y), z)C. y. operator* (operator+ (x, y), z)D. x. operator+ (operator* (x, y)【参考答案】A32 .对于语句 coutSETFILLC * )SETW(10)1A.*1*2 B. *12 C. *1*2 D. 12*【参考答案】A33 .有如下程序#includeint func (int a, int b)return (a+b);void main ()int x=2, y=5, z=8, r;r
13、=f unc (f unc (x, y), z);coutR; 该程序的输出的结果是()A. 12 B. 13 C. 14 D. 15【参考答案】D34 .下列描述中,抽象类的特性是()A.可以说明虚函数B.可以定义友元函数C.可以进行构造函数重载D.不能说明其对象【参考答案】D35 .下列程序的运行结果是()#includevoid fun (int *a,int *b) int *k;k=a; a=b; b=k;void mainO int a=3,b=6, *x=&a, *y=&b;fun (x, y);coutAb; )A. 6 3 B. 3 6 C.编译出错 D. 0 0【参考答案】
14、B二、填空题1 .在面向对象方法中,类之间共享属性和操作的机制称为11【参考答案】1 . 1继承2.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【2】的联系.【参考答案】2 . 2 一对多(或 1: N)3 . Jackson结构化程序设计方法是英国的M. Jackson提出的,它是一种面向【3】的设 计方法.【参考答案】4 .【3】数据结构5 .软件设计模块化的目的是【4】。【参考答案】4降低复杂性6 .在树结构中,树根结点没有【5】。【参考答案】5前件7 . C+中封装性、继承性和【6】是面向对象思想的主要特征。【参考答案】6多态性8 .
15、下列for语句的循环次数为171for (int a=0, b=l; b&a5; a+);【参考答案】7 58. C+程序是从【8】函数开始执行的。【参考答案】8 main9. 派生类构造函数的执行顺序是先执行【9】的构造函数,然后执行成员对象的构造函 数,最后执行10的构造函数。【参考答案】10. 9基类【10】派生类11. C+语言程序的注释可以出现在程序中的任何地方,一个注释以【11作为开始和结 束的标记。【参考答案】12. /*/1L用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间, 请填空。st=(char*) 12;【参考答案】13. ma 11oc
16、 (11)或 malloc(sizeof(char)*11)12.下列程序在构造函数和析构函数中申请和释放类的数据成员int*a,申请时使用形 参b初始化a,请填空。class A(public:A (int b);-A ();private:int *a;;A: (int b) 13 ;A: A () 14 ;)【参考答案】12 . 13 a=new int (b) 14 delete a13 将x+y*z中的用成员函数重载,用友元函数重载应写为【15】。【参考答案】15 x. operator+(operator * (y, z)上机部分一、改错题使用VC6打开考生文件夹下的工程ktl_l
17、,此工程包含一个源程序文件ktlJ.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为:Whichact(aorb) ?bact 1act2Bact3Bact4Bend源程序文件ktl_l. cpp清单如下:#includeclassApublic:virtualvoidactl 0 coutHactlnn; act2 0;voidact2 0 coutnact2nn; act3 0;voidact3() coutnAact3nn; act4 ();virtualvoidact4 coutMAact4nn; act5 ();voidact5() coutnAendnn;);cl
18、assB: publicA(voidact3() coutnBact3nn; act4 0;voidact4 0 coutnBact4nn; act5 0;voidact5() coutBendn;);voidmain(void)(chare;A*a;coutnWhichact (aorb) ?n;cinC;if (c=a)a=newA;elsea=newB;a-actl0;deletea;【参考答案】将 void act3 () coutAact3n; act4 ();改为:virtual void act3 0 coutAact3n; act4 0;(2)将 virtual void ac
19、t4 coutAact4n; act5 0;改为:virtual void act4 () coutAact4n; act5 0;(3)将 cinC; 改为:cinc;【试题解析】(1)主要考查对虚函数使用规则的理解,要实现对函数act3的动态联编应该使用虚函 数,这样在本题中对于函数的调用才能实现根据不同对象调用不同函数;(2)主要考查对函数定义的掌握,虽然参数表为空,但括号是不能省略的;(3)主要考查是否会使用流输入操作,本题中使用的是流输出符。二、简单应用题请编写一个函数voidfun(charss 口),该函数将字符串ss翻转,如ss为“123abc”则 翻转后为“cba321”。注意
20、:用数组方式及for循环来实现该函数.注意:部分源程序已存在文件ktl-2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语 句.文件ktl.2. cpp的内容如下:#include#includevoidfun (charss );【参考答案】将 void act3 0 coutAact3nn; act4 ();改为:virtual void act3 () coutHAact3nn; act4 ();(2)将 virtual void act4 coutAact4n; act5 0;改为:virtual void act4 () coutAact4
21、n; act5 0;(3)将 cinC; 改为:cinc;【试题解析】(D主要考查对虚函数使用规则的理解,要实现对函数act3的动态联编应该使用虚函 数,这样在本题中对于函数的调用才能实现根据不同对象调用不同函数;(2)主要考查对函数定义的掌握,虽然参数表为空,但括号是不能省略的;主要考查是否会使用流输入操作,本题中使用的是流输出符.二、简单应用题请编写一个函数voidfun(charssU),该函数将字符串ss翻转,如ss为“123abc”则 翻转后为ucba321注意:用数组方式及for循环来实现该函数.注意:部分源程序已存在文件ktl.2.cpp中.请勿修改主函数main和其他函数中的任
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 C+ 模拟 试题 20

限制150内