c面向对象复习题答案版
C++面向对象技术复习题汇总(含答案)
C++面向对象技术复习题汇总(含答案)面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。
A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无4、对于C++的函数,正确的叙述是:A、函数的定义不能嵌套,但函数的调用可以嵌套B、函数的定义不能嵌套,但函数的调用不能嵌套C、函数的定义和调用都不能嵌套D、函数的定义和调用都可以嵌套5、下列语句中错误的是()A、int *p=new int(10);B、int *p=new int[10]C、int *p=new int;D、int *p=new int[40](0);6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:()A、name[3]=’a’; B、name=”lin”;C、name=new char[5]; D、cout<<name[3];< bdsfid="94" p=""></name[3];<>7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:()A、name[3]=’q’; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q’);8、假设已经定义:const char *name=”chen”;, 下面的语句中错误的是:()A、name[3]=’q’; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q’);9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板()templateT max(T x,T y){ return(x>y)?x:y;}并定义了int i;char c;错误的调用语句是:()A、max(i,i)B、max(c,c)C、max((int)c,i);D、max(i,c)11、模板的使用是为了()A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12、设有二个语句:int x[‘a’];cin>>x;则编译器认为()A、说明语句int x[‘a’]错B、二个语句都错C、语句cin>>x 错D、二个语句正确,没有语法错13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y) {…… }(2) int f(int a,float b){…… }(3) int f(int i,int j){…… }(4) float k(int x){…… }是重载函数。
《面向对象程序设计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++面向对象程序设计复习练习试题带答案(1)
C++面向对象程序设计模拟试题一一、单项选择题(本大题共10小题,每小题2分,共201.说明虚函数的关键字是()。
A. inlinevirtual C. define D. static2.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。
A. mainB. MAINC. nameD. function 3.cout是某个类的标准对象的引用,该类是()。
A. ostream B. istream C. stdout D. stdin4.如果在类外有函数调用CPoint::func();则函数func()是类CPoint的()。
A. 私有静态成员函数B. 公有非静态成员函数C. 公有静态成员函数 B. 友元函数5. 如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。
A. publicB. protectedC. private D.static6.一个类的所有对象共享的是()。
A. 私有数据成员 B. 公有数据成员 C. 保护数据成员 D. 静态数据成员7.动态联编所支持的多态性称为()。
A. 虚函数 B. 继承C. 编译时多态性D. 运行时多态性8.定义类模板时要使用关键字()。
A. const B. newC. deleteD. template9.对虚基类的定义()。
A. 不需要使用虚函数 B. 必须使用虚函数C. 必须使用privatD. 必须使用public10.类型转换函数()。
A. 不能带有参数 B. 只能带一个参数 C. 只能带2个参数D. 只能带3个参数二、判断正误题(本大题共6小题,每小题2分,共12分)1.虚函数在基类和派生类之间定义,且要求函数原型完全一致。
()2.抽象类可以用来直接创建对象。
()3.内联函数中可以出现递归语句。
()4.模板类与类模板的意义完全相同。
()5.常对象只能调用常成员函数。
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. 简述面向对象程序设计中的“封装”概念及其重要性。
总《面向对象程序设计c++》综合复习题集及答案详解
总《面向对象程序设计c++》综合复习题集及答案详解一、单选题1. C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik 4. 编写C++程序一般需经过的几个步骤依次是( )。
A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是()。
A. case for intB. default then whileC. bool class longD. gotoreturn char6. 能作为C++程序的基本单位是( )。
A. 字符B. 语句C. 函数D. 源程序文件 7. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符 8. C++程序的基本模块为()。
A. 表达式B. 标识符C. 语句D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。
A. void define +WORDB. a3_b3 _123 YNC. for -abcCase D. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是()。
A. 0 B. ‘0’C. “0”D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。
A. 12B. 144C. 156D. 28813. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( )。
c 面向对象程序设计语言重点难点复习题及答案
1、数据共享与保护一、选择题:1、在下面存储类中, ( C ) 对象的可见性与生存期不一致。
A. 外部类B. 自动类C. 内部静态类D. 寄存器类2、在下面存储类中,(A)的对象不是局部变量。
A. 外部静态类B. 自动类C. 函数形参D. 寄存器类3、关于局部变量,下面说法正确的是( C )。
A. 定义该变量的程序文件中的函数都可以访问B. 定义该变量的函数中的定义处以下的任何语句都可以访问C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问D. 定义该变量的函数中的定义处以上的任何语句都可以访问4、一个类的静态数据成员所表示属性 ( C )。
A. 是类的或对象的属性B. 只是对象的属性C. 只是类的属性D. 类和友元的属性5、类的静态成员的访问控制( D)。
A. 只允许被定义为privateB. 只允许被定义为private或protectedC. 只允许被定义为publicD. 可允许被定义为private、protected或public6、静态成员函数对类的数据成员访问(B)。
A. 是不允许的B. 只允许是静态数据成员C. 只允许是非静态数据成员D. 可允许是静态数据成员或非静态数据成员7、被非静态成员函数访问的类的数据成员( A )。
A. 可以是非静态数据成员或静态数据成员B. 不可能是类的静态数据成员C. 只能是类的非静态数据成员D. 只能是类的静态数据成员8、静态数据成员的初始化是在(D)中进行的。
A. 构造函数B. 任何成员函数C. 所属类D. 全局区9、当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的( D )。
A. 只能是公有成员B. 只能是保护成员C. 只能是除私有成员之外的任何成员D. 具有任何权限的成员10、引入友元的主要目的是为了( C )。
A. 增强数据安全性B. 提高程序的可靠性C. 提高程序的效率和灵活性D. 保证类的封装性11、一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明( A )。
c++面向对象复习题答案版
c++面向对象复习题答案版第1页共22页一、填空题1.c++中存有两种数据类型:(char)和(intlong)可以采用signed修饰符。
在c++中,用数组、指针、和(提及)做为函数参数,能将参数值送回。
2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数),方法是在函数类型前加上(inline)关键字。
3.面向对象的程序设计存有四大特征,它们就是抽象化、PCB、(承继)、(多态)。
4.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是(把对象的每个数据成员的值都复制到新建立的对象中)。
5.用new提出申请某一个类的动态对象数组时,在该类中必须能相匹配至(该类的)构造函数,否则应用程序可以产生一个编程错误。
6.静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象(共享)。
7.在c++中,定义空载函数时,应当至少并使空载函数的参数个数或参数类型(相同)。
8.在c++中,虽然友元提供更多了类之间数据展开出访的一种方式,但它毁坏了面向对象程序设计的(PCB)特性。
9.预编译指令由三种,它们是:文件包含、(宏定义)和(条件编译)。
10.静态的成员函数没暗含的(this),所以,它们就可以轻易出访类的静态的数据成员。
11.在c++中,函数的参数存有两种传达方式,它们就是值传达和(地址)。
12.当非静态成员函数被调用时,该成员函数的(this)指向调用它的对象。
13.拷贝构造函数采用(提及)做为参数初始化建立中的对象。
14.在公有承继的情况下,基类数据成员在派生类中的出访权限(维持不变)。
15.在c++中,结构派生类对象时,总是先从(基类)的初始化已经开始的。
16.当需要统计程序中某个类创建对象的个数时,需要给该类定义(静态数据)成员。
17.在多个类之间有重复继承时,为避免被重复继承的基类数据成员在内存中有多个拷贝,应将该基类定义为(虚基类)。
C#程序设计:面向对象的编程单元测试与答案
一、单选题1、面向对象思想的三大基本特征是A.对象,属性,方法B.类,对象,方法C.抽象,继承,派生D.继承,封装,多态正确答案:D2、以下描述中,错误的是A.继承可使派生类继承基类的属性和方法。
B.封装隐藏了实现细节,使代码模块化。
C.继承就是派生类继承了基类的所有方法。
D.多态是通过继承实现的不同对象调用相同的方法,表现出不同的行为。
正确答案:C3、关于类成员的访问修饰符,描述错误的是A.在类前添加访问修饰符,声明了类内部成员对该类的访问权限。
B.在类声明时,访问修饰符是可选部分。
C.public修饰的方法,在类实例化调用时,可用“类名.方法名()”调用。
D.private私有成员和私有字段成员只能被类内部的方法使用和修改。
正确答案:A4、下面关于var关键字的描述,错误的是A.只能在变量声明中包含初始化时使用。
B.一旦编译器推断出变量的类型,它就是固定且不能改变的。
C.能用于局部变量和全局变量。
D.var关键字并不是某种特别类型的符号,它只是句法上的速记,表示任何可以从初始化的右边推断出的类型。
正确答案:C5、关于静态字段的描述,错误是A.一个类的所有对象共享静态字段。
B.如果静态字段的值被一个实例改变,所有实例都可见。
C.静态函数成员能访问实例成员和静态成员。
D.static修饰符声明的字段为静态字段。
正确答案:C6、关于属性的使用正确的是A.private int num;public int Num{get{return num;}set{num=value;}}B.private int num;private int Num{get{return num;}set{num=value;}}C.private int num;public int Num{get{num=value;}set{return num;}}D.private int num;public string Num{get{return num;}set{num=value;}}正确答案:A7、C#中的数据类型的描述,错误的是A.类类型属于引用类型,默认值是null。
c#面向对象试题及答案
一、选择题:1、下列关于类的描述中,错误的是( A )。
A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描述体2、下列常量中,不是字符常量的是( B )。
A.'\n' B."y"C.'x' D.'\7'3、下列表达式中,其值为0的是( A )。
A.5/10 B.!0C.2>4?0:1 D.2&&2||04、下列关于数组维数的描述中,错误的是( C )。
A.定义数组时必须将每维的大小都明确指出B.二维数组是指该数组的维数为2C.数组的维数可以使用常量表达式D.数组元素个数等于该数组的各维大小的乘积5、下列关于字符数组的描述中,错误的是( D )。
A.字符数组中的每一个元素都是字符B.字符数组可以使用初始值表进行初始化C.字符数组可以存放字符串D.字符数组就是字符串6、已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。
A.a[0] B.a[1]C.a[2] D.a[3]7、下列while循环语句的循环次数是( A )。
while(int i(0)) i--;A.0 B.1C.2 D.无限8、已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是( C )。
A.&(a+1) B.&(p+1)C.&p[2] D.*p++9、已知:int a=1,b=2,*p[2];下列表达式中正确的是( C )。
A.p=&a B.p=&bC.p[0]=&a,p[1]=&b D.p[ ]={&a,&b};10、当一个函数没有返回值时,该函数类型应说明为( A )。
A.void B.intC.无D.任意11、下列关于类的定义格式的描述中,错误的是( C )。
c面向对象程序设计试题和答案
一、填空题(每空1分,共14分)1、观看以下程序:class point{public:void show() {cout<<”point”<<endl;}};void main(){point p1;point *p;p=&p1;_______________//通过对象p1访问show函数______________//通过指针p访问show函数}2、在C++类中可以包含______________、______________和______________三种具有不同访问控制权的成员。
3、定义类时,在类头中将使用关键字_____________来表示类定义的开始。
4、如果一个类中至少有一个纯虚函数,则该类称为________________。
5、C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员函数。
6、友员函数是用关键字____________修饰的非成员函数。
7、若有:int i;int &j=i;i=10;j=i+1;则i=__________,j=__________。
8、 new的功能是____________________,delete的功能是____________________。
二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是()。
(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
(A)share (B)public (C)private (D)protected4、关于构造函数,下列说法不正确的是()。
(A)构造函数名字和类名相同(B)构造函数在创建对象时自动执行(C)构造函数无任何函数返回类型(D)构造函数有且只有一个5、派生类可以访问其基类的()。
C-面向对象程序设计习题解答(全)Word版
《C++面向对象程序设计》习题解答陈腊梅目录第一章面向对象程序设计概述.............................................................. 错误!未定义书签。
第二章对C语言的基础扩充................................................................... 错误!未定义书签。
第三章类和对象的初步探讨 ................................................................. 错误!未定义书签。
第四章类和对象的进一步解析.............................................................. 错误!未定义书签。
第五章在对象中使用运算符—运算符重载.......................................... 错误!未定义书签。
第六章继承与派生 (2)第七章多态性与虚函数 (2)第一章面向对象程序设计概述一、选择题二、填空题1、多态性2、成员函数3、抽象4、处理这些数据的操作或处理这些数据的函数5、面向对象分析、面向对象分析、面向对象编程、对象对象测试、面向对象维护第二章对C语言的基础扩充二、程序阅读题1答案a=639,b=78,c=122答案a=5,b=8a=8,b=53答案104答案x=20.6 y=5 z=Ax=216.34 y=5 z=Ax=216.34 y=2 z=Ax=216.34 y=2 z=E5答案ic=11fc=7.82ic=5fc=2.15第三章类和对象的初步探讨一、选择题二、填空题1 数据成员、成员函数2 private 、protected 、public3 指向对象的指针、对象的引用4 属性、行为、属性、行为5 对象、属性和操作这些属性的操作、对外隐藏四、程序改错题#include <iostream>using namespace std;class Clock{//public:void set_clock(void);void show_clock(void);//private:int hour;int minute;int second;};Clock clock;int main( ){clock.set_clock( );clock.show_clock ( );//return 0 ;}void Clock::set_clock(void){cin>>hour;cin>>minute;cin>>second;}void Clock::show_clock(void){cout<<hour<<":"<<minute<<":"<<second<<endl;}第四章类和对象的进一步解析二、填空题1 this2所有成员3友元类、友元函数4 friend5 程序编译、程序结束三、程序阅读题1答案Default constructor called.constructor called.0,06,86,8Destructor called.0,0Destructor called.2答案x!=y3答案Initalizing defaultInitalizing default0 0Destructor is activeDestructor is active4答案n=2,sum=2n=3,sum=5n=5,sum=105答案x=36答案x=1,y=2x=30,y=407答案1 2 3 4 4exit main3 2 1 08答案n=1009答案the student is:Li Huthe teacher is:Wang Ping10答案211答案1035,789.50412答案13答案constructing object:x=1第五章在对象中使用运算符—运算符重载二、程序完善题1(1)A A::operator+(A &b)(2){ A temp;temp.i = i+b.i;return temp; }三、程序阅读题1.答案n=4n=3232.答案c1=10 c2=20c1=100 c2=200c1=11 c2=21c1=100 c2=2003.答案1 2 4 7 11 16第六章派生与继承1 继承2 具体化、抽象3 公有继承、保护继承、私有继承4 子对象5 public(共有的)、protected(保护的)、不可访问6 protected(保护的)、protected(保护的)、不可访问的7 private(私有的)、private(私有的)、不可访问的8 二义性1.C++语言中,既允许单继承,又允许多继承。
C#面向对象编程基础考试
C#面向对象编程基础考试(答案见尾页)一、选择题1. 在C中,下列哪个关键字用于定义类的成员变量?A. privateB. publicC. protectedD. internal2. 在C中,下列哪个关键字用于定义类的方法?A. privateB. publicC. protectedD. internal3. 在C中,下列哪个关键字用于实现继承?A. virtualB. overrideC. sealedD. abstract4. 在C中,下列哪个关键字用于限制某个类的成员只能被同一类中的其他成员访问?A. privateB. publicC. protectedD. internal5. 在C中,下列哪个关键字用于创建抽象类?A. virtualB. overrideC. sealedD. abstract6. 在C中,下列哪个关键字用于标记某个成员是静态的?A. privateB. publicC. protectedD. internal7. 在C中,下列哪个关键字用于表示数组的长度?A. lengthB. sizeC. lengthD. capacity8. 在C中,下列哪个关键字用于抛出异常?A. throwB. catchC. finallyD. fault9. 在C中,下列哪个关键字用于同步对共享资源的访问?A. lockB. unlockC. sleepD. wait10. 在C中,下列哪个关键字用于定义委托?A. delegateB. eventC. interfaceD. class11. C是一种哪种编程语言?A. 面向过程B. 面向对象C. 函数式编程D. 逻辑编程12. 在C中,什么是类?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式13. 在C中,什么是字段?A. 类的成员变量B. 方法内部的变量C. 属性的成员变量D. 构造函数的参数14. 在C中,什么是接口?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式15. 在C中,什么是继承?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式16. 在C中,什么是多态?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式17. 在C中,什么是封装?B. 一种方法C. 一种属性D. 一种代码组织方式18. 在C中,什么是委托?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式19. 在C中,什么是事件?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式20. 在C中,什么是LINQ?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式21. C是一种什么编程语言?A. 面向过程B. 面向对象C. 函数式编程D. 逻辑编程22. 在C中,什么是类?A. 一种数据类型B. 一种代码组织方式C. 一个对象的集合23. 在C中,什么是字段?A. 类的成员变量B. 方法内部的局部变量C. 类的静态成员变量D. 对象的内部成员变量24. 在C中,什么是方法?A. 类的成员函数B. 函数库中的函数C. 对象的行为D. 代码块25. 在C中,什么是属性?A. 类的成员变量B. 方法内部的局部变量C. 访问或修改类成员的方法D. 代码块26. 在C中,什么是索引器?A. 类的成员变量B. 方法内部的局部变量C. 访问或修改类成员的方法D. 代码块27. 在C中,什么是委托?A. 一种数据类型B. 一种代码组织方式C. 一个对象的集合D. 一个函数库28. 在C中,什么是事件?B. 一种代码组织方式C. 一个对象的集合D. 一个函数库29. 在C中,什么是继承?A. 一种数据类型B. 一种代码组织方式C. 一个类可以继承另一个类的特性D. 一个类可以继承另一个类的功能30. 在C中,什么是多态?A. 一种数据类型B. 一种代码组织方式C. 同一个接口可以被不同的类实现D. 一个类可以有多个基类31. 关于C语言中面向对象编程的描述,以下哪个是正确的?A. C#支持继承和多态B. C#支持封装和多态C. C#支持继承和封装D. C#只支持封装32. 在C中,以下哪个关键字用于定义类?A. classB. structC. interfaceD. delegate33. 在C中,以下哪个关键字用于定义属性(Accessors)?A. publicB. privateC. protectedD. virtualA. publicB. privateC. protectedD. virtual35. 在C中,以下哪个关键字用于实现接口?A. implementsB. extendsC. implementsD. extends36. 在C中,以下哪个关键字用于访问类的成员?A. thisB. baseC. staticD. void37. 在C中,以下哪个关键字用于创建对象实例?A. newB. createC. instanceD. newinstance38. 在C中,以下哪个关键字用于抛出异常?A. throwB. catchC. finallyD. fault39. 在C中,以下哪个关键字用于同步代码块?A. lockB. syncC. beginD. commitA. staticB. constC. virtualD. abstract二、问答题1. 什么是面向对象编程(OOP)?2. 在C中,类和对象有什么区别?3. 什么是封装?在C中如何实现封装?4. 什么是继承?在C中如何实现继承?5. 什么是多态?在C中如何实现多态?6. 在C中,如何使用LINQ技术查询数据?7. 什么是委托?在C中如何使用委托?8. 什么是异常处理?在C中如何处理异常?参考答案选择题:1. A2. B3. D4. A5. D6. C7. C8. A9. A 10. A11. B 12. A 13. A 14. A 15. D 16. D 17. D 18. B 19. D 20. D21. B 22. A 23. A 24. A 25. C 26. D 27. C 28. D 29. C 30. C31. A 32. A 33. D 34. D 35. A 36. A 37. A 38. A 39. A 40. A问答题:1. 什么是面向对象编程(OOP)?面向对象编程是一种编程范式,它使用“对象”来设计软件。
c面向对象程序设计期末考试题及完整参考答案
3.distanee/400.0改为distanee/400或者distanee/400.0f;
4.public float ISwimmable.Run(float distanee)改为float ISwimmable.Run(float distanee)
7.类索引函数的参数类型必须为或。
8.类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的实现,此时这个方法是这个
类的员,不能通过类的实例来访问。
9.作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和,并通过在关键
字operator后跟操作符来声明。
二、判断题(每小题1分,共5分)
public virtual float Run( float dista nce)
{
retur n dista nce/Speed;
}
public Automobile(float speed)
{
Speed = speed;
}
}
public class Amphicar:Automobile, ISwimmable
Console.WriteLine("{0}空中飞行1000公里需{1}小时", plane, plane.Run(1000)); //调用IFlyable接口Run方法
Con sole.ReadL in e();
}
}
public in terface IFIyable
{
public float Run( float dista nee);
《面向对象程序设计c 》综合复习题集及答案详解
《面向对象程序设计》综合复习题集四、程序填充1. 斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和。
求斐波那契数列中的前20个数,要求每行输出5个数。
#include<iostream.h>void main() {int f,f1,f2,i;cout<<”斐波那契数列:\n”;f1=0; f2=1;cout<<setw(6)<<f1<<setw(6)<<f2;for(i=3;i<=20;i++) {f=______(1)______;cout<<setw(6)<<f;if(_____(2)______) cout<<endl;f1=f2;f2=____(3)_______;}cout<<endl;}(1) (2) (3)2. 计算∑=+ -10 11!)1(iiiix的值。
#include<iostream.h>void main(){double x,p1=1,p2=1,s=0;int i,j=1;cout<<"输入x的值:";cin>>x;for(i=1;i<=10;i++) {p1*=___(1)_____;p2*=____(2)____;s+=j*p1/p2; //j的值为(-1)i+1j=____(3)____;}cout<<s<<endl;}(1) (2) (3)17. 假定有定义为“struct NODE{int data; NODE* next;};”,下面算法根据table 数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序相同。
void f5(NODE*& L, int table[], int n){if(n<=0) {L=NULL; return;}L=new NODE; //生成附加的头结点int i=0;NODE* p=L;while(___(1)___) {p=p->next=___(2)___;p->data=___(3)___;i++;}p->next=NULL; //把最后一个结点的指针域置空p=L;L=L->next; //使L指向链表的第一个带值的结点delete p;}(1) (2) (3)22. 已知一维数组类ARRAY的定义如下,构造函数的作用是把参数n的值赋给s,给v 动态分配长度为n的数组空间,接着利用数组参数a初始化v所指向的数组。
c面向对象程序设计期末考试题及完整参考答案
public abstract void Speak();
}
public class Truck:Vehicle
private float weight;
public float Weight
{
get { retur n weight; }
}
private float load;
public float Load
{
return (1+load/Weight/2) * base.Ru n(dista nee);
}
public override voload; }
}
public Truck(i nt weight, i nt load)
:base(50)
{
this.weight = weight; this .load = load;
}
public new float Run( float dista nee) //重载
A)方法中只允许定义一个数组型参数;
B)数组型参数所定义的数组必须是一维数组;
C)数组型参数可以作为引用参数或者输出型参数使用;
D)数组型参数必须位于参数列表中的最后;
4.有如下程序片段:
class Stude nt
{
public virtual stri ng WhoYouAre(){
return "I am a Stude nt."; }
public float R
{
get { retur n _r; }
set { _r = value; }
} _
public con st double PI= 3.1415;/定一个双精度常量表示圆周率
(完整版)c++面向对象程序设计试题和答案
};
多种
(D)不受保护
void fun (){cout<<"Base::fu n"< <ENDL;}
class Derived:public Base
{ void fun()
//显示调用基类的函数
cout<<"Derived::fu n"< <ENDL;
fun()
};
(A)fun();(B)Base.fun();
(C)构造函数无任何函数返回类型
(D)构造函数有且只有一个
5、派生类可以访问其基类的(
(A)公有成员
(C)私有派生
6、下列关于运算符重载的描述中,错误的是(
运算符重载不可以改变操作数的个数 运算符重载不可以改变运算符的功能 运算符重载不可以改变结合方向 运算符重载不可以改变运算优先级
(A)
(B)
(C)
(D)
7、C++语言是从早期的
进行的最大改进是(
(A)面向过程
8对于类中定义的成员,
A.public
C.private
(D) protected
)。
(B)保护成员
(D)公有和保护成员
)。
C语言逐渐发展演变而来的
.与C语言相比,它在求解问题方法上
)
(B)面向对象(C)
其隐含访问权限为(
B.protected
20、C+冲声明常量的关键字是()。
A. const B. exter n C. public D. enum
三、改错题(每处2分,共6分)
1、使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但
c#面向对象试题及答案
一、选择题:1、下列关于类的描述中,错误的是( A )。
A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描述体2、下列常量中,不是字符常量的是( B )。
A.'\n' B."y"C.'x' D.'\7'3、下列表达式中,其值为0的是( A )。
A.5/10 B.!0C.2>4?0:1 D.2&&2||04、下列关于数组维数的描述中,错误的是( C )。
A.定义数组时必须将每维的大小都明确指出B.二维数组是指该数组的维数为2C.数组的维数可以使用常量表达式D.数组元素个数等于该数组的各维大小的乘积5、下列关于字符数组的描述中,错误的是( D )。
A.字符数组中的每一个元素都是字符B.字符数组可以使用初始值表进行初始化C.字符数组可以存放字符串D.字符数组就是字符串6、已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。
A.a[0] B.a[1]C.a[2] D.a[3]7、下列while循环语句的循环次数是( A )。
while(int i(0)) i--;A.0 B.1C.2 D.无限8、已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是( C )。
A.&(a+1) B.&(p+1)C.&p[2] D.*p++9、已知:int a=1,b=2,*p[2];下列表达式中正确的是( C )。
A.p=&a B.p=&bC.p[0]=&a,p[1]=&b D.p[ ]={&a,&b};10、当一个函数没有返回值时,该函数类型应说明为( A )。
A.void B.intC.无D.任意11、下列关于类的定义格式的描述中,错误的是( C )。
(完整版)c++面向对象程序设计试题和答案
(完整版)c++面向对象程序设计试题和答案系名___ ___ ___ ___班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密封线内不答题填空题(每空1分,共14分)1、观看以下程序:class point{public:void show() {cout<<”point”<<endl;}< p="">};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的功能是___释放由new申请的空间_________________。
二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是()。
(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的同意词。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c面向对象复习题答案版Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#一、填空题++中有两种数据类型:( char )和( int long )可以使用signed修饰符。
在C++中,用数组、指针、和( 引用 )作为函数参数,能够将参数值带回。
2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数),方法是在函数类型前加上(inline)关键字。
3.面向对象的程序设计有四大特征,它们是抽象、封装、( 继承 )、( 多态 )。
4.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是( 把对象的每个数据成员的值都复制到新建立的对象中)。
5.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的)构造函数,否则应用程序会产生一个编译错误。
6.静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象( 共享 )。
7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型( 不同 )。
8.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的( 封装 )特性。
9.预编译指令由三种,它们是:文件包含、( 宏定义 )和( 条件编译 )。
10.静态的成员函数没有隐含的( this ),所以,它们只能直接访问类的静态的数据成员。
11.在C++中,函数的参数有两种传递方式,它们是值传递和( 地址 )。
12.当非静态成员函数被调用时,该成员函数的( this )指向调用它的对象。
13.拷贝构造函数使用( 引用 )作为参数初始化创建中的对象。
14.在公有继承的情况下,基类数据成员在派生类中的访问权限( 不变 )。
15.在C++中,构造派生类对象时,总是先从( 基类 )的初始化开始的。
16.当需要统计程序中某个类创建对象的个数时,需要给该类定义(静态数据)成员。
17.在多个类之间有重复继承时,为避免被重复继承的基类数据成员在内存中有多个拷贝,应将该基类定义为(虚基类)。
18.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为( 抽象类 ),定义该类至少具有一个( 纯虚函数 )。
19.在C++中构造一个对象时,其数据成员在构造函数中初始化。
对于内嵌的对象、( 常量 )、( 引用 )数据成员需要在构造函数的成员初始化列表中初始化。
20.在类的定义中,说明为protected的数据成员称为保护成员。
保护数据成员具有双重作用:对于其派生类而言,( 可以访问 );而对于其外部的程序而言,( 不可以访问 )。
21.控制格式输出的操纵符中,(setprecision)是设置数据精度的,( hex)是设置十六进制的。
22.如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为__0_ _。
23.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+4’的值为_e_ __。
24.数组与函数参数联系密切,当用数组元素作函数参数时,这是属于值传递;当数组名作为参数时,这是属于地址传递,对形参的改变可影响到实参。
25.利用“对象名.成员变量”形式访问的对象成员仅限于被声明为公有的成员;若要访问其他成员变量,需要通过公有函数或友元函数函数。
26.一个__类____和__对象___的关系,正如基本数据类型与该类型的变量一个。
27.类成员的默认访问方式是_私有的_____.28.一个类有_多个____个构造函数,有_一个____析构函数。
29.类的__静态___成员函数不能对类中的非静态成员进行默认访问。
30.如果说明类B是类A的友元类,则类B的所有成员函数都是类A的_友元函数_____。
31.利用成员函数对二元运算符重载,其左操作数为对象,右操作数为实际参数。
32.类有两种用法:一种是类的实例化,即生成类的__模板类____ ;另一种是通过__基类_____派生出新的类。
33.运算函数中的关键字是_ _operator ____,它和运算符一起组成该运算符函数的函数名。
34.如果一个类中有一个或多个纯虚函数,则这个类称为_ _抽象类____。
35.文件的打开是通过使用类_ _ _对象_____的成员函数来实现的。
36.设所有变量均为整型,则表达式(e=2,f=5,e++,f++,e+f)的值为_9___。
37.已知c的ASCII码为十进制数99,设k为字符型变量,则表达式k=‘c’+1的值为___d_____。
38.函数的形参在未被调用之前不被分配空间,函数的形参的类型要和实参的相同。
39.类的成员分为数据成员和_ _ _成员函数____。
40.类完成了面向对象程序设计的_抽象____特性。
41.构造函数是_对象_____被创建时自动执行,对象消失时自动执行的成员函数称为__析构_____对象43.在继承机制下,当对象消亡时,编译系统先执行派生类的析构函数,然后才执行派生类中子对象类的析构函数,最后执行基类的析构函数。
44.类的__静态_____数据成员是类所有对象共享的成员。
45.友元函数__不是____类的成员函数。
(是/不是)46.如果类A继承了类B,则类A称为__派生类_____,类B称为__基类_____。
47.运算符重载后,原运算符的优先级和结合特性__不会___改变。
(会/不会)48._纯虚函数_____是一个在基类中说明的虚函数,但未给出具体的实现,要求在其派生类实现。
49.文件的关闭是通过通过使用类________的成员函数________来实现的。
(去掉)二、选择题1.面向对象的(B)是一种信息隐蔽技术,目的在于将对象的使用者与设计者分开。
不允许使用者直接存取对象的属性,只能通过有限的接口与对象发生联系。
A.多态性 B.封装性 C.继承性 D.重用性2.C++的合法注释是( B)。
A./*This is a C program/* B.+ B.<= C.= D.%5.已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)++d:a<b”值为(D)。
A.9 B.6 C.8 D.06.对while、do…while循环结构,下面说法正确的是(B)。
A.只是表达形式不同 B.do…while结构中的语句至少执行一次C.while结构中的语句至少执行一次 D.条件成立时,它们有可能一次也不执行7.对中断语句的说法下面不正确的是( B )。
A.用户可以指定中断的位置 B.用户可以指定转移的位置C.break语句可以跳出本循环 D.continue语句可以结束本次循环8.以下正确的说法是(D)。
A.用户若需要调用标准函数,调用前必须重新定义B.用户可以直接调用所有标准库函数C.用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数D.用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数9.下列哪个不是重载函数在调用时选择的依据(D)。
A.参数类型 B.参数个数 C.函数类型 D.函数名10.对数组名作函数的参数,下面描述正确的是(B)。
A.数组名作函数的参数,调用时将实参数组复制给形参数组B.数组名作函数的参数,主调函数和被调函数共用一段存储单元C.数组名作参数时,形参定义的数组长度不能省略D.数组名作参数,不能改变主调函数中的数据11.如果x是整型变量,则合法的形式是( D )。
A.&(x+5) B.*x C.&*x D.*&x12.在定义一个共用体变量时,系统为其分配存储空间的原则是(B)。
A.按所有成员需要的存储空间总和分配。
B.按成员中占存储空间最大者分配。
C.按成员占存储空间最小者分配。
D.按第一个成员所需的存储空间分配。
13.下面( B)项是对构造函数和析构函数的正确定义。
A.void X::X(), void X::~X()B.X::X(参数), X::~X()C.X::X(参数), X::~X(参数)D.void X::X(参数), void X::~X(参数)14.拷贝构造函数具有的下列特点中,(D)是错误的。
A.如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的B.拷贝构造函数只有一个参数,并且是该类对象的引用C.拷贝构造函数是一种成员函数D.拷贝构造函数的名字不能用类名15.类的析构函数的作用是( D)。
A.一般成员函数B.类的初始化C.对象初始化D.删除对象16.下列对派生类的描述中,( D )是错误的。
A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类成员D.派生类中继承的基类成员的访问权限到派生类保持不变17.继承具有( B, C),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。
A规律性 B.传递性 C.重复性 D.多样性18.C++类体系中,能被派生类继承的是(A,B,C)。
A.构造函数 B.虚函数 C.析构函数 D.友元函数19.下列关于动态联编的描述中,错误的是(D)。
A.动态联编是以虚函数为基础B.动态联编是运行时确定所调用的函数代码的C.动态联编调用函数操作是指向对象的指针或对象引用D.动态联编是在编译时确定操作函数的20.关于纯虚函数和抽象类的描述中,错误的是( C )。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C.一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类D. 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出21.C++源文件的扩展名为( A )。
A.cpp B.c C.txt D.exe22.在C++语言中,( A )的陈述是正确的。
A.能使用关键字并区分大小写 B.能使用关键字并不区分大小写C.不能使用关键字并区分大小写 D.不能使用关键字并不区分大小写23.运算符+、=、*、>=中,优先级最高的运算符是( C)。
A.+ B.= C.* D.>=24.下列不合法的变量名为(A )。
A.int B.int1 C.name_1 D.name025.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是( C )。
A.0 B.语法错 C.1 D.“假”A.语句for(i=0;;i++)表示无限循环 B.for(;;)表示无限循环26.以下不正确的是(c)。
C.for()也表示无限循环 D.while(1)表示无限循环27.在函数的返回值类型与返回值表达式的类型的描述中,错误的是( B,D )。