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

合集下载

面向对象程序设计习题库

面向对象程序设计习题库

面向对象程序设计习题库选择题1. 一个设计得好的面向对象系统具有( D)特征。

A 低内聚、低耦合B 高内聚、低耦合C 高内聚、高耦合D 低内聚、高耦合2. 面向对象程序设计的特点主要概括为(C)。

A 可分解性、可组合性、可分类性B 继承性、封装性、多态性C 抽象封装性、继承性、多态性D 封装性、易维护性、可扩展性、可重用性3. 关于C#程序的书写,下列不正确的说法是( D )。

A. 区分大小写B. 一行可以写多条语句C. 一条语句可写成多行D. 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法4. 关于C#语言的基本语法,下列哪些说法正确的是( C )A. C#语言使用using 来引用需要用到的命名空间;B. 用C#编写的程序中,Main 函数是唯一允许的全局函数;C. C#语言中使用的名称严格区分大小写;D. C#中一条语句必须写在一行内;5 以下标识符中,正确的是(A )。

A._nNameB. typeofC. 6bD. x5#6.字符串连接运算符包括&和( A )。

A. +B. -C. *D. /7.拆箱是关于:( B )A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换8.装箱是关于:( A )A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换9.下列引用类型和值类型描述正确的是(A )。

A. 引用类型变量保存内存地址,值类型直接保存变量值B. 引用类型在变量中直接保存变量值,值类型保存内存地址C. 引用类型和值类型保存数据的方式相同D. .NET Framework不支持值类型,因为所有的类型都是引用类型了10.一个类中的静态方法的调用可以:( A )A、通过类名调用B、通过实例化的对象调用C、在主方法中直接调用D、在同一个类中的某一方法中直接调用11.以下数据类型中,属于引用类型的是:(A )A、string类型B、double类型C、int类型D、char类型12.下列类型中为值类型的是( C )A. 字符串类型B. 树组类型C. 枚举类型D. 接口类型13.decimal类型和浮点类型都可以表示小数,正确说法:( C )A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低14. 有定义语句:int [,]a=new int[5,6]; 则下列正确的数组元素的引用是__C__。

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。

该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。

做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。

本文库还有其他网核及教学考一体化答案,敬请查看。

《面向对象程序设计》题库及答案一一、单项选择题(每小题2分,共20分)1.设x和y均为bool量,则x||y为假的条件是( )。

A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( )。

A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( )。

A.p=new int B.p=new int*C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。

A.可维护性 B.可复用性C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。

‘A.in B.inlineC.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。

A.1ength+1 B first+lengthC.(first+1ength—1)%MS D.(first+length)%MS7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4,5);”语句后,X.a和x.b的值分别为( )。

面向对象程序设计(java)题库

面向对象程序设计(java)题库

面向对象程序设计(java)题库抽题规范:(1)此题库共75道题,抽8道作为期末考试题。

其中,易8道,较易33道,较难18道,容易16道.(2)按题型,第一大题抽4道,每道10分;第二大题抽2道,每道10分;第三大题抽1道,每道20分后;第四大题扣1道,每道20分后。

(3)按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道)。

一、答疑题(共40道,扣4道,每道10分后,共40分后)1.面向对象有哪三大特征?封装,继承,多态.2.什么是类?(易)类就是定义同一类所有对象的变量和方法的蓝图或原型。

3.什么就是对象?对象是类的实例;对象是通过newclassname产生的,用来调用类的方法;类的构造方法.。

4.类和对象的区别是什么?java中的类就是模板,而对象就是依据模板产生的实体5.详述java的PCB性,如何在java中同时实现PCB封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了。

实现为加访问权限。

6.构造方法有哪些特点方法名与类名相同,没返回值,可以存有多个空载。

7.构造方法的促进作用就是什么?(更易)初始化对象,就是你new一个类的时候可以很方便的给你的对象里的属性赋值。

8.this在程序中所代表的意思(易)指当前对象9承继的促进作用就是什么?(极易)同时实现代码F83E43Se。

10.java支持多继承吗?(易)不能。

11.子类可以承继父类的哪些成员?(较难)变量和构造方法。

12.简述构造子类对象时子类和父类构造方法执行顺序(较易)先执行父类再执行子类。

13.什么就是方法的空载,如何挑选被空载的方法?(更易)同一个类中如果同时存在两个以上的方法有同一个名字,在这种情况下,我们说方法被重载了,这个过程被称为重载。

14什么就是方法的改写,如何挑选被改写的方法?(较难)当同名方法同时存在于子类和父类中时,对于子类来说就是将继承父亲的方法重载写过了,实现功能完全和父类无关。

《面向对象程序设计(Java)》机试题库(含答案)

《面向对象程序设计(Java)》机试题库(含答案)

《面向对象程序设计(Java)》机试题库(含答案)1.编写一个字符界面的Java Application 程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。

2.编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。

3.编写一个完整的Java Applet 程序使用复数类Complex验证两个复数1+2i 和3+4i 相加产生一个新的复数4+6i 。

复数类Complex必须满足如下要求:(1)复数类Complex 的属性有:RealPart : int型,代表复数的实数部分ImaginPart : int型,代表复数的虚数部分(2)复数类Complex 的方法有:Complex( ) : 构造函数,将复数的实部和虚部都置0Complex( int r , int i ) : 构造函数,形参r 为实部的初值,i为虚部的初值。

Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。

String ToString( ) : 把当前复数对象的实部、虚部组合成a+bi 的字符串形式,其中a 和b 分别为实部和虚部的数据。

