C++面向对象程序设计上机考试题库
C 面向对象程序设计试题集

C++面向对象程序设计试题集一、填空题(每空2分,共20分)1.2.3. 设a、b、c都是int型变量,则a=(b=4)+(c=2)后,a值为_,b值为。
在派生类的成员中有公有成员、四类成员。
类Sample的构造函数将形参data赋值给数据成员data。
请将类定义补充完整。
class Sample{public: Sample(int data=0);Private: int data;};Sample::Sample(int data){4. 面向对象程序设计的5. 继承发生在利用现有类派生新类时,其中现有类称为,或父类;派生的新类称为,或。
6.7. 若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为。
已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标为i -1 的单元,其中1≤i<n。
例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a 中元素为2,3,4,4。
请将语句补充完整:for(int i=0;i<n-1;i++) a[i]= 。
8. 类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的,共同行为被描述为类中的。
9. 类Sample的构造函数将形参data赋值给数据成员data。
请将类定义补充完整。
class Sample{public:Sample(int data=0);Private:int data; };Sample::Sample(int data){}10. 实现运行时多态,要使用函数。
11. 设A为test类的对象且赋有初值,则语句test B(A); 。
12. 在MyClass 类的定义中,对赋值运算符=进行重载。
请将画线处缺失的部分补充完整。
MyClass::operator=(const MyClass rhs){if(this=&rhs) return *this;value=rhs. value;return *this; }13. C++语言中的每条基本语句以 ________作为结束符,每条复合语句以________ 作为结束符。
中大实践考核面向对象(C)程序设计试题和答案 (上机考试)

面向对象(C++)程序设计 (上机考试)样题1.下列Shape类是一个表示形状的抽象类,Area()为求图形面积的函数,Total()则是一个通用的用以求不同形状的图形面积总和函数。
请从Shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求面积函数。
编写程序验证求面积函数的正确性。
Shape、total的定义如下所示。
Class shape{Pubilc:Virtual float area()=0};float total (shape *s[ ], int n){float sum=0.0;for(int i=0; i<n; i++)sum += s [ I ] ->area ();return sum;}解答: #include <iostream.h>class shape{public:virtual float area()=0;};float total(shape *s[], int n){float sum=0;for(int i=0; i<n; i++)sum += s[i] -> area();return sum;}class triangle : public shape{protected:float H, W;public:triangle(float h, float w) { H=h; W=w;}float area() { return H*W*0.5;}};class rectangle : public triangle{public:rectangle(float h, float w) : triangle(h, w) {}float area() { return H*W;}};void main(){shape *s[4];s[0] = new triangle( 3.0, 4.0 );s[1] = new rectangle( 2.0, 4.0 );s[2] = new triangle( 5.0, 8.0 );s[3] = new rectangle( 6.0, 8.0 );float sum = total(s,4);cout << "The total area is:" << sum << endl;}样题2. 以面向对象的概念设计一个类,此类包括3个私有数据,unlead(无铅汽油), lead有铅汽油, total (当天总收入)。
《面向对象程序设计c》综合复习题集及答案详解

《面向对象程序设计c》综合复习题集及答案详解综合复习题集一、单选题1.C++源程序文件的缺省扩展名为(A)。
A.cppB.e某eC.objD.lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为(C)。
A.cppB.e某eC.objD.lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为(B)。
A.cppB.e某eC.objD.lik4.编写C++程序一般需经过的几个步骤依次是()。
A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接5.以下标识符中不全是保留字的是()。
A.caeforintB.defaultthenwhileC.boolclalongD.gotoreturnchar6.能作为C++程序的基本单位是()。
A.字符B.语句C.函数D.源程序文件7.程序中主函数的名字为()。
A.mainB.MAINC.MainD.任意标识符8.C++程序的基本模块为()。
A.表达式B.标识符C.语句D.函数9.可用作C++语言用户标识符的一组标识符是()。
A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaeD.2aDOizeof10.存储以下数据,占用存储字节最多的是()。
A.0B.‘0’C.“0”D.0.011.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车12.设”inta=12;”,则执行完语句”a+=a某a;”后,a的值是()。
A.12B.144C.156D.28813.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是()。
A.1.0/a某b某cB.1/(a某b 某c)C.1/a/b/(float)cD.1.0/a/b/c14.设”inta=15,b=26;”,则”cout<A.15B.26,15C.15,26D.2615.设某是一个bool型的逻辑量,y的值为10,则表达式某&&y的值为()。
c面向对象程序设计试题和答案(经典题目)

3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
(A)share(B)public(C)private(D)protected
4、关于构造函数,以下说法不正确的选项是( )。
(A)构造函数名字和类名相同
(B)构造函数在创建对象时自动执行
(C)构造函数无任何函数返回类型
三、改错题(每错2分,共6分)
MyClass obj1(0);obj1.SetMember(5); obj2.SetMember(10);
四、写出以下程序的执行结果(每题5分,共20分)
(1)30 (5分)
(2)7 9 (每一个2.5分)
(3)20 20 (每一个2.5分)
(ቤተ መጻሕፍቲ ባይዱ)
3(2分)
3(2分)
(D)构造函数有且只有一个
五、派生类能够访问其基类的( )。
(A)公有成员
(B)保护成员
(C)私有派生
(D)公有和保护成员
六、以下关于运算符重载的描述中,错误的选项是( )。
(A)运算符重载不可以改变操作数的个数
(B)运算符重载不可以改变运算符的功能
(C)运算符重载不可以改变结合方向
(D)运算符重载不可以改变运算优先级
_______p.show()_______//通过指针p访问show函数
}
2、在C++类中能够包括___公共___、___爱惜_____和___私有__三种具有不同访问操纵权的成员。
3、概念类时,在类头中将利用关键字__class_____来表示类概念的开始。
4、若是一个类中至少有一个纯虚函数,那么该类称为_______抽象类_________。
C语言程序设计上机考试试题和参考答案

printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:
c++第一次上机考试试题

《面向对象程序设计》过程考核大纲第一单元类和对象一、考核目标主要考察类、对象、类的组合、友元等概念和使用方法,通过考试,使学生掌握类和对象的概念和语法;掌握面向对象的基本概念和对象的使用方法。
掌握构造函数和析构函数的作用和语法。
掌握类的组合,利用组合进行面向对象程序设计,掌握组合情况下的构造和析构函数,掌握友元函数的意义和用法。
二、考核内容1.类的编写和对象的创建。
2.通过对象调用成员函数。
3.构造函数和析构函数。
4.类的组合,组合时构造函数的调用。
5.友元函数。
6.类的静态成员。
三、考试要求1.不允许携带U盘和教材等进入考场。
2.考试过程中保持安静,独立按要求完成考试题目。
3.考试结束后,请坐在座位上,等待监考老师确认你的考题之后方可签字离开。
4.在桌面上新建一个文件夹,以“学号+姓名”形式命名,如:20130102张三。
该文件夹中应该包含两个子文件夹(文件夹名分别为:第一题第二题),分别存放两道题的相关工程文件以及测试结果等。
《面向对象程序设计》第一次过程考核A卷(学号尾号为单数的学生完成A卷)1.已知一个名为Complex的复数类,这个类包含:(1)私有成员:实部、虚部,且均为int 型(2)公有的带默认形参值的构造函数、复制构造函数(3)公有成员函数Display,其作用为显示复数要求:(1)实现满足上述属性和行为的Complex类定义;(2)设计函数AddComplex,函数AddComplex功能为实现两个复数相加,要求该函数的形参为复数类的常引用;(3)保证如下主函数能正确运行,int main(){Complex c0(2,-3);Complex c1(c0);cout<<"c1 is: ";c1.Display();Complex c2(3,4);cout<<"c2 is: ";c2.Display();Complex c3;c3 = AddComplex(c1,c2);cout<<"c3 is: ";c3.Display();return 0;}且输出结果如下:c1 is: 2-3ic2 is: 3+4ic3 is: 5+1i2.2.已知表示点的类CPoint和表示线段的CLine类,类CPoint包含:(1)表达点位置的私有数据成员x,y(2)构造函数及复制构造函数类CLine包含:(1)两个CPoint的点对象(该两点分别为线段的两个端点)(2)构造函数(提示:构造函数中用初始化列表对内嵌对象进行初始化)(3)公有成员函数GetLen,其功能为返回线段的长度(4)类属性成员count用于记录创建的CLine类对象的个数,及用于显示count 值的ShowCount函数;要求:(1)实现满足上述属性和行为的CPoint类及CLine类定义;(2)保证如下主函数能正确运行,#include <iostream>using namespace std;int main(){CPoint p1(1,1);CPoint p2(4,5);CLine line1(p1,p2);cout<<"the length of line1 is: "<<line1.GetLen()<<endl;CPoint p3(0,0);CLine line2(line1);cout<<"The count of line is: "<<CLine::ShowCount()<<endl;return 0;}且输出结果如下:The length of line1 is: 5The count of Line is: 2《面向对象程序设计》第一次过程考核B卷(学号尾号为双数的学生完成B卷)1. 已知一个名为Complex的复数类,这个类包含:(1)私有成员:实部、虚部,且均为int 型(2)公有的带默认形参值的构造函数、复制构造函数(3)公有成员函数Display,其作用为显示复数要求:(1)实现满足上述属性和行为的Complex类定义;(2)设计函数SubComplex,函数SubComplex功能为实现两个复数相减,要求该函数的形参为复数类的常引用;(3)保证如下主函数能正确运行,int main(){Complex c0(2,-3);Complex c1(c0);cout<<"c1 is: ";c1.Display();Complex c2(3,4);cout<<"c2 is: ";c2.Display();Complex c4;c4 = SubComplex(c1,c2);cout<<"c4 is: ";c4.Display();return 0;}且输出结果如下:c1 is: 2+3ic2 is: 3+4ic4 is: -1-1i2.已知表示点的类CPoint和矩形类CRectangle类,类CPoint包含:(1)表达点位置的私有数据成员x,y(2)构造函数及复制构造函数类CRectangle包含:(1)两个CPoint的点对象(该两点分别为矩形左上角点及右下角点)(2)构造函数(提示:构造函数中用初始化列表对内嵌对象进行初始化)(3)公有成员函数GetArea,其功能为返回矩形面积(4)类属性成员count用于记录创建的CRectangle类对象的个数,及用于显示count值的ShowCount函数;要求:(1)实现满足上述属性和行为的CPoint类及CRtangle类定义;(2)保证如下主函数能正确运行,#include <iostream>using namespace std;int main(){CPoint p1(1,1);CPoint p2(4,5);CRectangle rec1(p1,p2);cout<<"The area of rec1 is: "<<rec1.GetArea()<<endl;CPoint p3(2,2);CRectangle rec2(rec1);cout<<"The count of rectangle is: "<<CRectangle::ShowCount()<<endl;return 0;}且输出结果如下:The area of rec1 is: 12The count of rectangle is: 2。
c面向对象程序设计考试试卷(详细讲解).doc

