Java程序设计基础

Java程序设计基础
Java程序设计基础

1.J ava程序及其执行过程

Java程序可分为二种类型:应用程序和小应用程序。应用程序指可以独立运行的计算机应用程序,小应用程序是指用Java语言开发的嵌在网页中运行的程序。

1.1 开发Java程序的工作流程

编辑阶段:

Java源程序的文本文件后缀一定是“.java”

一个Java程序可以包含多个类,一个源程序文本可以包含多个类,但是每个文件最多只能包含一个公共类,而且这个公共类必须与其所在的文件同名。成员方法main是所有Java应用程序执行的入口,但不是Java 小应用程序的入口。成员方法main必须同时含有public、static、void属性,这是Java语言所规定的。args是main方法的参数变量,String[]是参数变量args的数据类型,这里的参数类型是不可以修改的,可以修改参数变量名。

编译阶段:

编译命令javac J_helloJava.java

编译命令的文件名后缀一定是“.java”,编译之后生成J_helloJava.class

文件,J_helloJava.class是一个二进制文件。

执行阶段:

执行命令java J_HelloJava

程序名J_HelloJava一定不能含有任何后缀。

2. 结构化程序设计

Java语言总共有二类数据类型:基本数据类型和引用数据类型。基本数据类型总共有8种:布尔、字符、字节、短整数、整数、长整数、单精度浮点数和双精度浮点数。引用数据类型有4种:类、接口、枚举和数据。

结构化程序设计=数据+操作+流程控制+结构化程序设计方法

2.1 标识符和关键字

标识符用来标识文件名、变量名、类名、接口名和成员方法名。关键字是Java语言保留的一些英文单词,具有特殊的含义。

Java字符的集合是Unicode字符集,字符采用双字节表示。Java字母由Java字符集合构成,Java数字一切相当于“数字”的字符。但是,一般都采用ASCII字母(A-Z和a-z)和ASCII数字(0-9)。

标识符是由Java字母和Java数字组成的除关键字、false、true、null 之外的字符序列,而且其首字符必须是Java字母。

2.1.1 Unicode码元

Unicode码扩展自ASCII字元集。在严格的ASCII中,每个字元用7位元表示,或者电脑上普遍使用的每字元有8位元宽;而Unicode使用全16位元字元集。Unicode编码表采用16位bite,并采用十六进制表示表示字符及。编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode 编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode对汉字支持不怎么好。

2.2 基本数据类型、直接量和变量

2.2.1 基本数据类型

2.2.2 直接量

直接量是直接显式地表示基本数据类型数据、字符串值(String)和空引用值(null)的表达式,而且在该表达式中不含运算。

布尔直接量:

只有二个:true和false

字符直接量:

每个字符占2个字节,取值范围从0到66535。

①采用整数直接量写法:整数的取值范围从0到65535

②用单引号括起来的单个字符:‘a’,‘b’,‘猫’

③用单引号括起来的Unicode字符:‘\u0061’, ‘\u0051’和‘\u005a’。

由\u引导,\u后面是4位16进制的整数。

④用单引号括起来的转义字符。

字节、短整数和整数的直接量:

①十进制:由+、-、(0—9)组成的整数表示形式。

②八进制:由数字0引导,有+、-、(0—9)组成的整数表示形式。

③十六进制:由数字0x引导,有+、-、(0—9)组成的整数表示形式。长整数直接量:

在整数直接量写法后面加上L或l

单精度浮点数和双精度浮点数直接量:

①组成:十进制小数+指数+后缀

②十进制小数:由正号、负号、小数点、数字(0-9)组成,小数

点前面或后面可以没有数字,但不能同时没有数字。

③指数部分:可以没有,由e或E引导,而且指数只能是整指数。

④后缀:单精度后缀为字母f或F,双精度后缀为字母d或D。可

以省略后缀部分,此时表示的是双精度浮点数直接量。

字符串直接量:

由双引号括起来的Java字符序列。

直接量null:

是引用类型的数据,表示空的引用值,不指向任何对象。

2.2.3 变量

Java变量具有4个属性:变量名、数据类型、存储单元和变量值。每个变量拥有一个存储单元,存储单元的大小由其数据类型决定。在变量存储单元中存放的是该变量的变量值。

在Java程序中,在使用变量前,必须先定义该变量。

定义变量的格式:类型变量名或带初始化的变量名列表

如果含有多个变量名,则在相邻的变量名或带初始化的变量名之间采用逗号分隔开。

变量初始化:第一次给变量赋值,在使用变量之前要求初始化。

数据类型转换:

布尔类型与其他数据类型之间不可以相互转换,所以相互之间不存在强弱关系。字符类型数据与短整数类型数据之间可以进行数据类型转换,但没有强弱关系。字符类型数据与字节类型数据之间可以进行数据类型转换,但是没有强弱关系。

