《2022年春上学期西安电子科技大学《面向对象程序设计(C)》期末考试试题(题目).docx》由会员分享,可在线阅读,更多相关《2022年春上学期西安电子科技大学《面向对象程序设计(C)》期末考试试题(题目).docx(7页珍藏版)》请在第一文库网上搜索。
1、西安电子科技大学网络与继续教育学院2022学年上学期面向对象程序设计(C+)期末考试试题(综合大作业)题号*四五总分题分1020202030得分考试说明:1、大作业试题公布时间:2022年4月22日:2、考试必须独立完成,如发现抄袭、雷同均按零分计;3、答案须用西安电子科技大学网络与继续教育学院2022春期末考试答题纸(个人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐;4、拍照要求完整、清晰, 一张图片对应一张个人专属答题纸(A4纸),正确上传。一、简答题(共10分)1. (3分)什么是引用?它与指针有什么区别?2. (3分)C+提供了哪些循环语句?它们各自的特点是什么?3. (4分)构
2、造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?二、填空题(得空2分,共20分)1 . C+程序中的数据可以分为两大类,其中 是指在程序执行过程中值不改变的数据是程序中用于存储信息的单元,并对应于某个内存空间.2 . C+中函数之间传递参数有 和 两种方式。3 .假设x = 5, y = 0, z = 3,则表达式!x 11 y+ & z的值为,执行表达式后y的值为.4 .下列程序在构造函数和析构函数中申请和择放类的私有成员,请完成该类的实现。class MyClass private:int *x:public:MyClass(int a);第I页(共4页)MyCla
3、ss(););MyClass : MyClass(int a) ; MyClass : MyClass() :!5 .在C+中,类A的每一个非静态成员函数都有一个隐藏的指针类型的形参指向当前正在操作的对象,其类型为 0三、选择题(每题2分,共20分)1 .下列常量中,不是字符常虽:。. ,007, B. aC. nD. x2 .类的析构函数是 时被自动调用的.A.创建类B.创建时象C.引用对象D.释放对象3 .在C+语言中,下列变址名正确的是。.char 89_name:B.bool is-loan:C.int classD.int _abc;4 .正确的for语句是。已知int i,a:.f
4、or(i10) a-;B. for(i=0,i10ti+)a一;C. for (i=0:i10:i+,a):D. for (i=0:i10:a-):5 .下列关键字中,不是类定义中使用的关健字。. classB. publicC. switchD. protected6 .关于对象的描述中,是错误的。A.对象就是C语言中的结构变量B.对象是状态和操作的封装体C.对象之间的信息传递是通过消息进行的D.对望是某个类的实例7 .下列关于运算符重载的描述中,是正确的。A.运算符重载可改变其优先级8 .运算符电载不改变其语法结构C.运算符重载可改变其结合性D.运算符重载可改变其操作数的个数8 .虚函数使
5、用关犍字.A. virtual B. static C. public D. private9 .下面的函数中,静态成员函数不能访问的是 0A.静态数据成员B.静态成员函数C.类以外的函数和数据D.非静态数据成员10.假定A是一个类,那么执行语句“A a,b(3), *p;” 调用了_一次构造函数. 2B. 3C.4D. 5四、读程题(每题5分,共20分)1.给出卜述源程序的运行结果. j = i * 3; void main()int al b;fun a):fun(9f b):cout a + b = a + b cndl;)2 .给出下述源程序的运行结果。#include void ma
6、in() int a = 5;do (a+:cout +a endl;if(a = 10) break;while(a = 9 )cout okn;)3 .给出下述源程序的运行结果。include int add(int *xt int n)int sum , i;for(sum = 0t i = 0; i n; i+) sum += *(x+i);return sum;1void main() int arr = lt 3, 5, 7);cout add(arrt 4) endl;)4 .给出下述源程序的运行结果。#include class A public:() al = a2 = 0;
7、 cout *Default constructor cal led. Xn*; 1A(int i, int j) al = i: a2 = j: cout Constructor cal led.nM;)void print0 cout al = al , a2 = m a2 endl; private:int all a2;);void main() A x, y(3t 9);x print ();y. print ();)5irn个整数已按由小到大的顺序排列好,要求输入一个整数,把它插入到原rr数列中,而且仍然保持有序,同时输出新的数列。(插入时应考虑到插入的数的各种可能性,比所有的数都
8、小;比所有的数都大;在最大数和最小数之间)5.2定义并实现一个类Myst,使下列语句能够正常运行。Myst x (3. 2), y (5, 5), z (0. 0);z = 8. 9 - y;6.3;第1页(共4页)学习中心/函授站_姓名学号西安电子科技大学网络与继续教育学院2022学年上学期面向对象程序设计(C+)期末考试试题(综合大作业)题号一二三四五总分题分 10 20 20 20 30得分考试说明:1、大作业试题公布时间:2022年4月22日;2、考试必须独立完成,如发现抄袭、雷同均按零分计;3、答案须用西安电子科技大学网络与继续教育学院2022春期末考试答题纸(个人专属答题纸)手写完
9、成,要求字迹工整、卷面干净、整齐;4、拍照要求完整、清晰,一张图片对应一张个人专属答题纸(A4纸),正确上传。一、简答题(共10分)1. (3分)什么是引用?它与指针有什么区别?2. (3分)C+提供了哪些循环语句?它们各自的特点是什么?3. (4分)构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?二、填空题(每空2分,共20分)1 . C+程序中的数据可以分为两大类,其中是指在程序执行过程中值不改变的数据;是程序中用于存储信息的单元,并对应于某个内存空间。2 . C+中函数之间传递参数有和两种方式。3 .假设x = 5, y = 0, z = 3,则表达式!x 11
10、 y+ & z的值为,执行表达式后y的值为。4 .下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。class MyClass private:int *x;public:MyClass(int a);第2页(共4页)MyClass(););MyClass : MyClass(int a) ;MyClass : MyClass() ;5 .在C+中,类A的每一个非静态成员函数都有一个隐藏的指针类型的形参,它指向当前正在操作的对象,其类型为。三、选择题(每题2分,共20分)1 .下列常量中,不是字符常量。A. ,007, B. ,a, C. ,n, D. x2 .类的析构函
11、数是时被自动调用的。A.创建类B.创建对象C.引用对象D.释放对象3 .在C+语言中,下列变量名正确的是。A. char 89_name; B. bool is-loan;C. int class D. int _abc;4 .正确的for语句是。已知int i, a;A. for(i 10) a-;B. for(i = 0, i 10, i+) a-;C. for(i = 0; i 10; i+, a-);D. for(i = 0; i 10; a-);5 .下列关键字中,不是类定义中使用的关键字。A. class B. publicC. switch D. protected6 .关于对象
12、的描述中,是错误的。A.对象就是C语言中的结构变量B.对象是状态和操作的封装体C.对象之间的信息传递是通过消息进行的D.对象是某个类的实例7 .下列关于运算符重载的描述中,是正确的。A.运算符重载可改变其优先级8 .运算符重载不改变其语法结构C.运算符重载可改变其结合性D.运算符重载可改变其操作数的个数9 .虚函数使用关键字。A. virtual B. static C. public D. private10 下面的函数中,静态成员函数不能访问的是。A.静态数据成员B.静态成员函数C.类以外的函数和数据D.非静态数据成员11 .假定A是一个类,那么执行语句”3),*印”调用了次构造函数。A.
13、 2 B. 3 C.4 D. 5四、读程题(每题5分,共20分)1 .给出下述源程序的运行结果。#include void fun(int i, int &j)第3页(共4页)j = i*3Jvoid main()int a, b;fun(3, a);fun(9, b);cout ,a + b = l, a + b endl;)2 .给出下述源程序的运行结果。#include void main() int a = 5;do a+;cout +a endl;if(a = 10) break;while(a = 9 )coutokn;3 .给出下述源程序的运行结果。#include int add(int *x, int n) int sum , i;for(sum = 0, i = 0; i n; i+) sum += *(x+i);return sum;)void main()int arr = lt 3, 5, 7;cout add(arrz 4) endl;)4 .给出下述源程序的运行结果。#include class A public:A() al = a2 = 0; cout Default constructor called.nH;