c面向对象程序设计考试试卷(详细讲解).docC++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20 题,每题 1 分,共 20 分)1、下列关于 C++标识符的命名不合法的是C与 C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:() Dint x=2;char w='a';float y=23.45f;double z=45.6712;则表达式 w*x+y-z 的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A.参数的个数可能不同B.参数的类型可能不同C.参数的顺序可能不同D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA.定义构造函数必须指出类型(构造函数特点是无返回类型)B.构造函数的名字与该类的类名相同C.一个类中可定义0 至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D.构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< bdsfid="108" p=""></add(x,y)<<endl;<>}int x=20,y=5;int add(int a,int b){int s=a+b;- 1 -return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA.常成员包含常数据成员和常成员函数两种B.常数据成员必须是公有的C.常数据成员要使用构造函数成员初始化列表进行初始化D.常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA.友元函数不是成员函数B.友元函数只能访问类中私有成员C.友元函数破坏隐藏性,尽量少用D.友元函数说明在类体内,使用关键字friend14、如果有 int x,*p; float y,*q; 则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用 new 运算符分配的内存空间的长度必需是常量B.delete 运算符可以释放动态的存储空间和静态的存储空间C.由 new 分配的内存空间是不连续的D.delete 运算符只能释放由new 分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtualD.public20、在 C++中串流类是在头文件 strstrea.h 中定义的,下列不属于串流类的是) CA.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9 题 16 空,每空 1 分,共 16 分)1、函数重载时,编译系统会根据 __形参的类型 __或__形参的个数__来区分。
C面向对象程序设计上机考试题库