弱的数据类型数据一般可以直接转换为强的数据类型数据,称为隐式类型转换。将强的数据类型数据转换成为弱的数据类型数据称为强制类型转换。强制类型转换需要采用显示类型转换:在等号的右侧写上用圆括号括起来的转换之后的数据类型。

数据类型的强弱关系:byte

当从浮点类型数据到定点类型数据的强制类型转换时,一般将小数点后面的数据全部舍去。如果需要采用四舍五入的方式取整,可以用这种格式:(定点类型)(浮点类型表达式+0.5)

2.3 运算符

运算符个数分类:

一元运算符:+,-,++,--,!,~

二元运算符:%,+,-,*,/,<,<=,>,>=,==,!=,&&,&,||,|,^,>>,>>>,<<,=,+=,-=,*=,/=,&=,|=,%=,<<=,>>=,>>>=

三元运算符:?:

运算功能分类:

算术运算符:+,-,*,/,++,--,%

关系运算符:<,<=,>,>=,==,!=

布尔逻辑运算符:&&,&,||,|,!,^

位运算符:&,|,~,^,>>,>>>,<<

赋值类运算符:=,+=,-=,*=,/=,%=,&=,|=,<<=,>>=,>>>=

条件运算符:?:

2.3.1 算术运算符

++,--:前置运算是先运算,再使用操作数变量值;后置运算是先使用操作数变量值,再进行自增或自减运算。

取模运算:运算结果符号与第一个操作数符号相同。运算结果的绝对值一般小于第二个操作数的绝对值,并且与第一个操作数相差第二个操作数的整数倍。

算术运算符优先级:+、- < *、/、% <++、--

2.3.2 关系运算符

Java中建议一般不要直接比较两个浮点数是否相等。采用如下方式比较二个浮点数d1和d2是否相等:

