【计算机类职业资格】二级C++笔试325及答案解析.doc
《【计算机类职业资格】二级C++笔试325及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试325及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试 325 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.对于以下带参数的 main( )函数的第二形参,void main(int argc,_),不可能的形式是(分数:2.00)A.char*argvB.char argvC.char*aD.char*m2.下列程序的输出结果是 main( ) int x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+; cout“a=“a“b=“bendl; (分数:2.00)A.a=2 b=1B.a=1 b=1C.a
2、=1 b=0D.a=2 b=23.以下程序的输出结果是 int a,b; void fun( ) a=100;b=200;) main( ) int a=5,b=7; fun( ); coutabendl; (分数:2.00)A.100200B.57C.200100D.754.最简单的交换排序方法是(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序5.软件开发的结构生命周期法的基本假定是认为软件需求能做到(分数:2.00)A.严格定义B.初步定义C.早期冻结D.动态改变6.能保证对所有的参数能够结束的递归函数是(分数:2.00)A.int f(int if(n1)return 1
3、;else return n*f(n+1);B.int f(int if(n1)return 1;else return n*f(n-1);C.int f(int if(abs(1)return 1;else return n*f(n/2);D.int f(int if(n1)return 1;else return n*f(n*2);)7.如果表达式- -x/y 中的“- -”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为(分数:2.00)A.operator /(operator- -( ),;B.operator /(operator- -(,;C.op
4、erator- -( ).Operator /(;D.operator /(operator- -();8.有以下程序: #includeiostream using namespace std; int main( ) int x=15; while(x10 if(x/3) x+; break; coutxendl; return 0; 执行后的输出结果是(分数:2.00)A.15B.16C.17D.189.有关构造函数的叙述不正确的是(分数:2.00)A.构造函数名必须和类名一致B.构造函数在定义对象时自动执行C.构造函数无任何函数类型D.在一个类中构造函数有且仅有一个10.详细设计的结果
5、基本决定了程序最终的(分数:2.00)A.代码的规模B.运行速度C.代码质量D.可维护性11.需求分析阶段的任务是确定(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能12.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.Myclass cout“a=“a“b=“cendl; (分数:2.00)A.a=% b=%5B.a=2 b=5C.a=d b=dD.a=%d b=%d18.下列说法中不正确的是(分数:2.00)A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性1
6、9.设有语句 int n,m; char a5,b; cinnamb; 为了分别将 10 和 20 分别赋给 n 和m,look 赋给 a,t 赋给 b,则正确的输入为(分数:2.00)A.10“look“ 20tCRB.10“look“10C.10 look 20 tD.10CRlook20CRtCR20.若已定义 int a=1,2,3,4,5,6,7,8,9,10,p=a,i=5; 则对数组元素的不正确的引用是(分数:2.00)A.ap-aB.*( y=3*x-4; return y; (分数:2.00)A.intB.不确定C.voidD.float22.以下循环体的执行次数是 main
7、( ) int i,j; for(i=0,j=1;i=j+1;i+=2,j- -)coutiendl; (分数:2.00)A.3B.2C.1D.023.已知语句 int m=10;则下列引用的表示中正确的是(分数:2.00)A.intB.intC.intD.float24.一个关系中属性个数为 1 时,称此关系为(分数:2.00)A.对应关系B.单一关系C.一元关系D.二元关系25.有如下函数模板声明: templatetypename T T Max(T a,T b)return(a=b)? a:b; 下列对函数模板 Max( )的调用中错误的是(分数:2.00)A.Max(3.5,4.5)
8、B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)26.有以下程序 main( ) int a=5,b=4,c=3,d=2; if(abc) coutdendl; else if(c-1=d)=1) coutd+1endl; else coutd+2endl; 执行后输出结果是(分数:2.00)A.2B.3C.4D.编译时有错,无结果27.设有两个串 p 和 q,求 q 在 p 中首次出现位置的运算称作(分数:2.00)A.连接B.模式匹配C.求子串D.求串长28.有以下程序 main( ) int i=1,j=1,k=2; if(j+| k+
9、) 执行后输出结果是(分数:2.00)A.1,1,2B.2,2,1C.2,2,2D.2,2,329.执行下面程序中的输出语句后,a 的值是 main( ) int a; cout(a=3*5,a*4,a+5); (分数:2.00)A.65B.20C.15D.1030.执行完下列语句 int a,b,c= int* p= 后 c 指向(分数:2.00)A.aB.bC.cD.无效地址31.为了避免嵌套的 ifelse 语句的二义性,C+规定与 else 配对的是(分数:2.00)A.缩排位置相同的 ifB.在其之前未配对的 ifC.在其之前未配对的最近的 ifD.同一行上的 if32.下列关系运算
10、的叙述中,正确的是(分数:2.00)A.投影、选择、连接是从二维表行的方向进行的运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表列的方向进行的运算D.以上 3 种说法都不对33.面向对象程序设计将数据和什么放在一起,作为一个相互依存、不可分割的整体来处理?(分数:2.00)A.对数据的操作B.信息C.数据隐藏D.数据抽象34.以下关于友元函数的叙述不正确的是(分数:2.00)A.友元函数提供了类之间数据共享的一个途径B.一个友元函数可以访问任何类的任何成员C.友元函数破坏了数据的封装D.友元函数增加了程序设计的灵活性35.有如下程序 main( ) int n=9
11、; while(n6)n- -;coutnendl;) 该程序段的输出结果是(分数:2.00)A.987B.876C.8765D.9876二、B填空题/B(总题数:15,分数:30.00)36.冒泡排序算法在最好的情况下的元素交换次数为 1。(分数:2.00)填空项 1:_37.在最坏情况下,堆排序需要比较的次数为 1。(分数:2.00)填空项 1:_38.若串 s=“MathTypes“,则其子串的数目是 1。(分数:2.00)填空项 1:_39.在软件生命周期的各个阶段都会发生一系列的文件,如手册、数据和程序等,它们总称为 1。(分数:2.00)填空项 1:_40.关系数据库的关系演算语言
12、是以 1 为基础的 DML 语言。(分数:2.00)填空项 1:_41.执行语句序列 char str110=“ABCD“,str210=“XYZxyz“; for(int i=0;strli=str2i;i+); 后,数组 strl 中的字符串是_。(分数:2.00)填空项 1:_42.下列程序的执行结果是_。 #includelostream.h int a; int sum_a(void) a=a+5; return a; void main(void) a=a+sum_a( ); coutaendl; (分数:2.00)填空项 1:_43.根据输出结果填空完成下面程序。 #includ
13、eiostream.h class Test private: static int val; int a; public: static int func( ); void sfunc(Test ; _/初始化静态变量 val int Test:func( ) return val+; void Test:sfunc(Test cout“Result3=“r.a; void main( ) cout“Resultl=“Test:func( )endl; Test A; cout“Result2=“A.fune( )endl; A. sfunc(A); 输出结果为: Result1=201 R
14、esult2=202 Result3=125(分数:2.00)填空项 1:_44.下列程序的运行结果是_。 #includeiostream.h class test private: int hum; public: test( ); int TEST( )return num+100;) test( ); ; test:test( )num=0;) test:test( )cout“Destructor is active“endl;) void main( ) test x3; coutx1.TEST( )endl; (分数:2.00)填空项 1:_45.请将下列类定义补充完整。 cla
15、ss Basepublic:void fun( )cout“Base:fun“endl; class Derived:public Base public: void fun( ) _/显式调用基类的 fun 函数 cout“Derived:fun“endl; ;(分数:2.00)填空项 1:_46.有以下程序: #includeiostream.h class A int x; public: A(int a) x=a; friend class B; ; Class B public: void print(A a) a.x- -; couta.xendl; ; void main() A
16、 a(10); B b; b.print(a); 程序执行后的输出结果是_(分数:2.00)填空项 1:_47.下列程序编译时发现 pb-f(10);语句出现错误,其原因是_。 #includeiostream.h class Base public: void f(int x)cout“Base:“xendl;) ; class Derived:public Base public: void f(char*str)cout“Derived:“strendl; ; void main(void) Derived*pd=new Derived; Pd-f(10); (分数:2.00)填空项 1
17、:_48.下列程序的运行结果是_。 #includeiostream.h class SomeClass public: SomeClass(int value) some value=value; ); void show_data(voiD) coutdatasome_valueendl; ; static void set_data(int value) data=value; ; private: static int data; int some_value; ; int SomeClass:data=0; void main(void) SomeClass my_class(100
18、1), your_class(2002); your_class.set_data(4004); my_class.show_data( ); (分数:2.00)填空项 1:_49.有以下程序: #includediostream using namespace std; class Base public: Base( ) x=0; int x; ; class Derived1:virtual public Base public: Derived1( ) x=10; ; class Derived2:virtual public Base public: Derived2( ) x=20
19、; ; class Derived: public Derived1,protected Derived2 ; int main( ) Derived obj; coutobj. xendl; return 0; 该程序运行后的输出结果是_。(分数:2.00)填空项 1:_50.下列程序对加号进行了重载,划线部分的语句是_。 #includeiostream.h #includemath.h class Triangle int x,y,z; double area; public: Triangle(int i,int j,int k) double s; x=i;y=j;z=k; s=(x
20、+y+z)/2.0; area=sqrt(s*(s-x)*(s-y)*(s-z); void disparea( ) cout“Area=“areaendl; friend double operator+(Triangle tl,Triangle t2) _ ; void main( ) Triangle tl(3,4,5),t2(5,12,13); double s; cout“tl:“;t1. disparea( ); cout“t2:“;t2. disparea( ); s=t1+t2: cout“总面积:=“sendl; (分数:2.00)填空项 1:_二级 C+笔试 325 答案解
21、析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.对于以下带参数的 main( )函数的第二形参,void main(int argc,_),不可能的形式是(分数:2.00)A.char*argvB.char argv C.char*aD.char*m解析:解析 本题要考查的实际是字符数组,用于向函数传递参数,属于指针或引用传递方式。要注意的是考生不要被名称所迷惑,即根据 A 和 D 是相同类别的,故可以排除。对 C 来说,也属于指针传递方式,而 B 不仅不属于指针传递,而且还没有限定数组大小,编译器在编译时就会产生错误。2.下列程序的输出结果
22、是 main( ) int x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+; cout“a=“a“b=“bendl; (分数:2.00)A.a=2 b=1 B.a=1 b=1C.a=1 b=0D.a=2 b=2解析:解析 本题主要考查 switch 语句中,break 语句的作用。每个 case 语句后面如果没有 break 语句,则程序的执行流程将发生变化,即顺序执行各个 case 语句。这种情况一般不符合程序员的设计思路,但也可以用这种特性完成特殊控制。3.以下程序的输出结果是 int a,b; void fun( ) a
23、=100;b=200;) main( ) int a=5,b=7; fun( ); coutabendl; (分数:2.00)A.100200B.57 C.200100D.75解析:解析 本题考查同名变量的作用域大小。考生应掌握,同名局部变量在函数内部将屏蔽全局同名变量,因此,main 函数内部使用的局部变量 a 和 b,即 5 和 7,答案为 B。4.最简单的交换排序方法是(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序 解析:解析 冒泡排序是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序表。交换排序方法有冒泡排序和快速排序,显然选项 B 和选项
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 325 答案 解析 DOC
