【计算机类职业资格】二级C++笔试308及答案解析.doc
《【计算机类职业资格】二级C++笔试308及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试308及答案解析.doc(12页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试 308 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列关于数组初始化的说法,正确的是( )。(分数:2.00)A.对于 int a5;它的数组元素初值为 0B.int a5=1,3,5,7,8,9;是可以的,这时数组长度自动变为 6C.static int a5;的数组元素初值为 0D.int a5=1.3,5;是不合法的,因为数组长度为 5,而仅有 3 个数据,不知赋给哪个元素2.下面程序的执行结果是( )。 #includeiostream using namespace std; class buildin
2、g public: building() building(unsigned stories, float breadths, float lengths) story = stories; breadth = breadths; length = lengths; void getstory(void) cout“story is:“storyendl; void getarea(void) area = length*breadth*story;cout“area is:“areaendl; private: unsigned story; float length; float brea
3、dth; float area; ; void main(void) building b1,b2;building b3(10u,16.6,58.8); b1.getstory(); b1.getarea(); b2.getstory(); b2.getarea(); b3.getstory(); b3.getarea();(分数:2.00)A.story is:0 area is:0 story is:0 area is:0 story is:10 area is:9760.8B.story is:null area is:null story is:null area is:null s
4、tory is:10 area is:9760.8C.前两个对象输出的结果是不定的,后一个对象的结果正确D.前两个对象没有初值,因此程序编译时出错3.用链表表示线性表的优点是( )。(分数:2.00)A.便于随机存取B.花费的存储空间较顺序存储的大C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同4.下列关于对象的描述,不正确的是( )。(分数:2.00)A.对象只能描述有形的东西B.对象具有属性和服务两个主要因素C.现实世界中的一切事物都可以看作对象,但只有在具体的系统中加以论述才有意义D.对象的属性是对象的静态特征,服务是动态特征。并且对象的属性只能由本对象的服务来操作5.最常用的
5、一种基本数据模型是关系数据模型,它的表示应采用( )。(分数:2.00)A.树B.网络C.图D.二维表6.在软件测试设计中,软件测试的主要目的是( )。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序7.下列说法不正确的是( )。(分数:2.00)A.基类指针可以指向它的公有派生类的对象B.指向基类的对象的指针可以指向派生类的对象,因而可以访问派生类的对象的成员C.基类指针不能指向其私有派生类的对象D.指向派生类对象的指针不可以指向基类的对象8.下面程序输出的结果是( )。 #includeiostream using namespace s
6、td; void main() char ch8=“good“,“better“,“best“; for(int i=1;i3;+i) coutchiendl; (分数:2.00)A.good betterB.better bestC.good bestD.good9.数据库的故障恢复,一般是由( )。(分数:2.00)A.数据流图完成B.数据字典完成C.DBA 完成D.PAD 图完成10.下面程序的运行结果是( )。 #includeiostream using namespace std; class A int a; public: A()a=0;1 A(int aa ) a=aa; v
7、irtual void show() couta“; ; class B:public A int b: public: B()b=0: B(int bb) b=bb; void show() coutb“ “; ; class C:public B int c; public: C(int cc) c=cc; void show() coutcendl; ; void main() A a( 8 ),*p;B b( 9 );C c( 10 ); p= p-show(); p= for(a=1,b=l;a=100;a+) if(b=10) break; if(b%3= =1) b+=3;con
8、tinue; couta; (分数:2.00)A.101B.6C.5D.413.根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分成( )。(分数:2.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构14.下列函数的定义,正确的是( )。(分数:2.00)A.float sum(x, float x,y;B.float sum(float x,float ; C.float sum(float x,float D.float sum(floatx,float 15.当一个函数无返回值时,函数的类型应为( )。(分数:2.00)A.
9、任意B.voidC.intD.char16.在 C+语言里,一条语句以( )字符作为结束符。(分数:2.00)A.,B.;C.D.无符号17.对下面的程序,说法正确的是( )。 #includeiostream using namespace std; void sum(float m, float n) float sum=m+n; main() coutsum(5.3,6.5)endl;(分数:2.00)A.该程序是错误的,错误之处在于没有对 sum()函数进行说明B.程序书写规整,无语法错误,是正确的C.该程序语法无错误,但在调用函数 sum()时出错,因为 sum()函数被定义为 vi
10、od 类型,但却被主函数调用,因而是错误的D.虽然 sun()函数被定义为 void 类型,但调用时也不会出错,程序能够编译通过18.链表不具有的特点是( )。(分数:2.00)A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比19.下列语句中正确的是( )。(分数:2.00)A.int * p;i=8; p=B.int * p,i; p=C.float * p;int i;p=D.float * p;cout* p;20.一个函数为 void f(int,char=a),另一个函数为 void f(int),则它们( )。(分数:2.00)
11、A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上说法均不正确21.下列数据结构中,按“先进后出”原则组织数据的是( )。(分数:2.00)A.线性链表B.栈C.循环链表D.顺序表22.下面正确的是( )。(分数:2.00)A.4.1/2B.3.2%3C.3/2=1 结果为 2D.5.2/3 结果是 123.有如下程序: #includeiostream using namespace std; long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(n); void main
12、() int i; cout“请输入一个整数:“; cini;coutendl; coutfib(i)endl; 当输入 4、2 时,该程序的输出结果是( )。(分数:2.00)A.5B.4C.5D.6 1 2 2 224.关于派生类的说法,不正确的是( )。(分数:2.00)A.派生类能够通过继承关键字改变对基类的函数成员的存取权限B.派生类可以拥有自己的新成员C.派生类可重载已有的函数成员D.派生类无法给基类的数据成员初始化25.有以下定义:“int t3)2”,能正确标识 t 数组元素地址的表达式是( )。(分数:2.00)A. templateclass T T max(T x,T y
13、) return(x= y ? x:y); templateclass T T max(T x,T y,T z) T t; t=(x=y ? x:y); return(t=z ? t:z); void main() int x = 10,y=18,maxi; float a = 1.2,b = 3.2,c = 2,max2; max1 = max(x,(int)c); max2 = max(a,b,(float)y); coutmaxiendl; coutmax2endl; (分数:2.00)A.18 3.2B.10 18C.10 3.2D.编译出错27.MyClock 为一个类,则指向“My
14、Clock a,* p;”语句时,调用该类构造函数( )次。(分数:2.00)A.1B.2C.3D.428.关于析构函数的说法,正确的是( )。(分数:2.00)A.析构函数用来释放构造函数为对象分配的内存空间。它可以被系统自动调用B.析构函数没有数据类型,其返回值为 void 型C.析构函数可以没有参数,也可有多个参数D.析构函数与构造函数不一样,它可以有多个,以方便使用29.关于类的继承的特性,不正确的是( )。(分数:2.00)A.子类对父类具有数据和程序代码的共性特征B.子类与父类间有所差别C.会增加代码的冗余D.类间具有层次结构30.下列字符数组的初始化,正确的是( )。(分数:2.
15、00)A.char ch5=“a“,“b“,“c“,“d“,“e“;B.char ch=a,b;C.char ch15=“welcome to china“;D.char ch14=“I am a student“;31.下列叙述中,正确的是( )。(分数:2.00)A.软件就是程序清单B.软件就是存放在计算,机中的文件C.软件应包括程序清单及运行结果D.软件包括程序、文档和数据32.对中断语句的说法,不正确的是( )。(分数:2.00)A.用户可以指定中断的位置B.用户可以指定转移的位置C.break 语句可以跳出本循环D.continue 语句可以结束本次循环33.char c=/41;p
16、rintf(“%o“,c); 的结果为( )。(分数:2.00)A.0101B.101C.41D.6534.循环链表的主要优点是( )。(分数:2.00)A.不再需要头指针了B.从表中任一结点出发都能访问到整个链表C.在进行插入、删除运算时,能更好地保证链表不断开D.已知某个结点的位置后,能够容易地找到它的直接前趋35.需求分析阶段的任务是确定( )。(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能二、B填空题/B(总题数:15,分数:30.00)36.冒泡排序算法在最好的情况下的元素交换次数为U 【1】 /B。/U(分数:2.00)填空项 1:_37.当线性
17、表采用顺序存储结构实现存储时,其主要特点是U 【2】 /U。(分数:2.00)填空项 1:_38.为了克服软件危机提出了U 【3】 /U概念。(分数:2.00)填空项 1:_39.常用的黑箱测试有等价分类法、边值分析法、错误推测法和U 【4】 /U等 4 种。(分数:2.00)填空项 1:_40.在最坏情况下,堆排序需要比较的次数为U 【5】 /U。(分数:2.00)填空项 1:_41.执行语句: int result=100; cout(result= 60)结果是U 【6】 /U。(分数:2.00)填空项 1:_42.对于嵌套的 ifelse 语句,C+语法规定 else 总是与U 【7】
18、 /U匹配。(分数:2.00)填空项 1:_43.以下程序的输出是U 【8】 /U。 #includeiostream using namespace std; fun(intm) static int n=1; n=m*n; return(n); void main() int i; for(i=1;i=3;i+) coutfun(i);(分数:2.00)填空项 1:_44.当用数组元素作函数参数时,这属于U 【9】 /U传递。(分数:2.00)填空项 1:_45.请填写空格: #includeiostream using namespace std; void fun(int x,int
19、y,int * z) *2 = x + y; void main() int a=100,b=100,c,*p= fun(a,b,p); U【10】 /U; /输出调用 fun 函数后返回 a、b 的和。 (分数:2.00)填空项 1:_46.在类中定义和实现的函数称为U 【11】 /U。(分数:2.00)填空项 1:_47.重载函数的函数名称相同,但函数的实现和功能不同,系统是靠U 【12】 /U来决定采用哪个函数。(分数:2.00)填空项 1:_48.设置虚基类的目的是解决二义性问题,可通过U 【13】 /U标识虚基类。(分数:2.00)填空项 1:_49.如果一个类中含有纯虚函数,则该类
20、称为U 【14】 /U。(分数:2.00)填空项 1:_50.模板是实现代码重用机制的一种工具,其中使一个函数可以定义成对许多不同数据类型完成同一个任务的是指U 【15】 /U模板。(分数:2.00)填空项 1:_二级 C+笔试 308 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列关于数组初始化的说法,正确的是( )。(分数:2.00)A.对于 int a5;它的数组元素初值为 0B.int a5=1,3,5,7,8,9;是可以的,这时数组长度自动变为 6C.static int a5;的数组元素初值为 0 D.int a5=1
21、.3,5;是不合法的,因为数组长度为 5,而仅有 3 个数据,不知赋给哪个元素解析:解析 数组一旦定义,其长度就不可变了;初始化数组的数据个数不要大于数组长度,否则会出现逻辑错;初始化数组的数据个数若小于数组长度,则先赋给前边的元素,后边的元素值自动初始化为0;静态数组如果没有初始化自动初始化为 0。2.下面程序的执行结果是( )。 #includeiostream using namespace std; class building public: building() building(unsigned stories, float breadths, float lengths) st
22、ory = stories; breadth = breadths; length = lengths; void getstory(void) cout“story is:“storyendl; void getarea(void) area = length*breadth*story;cout“area is:“areaendl; private: unsigned story; float length; float breadth; float area; ; void main(void) building b1,b2;building b3(10u,16.6,58.8); b1.
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 308 答案 解析 DOC