((d2-epslion)

2.3.3 布尔逻辑运算

条件与(&&)和条件或(||)采用短路规则:运算时,根据第一个操作数进行判断,如果第一个操作数就能推出结果,那么就不会计算第二

个操作数。逻辑与(&)和逻辑或(|)不采用这一规则,第二个操作数一定会被计算。

2.3.4 位运算符

右移(>>)运算将第一个操作数表示成二进制补码形式,然后将二进制补码位序列右移第二个操作数指定的位数。右端移出的低位将自动被舍弃,左端的高位依次移入的是第一个操作数最高位的值。

无符号右移(>>>)运算与右移运算类似,只是将左端的高位依次移入0。

左移(<<)运算将第一个操作数的二进制补码位序列依次左移第二个操作数指定的位数,舍弃移除的高位,并在右端低位处补0。

按位异或运算的性质:设a和b是任意两个整数,则运算(a^b)^b 结果与a相同,(a^b)^a结果与b相同。

2.3.5 赋值类运算符

2.3.6 条件运算符

条件运算表达式的格式是:op1 ? op2 : op3

条件运算要求op1是一个布尔表达式。当op1的值为true时,条件运算的结果为表达式op2的值;否则,条件运算的结果为表达式op3的值。

2.4 控制结构

2.4.1 if语句和if-else语句

2.4.2 switch语句

switch(表达式){

case 值1:

语句组1

break;

case 值2:

语句组2

break;

case 值3:

语句组3

break;

default :

语句组(n+1)

}

2.4.3 for语句

2.4.4 while语句

2.4.5 do-while语句

2.4.6 break语句

break语句用在switch语句、循环语句和带标号的语句块中。带标号

的语句块定义格式有二种。

第一种:语句块标号:

{

语句组

}

第二种:语句块标号:

循环语句

在switch和循环语句中,break语句的格式是:break;程序会自动跳出这些语句或语句块。

在带标号的语句块中,break语句的格式是:break 语句块标号;2.4.7 continue语句

continue语句只能用在循环语句和带标号的循环语句中。

在循环语句中,continue语句的格式是:continue;在带标号的循环语句中,continue语句的格式是:continue 语句块标号;

3. 面向对象程序设计

应用面向对象语言求解问题的基本思路:1、分析问题并建立相应的对象。2、通过这些对象以及它们之间的配合解决问题,其中每个对象在计算机中占用一定的内存,同时能够完成一定的功能。

3.1 类、域、方法和实例对象

3.1.1类

类是实例对象的模板,类的定义格式:

[类修饰词列表] class 类名[extends 父类名][implements 接口名称列表] ①类修饰词列表:用来说明类的属性,包括0个、1个或多个类修饰词,

相邻修饰词之间用空格分隔开。

public:定义的类可以被Java的所有软件包使用。如果类修饰词列表中没有public关键字,则定义的类只能在当前的软件包中使用。

abstract:表示定义的类是一个抽象类。

final:表示定义的类不能用作父类。

strictfp:定义的类中各个浮点数的表示及其运算严格遵循IEEE754国际标准。

②类名:如果类修饰词列表中含有public属性,则该类名与其所在的文

件前缀同名。在同一个Java源文件中可以含有多个类,但不能包含两个或两个以上的具有public修饰词的类。

③extends 父类名:指定所定义类的父类,即所定义的类将具有其父类所

定义的一些属性和方法。如果类声明中没有这一项,则定义的类的父类是https://www.360docs.net/doc/915756098.html,ng.Object。

④implements 接口名称列表:表面定义的类是实现这些给定接口的类,

即定义的类将具有这些给定接口的属性和方法。如果存在多个接口,接口之间用空格分开。

3.1.2 域

通常用来表示和存储类所需要的数据,其格式为:

[域修饰词列表] 类型变量名或带初始化的变量名列表

如果带初始化的变量名列表中有多个变量,则每个变量之间采用逗号分隔开,有多少个变量名就代表着有多少个成员域,每个变量名对应一个成员域。带初始化的变量名包含赋值运算,等号左侧是变量名,等号右侧是一个表达式。

[域修饰词列表]通常包括:public、protected、private、static、final、transient和volatile。

public、protected、private不能同时存在,它们表示当前定义的成员域的访问控制属性,即当期成员域的应用范围。

static表示当前定义的成员域是静态的。

final要求成员域在首次赋值之后不能再修改该成员域的值。对于具有final和static属性的成员域,通常要求采用带初始化的变量名的形式定义;如果不带初始化,则该成员域的值通常只能为默认值。对于具有final属性而不具有static属性的成员域,除了采用带初始化的变量名的形式定义给该成员域赋初值之外,通常还可以在构造方法中给不带初始化的成员域进行一次赋值操作。

transient表明当前的成员域是一种暂时的成员域,即进行对象保存时可以不必保存当前成员域。

volatile主要用在多线程程序设计中,表明在访问当前成员域时将采用同步机制。

3.1.3 方法

用来实现类的各种功能,其格式为:

[方法修饰词列表] 返回类型方法名(方法的参数列表){

方法体

}

①返回类型:指定当前成员方法返回的数据的数据类型。可以是基本数

据类型,也可以是引用数据类型。如果方法不返回任何类型,则在返回类型处写上关键字void。

②参数列表:每个参数格式是类型参数变量名,类型可以是基本数据

类型或者引用数据类型,参数变量名可以是一个合法的标识符。如果在参数列表中包含多个参数,则在参数之间采用逗号分隔开。

③方法修饰词:public、protected、private、abstract、static、final、

synchronized、strictfp。

public、protected、private不能同时存在,表示当前定义的成员方法的访问控制属性,即当前成员方法的封装性。

abstract表明当前成员方法是抽象成员方法,抽象成员方法不能含有方法体,而且一般在抽象类或者接口中定义。

static表明当前定义的成员方法是静态的。

final:当前成员方法所在的类的子类中不能出现与当前成员方法相同的声明。

synchronized:当前成员方法是一种同步成员方法。

strictfp:当前成员方法中各个浮点数的表示及其运算严格遵守IEEE754标准。

3.1.4 构造方法

类的构造方法主要用来创建类的实例对象,通常同时完成新创建的实例对象的初始化。

定义构造方法的格式:

[构造方法修饰词列表]类名(方法的参数列表){

方法体

}

构造方法修饰词:用来说明构造方法的属性,通常包括public、protected、private。表示当前定义的构造方法的访问控制属性,即封装性。

构造方法具有以下3个特点:1、构造方法名必须与类名相同。2、构造方法不具有任何返回类型。3、任何一个类都有构造方法,如果没有显示地定义类的构造方法,则系统会为该类定义一个默认的构造方法,这个构造方法不含任何参数。一旦在类中定义了构造方法,系统不会再创建这个默认的不含参数的构造方法。

成员域、构造方法、成员方法在类体中出现的顺序是:先成员域,再构造方法,最后才是成员方法。而且,成员方法和构造方法可以同名,但是同名了的成员方法和构造方法,其参数列表一定不能相同,要不就是参数的个数不同,要不就是参数的类型不同(包括数据类型的排列顺序不同)。

3.1.5 实例对象

创建类的实例对象可以通过new运算符和类的构造方法,其格式为:new 构造方法名(构造方法调用参数列表)

构造方法参数列表由0个、1个或多个表达式组成,相邻两个表达式之间采用逗号分隔开,这些表达式分别称为构造方法的调用参数。

实例对象被创建后,在内存中就会占有一定的存储单元,在该存储单元中存储的是实例对象的非静态成员域等内容。

引用数据类型的变量的类型可以是某一个类,其定义的格式如下:类名变量名或带初始化的变量名列表;

引用数据类型变量具有4个基本属性:变量名、数据类型、存储单元和变量值。

变量名是a,数据类型是Integer,变量a有一定的存储单元,在存储单元中存放变量a的值(指向实例对象new Integer(11)的引用)。

类的实例对象的生命周期:

①创建

通过new运算符以及类的构造方法创建类的实例对象。首先,在内存中创建该实例对象,接着对该实例对象进行初始化工作,在初始化过程中,如果在成员域的定义中含有初始化的变量名,则首先运行在成员域的定义中的这些初始化赋值运算。然后运行相应的构造方法完成实例对象的初始化工作。

②使用

如果有引用指向该实例对象,则可以访问该实例对象的成员域和成员方法。访问成员域的格式:变量名.成员域名,访问成员方法的格式:变量名.成员方法名(成员方法调用参数列表)。

③废弃

对于一个实例对象,如果没有任何引用指向该实例对象,则该实例对象所占据的内存是不再被Java程序所用的内存,即垃圾。通过将引用赋值null,将实例对象变为垃圾。

④垃圾回收

基本原理:在适当的时机自动回收不再被Java程序所用的内存。在实例对象变为垃圾时,Java虚拟机一般不会立即回收该垃圾,而需要等到适当的时机才回收该垃圾。

调用System对象的gc()成员方法可以向Java虚拟机申请尽快的进行回收垃圾,但不能保证Java虚拟机会立即进行垃圾回收。

在实例对象所占据的内存即被回收之前,通常会调用该实例对象的finalize成员方法,finalize成员方法是https://www.360docs.net/doc/915756098.html,ng.Object的成员方法。但是,Java系统不能保证一定调用该方法。finalize成员方法相当于析构函数,而且析构从后往前析构。

3.2 继承性

类的定义格式:

[类修饰词列表] class 类名[extends 父类名] [implements 接口名称列表] {

类体

}

通过在关键字extends后面添加父类名,指定当前定义类的父类;在implements后面添加接口名称列表,指定当前定义的类所实现的各个接口;通过这样的方式,使得当前定义的类可以继承其父类或所实现接口的成员域或成员方法。如果没有extends关键字,则默认继承https://www.360docs.net/doc/915756098.html,ng.Object这个类。根据继承的传递性可以得知https://www.360docs.net/doc/915756098.html,ng.Object是除了其自身以外所有的类的父类。因为extends关键字中只能指定一个父类名,所有每个类有且仅有一个直接父类,可以有多个父类。

当前定义的类与其直接父类之间在构造方法方面存在约束关系,即当前定义的类的构造方法必须调用其直接父类的构造方法,而且调用该调用语句必须是当前定义的类的构造方法的第一条语句,其调用格式是:super(调用参数列表);关键字super指向直接父类的构造方法。如果,在当前类的构造方法中没有显示的写上调用父类构造方法的语句,则Java 虚拟机一般会自动的在当前定义的类构造方法的第一条语句之前自动、隐式的添加调用不含任何参数的直接父类构造方法的语句super(),前提是父类构造函数中必须有这样的无参数的构造函数。

子类型与父类型之间的类型转换:

①隐式类型转换:将类型为子类型的数据转换成为类型为其父类型的数

据。这时可以不需要强制类型转换运算符“()”。也可以加上强制类型转换运算符。

②显式类型转换:将类型为父类型的数据转换成为类型为子类型的数据。

这时需要加上强制类型转换符“()”。

下面的语句在编译的时候没有错误,但是在运行的时候会出现类型转换错误,因为无法从变量a所指向的实例对象中得到其子类J_Teacher的实例对象。

③如果二个类型之间不存在子类型与父类型之间的关系,则一般不能进

行类型转换。

子类型实例对象与父类型实例对象之间的关系:

子类的实例对象同时也是父类的实例对象,由父类构造方法创建的实例对象一般不是子类的实例对象。

使用instanceof运算符来判断一个引用表达式所指向的实例对象是否是某种引用类型的实例对象。

使用格式:引用类型表达式instanceof 引用类型运行结果返回一个布尔值,当引用类型表达式不是null并且所指向的实例对象是指定引用类型的实例对象时,返回true,否则返回false。

3.3 多态性

多态性是指在类定义中出现多个构造函数或出现多个同名的成员方法。对于同名的成员方法,多态性还包括在当前定义的类型中出现与父类型的成员方法同名的成员方法。多态性包括静态多态性和动态多态性二种。

《JAVA程序设计》试卷含答案

《JAVA 程序设计》试卷 《JAVA 程序设计》试卷 第1页,共6页 第2页,共6页 Java 程序设计 一、 填空题(要求将答案写在空白处,共11道小题,每空1分,共20分) 1、Java 的三大体系分别是______、______、______。 2、Java 程序的运行环境简称之为______。 3、Java 中的程序代码都必须在一个类中定义,类使用______关键字来定义。 4、布尔常量即布尔类型的两个值,分别是______和______。 5、在Java 中,byte 类型数据占______个字节,short 类型数据占______个字节,int 类型数据占______个字节,long 类型数据占______个字节。 6、若x = 2,则表达式 ( x + + )/3 的值是______。 7、若int a =2; a+=3;执行后,变量a 的值为______。 8、若int []a={12,45,34,46,23}; ,则a[2]= ______。 9、若int a[3][2]={{1,1},{2,2},{3,3}},则a[2][1]= ______。 10、 面向对象的三大特征是______、______和______。 11、 定义在类中的变量被称为______,定义在方法中的变量被称为______ 二、 选择题(将正确答案写在括号内,注意没有在题目中特别说明的均为单选题, 共10题,每题2分,共20分) 1、以下选项中,哪个用来编译源程序 A 、Javadoc B 、Java 运行工具 C 、Java 编译器 D 、Java 打包工具 2、Java 属于以下哪种语言? A 、机器语言 B 、 汇编语言 C 、高级语言 D 、以上都不对 3、下面哪种类型的文件可以在Java 虚拟机中运行? A 、.java B 、.jre C 、class D 、.exe 4、以下选项中,switch 语句判断条件可以接收的数据类型有哪些? (多选) A 、int B 、byte C 、char D 、short 5、假设int x = 2,三元表达式 x>0?x+1:5 的运行结果是以下哪一个? A 、0 B 、2 C 、3 D 、5 6、下面的运算符中,用于执行除法运算是哪个? A 、% B 、\ C 、/ D 、* 7、下列语句哪些属于循环语句?(多选) A 、for 语句 B 、if 语句 C 、while 语句 D 、switch 语句 8、下面哪种写法可以实现访问数组arr 的第1个元素? A 、arr[0] B 、arr(0) C 、arr[1] D 、arr(1) 9、以下哪个选项可以正确创建一个长度为3的一维数组? A 、 new int [2]; B 、 new int[3][]; C 、 new int[3]; D 、 以上答案皆不对 10、请先阅读下面的代码。 int x = 1; int y = 2; if (x % 2 == 0) { y++; } else { y--; } System.out.println("y=" + y); 上面一段程序运行结束时,变量y 的值为下列哪一项? A 、3 B 、2 C 、1 D 、switch 语句 三、程序阅读题(要求将分析结果写在答题纸上,共4道小题,每题5分,共20分) 阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。 代码一: public class Test01 {

java程序设计基础(第3版)实验指导答案 第三章

实验10 import java.util.*; public class shiyan10 { public static void main(String[] args) { int a=0,b=0,c=0,max=0; Scanner reader=new Scanner(System.in); System.out.println("从键盘输入第一个整数"); a=reader.nextInt(); System.out.println("从键盘输入第二个整数"); b=reader.nextInt(); System.out.println("从键盘输入第三个整数"); c=reader.nextInt(); if(a>b) max=a; else max=b; if(c>max) max=c; System.out.println("最大的数是"+max); } }//在程序中输入三个整数,比较它们的大小,输出最大的数 实验11 public class shiyan11 { public static void main(String[] args) { int s=0; for(int i=0;i<100;i++) { s=s+i; i++; } System.out.println("1+3+5+···+99="+s); } }//用for循环语句求1+3+5+···+99的值 实验12 import java.util.*; public class shiyan12 {

public static void main(String[] args) { int a=0,i=1,s=0; Scanner reader=new Scanner(System.in); while(a<50||a>100) { System.out.println("从键盘输入一个50~100的整数"); a=reader.nextInt(); } System.out.println("你输入的数是"+a); while(i<=a) { s=s+i; i++; } System.out.println("1+2+3+···+"+a+"="+s); } } //编写从键盘输入一个范围在50~100的整数,如果不正确,则继续输入;然后求1到输入整数的累加 实验13 public class shiyan13 { public static void main(String[]args) { int i=100,s=0; do { s=s+i; i--; } while(i>0); System.out.println("100+99+98+···+2+1="+s); } } //用do-while语句求100+99+···+2+1的值 实验14 import java.util.*; public class shiyan14 { public static void main(String[] args)

C++程序设计基础课后答案 第八章

8.1 阅读下列程序,写出执行结果 1.#include class Bclass { public: Bclass( int i, int j ) { x = i; y = j; } virtual int fun() { return 0 ; } protected: int x, y ; }; class Iclass:public Bclass { public : Iclass(int i, int j, int k):Bclass(i, j) { z = k; } int fun() { return ( x + y + z ) / 3; } private : int z ; }; void main() { Iclass obj( 2, 4, 10 ); Bclass p1 = obj; cout << p1.fun() << endl; Bclass & p2 = obj ; cout << p2.fun() << endl; cout << p2.Bclass :: fun() << endl; Bclass *p3 = &obj;

cout << p3 -> fun() << endl; } 2.#include class Base { public: virtual void getxy( int i,int j = 0 ) { x = i; y = j; } virtual void fun() = 0 ; protected: int x , y; }; class A: public Base { public: void fun() { cout<<"x = "<