4.编写一个学生类Student ,要求:(1) 学生类Student 属性有:id : long型,代表学号name : String类对象,代表姓名age : int型,代表年龄sex : boolen型,代表性别(其中:true表示男,false表示女)phone : String类对象,代表联系电话(2) 学生类Student的方法有:Student(long i , String n , int a , boolean s , long p): 有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。

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

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

面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。

A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是( )。

A. case for intB. default then whileC. bool class longD. goto return 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 -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是( )。

A. 0B. ‘0’C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。

A. 12B. 144C. 156D. 28813. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是( )。

c面向对象程序设计期末考试题及答案

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)一、判断对错题(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. 关于C + +与C语言的关系描述中,(D)是错误的。

(A)C语言是C + +的一个子集 (B) C语言与C++是兼容的(C) C++对C语言进行了一些改进(D) C++和C语言都是面向对象的2. 下面关于对象概念的描述中,(B)是错误的。

(A )对象就是C语言的结构变量(B)对象代表着正在创建的系统中的一个实体(C)对象是一个状态的操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的3. 下面关于类概念的描述中,(D)是错误的。

(A )类是抽象数据类型的实现(B )类是具有共同行为的若干对象的统一描述体(C)类是创建对象的样板(D)类就是C语言的结构类型4. 按照标识符的要求,(A )符号不能组成标识符。

(A )连接符 (B)下划线 (C)大小写字母 (D)数字字符5. 下列符号中,(C)不可作为分隔符。

(A), (B) : (C)? ( D);6. 在16位机中,int型字宽为(A)字节。

(A ) 2 ( B) 4 ( C) 6 (D) 87. 类型修饰符unsigned修饰(D)类型是错误的。

(A)char ( B) int (C) long int (D) float& 对于int *pa[5];的描述,(D)是正确的。

(A)pa是一个指向数组的指针,所指向的数组是5个int型元素(B)pa是一个指向某数组中第5个元素的指针,该元素是int变量(C)pa[5]表示某个数组的第5个元素(D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针。

9. 下列关于指针的运算中,(D)是非法的。

(A)两个指针在一定条件下,可以进行相等或不等的运算。

(B)可以有一个空指针赋值给某个指针。

(C)一个指针可以加上一个整数。

(D)两个指针在一定条件下,可以相加。

10. 指针可以用来表示数组元素,下列表示中( A )是错误的。

已知:int a[3][7];(A)*(a+1)[5] ( B) *(*a+3) (C) *(*(a+1)) (D) *(&a[0][0]+2)11. 下列表示引用的方法中,(A )是正确的。

《JAVA面向对象程序设计》练习题库

《JAVA面向对象程序设计》练习题库

1. 下面( )是JDK中的Java运行工具.(选择二项)A. javacB. javamC. javaD. javar【解析】A C2. 选出在Java中有效的注释声明(选择二项)A.//This is a commentB.*/This is a commentC./This is a commentD./*This is a comment*/【解析】AD3. 下面( )命令可用于编译Java程序.(选择一项)A. javaB. javacC. appletviewerD. javadoc【解析】B4. 下面( )数据类型可用于main()方法中传递的参数. (选择一项)A. StringB. IntegerC. BooleanD. Variant【解析】A5. 在屏幕上显示的消息正确的语句是(选择一项)A. System.out.println(“I am Java Expert”);B. system.out.println(“I am Java Expert”);C. System.Out.Println(“I am Java Expert”);D. System.out.println(‘I am Java Expert’);【解析】A6. Java编译器会将Java程序转换为(选择一项)A. 字节码B. 可执行代码C. 机器代码D. 以上所有选项都不正确【解析】A7. Java源代码文件的扩展名为(选择一项)A. .classB. .javaC. .comD. 以上所有选项都不正确【解析】B1. 在Java中,byte数据类型的范围是(选择一项)A. -32767~32768B. -32768~32767C. -127~128D. -128~127【解析】D2. 以下( )是合法的标识符(选择二项)A. Te1_numB. emp1C. 8678D.batch.no【解析】AB3. 下列代码的输出结果是(选择一项)A. 2150B. 1250C. 5210D. 2510【解析】A4. 以下关键字(选择一项)用于终止循环语句A. breakB. exitC. endD. terminate【解析】A5. 不论测试条件是什么,下列(选择一项)循环将至少执行一次.A. whileB. do-whileC. forD. for-each【解析】B6. 下列代码的输出结果是 (选择一项 )A.6A.6B.3C.1D.0【解析】A7. 编译运行下面的代码时会打印(选择一项)A.1B.初始化错误C. 2D.数组超界【解析】C1. ( )是拥有属性和行为或方法的实体. (选择一项)A. 对象B. 类C. 方法D. 构造方法【解析】A2. 对象的特性在类中表示为变量,成为类的(选择一项)A. 对象B. 属性C. 方法D. 数据类型【解析】B3. ( )就是检验有关某个实体的所有可用信息的过程,以便标识与应用程序相关的信息. (选择一项)A. 抽象B. 封装C. 方法D. 构造方法【解析】A4. 如果类的方法没有返回值,该方法的返回类型应当是(选择一项)A. nullB. voidC. staticD. public【解析】B5. ( )关键字表示它是一种类方法,且无需创建对象即可访问. (选择一项)A. voidB. staticC. returnD. public【解析】B6. 每个类都定义有( ) ,以便初始化其成员变量(选择一项)A. 方法B. main() 方法C. 构造方法D. 对象【解析】C2、关键字( )用来调用父类构造方法。

java面向对象程序设计期末考试题及答案

java面向对象程序设计期末考试题及答案

java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。

答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。

答案:final3. 在Java中,______关键字用于声明一个类是抽象的。

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)一、单选题(共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特有的方法。

面向对象程序设计习题

面向对象程序设计习题

第6章面向对象程序设计一. 选择题1.下面有关类和对象的说法中, 不对的的是【】。

A) 类是系统提供的一种数据类型B) 对象是类的实例C) 类和对象的关系是抽象和具体的关系D) 任何一个对象只能属于一个具体的类2. 面向对象的特点重要概括为【】。

