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

合集下载

面向对象程序设计 C 复习题

面向对象程序设计 C 复习题

一选择题(共 45题)1.对类的构造函数和析构函数描述正确的是()。

A.构造函数可以重载,析构函数不能重载√B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载2.继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。

A)规律性 B.传递性√ C.重复性 D.多样性3.假设OneClass为一个类,则该类的复制初始化构造函数的声明语句为()。

(OneClass p); B. OneClass& (OneClass p );C. OneClass(OneClass & p);√D. OneClass (OneClass * p);4.对于结构中定义的成员,其默认的访问权限为()。

B. protected D. static5.下面对静态数据成员的描述中,不正确的是()。

A.静态数据成员可以在类体内进行初始化√B.静态数据成员不可以在类体内进行初始化C.静态数据成员能受private控制符的作用D.静态数据成员调用前必须初始6. C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。

A.复用B.继承√C.封装D.引用7. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a 的格式为()。

A. x(a)B. x[a]C. x->aD. √9. 对于一个类的构造函数,其函数名与类名( )。

A. 完全相同√B. 基本相同C. 不相同D. 无关系10. 一个类的构造函数通常被定义为该类的( )成员。

A. 公有√B. 保护C. 私有D. 友元11. 一个类的析构函数通常被定义为该类的( )成员。

A. 私有B. 保护C. 公有√D. 友元12. 一个类的静态数据成员所表示属性 ( )。

A. 是类的或对象的属性B. 只是对象的属性C. 只是类的属性√D. 类和友元的属性13.类的析构函数的作用是()。

面向对象程序设计模拟题(C)

面向对象程序设计模拟题(C)

面向对象程序设计模拟题一、简答题:1. 什么是对象?什么是对象的事件和方法?试列举几个常用的事件和方法?答:对象是代码和数据的组合,可以作为一个单位来处理。

对象可以使应用程序的一部分,也可以是整个应用程序。

对象事件是对象可以识别的动作,即窗体、控件和其他对象可以识别的动作。

常用的事件有Click事件、Paint事件、Load事件等。

方法是对象要执行的动作,常见的有Clear、AddIRem、RemoveITem等。

2.VB有几种类型的表达式?请举例说明。

答:VB有5中类型的表达式,它们是算术表达式(例2*Pi*r*r)、字符串表达式(例“欢迎您”)、日期型表达式(例#11/22/98)、关系表达式(”abc”>”abcd”)和布尔表达式(2<=4AND6>3)。

二、填空题:1.单选按钮用于建立一组多选一的选项供用户选择,即在这些选项中,用户一次只能选择其中的一个选项选项,并且必须选择其中一个选项。

同时,当一个单选钮被选中时,其他选项自动关闭。

2.列表框是以列表形式显示一系列项目和信息,用户可通过单击其中某一项来选择的自己所需项目或信息。

在Windows中,使用列表框输出数据是保证数据标准化的重要手段,它是一个重要的输出控件。

在工具栏中它是一个标着带有滚动条的列表图案的按钮。

3.MsgBox 函数用来在对话框中显示消息,等待用户单击按钮,并返回一个整数,告诉程序用户单击了哪一个按钮。

4.在VB中有三种形式的数组,静态数组、动态的数组和控件数组。

静态数组就是指数组元素的个数在程序运行时保持不变,动态数组是指数组中的元素个数在程序运行时可以变化的数组,控件数组是使用VB中某些常用控件创建的数组。

使用静态数组、动态数组前必须要先声明,才能在程序中使用。

5.VB提供了图形控件,如Shape控件和Line控件。

它们提供一定的绘图样式,虽比较简单,但是使用非常方便,不需要编写代码,只要设置相应的属性即可。

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)程序设计试题和答案 (上机考试)