for(int i=0;i

java程序设计基础实验27

实验27 类的构造方法1 实验要求:编写一个Java程序,在程序中定义Student类,Student类有三个构造方法,分别对不同的属性进行初始化 编写程序如下 class Student //定义类Student. { String name; int age; public Student() //定义无参的构造方法。 { System.out.println("Student()构造方法被调用"); } public Student(String c) //定义有一个参数的构造方法。 { name=c; System.out.println("Student(String newName)构造方法被调用"); } public Student(String a,int b) //定义有两个参数的构造方法。 { name=a; age=b; System.out.println("Student(String newName,intnewAge)构造方法被调用"); } public static void main(String[] args) { Student volu1=new Student(); //创建Student类的一个对象,不传入参数 Student volu2=new Student("张三"); //创建Student类的一个对象,传入一个参数:”张三” Student volu3=new Student("张三",15); //创建Student类的一个对象,传入两个参数:”张三”、15 } } 运行结果如下

程序分析如下: 程序中的Student类有三个构造方法,分别对不同的属性进行初始化。

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application得入口方法main()得检验: main()方法得参数名就是否可以改变? main()方法得参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法得参数名可以改变.(2)main()方法得参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译吗?如果能编译,能运行吗? 参考答案:当一个程序没有main()方法就是,就是可以编译通过得,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? bytei =127; bytej = 128; longl1 = 999999; long l2= 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与longl2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 =3、5; float f2 = 3.5f; 参考答案:java中浮点型得数据在不声明得情况下都就是double型得,如果要表示一个数据就是float型得,必须在数据后面加上“F”或“f”;因此,floatf1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型得,但就是int类型无法转换为char类型得;(2)int 可以转换为double类型得,但就是double类型无法转换为int 类型得。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1)4+5 == 6*2 ?(2) (4=5)/6?? (3)9%2*7/3>17(4)(4+5)<=6/3 ? (5) 4+5%3!=7-2????(6)4+5/6〉=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法得. 7、下列()就是合法得Java标识符。 (1)Counter1 ??(2)$index, (3) name-7 ??(4)_byte