A) 可分解性、可组合型性和可分类性B) 继承性、封装性和多态性C) 封装性、易维护性、可扩展性和可通用性D) 抽象性、继承性和封装性3. 要使一个类能被同一命名空间中的其他类访问, 但不能被这个命名空间以外的类访问, 该类可以【】。

A) 不使用任何修饰符B) 使用private修饰符C) 使用public修饰符D) 使用internal修饰符4. 在C#中, 【】访问修饰符修饰的字段只能由当前程序集访问。

A) private B) public C) protected D) internal5. 类的字段和方法的默认访问修饰符是【】。

A) public B) private C) protected D) internal6. 下列关于构造函数的描述中, 不对的的是【】。

A) 构造函数中, 不可以包含return语句B) 一个类只能有一个构造函数C) 实例构造函数在生成类实例时被自动调用D) 用户可以定义无参构造函数7. 下列关于构造函数的描述中, 【】是对的的。

A) 构造函数名必须与类名相同B) 构造函数不可以重载C) 构造函数不能带参数D) 构造函数可以声明返回类型8. 下列的【】不是构造函数的特性。

A) 构造函数的函数名与类名相同B) 构造函数可以重载C) 构造函数可以带有参数D) 可以指定构造函数的返回值类型9. 类ClassA有一个名为M1的方法, 在程序中有如下一段代码, 假设该段代码是可以执行的, 则声明M1方法时一定使用了【】修饰符。

ClassA Aobj=new ClassA();ClassA.M1();A) public B) public static C) private D) virtual10. 在C#中, 从属性的读写特性上来进行分类, 可以划分为以下3种, 除了【】。

《面向对象程序设计》习题

《面向对象程序设计》习题

《面向对象程序设计》习题一、单项选择题1、下面关于引用的说法错误的是( )。

A、引用是被引用对象的别名B、对引用的修改就是对被引用对象的修改,反之亦然C、引用不一定立即初始化D、引用不能建立数组2、用new运算符创建一个含有10个元素的一维整型数组的正确语句是( )。

A、int p = new int(10);B、int p = new int[10];C、int *p = new int [10];D、int *p = new int(10);3、下面是五条顺序出现的声明语句,非法的初始化语句是( )。

A、int i = –1;B、const int ic=i;C、const int *pc=&ic;D、int *const cpi=&ic;E、const int *const cpic= &ic;4、下列说法不正确的是( )。

A、在类中,成员的默认访问特性是私有的。

B、类封装了数据和操作。

C、类实质上是一种数据类型。

D、在类的定义中,必须包含private、public、protected三种存取方式对应得部分。

5、下列说法不正确的是( )。

A、在类中不能对所定义的数据成员进行初始化。

B、类的公有成员函数是类与外界的接口。

C、同一个类的两个对象占用相同的内存空间。

D、类实现数据隐藏。

6、下列程序段不会发生二义性的是( )。

A、int fun(double p){...;}B、int fun(float p){...;}float fun(float p){...;} float fun(unsigned p){...;}int x; int x;x=fun(0); x=fun(0);C、int fun(int i,int j=2){...;}D、int fun(int i=2,int j=2){...;}float fun(int i){...;} int fun(int *p){...;}cout<<fun(5); cout<<fun(5);7、关于以下程序段中语法错误的正确描述是( )。

面向对象程序设计题库(C++)

面向对象程序设计题库(C++)