C面向对象程序设计上机考试题库Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#C++面向对象程序设计上机考试题库一、第一类题目(20道,每题7分,在word中保留代码并将输出结果窗口保留)1.定义盒子Box类,要求具有以下成员:长、宽、高分别为x,y,z,可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
#include<iostream>class Box{ private:int x,y,z; int v,s;public:void int(int x1=0,int y1=0,int z1=0) {x=x1;y=y1;z=z1;}void volue() {v=x*y*z;}void area() {s=2*(x*y+x*z+y*z);}void show(){cout<<"x= "<<x<<" y= "<<y<<" z="<<z<<endl;cout<<"s= "<<s<<" v= "<<v<<endl;}};void main(){ Box a;(2,3,4);();();();}2.有两个长方柱,其长、宽、高分别为:(1)30,20,10;(2)12,10,20。
分别求他们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
#include <iostream>using namespace std;class Box{public:Box(int,int,int);<<endl;cout<<()<<" is the Minimum of two inteder numbers."<<endl<<endl;Compare<float> cmp2,;cout<<()<<" is the Maximum of two float numbers."<<endl;cout<<()<<" is the Minimum of two float numbers."<<endl<<endl;Compare<char> cmp3('a','A');cout<<()<<" is the Maximum of two characters."<<endl;cout<<()<<" is the Minimum of two characters."<<endl;return 0;}3.建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++面向对象程序设计上机考试题库一、第一类题目(20道,每题7分,在word中保留代码并将输出结果窗口保留)1.定义盒子Box类,要求具有以下成员:长、宽、高分别为x,y,z,可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
#include<iostream>class Box{ private:int x,y,z; int v,s;public:void int(int x1=0,int y1=0,int z1=0) {x=x1;y=y1;z=z1;}void volue() {v=x*y*z;}void area() {s=2*(x*y+x*z+y*z);}void show(){cout<<"x= "<<x<<" y= "<<y<<" z="<<z<<endl;cout<<"s= "<<s<<" v= "<<v<<endl;}};void main(){ Box a;a.init(2,3,4);a.volue();a.area();a.show();}2.有两个长方柱,其长、宽、高分别为:(1)30,20,10;(2)12,10,20。
分别求他们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
#include <iostream>using namespace std;class Box{public:Box(int,int,int);//带参数的构造函数int volume();private:int length;int width;int height;};Box::Box(int len,int h,int w){length=len;height=h;width=w;}//Box::Box(int len,int w,int,h):length(len),height(h),width(w){}int Box::volume(){return(length*width*height); }int main(){Box box1(30,20,10);cout<<"The volume of box1 is "<<box1.volume()<<endl;Box box2(12,10,20);cout<<"The volume of box2 is "<<box2.volume()<<endl;return 0;}3.有两个长方柱,其长、宽、高分别为:(1)12,20,25;(2)10,30,20。
分别求他们的体积。
编一个基于对象的程序,且定义两个构造函数,其中一个有参数,一个无参数。
#include <iostream>using namespace std;class Box{public:Box();Box(int len,int w ,int h):length(len),width(w),height(h){}int volume();private:int length;int width;int height;};int Box::volume(){return(length*width*height);}int main(){Box box1(10,20,25);cout<<"The volume of box1 is "<<box1.volume()<<endl;Box box2(10,30,20);cout<<"The volume of box2 is "<<box2.volume()<<endl;return 0;}4.声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。
#include <iostream>using namespace std;template<class numtype>//声明一个类模板class Compare{public:Compare(numtype a,numtype b){x=a;y=b;}numtype max(){return (x>y)?x:y;}numtype min(){return (x<y)?x:y;}private:numtype x,y;};int main(){Compare<int> cmp1(3,7);cout<<cmp1.max()<<" is the Maximum of two inteder numbers."<<endl;cout<<cmp1.min()<<" is the Minimum of two intedernumbers."<<endl<<endl;Compare<float> cmp2(45.78,93.6);cout<<cmp2.max()<<" is the Maximum of two float numbers."<<endl;cout<<cmp2.min()<<" is the Minimum of two float numbers."<<endl<<endl;Compare<char> cmp3('a','A');cout<<cmp3.max()<<" is the Maximum of two characters."<<endl;cout<<cmp3.min()<<" is the Minimum of two characters."<<endl;return 0;}5.建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。
初值自拟。
#include <iostream>using namespace std;class Student{public:Student(int n,double s):num(n),score(s){}void display();private:int num;double score;};void Student::display(){cout<<num<<" "<<score<<endl;}int main(){Student stud[5]={Student(101,78.5),Student(102,85.5),Student(103,98.5),Student(104,100.0),Student(105,95.5)};Student *p=stud;for(int i=0;i<=2;p=p+2,i++)p->display();return 0;}6.建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
初值自拟。
#include <iostream>using namespace std;class Student{public:Student(int n,float s):num(n),score(s){}int num;float score;};void main(){Student stud[5]={Student(101,78.5),Student(102,85.5),Student(103,98.5),Student(104,100.0),Student(105,95.5)};void max(Student* );Student *p=&stud[0];max(p);}void max(Student *arr){float max_score=arr[0].score;int k=0;for(int i=1;i<5;i++)if(arr[i].score>max_score) {max_score=arr[i].score;k=i;}cout<<arr[k].num<<" "<<max_score<<endl;}7.用new建立一个动态一维数组,并初始化int[10]={1,2,3,4,5,6,7,8,9,10},用指针输出,最后销毁数组所占空间。
#include<iostream>#include<string>using namespace std;void main(){int *p;p=new int[10];for(int i=1;i<=10;i++){*(p+i-1)=i;cout<<*(p+i-1)<<" ";}cout<<endl;delete []p;return;}8.定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。
将运算符函数重载为非成员、非友元的普通函数。
编写程序,求两个复数之和。
初值自拟。
#include <iostream>using namespace std;class Complex{public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;}double get_real();double get_imag();void display();private:double real;double imag;};double Complex::get_real(){return real;}double Complex::get_imag(){return imag;}void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}Complex operator + (Complex &c1,Complex &c2){returnComplex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag());}int main(){Complex c1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c3=";c3.display();return 0;}9.定义一个复数类Complex,重载运算符“+”,“—”,使之能用于复数的加,减运算,运算符重载函数作为Complex类的成员函数。