【学历类职业资格】C++程序设计自考题模拟17及答案解析.doc
《【学历类职业资格】C++程序设计自考题模拟17及答案解析.doc》由会员分享,可在线阅读,更多相关《【学历类职业资格】C++程序设计自考题模拟17及答案解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、C+程序设计自考题模拟 17 及答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分数:20.00)1.在 int b3=1,3,2,4,5,6,0中,b22的值是_(分数:1.00)A.2B.0C.6D.52.下列关于函数原型及其返回值的描述错误的是_(分数:1.00)A.函数都需要有类型说明B.返回值是由 return 后面的表达式决定的C.函数体内必须有返回语句 return 语句D.return 表达式的值必须与声明函数的类型一致3.C 和 C+共有的特征是_(分数:1.00)A.继承B.函数定义不能嵌套C.封装D.多态性4.对数组进行降幂排序和检索
2、操作,需要包含的头文件是_(分数:1.00)A.mathB.algorithmC.functionalD.iostream5.已知:int a,) 其中 T 是_(分数:1.00)A.函数形参B.模板形参C.函数实参D.模板实参18.下列选项中,与实现运行时多态性无关的是_(分数:1.00)A.函数重载B.指针C.虚函数D.引用19.下列关于运算符重载的叙述中,错误的是_(分数:1.00)A.通过运算符重载,不可以定义新的运算符B.有的运算符只能作为成员函数重载C.若重载运算符为“+”,则相应的运算符函数名是“+”D.重载一个二元运算符时,不一定需要声明两个形参20.已知类 A,类 B 是类
3、A 的公有派生类,类 A 和类 B 中都定义了虚函数 func(),p 是一个指向类 A 对象的指针,则 p-A:func()将_(分数:1.00)A.调用类 A 中的函数 func()B.调用类 B 中的函数 func()C.根据 p 所指的对象类型而确定调用类 A 中或类 B 中的函数 func()D.即调用类 A 中函数,也调用类 B 中的函数二、第部分 非选择题(总题数:20,分数:20.00)21.C+输入/输出操控符中,含义是设置转换基数为十进制的是 1。 (分数:1.00)22.C+程序设计中,有三种基本控制结构:顺序结构、选择结构和 1。 (分数:1.00)23.面向对象的程序
4、设计是以 1 代表求解问题为中心环节。 (分数:1.00)24.表达式 coutendl;还可表示为 1。 (分数:1.00)25.使用关键字 1 说明的函数成为内联函数。 (分数:1.00)26.已知 int a=1,b=2;,则表达式(+a/b)*b-的值为 1。 (分数:1.00)27.动态联编所支持的多态性成为运行时多态性,这由 1 支持。 (分数:1.00)28.静态成员函数 1 访问类的静态数据成员,不能直接访问类的非静态数据成员。 (分数:1.00)29.用 C+语言写成的程序成为 1。 (分数:1.00)30.C+程序设计语言中的 1 机制,可以从现存类中构建其子类。 (分数:
5、1.00)31.声明一个类为另外一个类的友元,格式为“ 1 class 类名”。 (分数:1.00)32.已知类 My Class,在用户未定义折构函有选举权时,则系统为其定义的默认析构函数形式为 1。 (分数:1.00)33.所谓的 1,就是提供的操作与元素类型无关。 (分数:1.00)34.用 operator+(c1,c2)这样的表达式来使用运算符“+”,应将“+”重载为 1 函数。 (分数:1.00)35.对象消失时,使用 1 释放由构造函数分配的内存。 (分数:1.00)36.已知类 AA,“AA*abc();“是该类中一个成员函数的原型,则在类外定义时的函数头为 1。 (分数:1.
6、00)37. 1(a,a+len,b)是将数组 a 的内容原样复制到数组 b。 (分数:1.00)38.UML 中,对象之间的静态关系是通过对象属性之间的连接反映的,称之为 1。 (分数:1.00)39.有如下定义: class MA int Value; public: MA(int n=0): value(n) ; MA * ta, tb; 其中 MA 类的对象名标识符是 1。 (分数:1.00)40.设 A 为 base 类的对象且赋有初值,则语句 base B(A);表示 1。 (分数:1.00)三、改错题(总题数:5,分数:20.00)41.下列程序是求两个字符串数组的所包含的相同字
7、串,试改正程序中的错误。 #includeiostream using namespace std; int main 1 char s1=“Fortran“, s2=“Foxpro“; char *p, *q; p=s1; q=s2; while(*p p+; q+; coutendl; (分数:4.00)42.下列程序段是 Location 类的定义,请找出错误的语句。 class Location private: int X, Y=20; protected: int zeroX, zeroY; int SetZero(int ZeroX, int ZeroY); private: i
8、nt length, height; public: void init(int initX, int initY); int GetX 1; int GetY 2; ; (分数:4.00)43.class A public: void f(B, b); ; class B public: void g(A, a); ; (分数:4.00)44.#includeiostream using namespace std; class A public: void A 1 const int f5 2constreturn 5; int Obj 3return 45; int val; int f
9、8 4; ; int A:f8 5return val; void main 6 const A s; int i=s.f5 7; cout“Value=“iendl; (分数:4.00)45.class A int x; friend class B; ; class B friend class C; class C void func(A *p); void C:func(A *p) p-x-; (分数:4.00)四、完成程序题(总题数:5,分数:20.00)46.用户自定义类 A,完成程序填空,并使其输出为 10 5 10 5 15 5 #includeiostream using n
10、amespace std; class A public: int f1(); int f2(); void setx(int m)x=m; coutxendl; void sety(int n)y=n; coutyendl; int getx()return x; int gety()return y; private: int x, y; ; int A:f1()return x+y; int A:f2()return x-y; int main() A a; _; a.sety(5); couta.getx()“/t“a.gety()endl; cout_endl; (分数:4.00)_
11、47.定义一个类 A,并在 main 函数实现类的实例化。 class Base private: int a; public: Base()a=0; _ /定义构造函数,用参数 aa 初始化数据成员 a ; void main() Base *p; /定义类 A 的指针对象 P _ ; /用 P 指向动态对象并初始化为整数 5 (分数:4.00)_48.输入一行字符,按输入字符的反序建立一个字符结点的单向链表,并输出该链表中的字符。 #includeiostream using namespace std; struct node char ch; node *next; void show
12、(node *head); int main() node *head, *p; char c; head=NULL; while(c=getchar()!=“/n“) /输入一行字符 _ /建立新结点 p-ch=c; p-next=head; /插入表头 head=p; show(head); void show(node *head) /输出链表 node *p=head; cout“链表中的字符是:/n“; while(p) coutp-ch; _ coutendl; (分数:4.00)_49.完成下面类中成员函数的定义。 #includeiostream using namespace
13、 std; class Base private: int val; public: Base(int i) val=i; _int(); ; Base:operator int() _ class Deprived: public Base public: Deprived(int i): Base(i) ; void main() Deprived n(100); int i=n; couti+nendl; (分数:4.00)_50.完成下列程序填空,使其输出为-123.457。 #includeiostream #includeiomanip using namespace std; i
14、nt main() double x=123.456789; cout_-xendl; (分数:4.00)_五、程序分析题(总题数:2,分数:10.00)51.includeiostream using namespace std; class A public: A()a=5; void printa()cout“A:a=“aendl; private: int a; friend class B; ; class B public: void displayl(A t) t.a+; cout“display1:a=“t.aendl; void display2(A t) t.a-; cou
15、t“display2:a=“t.aendl; ; int main() A obj1; B obj2; obj1.printa(); obj2.display1(obj1); ohj2.display2(obj1); obj1.printa(); (分数:5.00)_52.给出下面程序的输出结果。 #includeiostream using namespace std; class A private: int a; public: A(int aa=0)a=aa; cout“a=“aendl; ; class B private: int b; public: B(int bb=0)b=b
16、b; cout“b=“bendl; ; class C: public B private: A a; public: C()cout“C default constructor“endl; C(int i, int j):a(i), B(j)cout“C constructor“endl; ; void main() C c1, c2(5, 6); (分数:5.00)_六、程序设计题(总题数:1,分数:10.00)53.定义一个表示点的结构类型 Point 和一个由直线方程 y=ax+b 确定的直线类 Line。结构类型 Point 有x 和 y 两个成员,分别表示点的横坐标和纵坐标。Lin
17、e 类有两个数据成员 a 和 b,分别表示直线方程中的系数。Line 类有一个成员函数 print 用于显示直线方程;友元函数 setPoint(Line ) 其中 T 是_(分数:1.00)A.函数形参B.模板形参 C.函数实参D.模板实参解析:考点 类模板 解析 T 是模板参数,在类模板体内可以使用,离开该类模板就不能使用。实参是出现在主调函数中,进入被调函数中,实参变量则不能使用。所以模板参数是形参。18.下列选项中,与实现运行时多态性无关的是_(分数:1.00)A.函数重载 B.指针C.虚函数D.引用解析:考点 运行时多态 解析 函数重载体现的是编译时的多态性,所以选 A。19.下列关
18、于运算符重载的叙述中,错误的是_(分数:1.00)A.通过运算符重载,不可以定义新的运算符B.有的运算符只能作为成员函数重载C.若重载运算符为“+”,则相应的运算符函数名是“+” D.重载一个二元运算符时,不一定需要声明两个形参解析:考点 运算符重载 解析 成员函数:单目运算符:参数表中没有参数;双目运算符:参数表中只有一个参数;不能重载的运算符:1不能重载的运算符有:“:“,“.“,“*“,“?“;2必须重载为成员函数的运算符:,(),-,=。20.已知类 A,类 B 是类 A 的公有派生类,类 A 和类 B 中都定义了虚函数 func(),p 是一个指向类 A 对象的指针,则 p-A:fu
19、nc()将_(分数:1.00)A.调用类 A 中的函数 func() B.调用类 B 中的函数 func()C.根据 p 所指的对象类型而确定调用类 A 中或类 B 中的函数 func()D.即调用类 A 中函数,也调用类 B 中的函数解析:考点 继承和派生 解析 使用限定运算符“:”,访问基类 A 的 func()函数。二、第部分 非选择题(总题数:20,分数:20.00)21.C+输入/输出操控符中,含义是设置转换基数为十进制的是 1。 (分数:1.00)解析:dec 考点 C+输入/输出操控符及其含义 解析 dec 设置转换基数为十进制;oct 设置转换基数为八进制;hex 设置转换基数
20、为十六进制;endl 输出一个换行符并刷新流;setw 设置输出数据字段宽度 width。22.C+程序设计中,有三种基本控制结构:顺序结构、选择结构和 1。 (分数:1.00)解析:循环结构 考点 C+语句基本结构 解析 C+语言提供了基本控制结构分为三种:顺序结构、选择结构、循环结构。23.面向对象的程序设计是以 1 代表求解问题为中心环节。 (分数:1.00)解析:对象 考点 面向对象 解析 面向对象的程序设计不是以函数过程和数据结构为中心,而是以对象代表求解问题为中心环节。24.表达式 coutendl;还可表示为 1。 (分数:1.00)解析:cout“/n“(或 cout“/12“
21、或 cout“/xA“) 考点 数据的简单输入/输出格式 解析 endless 操控符的含义是:输出一个换行符并刷新流。换行符等价于“/n“,“/12“,“/xA“。25.使用关键字 1 说明的函数成为内联函数。 (分数:1.00)解析:inline 考点 内联函数 解析 为了加快程序的执行速度,使用关键字 inline 说明该函数为内联函数。26.已知 int a=1,b=2;,则表达式(+a/b)*b-的值为 1。 (分数:1.00)解析:2 考点 运算符的优先级 解析 “+”“-”的优先级高于+-*/,表达式(+a/b)*b-=(+a)/b)*(b-)=(2/2)*2=2。27.动态联编
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学历 职业资格 程序设计 考题 模拟 17 答案 解析 DOC