一、单项选择题之阿布丰王创作1. 在C++语言中,对函数参数默认值描述正确的是:( D )A) 函数参数的默认值只能设定一个B) 一个函数的参数若有多个,则参数默认值的设定可以不连续C) 函数参数必需设定默认值D) 在设定了参数的默认值后,该参数后面界说的所有参数都必需设定默认值2. 假定 AB 为一个类,则执行 AB x ;语句时将自动调用该类的( B ) . A) 有参构造函数 B) 无参构造函数 C) 拷贝构造函数 D) 赋值构造函数3. 下述关于开关语句的描述中,()是正确的.A) 开关语句中default子句可以没有,也可以有一个;B) 开关语句中每个语句序列中必需有break语句;C) 开关语句中default子句只能放在最后;D) 开关语句中case子句后面的表达式可以是整形表达式.4. 关于对象概念的描述中,()是毛病的.A) 对象就是C语言中的结构变量;B) 对象代表着正在创立的系统中的一个实体;C) 对象是一个状态和把持(或方法)的封装体;D) 对象之间的信息传递是通过消息进行的;5. 下列给字符数组进行初始化中,()是正确的.A) char s1[ ]="12345abcd"; B) char s2[3]="xyz";C)char s3[][3]={ 'a', 'x', 'y'};D) char s4[2[3]={"xyz","mnp"};6. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是().A) 3 B)2 C)6D) 47. 声明类test的拷贝构造函数的正确形式是( D ) .A) int test B) void test C) test(void) D) test(test&)8. 关于new运算符的下列描述中,()是错的.A) 它可以用来静态创立对象和对象数组;B) 使用它创立的对象或对象数组可以使用运算符delete删除;C) 使用它创立对象时要调用构造函数;D) 使用它创立对象数组时必需指定初始值.9. 在 C++ 中有以下 4 条语句:static int hot=200;int&rad=hot; hot=hot+100;cout<<rad<<endl; 执行这 4 条语句后输出为:() . A) 0 B) 100 C) 300 D) 20010. 下列关于构造函数的描述中,毛病的是( B ) .A) 构造函数可以设置默认参数;B) 构造函数在声明对象时自动执行;C) 构造函数可以对静态数据成员进行初始化;D) 构造函数可以重载;11. 下面关于重载函数的说明中正确的是( ).A) 重载函数必需具有分歧的返回类型.B) 重载函数形参的个数必需分歧C) 重载函数必需具有分歧的形式参数表D) 重载函数名可以分歧12. 下列关于C++函数的说明中,正确的是( ).A) 内联函数就是界说在另一个函数体内部的函数B) 函数体的最后一条语句必需是 return 语句C) C++要求在调用一个函数前必需先声明其原型D) 编译器会根据函数的返回值类型和参数表来区分函数的分歧重载形式13. 已知函数原型为:void foo(int*, long &b);实参界说为:int i;long f;则正确的调用语句是( ).A) foo(i, &f); B) foo(i, f); C) foo(&i, f);D) foo(&i, &f);14. C++中对结构中界说的成员,其默认的访问权限为( ).A) public B) protected C) private D) static15. 下列关于类与对象的说法中,不正确的是( ).A) 对象是类的一个实例B) 任何对象只能属于一个具体的类C) 一个类只能有一个对象D) 类与对象的关系和数据类型与变量的关系相似16. 下列关于构造函数的描述中毛病的是( )A) 构造函数可以设置默认参数 B) 构造函数在界说类对象时自动执行C) 构造函数可以对静态数据成员进行初始化 D) 构造函数不成以重载17. 类的析构函数的作用是( ).A) 作为类的一般成员函数 B) 类的初始化 C) 对象的初始化 D) 对象的删除18. 以下关于静态数据成员的描述正确的是( ).A) 静态数据成员可以在类体中进行初始化 B) 静态数据成员不成以被类的实例调用C) 静态数据成员不能受protected控制符的作用 D) 静态数据成员可以直接用类名调用19. 下面关于友元函数的描述中正确的是( ).A) 友元函数的实现必需在类的内部界说 B) 友元函数是类的成员函数C) 友元函数破坏了类的封装性和隐藏性 C) 友元函数不能访问类的私有成员20. 下面关于友元函数的描述中毛病的是( ).A) 如果类A是类B的友元,那么类B也是类A的友元B) 如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C) 友元关系不能被继承D) 如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数21. 下列属于C++语句的是 .A) ; B) a=17 C) a+5 D) cout<<’\n’22. 执行语句k=30;j=k++;后k和j的值分别为 .A) k=30,j=30 B) k=30,j=31C) k=31,j=30 D) k=31,j=3123. 若X是一个bool型变量,则X&&5<3的值 .A) 为true B) 为falseC) 与X的值相同D) 与X的值相反24. 如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c<d?c:d ” 的值为 .A) 3 B) 2 C)1 D) 425. 执行下列语句后的输出结果是 .int hot=100;int &rad=hot;hot+=100;cout<<rad<<endl;A) 0 B) 100C) 200 D) 30026. 下列关于break语句的叙述不正确的是 .A) break语句可用于循环体中,它将使执行流程跳出本层循环体;break语句可用于switch语句中,它将使执行流程跳出以后的switch语句;break语句可用于if语句中,它将使执行流程跳出以后if语句;break语句在一层循环体中可以呈现屡次.27. 下面关于类的对象性质的描述,正确的是 .A)对象之间不成以相互赋值 B)不成以说明指向对象的指针C)对象不能用作数组元素 D)一个对象能用作另一个对象的成员28. 在 C++ 中实现封装是借助于 .A) 枚举B) 类C) 数组D) 函数29. 下列不是描述类的成员函数的是 .A) 构造函数 B) 析构函数C) 友元函数 D) 拷贝构造函数30. 不能作为函数重载判断依据的是 .A) 参数个数 B) 参数类型C) 函数名称 D)返回值类型31. 假定一个类的构造函数为A(int aa,int bb){a=aa++;b=a*bb++;} ,则执行 A X(4,5); 语句后, X.a 和X.b 的值分别为 . A) 4 和 5 B) 5 和30C) 4 和20 D) 20 和 532. 对double(*p)[10];的描述, 是正确的.A) p是一个指向数组的指针,所指向的数组是10个double型元素;B) p是一个指向某个数组中第10个元素的指针,该元素是double型变量;C) p[5]暗示某个数组的第10个元素的值;D) p是一个具有10个元素的指针数组,每个元素是一个double 型指针;33. 下面的函数声明中, 哪一个是”void BC(int a, intb);”的重载函数?A) int BC(int a, int b) B)void BC(int a, char b)C) float BC(int a, int b, int c = 0) D) void BC(int a, int b=0)34. 已知char c; char * const pc="asdf", 是正确的.A) pc="dfgh" B) *pc=‘b’C) *pc++=‘y’D) pc=&c35. 下列关于构造函数的叙述,毛病的是 .A)构造函数可以设置默认参数;B)构造函数在说明类变量时自动调用;C)构造函数可以对静态数据成员进行初始化;D)构造函数可以重载;36. 下列关于构造函数的描述中毛病的是( )A) 构造函数可以设置默认参数 B) 构造函数在界说类对象时自动执行C) 构造函数可以对静态数据成员进行初始化 D) 构造函数不成以重载37. 类的析构函数的作用是( ).A) 作为类的一般成员函数 B) 类的初始化 C) 对象的初始化 D) 对象的删除38. 以下关于静态数据成员的描述正确的是( ).A) 静态数据成员可以在类体中进行初始化 B) 静态数据成员不成以被类的实例调用C) 静态数据成员不能受protected控制符的作用 D) 静态数据成员可以直接用类名调用39. 下面关于友元函数的描述中正确的是( ).A) 友元函数的实现必需在类的内部界说 B) 友元函数是类的成员函数C) 友元函数破坏了类的封装性和隐藏性 C) 友元函数不能访问类的私有成员40. 下面关于友元函数的描述中毛病的是( ).A) 如果类A是类B的友元,那么类B也是类A的友元B) 如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C) 友元关系不能被继承D) 如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数41. 重载函数在调用时选择的依据中,毛病的是 ( )A. 函数的参数B. 参数的类型C. 函数的名字D. 函数的类型42. 一个函数功能不太复杂,但要求被频繁调用,选用( . )A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数43. 下列不是描述类的成员函数的是 ( )A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数44. 构造函数不具备的特征的是 ( )A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数可以指定返回类型45. 通常,拷贝构造函数的参数是 ( )A. 某个对象名B. 某个对象的成员名C. 某个对象的引用名D. 某个对象的指针名46. 继承机制的作用是 ( )A. 信息隐藏B. 数据封装C. 代码重用D. 数据笼统47. 类的析构函数的作用是 ( )A.一般成员函数B.类的初始化C.对象的初始化D.删除对象创立的所有对象48. 类的析构函数是在 ( ) 调用的.A. 类创立时B. 创立对象时C. 删除对象时D. 不自动调用49. 已知print ()函数是一个类无返回值的常成员函数,下列暗示中正确的是( ).A.void print()constB.const void print()C.void const print ;D.void print (const );50. 如果类 A 被说明成类 B 的友元,则 ( )A. 类 A 的成员即类 B 的成员B. 类 B 的成员即类 A 的成员C. 类 A 的成员函数不得访问类 B 的成员D. 类 B 纷歧定是类 A 的友元51. 通过一个对象调用虚函数时,C++系统对该调用采纳( ).A.静态联编B.静态联编C.不确定是哪种联编 D.函数重载52. 在公有继承的情况下,基类成员在派生类中的访问权限( )A. 受限制B. 坚持不变C. 受呵护D. 不受呵护53. 在C++中,当一个对象被创立后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为( )指针.A.对象B.派生C基类D.this54. 假定 AB 为一个类,则执行 AB x ;语句时将自动调用该类的( )A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值构造函数55. C++ 语言建立类族是通过 ( )A. 类的嵌套B. 类的继承C. 虚函数D. 笼统类二、判断题1、C++中,数组下标从1开始.( 错 )2、C++允许对字符串进行整体把持.( )3、break语句也可以用于if体内,它可退出if语句.()4、在说明语句 char a(‘A’),&b=a,*pa=&a;中,b的值与*pa的值相等.( )5、对象数组的元素可以是分歧类的对象.()6、私有继承中,基类中所有成员对派生类的对象都是不偏见的.()7、类中所提供的成员函数可以直接访问私有成员.()8、依照标识符的要求,下划线是不能组成正确标识符的.()9、函数的默认参数没有顺序要求,可以随意界说.()10、在 C++ 语言中,”A”占两个字节,而’A’占一个字节.()11、C++语言支持封装性和继承性,不支持多态性.[ 错 ]12、关系运算符可以用来比力两个字符的年夜小,也可用来比力两个字符串的年夜小.)[ ]13、字符串"sdfgh"的长度是5.[ ]14、引用和指针都可作函数参数.[ ]15、友元函数说明在类体内,它是一种成员函数.[ ]16、友元类必需被说明为公有成员.[ ]17、纯虚函数是在基类中说明的虚函数,它在该基类中没有界说具体的把持内容.[ ]18、析构函数不能被继承.[ ]19、运算符重载以后,其优先级和结合性都不能改变.[ ]20、在C++中,函数名实际上是一个指针,它指向函数的入口.[ ]21、构造函数可以被继承.( )22、析构函数不能被继承.( )23、多继领情况下,派生类的构造函数的执行顺序取决于界说派生时所指定的各基类的顺序.( )24、解决多继领情况下呈现的二义性的方法之一是使用成员名限定法.( )25、函数的参数个数和类型都相同,只是返回值分歧,这不是重载函数.( )26、大都运算符可以重载,个别运算符不能重载,运算符重载是通过函数界说实现的.( )27、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数.( )28、对单目运算符重载为友元函数时,说明一个形参;重载为成员函数时,不能显式说明形参.( )29、重载运算符坚持原运算符的优先级和结合性不变.( )30、构造函数说明为纯虚函数是没有意义的.( )三、简答题1. 简述C++的异常处置机制?2.C++的预界说的流对象有哪些?3. 试以客观世界为例,说明笼统、封装、继承性和多态性等概念.4. 多继承的情况下为什么会发生二义性?如何消除二义性?5. 试说明 void F(const T &t); 和 inf f() const; 中关键字const 作用.6.有如下法式#include <iostream>#include <fstream>using namespace std;class B;class A{friend B;public:A(){cout<<"in A()"<<endl;}A(const A &a){cout<<"in A(const A &a)<<endl;}~A(){cout<<"In ~A()"<<endl;}};class B: public A{public:B(){cout<<"In B()"<<endl;}B(const A a){cout<<"In B(const A a)"<<endl;}};void f(A &a){cout<<"In f(A &a)"<<endl;}void ff(const B &b){cout<<"In ff(B &b)"<<end;}void ff(A a){}int main(){A a;B bb=a;}法式运行的结果是_________________________7.有如下法式#include <iostream>using namespace std;template <class Type>class HisClass{Type data;public:HisClass(Type a, Type b, Type c);Type getData();};template <class Type>HisClass<Type>::HisClass(Type a, Type b, Type c){if(a>b&&a>c)data=a;elseif(b>c)data=b;elsedata=c;}template <class Type>Type HisClass<Type>::getData(){return data;}int main(){HisClass<int> x1(3,4,5), x2(5,3,4),x3(4,5,3), x4(7,8,9),x5(8,7,9);cout<<x1.getData()<<x2.getData()<<x3.getData()<<x4.getData()<<x5.getData()<<endl;system("pause");return 0;}法式运行的结果是_________________________8. 以下法式在运行中呈现致命毛病,找犯毛病原因并修正.#include<iostream>#include<cstring>class sample{private:char *string;public:sample(const char *s){string = new char[strlen(s)+1];strcpy(string s);}~sample(){delete string;};};sample f(char *arg){sample tmp(arg);return tmp;}int main(){sample local=f("abcd");return 0;}9.有如下法式#include<iostream>using namespace std;class P{char *name;int age;char *add;public:P(){cout<<"P";}~P(){cout<<"!P";}};class S:public P{char *department;int level;public:S(){cout<<"S";}~S(){cout<<"!S";}};class T: public P{char *major;float s;public:T(){cout<<"T";}~T(){cout<<"!T";}};int main(){S s;T t;system("pause");return 0;}法式运行的结果是_________________________ 10.有如下法式#include <iostream>using namespace std;class B {public:B( ) {cout << "B::B( )" << endl; num++; }virtual void f( ) = 0;virtual void g( ) = 0;void k( ){f( );cout << "B::k( )" << endl; g( ); }virtual ~B( ){cout << "B::~B( )" << endl;num--;}static int getNum( ){return num;}private:static int num;};class D1: public B {public:D1( ) {cout << "D1::D1( )" << endl;}void f( ) {cout << "D1::f( )" << endl;}void g( ){cout << "D1::g( )" << endl;}~D1( ) {cout << "D1::~D1( )" << endl;}};class D2: public B {public:D2( ) {cout << "D2::D2( )" << endl;}void f( ){cout << "D2::f( )" << endl;}void g( ){cout << "D2::g( )" << endl;}~D2( ){cout << "D2::~D2( )" << endl;}};int B::num = 0;int main( ){B* buf[3];buf[0] = new D1;buf[1] = new D2;buf[2] = new D1;int i;cout << B::getNum( ) << endl;for ( i = 0; i<3; i++)buf[i]->k( );for (i = 0; i<3; i++)delete buf[i];cout << B::getNum( ) << endl;system("pause");return 0;}法式运行的结果是_________________________ 11.有如下法式#include <iostream>using namespace std;class Rpublic:R(int r1, int r2): R1(r1), R2(r2){};void print();void print() const;private:int R1, R2;};void R::print(){cout<<R1<<","<<R2<<endl;};void R::print()const{cout<<R1<<","<<R2<<endl;}int main(){R a(5,4);const R b(20,52);b.print();system("pause");return 1;}法式运行的结果是_________________________12.有如下法式#include <iostream>using namespace std;class demo{public:static int constructor, copy_constructor;demo(){cout<<"default constructor"<<endl;constructor++;}demo(const demo& x){cout<<"copy constructor"<<endl;copy_constructor++;}int demo::constructor=0;int demo::copy_constructor=0;demo usercode(demo b){demo c(b);return c;}int main(){demo a, d;cout<<"calling usercode"<<endl;d=usercode(a);cout<<demo::constructor<<","<<demo::copy_constructor<<endl;system("pause");return 0;}法式运行的结果是_________________________13.有如下法式#include<iostream>using namespace std;class A{static int m;int n;。