《计算机程序设计基础》课后练习题参考答案

《计算机程序设计基础》课后练习题1 一.判断题 (1)(错)事件过程由某个用户事件或系统事件触发执行,但不能被其他过程调用。 (2)(错)若X=2, Y=5,则表达式 Y-2>X AND X+2>Y 的结果为:True。 (3)(错)常量是指在程序运行过程中其值可以改变的那些量。 (4)(错,timer没有)VB工具箱中的所有控件都具有宽度(Width)和高度(Height)属 性。 (5)(错)定义变量:Dim max,min as Single , 则max 和 min 的数据类型均为Single。 (6)(对)如果创建的菜单项的标题是一个减号“-”,则该菜单项显示为一条分隔线。 (7)(错)标准模块文件的扩展名是“*.VBP”。 (8)(错,都不能)定时器控件可以响应Click事件,但不能响应DbClick事件。 (9)(错)在默认情况下,数组下标下界的缺省值为1。 (10)(对)在使用字体对话框时,需要对其Flags属性先进行相应设置。 二.单选题 (11)在Visual Basic中,表示鼠标单击事件的是 C 。 A)Activate B)DoubleClick C)Click D)MouseDown (12)用于设置计时器时间间隔的属性是 A 。 A)Interval B)Name C)Left D)Top (13)函数Int(10*Rnd)是在 D 范围内的整数。 A)[1,10] B)[1,10] C) [0,9) D)[0,9] (14)Select case语句结构的结尾应使用 D 。 A)End B) End Case C) End Sub D) End Select (15)改变了容器的坐标系后,该容器的 A 属性值不会改变。 A)left B)scaleleft C)scaletop D)scalewidth (16)执行下列语句后,列表框中各表项顺序为 D List1.Clear For i=1 to 4 : List1.AddItem i-1,0 :Next i A)B)C)D) (17)输入对话框InputBox的返回值的类型是 A 。

