【学历类职业资格】C++程序设计真题2017年04月及答案解析.doc
《【学历类职业资格】C++程序设计真题2017年04月及答案解析.doc》由会员分享,可在线阅读,更多相关《【学历类职业资格】C++程序设计真题2017年04月及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、C+程序设计真题 2017年 04月及答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分数:20.00)1.以下说法中不正确的是_(分数:1.00)A.C+程序中必须有一个主函数 main(),而且是从 main()的第一条语句开始执行B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的C.主函数可以在任何地方出现D.主函数必须出现在固定位置2.若有定义 int *p=new int(0),则下列说法正确的是_(分数:1.00)A.系统用指针变量 p来表示所指整型变量B.声明一个指针变量 p,指向名为 new的存储单元C.系统为指针变量 p分
2、配一个整型数据的存储空间D.通过运算符 new,分配一个整型数据的存储空间,并将其内存地址赋予指针变量3.以下有关类与对象的叙述中,错误的是_(分数:1.00)A.对象是类的一个实例B.一个类可以有多个对象C.任何一个对象都归属于一个具体的类D.只要是某个类的对象,那么该对象就可以访问这个类的所有成员4.以下有关构造函数的叙述中,错误的是_(分数:1.00)A.构造函数名必须和类名一致B.构造函数在定义对象时自动执行C.在一个类中构造函数有且仅有一个D.构造函数可以在类体内声明在类体外实现5.以下叙述中正确的是_(分数:1.00)A.类成员的定义必须放在类体内部B.在类中,不作特别说明的数据成
3、员均为私有类型C.在类中,不作特别说明的数据成员均为公有类型D.类成员的定义必须是成员变量在前,成员函数在后6.友元函数的主要作用是_(分数:1.00)A.提高程序的效率B.加强类的封装性C.实现数据的隐蔽性D.增加成员函数的种类7.在 C+中,字符型数据在内存中的存放形式为_(分数:1.00)A.原码B.BCD码C.ASCIID.反码8.下列变量命名中,非法的是_(分数:1.00)A.A*LONGB.MyCarC.my_carD.a489.关于对类的描述中,错误的是_(分数:1.00)A.类是创建对象的样板B.类是具有唯一标识符的实体C.类就是 C语言中的结构类型D.类是具有共同行为的若干对
4、象的统一描述体10.不能作为函数重载的判断依据的是_(分数:1.00)A.constB.返回类型C.参数个数D.参数类型11.已知:“int a=5;char c=“a“;”则输出语句 cout c+1 a c;的显示结果是_(分数:1.00)A.65aB.985aC.98“5“aD.65“a“12.下面程序的输出结果是_ #includeiostream using namespace std; int main() int a=1,b=-2,c=3; if(ab) if(b0)c=0; else c+=1; cout c endl; return 0; (分数:1.00)A.0B.2C.3
5、D.413.C+语言的跳转语句中,对于 break和 continue说法正确的是_(分数:1.00)A.break语句只应用于循环体中B.continue语句只应用于循环体中C.break是无条件跳转语句,continue 不是D.break和 continue的跳转范围不够明确,容易产生问题14.下列函数的说明中,表示纯虚函数的是_(分数:1.00)A.virtual int vf(int)B.void vf(int)=0C.virtual void vf()=0D.virtual void vf(int)15.以下关于运算符重载的描述中,错误的是_(分数:1.00)A.运算符重载其实就是
6、函数重载B.成员运算符比友元运算符少一个参数C.需要使用关键字 operatorD.成员运算符比友元运算符多一个参数16.对于下面定义的类 Myclass,在函数 f()中将对象成员 n的值修改为 50的语句应该是_ class Myclass public: Myclass(int i)n=i; void SetNum(int x)n=x; private: int n; ; int f() Myclass *p=new Myclass(45); _(分数:1.00)A.p-SetNum(50)B.SetNum(50)C.p-n=50D.*p-SetNum(50)17.下面关于对象概念的描述
7、中错误的是_(分数:1.00)A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通信靠消息传递D.操作是对象的动态属性18.考虑函数原型 void pass(int x,int y=5,char z=“*“),下面的函数调用中,属于不合法调用的是_(分数:1.00)A.pass(5)B.pass(5,8)C.pass(6,“*“)D.pass(0,0,“*“)19.下列关于虚函数的描述中,正确的是_(分数:1.00)A.使用虚函数就一定产生多态性B.虚函数只能是类中的一个成员函数,但不能是静态成员C.一个类中仅可以说明一个纯虚函数D.在构造函数和析构函数中调用虚函数采用动态联编
8、20.有以下程序段,其输出结果是_ #includeiostream using namespace std; void main() char b=“Hello,you“; b5=“!“; cout b endl; (分数:1.00)A.Hello,youB.HelloC.Hello!youD.!二、第部分 非选择题(总题数:20,分数:20.00)21.一般 C+语言源程序文件的后缀是.cpp;经过编译后,生成文件的后缀是.obj;经过连接后,生成文件的后缀是 1。 (分数:1.00)22.C+语言中提供了 3种循环语句: 1 循环语句、for 循环语句和 do_while循环语句。 (分
9、数:1.00)23.在“int a=10,*p=”语句中,p 的值是 1。 (分数:1.00)24.执行 3条语句“int a,b,*c=int*p=c;p=”后,c 指向 1。 (分数:1.00)25.若有以下定义:double w9;则 w数组元素下标的下限是 0,上限是 1。 (分数:1.00)26.设 int x34;则 x数组中含有 1 个 int类型的数组元素。 (分数:1.00)27.将数学表达式 (分数:1.00)28.模板函数的真正代码是在源程序中 1 时产生的。 (分数:1.00)29.源程序文档化要求程序应加注释,注释一般分为序言性注释和 1。 (分数:1.00)30.重
10、载函数必须有不同的 1。 (分数:1.00)31.在类中定义和实现的函数可以成为 1,它能够加快程序执行速度。 (分数:1.00)32.在 C+中输入输出是通过流来完成的,输出操作是将一个对象的状态转换成一个 1 序列。 (分数:1.00)33.C+语言中,派生类继承了基类的全部数据成员和除构造函数及 1 之外的全部函数。 (分数:1.00)34.定义以下变量并假设已赋确定的值:“char w;int x;float y;double z;”,则表达式“w*x+z-y”的数据类型是 1。 (分数:1.00)35.若有一个 Myclass类,则执行语句“My(;lass obj1,obj22,*
11、p;”后,自动调用该类的构造函数 1次。 (分数:1.00)36.this指针保证每个对象拥有自己的数据成员,又共享处理这些数据成员的 1。 (分数:1.00)37.若有整型变量 a=1,b=-2,c=3;则表达式 a.bb?c:a+b 的值为 1。 (分数:1.00)38.所谓“引用”就是将一个新标识符和一块已经存在的 1 相关联,通常用于函数的参数表中或者作为函数的返回值。 (分数:1.00)39.C+为结构动态分配内存的一般格式是“指针名= 1;”,当不再使用这个空间时必须用“delete 指针名;”释放空间。 (分数:1.00)40.C+程序中使用 string类定义存储字符串的对象时
12、,必须在程序中包含这个类的头文件,即使用语句 1。 (分数:1.00)三、改错题(总题数:5,分数:20.00)41.以下是对类 Sample的定义 #includeiostrcam using namespace std; class Sample public: Sample(int val); Sample 1; private: float a=2.5; Sample 2; ; (分数:4.00)42.#includeiostream using namespace std; void swap(int void main 1 int a=5,b=10; swap(a,b); cout
13、 “a=“ a “,b=“ b endl; void swap(int x,int y) int temp; temp=x; x=y; y=temp; (分数:4.00)43.此程序改正后的运行结果为 1 2 5 11 21 #includeiostream using namespace std; int f(int); int main 1 int i; for(i=0;i5;i+) cout f(i) “ “; return 0; int f(int i) int k=1; for(;i0;i-) k+=i; return k; (分数:4.00)44.#includeiostream
14、using namespace std; int main 1 int x=15; while(10x50) x+; if(x/3)x+;break; cout x endl; return 0; (分数:4.00)45.此程序调用 findmax 1函数,返回数组中的最大值 #includeiostream using namespace std; int findmax(int*a,int n) int*p,*s; for(p=a,s=a;p-an;p+) if(*p*s)*s=*p; return(*s); void main 2 int x5=12,2,8,47; cout findm
15、ax(x,5) endl; (分数:4.00)四、完成程序题(总题数:5,分数:20.00)46.程序在主函数中创建派生类 Derived的对象 obj,调用 f()函数后输出 DBC #includeiostream using namespace std; class Base public: victual void f()eout “B“; ; public: Derived()cout “D“; virtual void f()Base:f();cout “C“; ; int main() Base *ptr; Derived obj; ptr= _ retum 0; (分数:4.0
16、0)_47.程序的运行结果为:12 #includeiostream using namespace std; class Base public; int a; Base(int i)a=i; ; class Derived:public Base int a; public: Derived(int x):Base(x) void show() _;/输出基类数据成员 a的值 ; void main() _ d.show(); (分数:4.00)_48.#includeiostream using namespace std; class F public: _ ; double F:op
17、erator()(double x,double y)const return(x+5)*y; _ F f; cout f(1.5,2.2) endl; (分数:4.00)_49.程序运行结果为 3 #includeiostream using namespace std; int main() int a=16,b=21,m=0; _ case 0:m+;break; case 1:m+; switch(b%3) _ case 1:m+;break; cout m endl; return 0; (分数:4.00)_50.定义平面上一个点的类 point,有双精度型私有数据成员横坐标 x和纵
18、坐标 y,公有成员函数有写入函数 input()、求原点距离函数 distance()和显示函数 show(),请完成 point()的类图。 (分数:4.00)_五、程序分析题(总题数:2,分数:10.00)51.#includeiostream using namespace std; void sort(int L,int n) int j,k,flag,temp; flag=n-1; while(flag0) k=flag-1;flag=0; for(j=0;j=k;j+) if(LjLj+1) temp=Lj;Lj=L j+1; Lj+1=temp;flag=j; void main
19、() int array 4=7,2,3,4; sort(array,4); aout “The sorted numbers:“; for(int i=0;i4;i+) tout arrayi; (分数:5.00)_52.#includeiostream using namespace std; class x protected:int a; public:x()a=1; ; class x1:virtual public x public: x1()a+=1;cout “x1:“ a “,“; ; class x2:virtual public x public: x2()a+=2;co
20、ut “x2:“ a “,“; ; class y:public x1,public x2 public: y()cout “y:“ a endl; ; void main() y obj; (分数:5.00)_六、程序设计题(总题数:1,分数:10.00)53.定义一个生日类,数据成员有年、月、日。定义一个人员类,数据成员有姓名、性别、生日。人员类中的生日是生日类的对象,两个类都有构造函数和显示函数。在主函数中声明一个人员类对象,屏幕显示其数据。 (分数:10.00)_C+程序设计真题 2017年 04月答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分
21、数:20.00)1.以下说法中不正确的是_(分数:1.00)A.C+程序中必须有一个主函数 main(),而且是从 main()的第一条语句开始执行B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的C.主函数可以在任何地方出现D.主函数必须出现在固定位置 解析:解析 C+程序必须有一个且只能有一个名为 main()的主函数。主函数可以在任何地方出现。2.若有定义 int *p=new int(0),则下列说法正确的是_(分数:1.00)A.系统用指针变量 p来表示所指整型变量B.声明一个指针变量 p,指向名为 new的存储单元C.系统为指针变量 p分配一个整型数据的存储空间D.
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学历 职业资格 程序设计 2017 04 答案 解析 DOC