面向对象程序设计考试模拟题(附参考答案)

面向对象程序设计考试模拟题(附参考答案)

面向对象程序设计考试模拟题(附参考答案)一、单选题(共10题,每题1分,共10分)1、下面关于javac命令作用的描述中,正确的是()。

A、可以执行java程序B、可以将编写好的Java文件编译成.class文件C、可以把文件压缩D、可以把数据打包正确答案:B答案解析:javac命令将java文件编译成java字节码文件。

2、下列关于构造方法的描述,错误的是()A、在构造方法中不能使用return语句返回一个值,但是可以单独使用return作为方法的结束B、一个类中只能定义一个空参数的构造方法C、构造方法的方法名前面没有返回值类型的声明D、一个类中可以定义多个构造方法正确答案:B3、以下关于成员属性与成员方法的描述中,错误的是()A、成员属性我们也叫成员变量,它就是描述对象的特征。

它可以定义在类中,也可以定义在方法中B、成员方法用于描述对象的行为C、在类中定义的变量,我们称为成员变量D、在类中定义的方法,我们称变成员方法正确答案:A答案解析:类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为,可简称为方法。

定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。

4、FileWriter类的write(int c)方法的作用是()A、写出单个字符B、写入多个C、写入一个整形数据D、写入单个字符正确答案:D答案解析:write(int c)方法用于写入单个字符。