Java程序设计实验报告分析

学生实验报告 (理工类) 课程名称: JAVA程序设计专业班级: 13电子信息工程(2)学生学号: 1305102056 学生姓名:许伟铭 所属院部:软件工程学院指导教师:王倩倩 20 15 ——20 16 学年第 2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:JAVA编程基础实验学时: 4 同组学生姓名:————实验地点: 1514/A203 实验日期: 2016.04.08 实验成绩: 批改教师:王倩倩批改时间:

一、实验目的和要求 (1)熟练掌握JDK1.7及Eclipse Kepler Service Release 1(下简称Eclipse)编写调试Java应用程序及Java小程序的方法; (2)熟练掌握Java应用程序的结构; (3)了解Java语言的特点,基本语句、运算符及表达式的使用方法; (4)熟练掌握常见数据类型的使用; (5)熟练掌握if-else、switch、while、do-while、for、continue、break、return 语句的使用方法; (6)熟练掌握数组和字符串的使用; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。 三、实验过程 (1)分别使用JDK命令行和Eclipse编译运行Java应用程序。记录操作过程。 Java应用程序参考如下: 思考:1. 适当添加注释信息,通过javadoc生成注释文档; 2. 为主方法传递参数“Hello world”字符串,并输出; 3. 压缩生成".jar"文件。 (2)分别使用JDK命令行和Eclipse编译Java Applet,并建立HTML文档运行该Applet。 记录操作过程。 Java小应用程序参考如下:

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.360docs.net/doc/915756098.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

