C++面向对象程序设计模拟试题2
面向对象程序设计模拟题(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++面向对象程序设计上机考试题库一、第一类题目(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。
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面向对象程序设计期末考试题及答案
c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。
《面向对象程序设计》模拟试题及答案
《面向对象程序设计》模拟试题及答案一、单项选择题(每小题2分,共20分)1. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符2. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。
A. 内联函数B.重载函数C.递归函数D.函数模板3. 将两个字符串连接起来组成一个字符串时,选用()函数。
A. strlen()B. strcap()C. strcat()D. strcmp()4. 用new运算符创建一维整型数组的正确语句是__________。
A. int *p=new a[10];B.int *p=new float[10];C. int *p=new int[10];D.int *p=new int[5]={1,2,3,4,5}5. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为()。
A. pb=b;B. pb=&b[0];C. pb=new int;D. pb=b[5];6. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A. x(a)B. x[a]C. x->aD. x.a7. 假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的( )。
A. 带参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数8. 对于任一个类,用户所能定义的析构函数的个数至多为( )。
A. 0B. 1C. 2D. 任意个9. 对类中引用成员的初始化是通过构造函数中给出的( )实现的。
A. 函数体B. 参数表C. 初始化表D. 初始化表或函数体10. 如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
A. a.operator==(b)B. b.operator==(a)C. operator==(a,b)D. operator==(b,a)二、填空题(每小题2分,共20分)1. 常数-4.205和6.7E-9分别具有__________和__________位有效数字。
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.注解。
四川大学C面向对象程序设计模拟试题2
四川大学C面向对象程序设计模拟试题2一、单项选择题1.说明内联函数的关键字是(A)。
A)inlineB)virtualC)defineD)tatic2.假定CAb为一个类,则执行CAbo某;语句时将自动调用该类的(B)A)有参构造函数B)无参构造函数C)拷贝构造函数D)赋值重载函数3.cin是某个类的标准对象的引用,该类是(B)。
A)otreamB)itreamC)tdoutD)tdin4.下面的哪个保留字不能作为函数的返回类型?(C)A)voidB)intC)templateD)long5.派生类的成员函数不能访问基类的(C)。
A)保护成员B)公有成员C)私有成员D)前面各选项都正确6.在语句“cout<<data;”中,cout是(C)。
A)C++的关键字B)类名C)对象名D)函数名7.编译时多态性使用什么获得?(A)A)重载函数B)继承C)虚函数D)B和C8.拷贝构造函数的参数通常是(C)。
A)无特殊要求B.指向对象的指针C)本类对象的常引用D)对象9.C++有几种联编?(B)A)1种B)2种C)3种D)4种10.基类和派生类可以分别称为(B)。
A)“大类”和“小类”B)“父类”和“子类”C)“小类”和“大类”D)“子类”和“父类”二、填空题1.设函数ma某是由函数模板实现的,并且ma某(3.5,5)和ma某(3,5)都是正确的函数调用,则此函数模板具有(2)个类型参数。
2.在C++中,函数重载与虚函数帮助实现了类的(多态)性。
3.由tatic修饰的数据成员为该类的所有对象(共享)。
4.重载函数一般在参数类型或参数个数上不同,但(函数名)相同。
5.使用new建立的动态对象在不用时应该用(delete)释放所占用的空间。
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.阅读下面程序,写出输出结果。
#includeuingnamepacetd;claPoint{public:Point(inta=0,intb=0):某(a),y(b){}intGet某()cont{return某;}intGetY()cont{returny;}voidSet某(inta){某=a;}voidSetY(inta){y=a;}private:int某;inty;};intmain(){Pointu;contPointv(6,8);cout<<u.Get某()<<endl;u.Set某(16);cout<<u.Get某()<<endl;u.SetY(18);cout<<u.GetY()<<endl;cout<<v.Get某()<<endl;cout<<v.GetY()<<endl;return0;}上面程序的输出结果为:01618682.阅读下面程序,写出输出结果。
面向对象程序设计-模拟测试
《面向对象程序设计》课程模拟测试一、选择题1、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()A.面向过程B.面向对象C.安全性D.复用性2、关于虚函数的描述中,正确的是()A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型3、下列关于构造函数的描述中,错误的是()A.构造函数可以设置默认参数;B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数;D.构造函数不可以重载4、在以下关于C++语言的注释的叙述中,不正确的是()A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度5、C++语言的跳转语句中,对于break和continue说法正确的是()A.break语句只应用于循环体中B.continue语句只应用于循环体中C.break是无条件跳转语句,continue不是D.break和continue的跳转范围不够明确,容易产生问题6、下列关于C++函数的说明中,正确的是()A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是return语句C.标准C++要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式7、在下面的一维数组定义中,哪一个有语法错误。
()A.int a[ ]={1,2,3} B.int a[10]={0}C.int a[ ] D.int a[5]8、面向对象系统不具有()特性A. 继承性B. 封装性C. 过程性D. 多态性9、下列静态数据成员的特性中,错误的是()A.说明静态数据成员前边加staticB.静态数据成员要在类体外初始化C.引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符D.静态数据成员不是一个类所有对象共享的10、若用数组名作为函数调用时的实参,则实际上传递给形参的是()A.数组首地址B.数组的第一个元素值C.数组中全部元素的值D.数组元素的个数二、填空题1、C++语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。
面向对象程序设计模拟练习题(含答案)
面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。
4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。
每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。
5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。
c面向对象程序设计考试试题
c面向对象程序设计考试试题一、选择题(每题2分,共20分)1. 面向对象程序设计中,以下哪一个不是基本特征?A. 封装B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. functionC. structD. type3. 以下哪个是Java中不允许的类名?A. MyClassB. 1MyClassC. MyClass1D. MyClass$4. 在Java中,以下哪个是正确的构造方法声明?A. void MyClass() {}B. int MyClass() {}C. MyClass MyClass() {}D. MyClass() {}5. 以下哪个关键字用于实现类的继承?A. extendsB. implementsC. overrideD. abstract6. 以下哪个关键字用于声明接口?A. classB. interfaceC. abstractD. enum7. 在Java中,以下哪个关键字用于实现多态?A. newB. superC. overrideD. implements8. 在Java中,以下哪个关键字用于定义包?A. packageB. importC. classD. interface9. 以下哪个是Java中的访问控制修饰符?A. publicB. staticC. finalD. void10. 在Java中,以下哪个是正确的方法重载声明?A. void display(int a, int b)B. int display(int a, int b)C. void display(int a, int b) {}D. void display(int a, int b) { return a + b; }二、简答题(每题10分,共30分)1. 简述面向对象程序设计中的封装、继承和多态三个基本特征。
2. 解释Java中的接口和抽象类的区别。
《C程序设计》模拟试题二及参考答案
《 C 程序设计》考试试题( 120 分钟)一、单项选择题(每小题 2 分,共 60 分)1 .自定义标识符中,符合 C语言规定的是 __D___ 。
A)for B)3a C)*a D)_123 A错在哪2 . C语言程序的基本单位是 ______ 。
A)程序行 B)语句 C)函数 D)字符3 . g etche( )函数的功能是 _______ 。
A)从键盘读入一字符串 B)从键盘读入一字符C)从键盘输出一字符串 D)从键盘输出一字符4 .下面有关 for 循环的正确描述是 _______ 。
A)for循环只能用于循环次数已经确定的情况B) for循环是先执行循环语句,后判定表达式C) 在for循环中,不能用break语句跳出循环体D) for循环体语句中,可以包含多条语句,但要用花括号括起来5. 为表示关系100≥x≥10,应使用C语言表达式 __A_____ 。
A)(100>=x)&&(x>=10) B)(100>=x) AND (x>=10)C)(100>=x>=10) D)(100>=x)&(x>=10);6.定义int a; float f; double i; 表达式 15+i*f+ˊAˊ的值是 ______D_ 。
A) float B) int C) char D)double7.下列有关字符数组与字符串的说法中,正确的是 ____ 。
A)字符数组中存放的一定是一个字符串B)所有的字符数组都可以被当作字符串处理C)对存放字符串的字符数组可像一般数组一样对数组中单个元素操作D)一个字符数组可以认为就是一个字符串8 .下面程序要求从键盘上输入值并打印,请选择正确的输入方法 _____B 。
main( ){ int a,b;scanf("x=%d,y=%d",&x,&y);printf("x=%d,y=%d\n",x,y);}A)5,6 B) x=5, y=6 C)5↙6 D)5 69.为避免在嵌套的条件语句 if-else中产生二义性,C语言规定:else子句总是与 ____B___ 配对。
c语言二级模拟试题
c语言二级模拟试题# C语言二级模拟试题一、选择题(每题2分,共20分)1. 下列关于C语言的描述,不正确的是:A. C语言是一种高级编程语言B. C语言具有丰富的数据类型C. C语言是面向对象的编程语言D. C语言支持多文件编程2. 在C语言中,以下哪个关键字用于定义一个函数?A. `int`B. `void`C. `return`D. `function`3. 以下哪个运算符不能用于算术运算?A. `+`B. `-`C. `*`D. `&&`4. 在C语言中,以下哪个语句用于实现循环?A. `if`B. `switch`C. `while`D. `for`5. 以下哪个选项是C语言中的合法变量名?A. `2variable`B. `variable-name`C. `case`D. `default`6. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. `strcpy`B. `strcat`C. `strlen`D. `strncat`7. 在C语言中,以下哪个关键字用于定义一个结构体?A. `struct`B. `union`C. `enum`D. `typedef`8. 在C语言中,以下哪个语句用于定义一个枚举类型?A. `typedef`B. `enum`C. `struct`D. `union`9. 在C语言中,以下哪个函数用于计算一个整数的绝对值?A. `abs`B. `fabs`C. `floor`D. `ceil`10. 在C语言中,以下哪个函数用于将一个浮点数转换为字符串?A. `sprintf`B. `strcpy`C. `strcat`D. `atoi`二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于_______。
2. 一个C语言程序的执行从`main`函数开始,`main`函数的返回类型通常是_______。
3. 在C语言中,`scanf`函数用于_______。
C面向对象程序设计试卷.doc
一、单项选择题(出题人:刘敏,尹仁青)1.关键字—c_—说明对象或变量初始化后不会被修改。
A.s taticB. public C・const D. inline2.如果调用带有默认参数的函数时缺少一个参数,则—参数就作为这一个参数。
A.笫一个B•最后一个C•中间一个D•以上都不是3.静态数据成员的生存期_A—oA.与整个程序相同B.不长与类的生存期C.取决于创建的对象数D.以上都不是4•设置虚基类的目的是: B OA.简化程序B.消除二义性C.提高运算效率D.减少目标代码5.下列语句中,将函数int sum(int x, int y)正确重载的是___ C ____A.fl oat sum(int x, int, y)B.int sum(int a, int b)C.f 1 oat sum(float x, float y)D.double sum(int y, int x)6•已知X类,则当程序执行到语^1: X array [3];时,调用了—D—次构造函数。
A.0B. 1C. 2D. 37•如果表达式++i*k中的“++”和都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为BA.operator * (i. operator++ (), k)B.operator*(i・ oper3tor++(i), k)C・ i・ opcrator++()・ operator*(k)D.k.opreator*(operator++(i))8•下面对模板的声明,正确的是—C—A.temlate<T>B.template<class Tl, T2>C・ tcmplatc<class Tl,class T2>D. template<class T1;class T2>9.考虑下面的函数原型声明:void testDefaulParam (int a, int b=7, char z二'*');下面函数调用中,不合法的是____ C ____A.testDefaulParam(5)B.testDefaulParam(5, 8)C.testDefaulParam(5, ' #')D.testDefaulParam(0, 0, ? *')10.类定义的内容允许被其他对象无限制的存取的是—C _______A.private 部分B.protected 部分C.public 部分D.以上都不对11・_B_不是属于面向程序设计的特性A.抽象性B.数据相关性C.多态性D.继承性12•将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的 DA.类B.虚函数C.运算符重载D.模板13.C++与C语言最根本的不同之处在于—A_A.使用了类B.能够实现变量自动初始化C.支持软件重用D.支持接口重用14.动态内存分配的主要目的是A・使程序按动态链编方式运行 B.正确合理的使用内存C.提高程序的运行速度D.提高程序的可维护性15.在C++函数的形参前加const关键字,是为了提高函数的_C—A.数据封装性B.可理解性C.可维护性D.可重用性16•函数重载的目的是B_A.实现共享B.使用方便,提高可读性C.提高速度D.减少空间17•从程序片段:char name[] = ” C++” ; course (name);可判断函数course的调用采用的是—D_A.传值调用B.带缺省参数值的函数调用C.引用调用D.传址调用18.用来说明类中公有成员的关键字是_A_A.publicB. privateC.protectedD.friend 19•如果一个类的成员函数print ()不修改类的数据成员值,则应将其声明为AA. v oid pri nt() con st;B. const void print ()C. void const print ()D. void print (const)20•在程序代码:A::A(int a, int *b) {this->x=a; this -〉y 二b;} 中,this 的类型是_C_A. intB. int *C. AD. A *二、程序改错(出题人:张晨)#inelude <iostrcam> using namespace std;void swap(int &a, (1) int 6){ int t; t=a; a=b; b 二t;}void max (int a, int b, (2)int t, (3)int maxnum,int &minnum)if ((4) a<=t) if ((5)a<=t)) if (b 〈二 c) (7) maxnum=b ;Iint main()int a, b, c, maxnum, minnum; swap (a, b);swap (a, c);(6) swap (b, t)mirm um 二c;cout<<〃input a, b,c:〃;cin>>a>>b>>c;(8)min (a, b, c, maxnum, minnum);cout<<z'(9)a= <<maxnuHi〈〈endl;cout<<z,(7zZ?c-,,<<minnum<<cndl;return 0;答案:(Dint&b (2)int c(3)int &maxnum(4) (a<=b) (5) (a〈二c)(6) swap (b, c)(7)maxnum=a(8)max(9)maxnum(10)minnum三、阅读下面程序,写出其结果。
c面向对象程序的设计试题和答案经典题目
一、填空题(每空1分,共14分)1、观看以下程序:class point{public:void show() {cout<<”point”<<endl;}};void main(){point p1;point *p;p=&p1;______p1.show()_________//通过对象p1访问show函数_______p.show()_______//通过指针p访问show函数}2、在C++类中可以包含___公共___、___保护_____和___私有__三种具有不同访问控制权的成员。
3、定义类时,在类头中将使用关键字__class _____来表示类定义的开始。
4、如果一个类中至少有一个纯虚函数,则该类称为_______抽象类_________。
5、C++类的组成包括数据成员和______成员函数________,友元__是___(是、不是)该类的成员函数。
6、友员函数是用关键字_____friend_______修饰的非成员函数。
7、若有:int i;int &j=i;i=10;j=i+1;则i=____11_____,j=___11______。
8、new的功能是_______分配内存空间______,delete的功能是______释放内存空间______________。
二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是(D)。
(A)数据封装(B)继承(C)多态性(D)模板2、( B )是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
(A)share (B)public (C)private (D)protected4、关于构造函数,下列说法不正确的是()。
(A)构造函数名字和类名相同(B)构造函数在创建对象时自动执行(C)构造函数无任何函数返回类型(D)构造函数有且只有一个5、派生类可以访问其基类的()。
C程序设计模拟试题2答案
C程序设计模拟试题2《C程序设计》模拟试题二一、单项选择题(每小题2分,共60分)。
1、以下标识符中,不合法的用户标识符是〖A〗。
A)&b B)Int C)D_123 D)k22、以下整数值中,不正确的八进制或十六进制数是〖C〗。
A)0x16 B)016 C)-16 D)0xaaaa3、以下能正确表示C语言int类型整型常量的选项是〖A〗。
A)100.0 B)102 C)0xaa D)327684、若变量已正确定义和赋值,以下不合法的C语言赋值表达式的是〖C〗。
A)x=y=z B)x=y+z C)x=x+y=5 D)x++5、面向对象程序设计的特点是〖A〗。
A)多态性、封装性、继承性B)多态性、继承性、可移植性C)多态性、继承性、交互性D)封装性、交互性、多态性6、若a为float型变量,且已赋值3.46932,能正确使a中的值保持两位小数,删去此后小数的语句是〖C〗。
A)a=a*100/100; B)a=int(a*100)/100.0;C)a=(int)(a*100)/100.0; D)a=(int)a*100/100.0;7、设a、b和c都是int型变量,且a=1,b=1,c=1;则以下值为0的表达式是〖D〗。
A)b>=a B)a&&c D)!a==b C)!a||b8、若有定义:float x; int a,b; 则正确的switch语句是〖B〗。
A)switch(x){case x>0:printf(“***\n”);break; casex}B)switch(int(x)){case1: printf(“***\n”);break;case0: printf(“###\n”);break;}C)switch( a+b ){case1+2: printf(“***\n”);break;case2: printf(“###\n”);break;}D)switch( a );{case1: printf(“***\n”);break;casea+b: printf(“###\n”);break;}9、若有以下程序段:int p=10;do{printf(“*”);}while( p-- );退出循环后,变量p的值是〖C〗。
c面向对象程序设计考试试题
c面向对象程序设计考试试题一、单项选择题(每题2分,共20分)1. 在面向对象编程中,封装的主要目的是:A. 提高代码的可读性B. 隐藏对象的内部状态和实现细节C. 增加对象的可访问性D. 减少对象的内存占用2. 下列关于继承的描述,错误的是:A. 继承可以提高代码的复用性B. 继承可以实现多态性C. 继承是一种“强耦合”关系D. 继承可以实现代码的扩展和修改3. 在Java中,一个类可以继承几个其他类:A. 只能继承一个类B. 可以继承多个类C. 可以继承任意数量的类D. 不能继承任何类4. 下列哪个关键字在C++中用于定义抽象类:A. classB. abstractC. virtualD. interface5. 在面向对象编程中,多态性的主要优点是:A. 减少程序的复杂性B. 提高程序的运行效率C. 增加程序的内存消耗D. 减少程序的可读性6. 在Java中,下列哪个修饰符可以将一个方法的访问级别限制为仅在定义它的包内可见:A. privateB. default(即无修饰符)C. protectedD. public7. 下列关于接口的描述,正确的是:A. 接口可以包含具体实现的方法B. 接口中的方法默认都是public的C. 一个类可以实现多个接口D. 一个接口可以继承另一个接口8. 在C++中,下列哪个特性可以用来实现运行时多态:A. 函数重载B. 虚函数C. 模板D. 宏定义9. 下列哪个不是面向对象编程的基本特征:A. 封装B. 继承C. 多态D. 过程化10. 在设计类的时候,下列哪个原则提倡应该追求尽可能高的内聚和尽可能低的耦合:A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 高内聚低耦合原则二、简答题(每题10分,共30分)1. 请简述面向对象编程中的“组合”和“聚合”的区别,并给出各自的应用场景。
2. 解释什么是设计模式,并至少列举三种常见的设计模式及其主要特点。
C面向对象程序设计模拟试题二
C++面向对象程序设计模拟试题二一、单项选择题(本大题共10小题,每题2分,共20分)在每题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多项选择或未选均无分。
1.说明内联函数的关键字是()。
A. inlineB. virtualC. defineD. static2.假定CAb为一个类,那么执行CAb oX;语句时将自动挪用该类的()A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数3.cin是某个类的标准对象的引用,该类是()。
A. ostreamB. istreamC. stdoutD. stdin4.下面的哪个保留字不能作为函数的返回类型?()A. voidB. intC. newD. long5.不能参与重载的运算符是()。
A. 类B. 函数C. 函数模板D. 运算符6.由于数据隐藏的需要,静态数据成员通常被说明为()。
A. 私有的B. 公有的C. 爱惜的D. 不可访问的7.编译时多态性利用什么取得?()A. 重载函数B. 继承C. 虚函数D. B和C8.拷贝构造函数的参数一般是()。
A. 无特殊要求B. 指向对象的指针C. 自已类对象的常引用D. 对象9.C++有几种联编?()A. 1种B. 2种C. 3种D. 4种10.基类和派生类能够别离称为()。
A. “大类”和“小类”B. “父类”和“子类”C. “小类”和“大类”D. “子类”和“父类”二、判定正误题(本大题共6小题,每题2分,共12分)判定正误,在题后的括号内,正确的划上“√”错误的划上“×”。
1.不能够概念抽象类的对象。
()2.内联函数的概念必需出此刻第一次挪用内联函数之前。
()3.模板函数与函数模板的意义完全相同。
()4.只有常成员函数才能够操作常对象。
()5.引用能够不初始化。
()6.利用new运算符创建数组时,能够为该数组指定初始值。
()三、填空题(本大题共6小题,每题2分,共12分)不写解答进程,将正确的答案写在每题的空格内。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++面向对象程序设计模拟试题二一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
*1.说明内联函数的关键字是( a )。
A)inline B)virtual C)define D)static2.假定CAb为一个类,则执行CAb oX;语句时将自动调用该类的(b )A)有参构造函数B)无参构造函数C)拷贝构造函数D)赋值重载函数3.cin是某个类的标准对象的引用,该类是( b )。
A)ostream B)istream C)stdout D)stdin*4.下面的哪个保留字不能作为函数的返回类型?( c )A)void B)int C)template D)long5.派生类的成员函数不能访问基类的( c )。
A)保护成员B)公有成员C)私有成员D)前面各选项都正确6.在语句“cout << data;”中,cout是( c )。
A)C++的关键字B)类名C)对象名D)函数名*7.编译时多态性使用什么获得?( a )A)重载函数B)继承C)虚函数D)B和C*8.拷贝构造函数的参数通常是( c )。
A)无特殊要求 B. 指向对象的指针C)本类对象的常引用D)对象9.C++有几种联编?( b )A)1种B)2种C)3种D)4种10.基类和派生类可以分别称为( b )。
A)“大类”和“小类”B)“父类”和“子类”C)“小类”和“大类”D)“子类”和“父类”二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
1.设函数max是由函数模板实现的,并且max(3.5, 5)和max(3, 5)都是正确的函数调用,则此函数模板具有( 2 )个类型参数。
2.在C++中,函数重载与虚函数帮助实现了类的(多态)性。
3.由static修饰的数据成员为该类的所有对象(共享)。
4.重载函数一般在参数类型或参数个数上不同,但(函数名)相同。
5.使用new建立的动态对象在不用时应该用(delete )释放所占用的空间。
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.阅读下面程序,写出输出结果。
#include <iostream>using namespace std;class Point{public:Point(int a = 0, int b = 0):x(a), y(b) {}int GetX() const { return x; }int GetY() const { return y; }void SetX(int a) { x = a; }void SetY(int a) { y = a; }private:int x;int y;};int main(){Point u;const Point v(6, 8);cout << u.GetX() << endl;u.SetX(16);cout << u.GetX() << endl;u.SetY(18);cout << u.GetY() << endl;cout << v.GetX() << endl;cout << v.GetY() << endl;return 0;}上面程序的输出结果为:1618682.阅读下面程序,写出输出结果。
#include <iostream>using namespace std;template <class Type>class Test{public:Test(Type a[], int iSize):elem(a) { size = iSize; }void Print() const { for (int i = 0; i < size; i++) cout << elem[i] << " "; }private:Type *elem;int size;};int main(){int a[] = {1, 0, 8};double b[] = {1.6, 1.8};Test<int> ar1(a, 3);ar1.Print();Test<double> ar2(b, sizeof(b) / sizeof(double));ar2.Print();cout << endl;return 0;}上面程序的输出结果为:1 0 8 1.6 1.83.阅读下面程序,写出输出结果。
#include <iostream>using namespace std;class Goods{public:Goods(int w): weight(w) { totalWeight = totalWeight + w; }Goods(const Goods &g){weight = g.weight;totalWeight = totalWeight + weight;}~Goods() { totalWeight = totalWeight - weight; }void Print() const;static int GetTotalWeight() { return totalWeight; }private:int weight;static int totalWeight;};int Goods::totalWeight = 0;void Goods::Print() const{cout << this->weight << " " << this->totalWeight << " ";}int main(){Goods g1(6);g1.Print();Goods g2(g1);g2.Print();cout << Goods::GetTotalWeight();cout << endl;return 0;}上面程序的输出结果为:6 6 6 12 124.阅读下面程序,写出输出结果。
#include <iostream>using namespace std;template <class Type>class Test{public:Test(Type a = 0, Type b = 0, Type c = 0):z(c) { x = a; y = b; } void Print(){cout << x << endl;cout << y << endl;}void Print() const{cout << z << endl;}private:Type x, y;const Type z;};int main(){Test<float> t1;t1.Print();Test<int> t2(1, 9, 6);t2.Print();const Test<double> t3(0, 6, 1.8);t3.Print();return 0;}上面程序的输出结果为:5.阅读下面程序,写出输出结果。
#include <iostream>using namespace std;template <class Type>Type Max(const Type &a, const Type &b) {if (a < b) return b;else return a;}template <class Type>Type Min(const Type &a, const Type &b) {if (a < b) return a;else return b;}int main(){double x = 5.38, y = 6.09;cout << Max(x, y) << " " << Max<int>(x, y) << " ";cout << Min(x, y) << " " << Min<int>(x, y) << endl;return 0;}上面程序的输出结果为:6.阅读下面程序,写出输出结果。
#include <iostream>using namespace std;class A{public:A() { cout << "A" << endl; }~A() { cout << "~A" << endl; }};class B: public A{public:B() { cout << "B" << endl; }~B() { cout << "~B" << endl; }};int main(void){B obj;return 0;}上面程序的输出结果为:四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。
1.将如下程序补充完整。
#include <iostream>using namespace std;class A{private:int n;public:A(int n) { [1] = n; } // 将数据成员n初始化为形参n void Show() const { cout << n << endl; }};int main(){A i = 8;i.Show();return 0;}2.将如下程序补充完整。
#include <iostream>using namespace std;class A{private:int a;public:A(int m): a(m) {}void Show() const { cout << a << endl; }};class B: A{public:B(int m): [2] {} // 将数据成员a初始化为m void Show() const { A::Show(); }};int main(){B obj(8);obj.Show();return 0;}3.将如下程序补充完整。