5、下列关于集合的描述中,哪一个是错误的()A、集合按照存储结构可以分为单列集合Collection和双列集合Map。

B、List集合的特点是元素有序、元素可重复。

C、Set集合的特点是元素无序并且不可重复。

D、集合存储的对象必须是基本数据类型。

正确答案:D答案解析:集合可以存储多种数据类型的数据,包括引用数据类型。

6、下列关键字中,哪个不能修饰接口中的成员变量?()A、publicB、staticC、finalD、private正确答案:D答案解析:接口中的成员变量其实是一个常量,用public static final 修饰,所以,用private修饰是错误的。

面向对象的程序设计试题库

面向对象的程序设计试题库

面向对象的程序设计一、单项选择题1、下面那种结构不是C++的控制结构()A 顺序结构B 选择结构C 循环结构D 判断结构答: D2、下列是C++语言中合法标识符的是()。

A.3three B.ifC._1oneD.while答:C3、下列是合法的C++语言语句的是()。

A.if(x>0) then x=x-1;else x=x+1;B.if(x>0) x=x-1;else x=x+1;C.if x>0 x=x-1;else x=x+1;D.if x>0 x=x-1;答:B4、下面那一种不是计算机内部表示整数的方法()A 二进制码B原码C 补码D反码答:A5、在C++语言中,下列数为合法的实数的是()。

