面向对象程序设计综合练习题
面向对象程序设计习题库
面向对象程序设计习题库选择题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__。
JAVA面向对象程序设计练习题目题目
public class B{ public static void main(String[] args){ } } (A)只有 B.class 文件 (B)只有 A1.class 和 A2.class 文件 (C)编译不成功 (D)A1.class、A2.class 和 B.class 文件 11.下列( )是合法的标识符? (A)12class (B)void (C)-5 (D)_blank 12.下列( )不是 Java 中的保留字? (A)if (B)sizeof (C)private (D)null 13.下列( )不是合法的标识符? (A)$million (B)$_million (C)2$_million (D)$2_million 14.下列选项中, ( )不属于 Java 语言的基本数据类型? (A)整数型 (B)数组 (C)浮点型 (D)字符型 15.下列关于基本数据类型的说法中,不正确的一项是( ) 。 (A)boolean 类型变量的值只能取真或假 (B)float 是带符号的 32 位浮点数 (C)double 是带符号的 64 位浮点数 (D)char 是 8 位 Unicode 字符 16.下列关于基本数据类型的取值范围的描述中,正确的一个是( ) 。 (A)byte 类型的取值范围是-128~128 (B)boolean 类型的取值范围是真或假 (C)char 类型的取值范围是 0~65536 ( D ) short 类 型 的 取 值 范 围 是 -32767 ~ 32767 17.下列关于 Java 语言简单数据类型的说法中,正确的一项是( ) 。 (A)以 0 开头的整数代表 8 进制整型常量 (B)以 0x 或 0X 开头的整数代表 8 进制整型常量 (C)boolean 类型的数据作为类成员变量的时候,相同默认的初始值为 true (D)double 类型的数据占计算机存储的 32 位 18.下列 Java 语句中,不正确的一项是( ) 。 (A)int e, a, b = 10; (B)char c, d = ‘a’; (C)float e = 0.0d; (D)double c = 0.0f; 19.在编写 Java 程序时,如果不为类的成员变量定义初始值,Java 会给出它们的默认值, 下列说法中不正确的一个是( ) 。 (A)byte 的默认值是 0 (B)boolean 的默认值是 false (C)char 类型的默认值是’\0’ (D)long 类型的默认值是 0.0L 20.下列语句中不正确的一个是( ) 。 (A)float f = 1.1f; (B)byte b = 128; (C)double d = 1.1/0.0; (D)char c = (char)1.1f; 21.下列表达式 1+2+ "aa"+3 的值是( ) 。 (A)"12aa3" (B)"3aa3 " (C)"12aa" (D)"aa3" 22.已知 y=2, z=3, n=4,则经过 n=n+ -y*z/n 运算后 n 的值为( ) 。 (A)3 (B)-1 (C)-12 (D)-3 33.已知 a=2, b=3,则表达式 a%b*4%b 的值为( ) 。 (A)2 (B)1 (C)-1 (D)-2
学堂在线《面向对象程序设计C++》习题
学堂在线《面向对象程序设计C++》习题(作业部分)作业一多选题(2分)C++源程序不能直接运行,需要经过如下哪些步骤,才能得到可以运行的程序?A.编译器B.链接器C.汇编器D.编辑器正确答案:AB判断题(1分)C++源程序必须使用两个以上的文件来存放,才能编译链接成可执行程序。
正确答案:×多选题(2分)关于main()函数的参数,以下说法正确的是A.不使用参数也是允许的B.若带参数,则第一个参数是整数类型C.若带参数,则第二个参数是字符串数组D.参数名称只能使用argc和argv正确答案:ABC多选题(2分)为防止头文件重复包含,以下书写错误的是A.错误B.错误C.错误D.错误正确答案:ABCD作业二多选题(2分)下列哪些语句可以完成对数组的初始化A.char name[10] = "THU OOP";B.char course[4] {'O', 'O', 'P'};C.int year[5] {2016, 2017, 2018};D.int score[] = {60, 80, 90};正确答案:ABCD多选题(2分)下列哪些写法不正确A.int* ptr = new int;B.int* ptr = new int(3);C.int * ptr = new int[3];D.int* ptr = new int{3};E.int* ptr = new[] int;F.int ** ptr = new int[4][5];正确答案:EF多选题(2分)下列关于for循环语句的写法,正确的是:A.第1句B.第2句C.第3句D.第4句正确答案:ABCD判断题(1分)函数重载时,函数名必须一样,函数参数必须不同,至于函数返回值类型,则没有限定。
正确答案:√单选题(1分)以下关于函数参数缺省值的说法,正确的是:A.当有多个函数参数时,任意一个都可以设置缺省值B.若只有一个参数,则不能设置缺省值C.只有整数参数才能设置缺省值D.仅允许从函数参数列表的最后一个开始依次设置缺省值(一个或多个)正确答案:D判断题(1分)函数返回类型,既可以放在函数名前面(左边),也可以使用追踪返回类型的语法放到函数名的后面(右边)正确答案:√多选题(2分)关于类成员的访问权限,以下说法正确的是:A.访问权限可以成组设置B.相同权限的成员,可以共用一个权限设置C.同一权限说明不能出现多次D.private必须在public之前出现正确答案:AB单选题(1分)下列关于私有成员的说法,正确的是A.即使是类的成员函数,也不能访问私有成员B.对象通过成员操作符,是可以访问自己隐藏的私有成员的C.私有数据只能被私有成员函数访问,不能被公有成员函数访问D.私有数据成员不能与公有数据成员同名正确答案:D多选题(2分)关于类的成员函数定义,以下说法正确的是:A.既可以放在类中定义,也可以放在类外定义B.在类外定义时,函数名前要加”类名::“进行限定C.只有私有成员函数才能在类中进行定义D.私有成员函数只能在定中进行定义正确答案:AB判断题(1分)所谓this指针,只是一种概念,是为了帮助我们理解类的运作方式而引入的,实际上在成员函数的参数列表中并没有这种变量被传入。
面向对象 练习题
面向对象练习题面向对象练习题面向对象编程是一种常用的编程范式,它将程序设计问题分解成一系列的对象,每个对象都有自己的属性和方法。
面向对象编程的核心思想是把现实世界中的事物抽象成程序中的对象,并通过对象之间的交互来解决问题。
为了提升对面向对象编程的理解和掌握,下面将给出一些面向对象编程的练习题。
1. 设计一个汽车类,要求具有以下属性和方法:- 属性:品牌、颜色、价格- 方法:启动、加速、刹车、熄火2. 设计一个学生类,要求具有以下属性和方法:- 属性:姓名、年龄、性别、成绩- 方法:学习、休息、考试、查看成绩3. 设计一个图书类,要求具有以下属性和方法:- 属性:书名、作者、出版社、价格- 方法:借阅、归还、查看借阅状态、查看图书信息4. 设计一个银行账户类,要求具有以下属性和方法:- 属性:账户名、账号、余额- 方法:存款、取款、查询余额、转账5. 设计一个矩形类,要求具有以下属性和方法:- 属性:宽度、高度- 方法:计算面积、计算周长、判断是否为正方形这些练习题涵盖了面向对象编程中常见的概念和操作。
通过解答这些题目,可以加深对面向对象编程的理解,并提升对类、对象、属性和方法的使用熟练度。
在解答这些题目时,可以先思考每个类应该具有哪些属性和方法,然后根据需求进行实现。
可以使用任何编程语言来完成这些练习题,但建议使用面向对象编程语言如Java、Python等。
除了以上的练习题,还可以尝试设计更复杂的类和对象,如实现一个电商平台的商品类、用户类和订单类,或者实现一个图形界面的计算器类。
通过不断练习和实践,可以逐渐掌握面向对象编程的技巧和思维方式。
总之,面向对象编程是一种重要的编程范式,掌握它对于提升编程能力和解决实际问题非常有帮助。
通过解答上述练习题,可以加深对面向对象编程的理解和掌握,为以后的编程工作打下坚实的基础。
希望大家能够充分利用这些练习题,不断提升自己的编程能力。
面向对象程序设计习题及答案
面向对象程序设计一、选择填空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 )是正确的。
面向对象程序设计期末综合练习1(单选题)
面向对象程序设计期末综合练习一(单选题)单选题1.C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik4.编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5.以下说法中正确的是( B )。
A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中6.以下叙述中不正确的是( C )。
A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量7.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( B )。
A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录8.当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是( A )。
A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录9.预处理命令在程序中都是以( B )符号开头的。
A. *B. #C. &D. @10.用new运算符创建一个含10个元素的一维整型数组的正确语句是( C )。
A. int *p=new a[10];B. int *p=new float[10];C. int *p=new int[10];D. int *p=new int[10]={1,2,3,4,5}11.假定变量m定义为“int m=7;”,则定义变量p的正确语句为(B )。
面向对象程序设计模拟练习题(含答案)
面向对象程序设计模拟练习题(含答案)一、单选题(共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)一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2 分,共40 分)1.C++ 对C 语言作了许多改进,即从面对过程变成为面对对象的主要缘由是( )A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必需用原型D. 引进了类和对象的概念2. 下列符号不能组成标识符的是( )A. 连接符B. 下划线C. 大小写字母D. 数字字符3. 类型修饰符unsigned 不能修饰( )A. charB. intC. long intD. float4. 在int a=3,int *p=&a ;中,*p 的值是( )A. 变量a 的地址值B. 无意义C. 变量p 的地址值D.35. 下列关于指针的操作中,错误的是( )A. 两个同类型的指针可以进行比较运算B. 可以用一个空指针赋给某个指针C. 一个指针可以加上两个整数之差D. 两个同类型的指针可以相加6. 重载函数在调用时选择的依据中,错误的是( )A. 函数的参数B. 参数的类型C. 函数的名字D. 函数的类型7. 一个函数功能不太困难,但要求被频繁调用,选用( )A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数8. 下列不是描述类的成员函数的是( )A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数9. 构造函数不具备的特征的是( )A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必需指定类型说明10. 通常,拷贝构造函数的参数是( )A. 某个对象名B. 某个对象的成员名C. 某个对象的引用名D. 某个对象的指针名11. 继承机制的作用是( )A. 信息隐藏B. 数据封装C. 定义新类D. 数据抽象12. 类的析构函数的作用是( )A. 一般成员函数B. 类的初始化C. 对象的初始化D. 删除对象创建的全部对象13. 类的析构函数是在( ) 调用的。
《面向对象程序设计》习题
《面向对象程序设计》习题一、单项选择题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=⁣D、int *const cpi=⁣E、const int *const cpic= ⁣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、关于以下程序段中语法错误的正确描述是( )。
面向对象程序设计综合练习题
面向对象程序设计综合练习题一、单项选择题1-1.C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是( B )。
A.面向过程 B.面向对象 C.安全性 D.复用性 1-2. C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik1-3.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cpp B. exe C. obj D. lik1-4.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cpp B. exe C. obj D. lik1-5.编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接1-6.用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车1-7.C++中声明常量的关键字是( A )。
A.const B.extern C.public D.enum 1-8.以下叙述中正确的是( B )A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C.在程序中使用内置函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值1-9.下列的符号常变量定义中,错误的定义是( C )。
A.const M=10; B.const int M=20;C.const char ch; D.const bool mark=true; 1-10.函数原型语句正确的是( B )。
A.int Function(void a) B.void Function (int); C.intFunction(a); D.void int(double a); 1-11.以下正确的函数原型语句是( C )。
面向对象的程序设计试题库
面向对象的程序设计一、单项选择题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++ 语言中的()机制,可以从现存类中构建其子类。
《JAVA面向对象程序设计》练习题-参考答案
《JAV A语言程序设计》练习题 1一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3 ,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、为AB 类的一个无形式参数无返回值的方法method 书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。
public class test {static int i;public int aMethod() {i++;return i;}public static void main (String args[]) {Test test=new Test() ;test.aMethod () ;System.out.println (test.aMethod()) ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java 的基本数据类型中,char 型采用Unicode 编码方案,每个Unicode 码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
3、设x = 2 ,则表达式( x + + ) /3 的值是0 。
《面向对象程序设计(Java)》综合练习题
《面向对象程序设计(Java)》综合练习题一、判断题1、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
2、对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
3、有的类定义时可以不定义构造函数,所以构造函数不是必需的。
4、类及其属性、方法可以同时有一个以上的修饰符来修饰。
5、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点.6、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
7、final类中的属性和方法都必须被final修饰符修饰。
8、最终类不能派生子类,最终方法不能被覆盖。
9、子类要调用父类的方法,必须使用super关键字。
10、一个Java类可以有多个父类。
11、创建新的类对象用new,回收无用的类对象用free。
12、虽然有的类定义时可不定义构造函数,但构造函数是必需的。
13、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。
14、final类中的属性和方法都必须被final修饰符修饰。
15、子类要调用父类的方法,不必用super关键字。
16、如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。
17、当一个方法在运行过程中产生一个异常,则这个方法会终止,但整个程序不一定终止运行。
18、用+可以实现字符串的拼接,用-可以从一个字符串中去除一个字符子串。
19、设String对象s=”Hello”,运行语句System.out.println(s.concat(“w orld!”));后String对象s的内容为”Hello world!”,所以语句输出为:Hello world!20、一个容器中可以混合使用多种布局策略。
参考答案:1、×2、×3、×4、√5、×6、×7、×8、√9、×10、×11、×12、√13、×14、×15、√16、×17、√18、×19、×20、√二、单选题1、关于被私有访问控制符private修饰的成员变量,以下说法正确的是()A、可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B、只能被该类自身所访问和修改C、只能被同一个包中的类访问D、可被两种类访问和引用:该类本身、该类的所有子类2、下列关于修饰符混用的说法,错误的是()A、static方法中能处理非static的属性B、abstract方法必须在abstract类中C、abstract类中不可以有private的成员D、abstract不能与final并列修饰同一个类3、容器Panel和Applet缺省使用的布局编辑策略是()A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout4、main方法是Application的入口点,以下main方法的方法头合法的是()A、public static void main( )B、public static int main(String[ ] args)C、public static void main(String[ ] arg)D、public void main(String arg[ ])5、以下代码段执行后的输出结果为()int x=3; int y=10; System.out.println(y%x);A、0B、1C、2D、36、编译运行以下程序后,关于输出结果的说明正确的是()public class Conditional{public static void main(String args[ ]){int x=4;System.out.println(“value is “+ ((x>4) ? 99.9 : 9));}}A、输出结果为:value is 99.99B、输出结果为:value is 9C、输出结果为:value is 9.0D、编译错误7、以下声明合法的是()A、public final static native int w( );B、default String s;C、abstract final double hyperbolicCosine( );D、abstract double d;8、关于以下程序代码的说明正确的是()1.class HasStatic{2.private static int x=100;3.public static void main(String args[ ]){4.HasStatic hs1=new HasStatic( );5.hs1.x++;6.HasStatic hs2=new HasStatic( );7.hs2.x++;8.hs1=new HasStatic( );9.hs1.x++;10.HasStatic.x- -;11.System.out.println(“x=”+x);12.}13.}A、5行不能通过编译,因为引用了私有静态变量B、10行不能通过编译,因为x是私有静态变量C、程序通过编译,输出结果为:x=102D、程序通过编译,输出结果为:x=1039、类Test1定义如下:1.public class Test1{2.public float aMethod(float a,float b){ }3.4.}将以下哪种方法插入行3是不合法的()A、public float aMethod (float a,float b,float c) { }B、p ublic float aMethod (float c,float d) { }C、p ublic int aMethod (int a,int b) { }D、private float aMethod (int a,int b,int c) { }10、关于以下程序段,正确的说法是()1.String s1=”abc” + ”def”;2.String s2=new String(s1);3.if (s1= =s2)4.System.out.print ln(“== succeeded”);5.if (s1.equals(s2))6.System.out.println(“.equals() succeeded”);A、行4与行6都将执行B、行4执行,行6不执行C、行6执行,行4不执行D、行4、行6都不执行11、被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是()A.可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问12、以下标识符中哪项是不合法的()A、BigMeaninglessNameB、$intC、3kuD、$113、执行完以下代码int [ ] x = new int[25];以下哪项说明是正确的()A、x[24]为0B、x[24]未定义C、x[25]为0D、x[0]为空14、以下哪个表达式是不合法的()A、String x=”Hello”; int y=9; x+=y;B、String x=”Hello”; int y=9; if(x= =y) { }C、String x=”Hello”; int y=9; x=x+y;D、String x=null; int y=(x!=null)&&(x.length>0) ? x.length : 015、一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可不相同。
面向对象程序设计习题
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. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
完面向对象程序设计期末综合练习二(填空题)
面向对象程序设计期末综合练习二(填空题)填空题1. C++语言是在_________语言的基础上发展起来的。
2. C++语言的编译单位是扩展名为__________的__________文件。
3. 行尾使用注释的开始标记符为__________。
4. 多行注释的开始标记符和结束标记符分别为__________和__________。
5. 用于输出表达式值的标准输出流对象是_________。
6. 用于从键盘上为变量输入值的标准输入流对象是________。
7. 一个完整程序中必须有一个名为________的函数。
8. 一个函数的函数体就是一条_________语句。
9. 当执行cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。
10. 在C++程序中包含一个头文件或程序文件的预编译命令为__________。
11. 程序中的预处理命令是指以______字符开头的命令。
12. 一条表达式语句必须以______作为结束符。
13. 在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。
14. 使用#include 命令可以包含一个头文件,也可以包含一个______文件。
15.一个函数定义由________和________两部分组成。
16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。
17.C++头文件和源程序文件的扩展名分别为______和______。
18.程序文件的编译错误分为________和________两类。
19.当使用_______保留字作为函数类型时,该函数不返回任何值。
20.当函数参数表用______保留字表示时,则表示该参数表为空。
21.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。
面向对象程序设计练习题——西安交通大学网络教育学院
2019年春季《面向对象程序设计》在线作业一、单选题(共50 道试题,共100 分。
)V 1. 在创建派生类对象时,构造函数的执行顺序是()。
A. 对象成员构造函数、基类构造函数、派生类本身的构造函数;B. 派生类本身的构造函数、基类构造函数、对象成员构造函数;C. 基类构造函数、派生类本身的构造函数、对象成员构造函数;D. 基类构造函数、对象成员构造函数、派生类本身的构造函数。
正确答案:D 满分:2 分2. 下列对引用的陈述中错误的是()。
A. 每一个引用都是其所引用对象的别名,因此必须初始化;B. 形式上针对引用的操作实际上作用于它所引用的对象;C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行;D. 不需要单独为引用分配存储空间。
正确答案:B 满分:2 分3. 一个类的构造函数为“B(int ax, int bx): a(ax), b(bx) {}”,执行“B x(1,2),y(3,4);x=y;”语句序列后x.a的值为()。
A. 1B. 2C. 3D. 4正确答案:C 满分:2 分4. 下列说法不正确的是( )。
A. 在类中,成员的默认访问特性是私有的。
B. 类封装了数据和操作。
C. 类实质上是一种数据类型。
D. 在类的定义中,必须包含private、publiE. protected三种存取方式对应得部分。
正确答案:D 满分:2 分5. 基类A中有成员函数fn1()、fn2(),在派生类B中重载了成员函数fn1()(即重新定义了fn1()),但没有重载其成员函数fn2()。
如果在派生类B中调用基类A的成员函数fn1()(不是B中重载的数fn1())和fn2(),则正确的方式是()。
A. A::fn1()和fn2();B. fn1()和A::fn2();C. A::fn1()和A::fn2();D. fn1()和fn2();正确答案:A 满分:2 分6. 下面是五条顺序出现的声明语句,非法的初始化语句是( )。
面向对象程序设计习题
⾯向对象程序设计习题选择题1. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符2. 为了提⾼程序的运⾏速度,可将不太复杂的功能⽤函数实现,此函数应选择()。
A. 内联函数B.重载函数C.递归函数D.函数模板3. 将两个字符串连接起来组成⼀个字符串时,选⽤()函数。
A. strlen()B. strcap()C. strcat()D. strcmp()4. 对于任⼀个类,⽤户所能定义的析构函数的个数⾄多为( )。
A. 0B. 1C. 2D. 任意个5. 对类中引⽤成员的初始化是通过构造函数中给出的( )实现的。
A. 函数体B. 参数表C. 初始化表D. 初始化表或函数体6. 假定AB为⼀个类,则执⾏“AB x(a,5);”语句时将⾃动调⽤该类的( )。
A. 带参构造函数B. ⽆参构造函数C. 拷贝构造函数D. 赋值重载函数7. 对于任⼀个类,⽤户所能定义的析构函数的个数⾄多为( )。
A. 0B. 1C. 2D. 任意个8. ⽤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}9. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为()。
A. pb=b;B. pb=&b[0];C. pb=new int;D. pb=b[5];10. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符11. 为了提⾼程序的运⾏速度,可将不太复杂的功能⽤函数实现,此函数应选择()。
A. 内联函数B.重载函数C.递归函数D.函数模板12. 将两个字符串连接起来组成⼀个字符串时,选⽤()函数。
A. strlen()B. strcap()C. strcat()D. strcmp()13. ⽤new运算符创建⼀维整型数组的正确语句是__________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计综合练习题一.单项选择题1.C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik4.编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5.以下标识符中不全是保留字的是(B )。
A. case for intB. default then whileC. bool class longD. goto return char6.能作为C++程序的基本单位是( C )。
A. 字符B. 语句C. 函数D. 源程序文件7.程序中主函数的名字为(A )。
A. mainB. MAINC. MainD. 任意标识符8.C++程序的基本模块为( D )。
A. 表达式B. 标识符C. 语句D. 函数9.可用作C++语言用户标识符的一组标识符是( B )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10.存储以下数据,占用存储字节最多的是( D )。
A. 0B. ‘0’C. “0”D. 0.011.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12.设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。
A. 12B. 144C. 156D. 28814.设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( C )。
A. 15B. 26,15C. 15,26D. 2615.设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为( C )。
A. 1B. 0C. 与x值相同D. 与x值相反16.x>0 && x<=10的相反表达式为( A )。
A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>1017.x>0 || y==5的相反表达式为( B )。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==518.设x和y均为bool量,则x && y为真的条件是( A )。
A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假19.设x和y均为bool量,则x || y为假的条件是( C )。
A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假20.字符串”a+b=12\n”的长度为( B )。
A. 6B. 7C. 8D. 921.假定下列x和y均为int型变量,则不正确的赋值为( B )。
A. x+=y++B. x++=y++C. x=++yD. ++x=++y22.下列的符号常量定义中,错误的定义是( C )。
静态变量定义时就要赋值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<<’’;”中循环体执行的次数为( C )。
A. 1B. n-1C. nD. n+124.在下面循环语句中循环体执行的次数为( B )。
for(int i=0; i<n; i++)if(i>n/2) break;A. n/2B. n/2+1C. n/2-1D. n-125.在下面循环语句中内层循环体S语句的执行总次数为( D )。
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.在下面循环语句中循环体执行的次数为( C )。
int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 727.在下面循环语句中循环体执行的次数为( A )。
int i=0; do i++; while(i*i<10);A. 4B. 3C. 5D. 228.当处理特定问题时的循环次数已知时,通常采用( A )来解决。
A. for循环B. while循环C. do循环D. switch语句29.循环体至少被执行一次的语句为( C )。
A. for循环B. while循环C. do循环D. 任一种循环30.switch语句能够改写为( B )语句。
A. forB. ifC. doD. while31.do语句能够改写为( D )语句。
A. 复合B. ifC. switchD. while32.. 在下面的一维数组定义中,哪一个有语法错误。
( C )A. int a[]={1,2,3};B. int a[10]={0};C. int a[];D. int a[5];33.在下面的字符数组定义中,哪一个有语法错误。
( D )。
A. char a[20]=”abcdefg”;B. char a[]=”x+y=55.”;C. char a[15];D. char a[10]=’5’;35.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( C )。
A. 2B. 4C. 6D. 836.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( A )。
A. 0B. 4C. 8D. 637.若定义了函数double *function(), 则函数function的返回值为( B )。
A. 实数型B.实数的地址C.指向函数的指针D.函数的地址38.以下说法中正确的是( B )。
A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中39.以下叙述中不正确的是( C )。
A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量40.函数重载是指( A )。
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);51.函数调用不可以()。
A. 出现在一个表达式中B. 出现在执行语句中C. 作为一个函数的实参D. 作为一个函数的形参52.以下正确的描述是()。
A. 函数的定义可以嵌套,函数的调用不可以嵌套B. 函数的定义不可以嵌套,函数的调用可以嵌套C. 函数的定义和函数的调用均可以嵌套D. 函数的定义和函数的调用均不可以嵌套53.若用数组名作为函数调用的实参,传递给形参的是()。
A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数54.以下错误的描述是()。
A. 被调用函数中可以不用return语句B. 被调用函数中可以用多个return语句C. 被调用函数中,如果有返回值,就一定要有return语句D. 被调用函数中,一个return语句可返回多个值给调用函数55.以下正确的描述是()。
A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置参数的默认值时,应该设置右边的参数D. 设置参数的默认值时,应该全部参数都设置56.采用重载函数的目的是()。
A. 实现共享B. 减少空间C. 提高速度D. 使用方便,提高可读性57.将两个字符串连接起来组成一个字符串时,选用()函数。