面向对象(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》综合复习题集及答案详解

《面向对象程序设计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面向对象程序设计试题和答案(经典题目)

c面向对象程序设计试题和答案(经典题目)
(A)指针(B)引用(C)枚举(D)结构
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 面向对象程序设计上机考试题库

c  面向对象程序设计上机考试题库

.
z
-
int Bo*::volume() {return(length*width*height); }
int main() { Bo* bo*1(30,20,10); cout<<"The volume of bo*1 is "<<bo*1.volume()<<endl; Bo* bo*2(12,10,20); cout<<"The volume of bo*2 is "<<bo*2.volume()<<endl; returudent(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 ma*(Student* ); Student *p=&stud[0]; ma*(p); } void ma*(Student *arr) {float ma*_score=arr[0].score; int k=0; for(int i=1;i<5;i++) if(arr[i].score>ma*_score) {ma*_score=arr[i].score;k=i;} cout<<arr[k].num<<" "<<ma*_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];

C++面向对象程序设计(试题与答案)

C++面向对象程序设计(试题与答案)

模拟试题(1)一、判断对错题(10%)(对√,错×)()1.自动变量用堆方式创建,它与块共存亡。

()2.运算符+=是右结合的。

()3.表达式cout<<99的类型为int。

()4.++i是左值,但i++不是左值。

()5.Y[I][J]与*(*Y+I)+J不等价。

()6.从外部看类的private 成员和protected成员有区别。

()7.运算符&不可以重载。

()8.基类的protected成员经过protected派生,在派生类中它变成了private成员。

()9.2.0/-3.0是一个正确的表达式。

()10.字符'\12'的ASCII为12。

二、填空题(20%)#include <iostream.h>typedef struct node{long data;node * next;};class stack{private:node * head;①__________stack();~stack();void push (②__________);③__________ pop();④__________ print();};stack::stack(){ head = new ⑤__________head->next = ⑥__________ }stack::~stack(){node * p;p = head;while (p){head = head->next;⑦__________p = head;}}void stack::push(long x){node * p = new node;p->data = x;p->next = head->next;⑧__________ = p;cout<<"Push" <<x<<" ok !"<<endl;}long stack::pop(){node *p = head->next;if(p!=NULL){long x = p->data;head->next = p->next;⑨__________cout<<"pop "<<x<<" ok !"<<endl;return x;}elsecout<<"Stack is empty !"<<endl;return 0;}void stack::print(){node * p = head->next;cout<<"Stack_Top"<<endl;while (p){cout<<p->data<<endl;⑩__________;}cout<<"Stack_bottom"<<endl;}三、简答题(20%)(按条列出论点)1.注解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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个学生的数据。

初值自拟。

#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,,Student(102,,Student(103,,Student(104,,Student(105,};Student *p=stud;for(int i=0;i<=2;p=p+2,i++)p->display();return 0;}4.建立一个对象数组,内放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,,Student(102,,Student(103,, Student(104,,Student(105,};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;}5.用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;}6.定义一个复数类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) {return Complex()+(),()+());}int main(){Complex c1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c3=";();return 0;}7.定义一个复数类Complex,重载运算符“+”,“—”,使之能用于复数的加,减运算,运算符重载函数作为Complex类的成员函数。

编程序,分别求出两个复数之和,差。

初值自拟。

using namespace std;class Complex{public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;}Complex operator+(Complex &c2);Complex operator-(Complex &c2);void display();private:double real;double imag;};Complex Complex::operator+(Complex &c2) {Complex c;=real+;=imag+;return c;}Complex Complex::operator-(Complex &c2) {Complex c;=;=;return c;}void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c1+c2=";();c3=c1-c2;cout<<"c1-c2=";();return 0;}8.定义一个复数类Complex,重载运算符“*”,“/”,使之能用于复数的乘,除。

运算符重载函数作为Complex类的成员函数。

编程序,分别求出两个复数之积和商。

初值自拟。

提示:两复数相乘的计算公式为:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i。

两复数相除的计算公式为:(a+bi)/(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad) /(c*c+d*d)i。

#include <iostream>using namespace std;class ComplexComplex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;} Complex operator*(Complex &c2);Complex operator/(Complex &c2);void display();private:double real;double imag;};Complex Complex::operator*(Complex &c2) {Complex c;=real**;=imag*+real*;return c;}Complex Complex::operator/(Complex &c2)=(real*+imag*/*+*;=(imag**/*+*;return c;}void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;} int main(){Complex c1(3,4),c2(5,-10),c3;c3=c1*c2;cout<<"c1*c2=";();c3=c1/c2;cout<<"c1/c2=";();return 0;}9.定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。

相关文档
最新文档