A.5E-3B.5E-3.5C. E5D.-3.5E答:A6、C++语言中数据类型最大的是()A longB floatC intD char7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为()。

A.函数声明B.嵌套函数C.定义函数D.递归函数答:D8、表达式0x55^0xB4的结果为()。

A.0xF5B.0x15C.0xE1D.0x1E答:C9、C++中,源代码文件后缀为()A .cppB .objC .exeD .c答: A10、0X5A&0XB7结果是()A 0X13B 0X12C 0X14D 0X15答: B二、填空题1、程序的基本控制结构包括()、()和()。

答:顺序结构,选择结构,循环结构2、用来解决问题的,与有限多个步骤组成的具体过程称为()。

答:算法3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b) a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。

答:4,11,10)。

答:警告信息,致命错误5、计算机中的数据可以分为()和()两大类。

答:数值型、字符型6、字符型数据有两种编码方法:()和()答:有美国国家标准局制定的ASCII码、IBM公司提出的EBCDIC码7、通过C++ 语言中的()机制,可以从现存类中构建其子类。

面向对象程序设计习题

面向对象程序设计习题
正确答案是:C
5、下面关于私有继承方式的论述中错误的是()。A基类中的私有成员对其对象不可见B基类中的私有成员对其派生类不可见C基类中的公有成员对其派生类可见D基类中的保护成员对其派生类不可见
s3=s1+s2;
print(s3,2);
return 0;
}
void print(student b,int n)
{
cout<<b.x/n<<endl<<b.y/n<<endl<<b.z/n<<endl;
}
南开18秋学期(1703)《面向对象程序设计》在线作业-2 1、D 2、A 3、D 4、C 5、D一、单选题共35题,70分
D.fstream infile(d:\\file.dat, ios::in| ios::out);
答案:D
21.在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则()。A.完全相同B.完全不同
C.部分相同,部分不同D.以上都不对
答案:A
22.面向对象程序设计思想的主要特征中不包括( )。A.封装性B.多态性C.继承性D.功能分解,逐步求精
A.A(60)
B.SetNum(60)
C.ptr->SetNum(60)
D.ptr->n=60
答案:C
4.下面叙述错误的是( )。
A.派生类可以使用private派生
B.对基类成员的访问必须是无二义性的
C.基类成员的访问能力在派生类中维持不变
D.赋值兼容规则也适用于多继承的组合
答案:C
5.抽象类的作用主要是()。
delete []v
ARRAY::

面向对象程序设计试题及答案

面向对象程序设计试题及答案

面向对象程序设计试题及答案一、试题1. 请简要解释面向对象(Object-Oriented)程序设计的概念。

2. 列举面向对象程序设计中的四个基本特征,并分别进行简要描述。

3. 请说明封装(Encapsulation)在面向对象程序设计中的作用和优势。

4. 解释继承(Inheritance)在面向对象程序设计中的概念和用途。

5. 什么是多态(Polymorphism)?请解释多态的概念以及其在面向对象程序设计中的重要性。

6. 简要介绍抽象类(Abstract Class)和接口(Interface)的概念,并说明它们之间的区别。

7. 请解释类(Class)与对象(Object)之间的关系。

8. 在面向对象程序设计中,什么是构造函数(Constructor)?请说明构造函数的作用和使用方法。

9. 请示范一个使用面向对象程序设计的简单实例,并说明你所设计的类的结构和功能。

二、答案1. 面向对象程序设计是一种以对象为中心的编程方法,通过定义表示对象属性和行为的类来组织程序结构,以实现代码的重用性、灵活性和可维护性。

2. (1)封装:将数据和对数据的操作封装在一个类中,通过访问权限控制,保护数据的安全性和完整性。

(2)继承:通过建立类之间的继承关系,实现代码的重用,具有层次性和扩展性。