Java程序设计(1)试卷(A)

学院 数计 卷教师 叶锋 系主任签名 制卷份数 专业 电信、通信、光电 班级编号 B07073011、07073021、07073031 江汉大学2009——2010学年第 1学期 考 试 试 卷 课程编号: 课程名称: JAVA 程序设计(1) 试卷类型: 卷 考试时间:120 分钟 一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题2分,共30分) 1、 一个Java 程序运行从上到下的环境次序是( C )。 A. 操作系统、Java 程序、JRE/JVM 、硬件 B. JRE/JVM 、Java 程序、硬件、操作系统 C. Java 程序、JRE/JVM 、操作系统、硬件 D. Java 程序、操作系统、JRE/JVM 、硬件 2、下面哪些是合法的标识符。(A ) A. persons B. 12345 C. *point D. this 3、以下说法正确的是( B )。 A.一个可直接运行的Java 源文件中可以有多个public 类,其中必须有一个和文件同名 B.一个可直接运行的Java 源文件中可以没有public 类 C.一个可直接运行的Java 源文件中只能有一个且和文件同名的public 类。 D. 一个可直接运行的Java 源文件中可以有多个public 类,且可以没有和文件同名的类。 4、在java 中定义常量的正确语法为( C )。 A . int value=20; B. const int V ALUE=20; C. final int V ALUE=20; D. int V ALUE=20; 5、下面代码的运行输出结果是( A )。 public class example { public static void main(String args[]) { int x=0; if (x>0) x=1; switch (x)

Visual Basic 程序设计基础教程-课后习题答案-范荣强

第一章程序与编程环境 一、填空题 1. 工程,Form_Load 2. 事件(触发) 3. 窗体,Name 4. CurrentX, CurrentY 5. maxButton, BorderStyle = 1 or 3 or 4 or 5 6. Alignment, 空缺,AutoSize 7. Style, LoadPicture 8. Line, Shape 9. 重画10. FillStyle ll. MultiLine, maxLength, Locked 12. Font 13. sub, 对象名,事件名14. 方法,Object.Method, text1.setfocus() 15. Name, minButtom, CurrentX(Y), Caption 16. Interval, Enable 17. timer, Interval, ms(毫秒) 18. Mouse Down, Click, LoastFocus 19. .Frm, .Frx, .bas. cls. Vbp 20. 注释, “Rem 语句”或者“’语句” 第二章数据的类型、表示以及运算 一、请指出下列哪些是VB的合法常量,并说明原因 (1)√(2)X 常量不能加类型说明符号改成123.4 (3)X与上题类似,如果是常量,则类型说明符放在后面(4)√等价于2E3 (5) √(6)√等于十进制的4113 (7)X 如果是16进制要写&符号(8)X 指数不能为小数(9)X 月份超过12,日超过31 (10)√(11)√(12)√等价于上一题(13)X 8进制数每一位不能超过8 (14)√(15)X 变量,常量要为基本数据类型的值(16)√ 二、找出合法变量 (1)√(2)√如果与控件Label1同在一个应用程序里面,该变量会屏蔽掉控件Label1 (3) X 保留字(4)√(5)X 变量不能以数字开头(6)变量不能有小数点 (7)√(8)√数组变量(9)X保留字(10)√可以,但rnd()不可以,rnd()是函数 (11) √(12)√(13)√(14)X ’符号表示注释(15)X 这是表达式,不是变量(16)X 同上,是表达式 三、指出下列数据x,y,z的声明是否正确,如果正确请指明其类型 (1)√ x--long, y—variant, z—integer (2) √ x—long, y—long, z—integer (3) √ x—double, y—double, z—integer (4) X 变量x &中间不能有空格 (5)√自动转换成字符串 (6)X 变量声明不能直接赋值 (7)√ (8)√自动转换成字符串 (9)X 常量不能把函数写上去 (10)√ 四、写出下列表达式的结果 (1)1 (2) 1 (3)false (4) ab12 (5)123 (6)出错,加法表达式中如果有一个是数值类型,则“+”表示加号,而不是字符的链接符号(7)False (8)true (9) true (10) false 默认转换成相同类型(数值),建议这里把2改成D试试 (P.S. 布尔类型TRUE = -1, FALSE = 0; 优先顺序:^(乘方)→-(求负)→*、/→\(整除)→MOD→+、-) 五、写出下列函数的结果

(程序设计基础JAVA)期末考试试卷

……………… …………………………密 ……………………封… …………………线………………………………………级号名班学姓《程序设计基础(java)》试题B 卷试卷说明:闭卷考试,时间120分钟。一、填空(本题共15空,每空2分,共30分)1.如果一个java 源程序文件中定义有4个类,使用sun 公司的JDK 编译器javac 编译该源程序文件将产生________个文件名与类名相同扩展名为_______的字节码文件。2.Java 中所有类都是类__Object__的子类。3.请填出在java .lang 包中与下列基本数据类型相对应的封装类:float :java .lang .Float ,char :_______,boolean :________。4.被关键字_________修饰的方法是不能被当前类的子类重新定义的方法5.线程的四种状态是_______、__、_、____。6.java 语言中_____是所有类的根。7.Swing 的事件处理机制包括___、事件和事件处理者。8.URL__________是的缩写。9.java 有两类应用程序java Application 和__________。10.转义字符以_____开头。二、选择(本题共20小题,每题2分,共40分)1.欲构造ArrayList 类的一个实例,此类继承了List 接口,下列哪个方法是正确的?()A 、ArrayList myList=new Object ();B 、List myList=new ArrayList ();C 、ArrayList myList=new List ();D 、List myList=new List ();2.paint()方法使用哪种类型的参数?()A 、Graphics B 、Graphics2D C 、String D 、Color 3.指出正确的表达式()A 、byte=128;B 、Boolean=null;C 、long l=0xfffL;D 、double=0.9239d;4.指出下列程序运行的结果()public class Example{String str=new String("good");char[]ch={'a','b','c'};public static void main(String args[]){Example ex=new Example();ex .change(ex .str,ex .ch);System .out .print(ex .str+"and ");Sytem .out .print(ex .ch);}public void change(String str,char ch[]){ch[0]='g';}}B 、good and abc B 、good and gbc C 、test ok and abc D 、test ok and gbc 5.运行下列程序,会产生什么结果()public class X extends Thread implements Runable{public void run(){System .out .println("this is run()");}public static void main(String args[]){Thread t=new Thread(new X());t .start();}}A 、第一行会产生编译错误B 、第六行会产生编译错误C 、第六行会产生运行错误D 、程序会运行和启动6.要从文件"file .dat"文件中读出第10个字节到变量C 中,下列哪个方法适合?()A 、FileInputStream in=new FileInputStream("file .dat");in .skip(9);int c=in .read();B 、FileInputStream in=new FileInputStream("file .dat");in .skip(10);int c=in .read();C 、FileInputStream in=new FileInputStream("file .dat");int c=in .read();D 、RandomAccessFile in=new RandomAccessFile("file .dat");in .skip(9);int c=in .readByte();7.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?()A 、CardLayout B 、FlowLayout C 、BorderLayout D 、GridLayout 8.给出下面代码:public class Person{static int arr[]=new int[10];public static void main(String a[]){System .out .println(arr[1]);}}那个语句是正确的?()A 、编译时将产生错误;B 、编译时正确,运行时将产生错误;C 、输出零;D 、输出空。9.下列那个是反斜杠的正确表示?()A 、\\B 、*\\C 、\’D 、\’\’10.下列哪些语句关于内存回收的说明是正确的?()A 、程序员必须创建一个线程来释放内存;题号一二三四五六七八九总分得分得分得分

java实验报告1(程序设计基础)

2012—2013学年第 1 学期 合肥学院数理系 实验报告 课程名称:《面向对象程序设计》 实验项目:程序设计基础 实验类别:综合性□设计性□验证性√ 专业班级:10信息与计算科学班 姓名:学号: 实验地点:校内机房 实验时间:2012.10.22 —2012.10.28 指导教师:钱泽强成绩:

一、实验目的 熟悉Java的编程环境;通过编程掌握Java程序的调试;提高学生的分析问题、解决问题的能力;理解Java语言的基本结构和程序设计方法。 二、实验内容 1、安装并配置JDK,使用Eclipse创建Java程序,并调试运行; 2、了解 Java Application应用程序和Java Applet程序; 3、通过编程掌握Java的基本,并提高分析问题和解决问题的能力。 三、实验方案(程序设计说明) [题目1] 安装Eclipse并配置JDK。 [题目2] 使用Eclipse创建Application程序,并调试运行。 public class test1 { public static void main(String []args) { System.out.println("hello"); } } [题目3] 在Eclipse中创建Applet程序并调试运行。 import java.awt.*; import java.applet.*; public class test2 extends Applet { public void paint(Graphics g) { g.drawString("hello",20,20);} } [题目4] 掌握输入和输出,编写程序求任意两个实型数据的和。 [题目5] 掌握数组的使用,编写程序求一组整型数据的最大值。 四、实验程序和运行结果 请附页记录正确的源程序 五、实验总结 六、教师评语及成绩

相关文档
最新文档