(3)多态:允许不同类的对象对同一消息作出不同的响应,实现代码的灵活性和扩展性。

(4)抽象:通过抽象类和接口的定义,隐藏对象的具体实现细节,提供统一的接口和规范。

3. 封装的作用是将数据和对数据的操作封装在一个类中,外部无法直接访问类的内部实现细节,只能通过类提供的接口访问和操作数据。

封装的优势包括:(1)提高代码的可维护性和可读性,减少代码的重复。

(2)保护数据的安全性和完整性,防止外部直接对数据进行非法操作。

(3)降低模块之间的耦合度,提高代码的灵活性。

4. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。

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

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。

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

面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。

A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是( )。

A. case for intB. default then whileC. bool class longD. goto return 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 -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是( )。

A. 0B. ‘0’C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。

A. 12B. 144C. 156D. 28813. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是( )。

A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )。

A. 15B. 26,15C. 15,26D. 2615. 设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为()。

A. 1B. 0C. 与x值相同D. 与x值相反16. x>0 && x<=10的相反表达式为()。

A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>1017. x>0 || y==5的相反表达式为()。

A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==518.设x和y均为bool量,则x && y为真的条件是( )。

A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假19.设x和y均为bool量,则x || y为假的条件是( )。

A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假20. 字符串”a+b=12\n”的长度为()。

A. 6B. 7C. 8D. 921. 假定下列x和y均为int型变量,则不正确的赋值为()。

A. x+=y++B. x++=y++C. x=++yD. ++x=++y22. 下列的符号常量定义中,错误的定义是()。

A. const M=10;B. const int M=20;C. const char ch;D. const bool mark=true;23. 循环语句“for(int i=0; i<n; i++) cout<<i*i<<’’;”中循环体执行的次数为( )。

A. 1B. n-1C. nD. n+124. 在下面循环语句中循环体执行的次数为()。

for(int i=0; i<n; i++)if(i>n/2) break;A. n/2B. n/2+1C. n/2-1D. n-125. 在下面循环语句中内层循环体S语句的执行总次数为()。

for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;A. n2B. (n+1)/2C. n(n-1)/2D. n(n+1)/226. 在下面循环语句中循环体执行的次数为()。

int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 727. 在下面循环语句中循环体执行的次数为()。

int i=0; do i++; while(i*i<10);A. 4B. 3C. 5D. 228. 当处理特定问题时的循环次数已知时,通常采用()来解决。

A. for循环B. while循环C. do循环D. switch语句29. 循环体至少被执行一次的语句为()。

A. for循环B. while循环C. do循环D. 任一种循环30. switch语句能够改写为()语句。

A. forB. ifC. doD. while31. do语句能够改写为()语句。

A. 复合B. ifC. switchD. while32. 在下面的一维数组定义中,哪一个有语法错误。

()A. int a[]={1,2,3};B. int a[10]={0};C. int a[];D. int a[5];33. 在下面的字符数组定义中,哪一个有语法错误。

()。

A. char a[20]=”abcdefg”;B. char a[]=”x+y=55.”;C. char a[15];D. char a[10]=’5’;34. 在下面的二维数组定义中,正确的是( )。

A. int a[5][];B. int a[][5];C. int a[][3]={{1,3,5},{2}};D. int a[](10);35. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。

A. 2B. 4C. 6D. 836. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。

A. 0B. 4C. 8D. 637. 若定义了函数 double *function(), 则函数function的返回值为()。

A. 实数型B.实数的地址C.指向函数的指针D.函数的地址38. 以下说法中正确的是()。

A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中39. 以下叙述中不正确的是()。

A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量40. 函数重载是指()。

A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同41. 以下关于函数模板叙述正确的是()。

A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型42. 下列()的调用方式是引用调用。

A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。

A. 内联函数B.重载函数C.递归函数D.函数模板44. 函数原型语句正确的是()。

A. int Function(void a);B.void Function (int);C. int Function(a);D.void int(double a);45. C++中函数返回值的类型是由()决定的。

A. return语句中表达式的类型B.该函数定义时的类型C.调用函数时的调用语句D.系统根据结果46. 以下函数的返回结果是()。

int function(char *x) {char *p=x; while(*p++); return(p-x-1);}A. 求字符串的长度B.将字符串x连接到字符串p后面C. 将字符串x复制到字符串p中D.将字符串x反向存放47. 函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )个。

A. 1B. 2C. 4D. 548. 设有如下函数定义int f(char *s) {char *p=s;while(*p!=’\0’) p++;return(p-s);}在主函数中用cout<<f(“good”)调用上述函数, 则输出结果为()。

A. 3B. 4C. 5D. 649. 以下正确的函数原型语句是( )。

A. double fun(int x,int y)B. double fun(int x;int y)C. double fun(int,int);D. double fun(int x,y);50. 以下正确的说法是()。

A. 用户调用标准库函数前,必须重新定义B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义C. 系统不允许用户重新定义标准库函数D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中51. 函数调用不可以()。

A. 出现在一个表达式中B. 出现在执行语句中C. 作为一个函数的实参D. 作为一个函数的形参52. 以下正确的描述是()。

A. 函数的定义可以嵌套,函数的调用不可以嵌套B. 函数的定义不可以嵌套,函数的调用可以嵌套C. 函数的定义和函数的调用均可以嵌套D. 函数的定义和函数的调用均不可以嵌套53. 若用数组名作为函数调用的实参,传递给形参的是()。

A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数54. 以下错误的描述是()。

相关文档
最新文档