java程序设计基础(第3版)实验指导答案 第三章
- 格式:doc
- 大小:39.50 KB
- 文档页数:4
Java语言程序设计第三版(谭浩强主编)课后答案下载Java语言程序设计第三版(谭浩强主编)课后答案下载《Java语言程序设计(第3版)》是2021年清华大学出版社出版的图书。
以下是由阳光网我整理关于Java语言程序设计第三版(谭浩强主编)课后答案下载地址,盼望大家喜爱!点击进入:Java语言程序设计第三版(谭浩强主编)课后答案下载地址Java语言程序设计第三版(谭浩强主编)图书简介Java是近年来十分流行的程序设计语言,又是一门通用的网络编程语言,在Internet上有着广泛的应用。
本书全面介绍了Java语言的功能和特点,主要内容包括Java语言基础学问、Java语法构成、面向对象编程技术、常用系统类的使用、图形用户界面设计、图形处理、多媒体处理、异样处理、多线程技术和访问数据库技术等内容。
本书以通俗易懂的语言介绍了大量的实例,从有用的角度解释了Java面向对象编程思想,介绍了Java编程技巧。
本书不仅适合没有编程阅历的读者学习,也适合有肯定程序语言基础的读者自学,本书可作为高等院校或计算机培训班的教材。
Java语言程序设计第三版(谭浩强主编)图书名目第1章Java语言概述1.1Java的起源1.2Java语言的特点1.3Java的运行机制1.4程序设计算法及描述1.5Java程序的开发过程1.5.1JDK的下载与安装1.5.2Java工具集与标准类库1.5.3Java程序的开发过程1.5.4源文件命名规范与解释语句1.5.5Java程序示例试验1习题1第2章Java语言基础2.1数据类型2.1.1Java的数据类型2.1.2常量与变量2.1.3变量赋值2.1.4关键字2.1.5转义符2.2基本数据类型应用示例 2.2.1整数类型与浮点类型 2.2.2字符型2.2.3布尔型2.2.4数据类型的转换2.3表达式和运算符2.3.1表达式与运算符分类 2.3.2算术运算符2.3.3关系与规律运算符2.4程序掌握语句2.4.1语句2.4.2键盘输入语句2.4.3顺序掌握语句2.4.4if选择语句2.4.5switch语句2.4.6循环语句2.4.7跳转语句试验2习题2第3章面向对象程序设计基础 3.1面向对象的基本概念3.2类3.2.1类的`定义3.2.2成员变量和局部变量 3.3成员方法3.3.1方法的定义3.3.2方法的调用3.3.3方法重载3.3.4构造方法3.4对象3.5面向对象特性3.5.1封装性3.5.2继承性3.5.3多态性3.5.4其他修饰符的用法 3.6接口3.6.1接口的定义3.6.2接口的应用3.7包3.7.1创建自己的包 3.7.2压缩文件jar试验3习题3第4章数组与字符串 4.1数组4.1.1一维数组4.1.2多维数组的应用 4.2字符串4.2.1字符串的表示4.2.2字符串的常用方法4.2.3StringTokenizer字符分析器 4.2.4正则表达式4.2.5main()中的参数4.3StringBuffer类试验4习题4第5章图形用户界面设计5.1图形用户界面概述5.2窗体容器和组件5.2.1窗体容器JFrame类5.2.2按钮和事件处理5.3面板容器和界面布局管理5.3.1面板JPanel类 5.3.2界面布局策略5.4JComponent类组件的使用5.4.1JComponent类组件5.4.2文本组件和标签5.4.3单项选择按钮、复选框和下拉列表5.4.4卡片选项页面(JTabbedPane)5.4.5滑杆(JSlider)和进度指示条(JProgressBar) 5.4.6表格(JTable)5.5菜单与对话框5.5.1菜单5.5.2弹出式菜单5.5.3对话框5.6树5.6.1树的概念5.6.2树的构造方法试验5习题5。
Java基础教程第3版习题解答第一章习题1. JamesGoslin g2.需3个步骤:1)用文本编辑器编写源文件2)使用java c编译源文件,得到字节码文件3)应用程序使用解释器运行。
3. path d:\jdk\binclassp ath =d:\jdk\jre\lib\rt.jar;.;4. B5. java 和class6.D。
第二章习题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
fal se不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
cl assi mplem entsi nterface enum extend s abstra ct。
3.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
4.一维数组名.length。
二维数组名.l ength。
5. C6.ADF7. B8 【代码2】【代码3】【代码4】9.B。
10.属于操作题,解答略。
11.3,112.public classE {public static void main(String args[]) {System.out.printl n((int)'你');System.out.printl n((int)'我');System.out.printl n((int)'他');}}13.public classE {public static void main (String args[ ]) {char cStart='α',cEnd='ω';for(char c=cStart;c<=cEnd;c++)System.out.print(" "+c);}}第三章习题1. 1102.beep!!3.public classE {public static void main (String args[ ]) {for(charc='а';c<='я';c++){S ystem.out.print(" "+c);}}}4.public class Xiti3_4{ public s tatic void main(String args[]) { double sum=0,a=1;int i=1;while(i<=20){ sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}5.public classXiti5{ public static void main(String args[]){ int i,j;for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0)break;}if(i>j/2){ System.out.print(" "+j);}}}}6.class Xiti6{ public s tatic void main(String args[]){ double sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while(i<=20);System.out.println("使用do-while循环计算的s um="+sum);for(sum=0,i=1,a=1;i<=20;i++){ a=a*(1.0/i);sum=sum+a;}System.out.println("使用for循环计算的s um="+sum);}}7.class Xiti7{ public s tatic void main(String args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)System.out.println("完数:"+i);}}}8.import java.util.*;public classE {public static void main (String args[ ]) {int m,n;Scanne r scaner= new Scanne r(System.in);System.out.println("输入正数m回车确认");m = scaner.nextIn t();System.out.println("输入正数n回车确认");n = scaner.nextIn t();int p=m;int q= n;int r = m%n;while(r!=0) {m = n;n =r;r =m%n;}System.out.println(p+"和"+q+"的最大公约数"+n);System.out.println(p+"和"+q+"的最小公倍数"+(p*q)/n);}}9.public classE{ public static void main(String args[]){ int n=1;long sum=0;while(true){ sum=sum+n;n++;if(sum>=8888)break;}System.out.println("满足条件的最大整数:"+(n-1));}}第四章习题1.用该类创建对象时。
(完整版)Java程序设计习题附答案(三)第三部分⾯向对象程序设计1、引⽤数据类型变量具有基本属性为(ABCD)A、变量名B、数据类型C、存储单元D、变量值。
2、⾯向对象技术的特性是(ACD)A、继承性B、有效性C、多态性D、封装性。
3、下列哪个命题为真?(C)A、所有类都必须定义⼀个构造函数。
B、构造函数必须有返回值。
C、构造函数可以访问类的⾮静态成员。
D、构造函数必须初始化类的所有数据成员。
4、关于⼦类与⽗类关系的描述正确的是(ACD)A、⼦类型的数据可以隐式转换为其⽗类型的数据;B、⽗类型的数据可以隐式转换为其⼦类型的数据;C、⽗类型的数据必须通过显⽰类型转换为其⼦类型的数据;D、⼦类型实例也是⽗类型的实例对象。
5、下列哪⼀项说法最好地描述了Java中的对象?(C)A、对象是通过import命令引⼊到程序中的所有事情B、对象是⽅法的集合,这些⽅法在⼩程序窗⼝或应⽤程序窗⼝中产⽣图形元素,或者计算和返回值C、对象是⼀种数据结构,它具有操作数据的⽅法D、对象是⼀组具有共同的结构和⾏为的类6、下⾯哪个关键字不是⽤来控制对类成员的访问的?(C)A、publicB、protectedC、defaultD、private7、Java语⾔正确的常量修饰符应该是(D)A、finalB、static finalC、staticD、public static final;8、接⼝的所有成员域都具有public 、static和final 属性。
9、接⼝的所有成员⽅法都具有public 和abstract 属性。
10、编译下列源程序会得到哪些⽂件?(C)class A1{}class A2{}public class B{public static void main(String args[]){}}A) 只有B.classB)只有A1.class和A2.class⽂件C)有A1.class、A2.class和B.class⽂件D) 编译不成功11、下列哪种说法是正确的?(A)A、私有⽅法不能被⼦类覆盖。
《Java语言程序设计-基础篇》第03章答案3.1 答:if(i % 2 == 0) System.out.println(“偶数”); else System.out.println(“奇数”); 3.2 答:当 x = 3, y = 2 时,输出:无输出当x = 3, y = 4 时,输出:z is 7 当 x = 2,y = 2 时,输出:x is 2 3.3 答:等价的语句有:a, c和d 正确缩进的是:c 3.4 答:当 x = 2, y = 3 时,输出:x is 2 当 x = 3, y = 2 时,输出:无输出当 x = 3,y = 3 时,输出:z is 7 3.5 答:等价 3.6 答:switch变量可以是char, byte, short, int。
执行case语句后没有break,则继续执行下一个case语句。
switch可转换为等价的if语句(嵌套),反之不一定可以。
3.7 答:y的值是2。
3.8 答:switch(a){ case 1: x += 5; break; case 2: x += 10; break; case 3: x += 16; break; case 4: x += 34; } 3.9 答:System.out.print(count + (count % 10 == 0 ? “\n“ : ““)); 3.10 答:(a)执行0次,无输出(b)执行9次,输出如下:3 5 7 9 3.11 答:(略)3.12 答:相同,均为45。
3.13 答:for(int i = 1; i System.out.println(i); 3.14 答:无限循环。
3.15 答:不能。
3.16 答:能。
(略)3.17 答:(略)3.18 答:(a)输出:balance is 1 (b)不能结束(编译有错,输出语句执行不到)3.19 答:能。
(略)3.20 答:int i=0; while(iif(i%3==0){ i++; continue; } sum += i; i++; } 3.21 答:(a)主方法如下:public static void main(String[] args) { int sum = 0; int number = 0; while(number number++; sum += number; } System.out.println(“The number is “ + number); System.out.println(“The sum is “ + sum); } (b)主方法如下:public static void main(String[] args) { int sum = 0; int number = 0; while(number number++; if(!(number == 10 || number == 11)) sum += number; } System.out.println(“The number is “ + number); System.out.println(“Thesum is “ + sum); } 3.22 答:执行next:后面的语句。
第3章习题解答1.如何定义方法?在面向对象程序设计中方法有什么作用?答:方法的定义包括方法名、方法形参、方法的返回值类型和方法体四部分,方法只能在类中定义。
方法是对象的动态特征的描述,对象通过方法操作属性,进而改变对象的状态,完成程序所预期的功能。
2.定义一个Dog类,有名字、颜色、年龄等属性,定义构造方法用来初始化类的这些属性,定义方法输出Dog的信息。
编写应用程序使用Dog。
答:public class Dog{private String name;private String color;private String age;Dog(String n,String c,String a){name = n; color = c; age = a;}public String toString() {return name + "," + color + "," + age;}public static void main(String args[]) {Dog dog = new Dog("小白", "白色", "2岁");System.out.println(dog.toString());}}3.什么是访问控制修饰符?修饰符有哪些种类?它们各有何作用?答:访问控制修饰符是对类、属性和方法的访问权限的一种限制,不同的修饰符决定了不同的访问权限。
访问控制修饰符有3个:private、protected、public,另外还有一种默认访问权限。
各个修饰符的作用如下表所示:B:包中的类C:所有子类D:本类A:所有类:所有类4.阅读程序,写出程序的输出结果class A{private int privateVar;A(int _privateVar){privateVar=_privateVar;}boolean isEqualTo(A anotherA){if(this.privateVar == anotherA.privateVar)return true;elsereturn false;}}public class B{public static void main(String args[]){A a = new A(1);A b = new A(2);System.out.println(a.isEqualTo(b));}}程序的输出结果为:false5.阅读程序,写出程序的输出结果public class Test {public static void main(String[] args) {int x;int a[] = { 0, 0, 0, 0, 0, 0 };calculate(a, a[5]);System.out.println("the value of a[0] is " + a[0]);System.out.println("the value is a[5] is " + a[5]);}static int calculate(int x[], int y) {for (int i = 1; i < x.length; i++)if (y < x.length)x[i] = x[i - 1] + 1;return x[0];}}程序的输出结果为:the value of a[0] is 0the value is a[5] is 56.阅读程序,写出程序的输出结果public class Test {public static void main(String[] args) {String str1 = new String("Java");String str2 = new String("Java");System.out.println(str1 == str2);}}程序的输出结果为:false7.阅读下列程序,程序中已经指明错误位置,请说出错误原因。
第3章习题解答1. Java语言的注释有哪几种?分别给出一个例子。
答:Java语言的注释有3种,分别是单行注释、多行注释和文档注释。
单行注释的例子如下:public static Point origin = new Point(0, 0); //类初始化时,创建一个原点实例多行注释的例子如下:/* 类初始化时,创建一个原点实例 */public static Point origin = new Point(0, 0);文档注释的例子如下:/**** @类名:Point* @类简介:坐标点类,可以初始化其坐标x和y。
* @编程人:林福平* @编程日期:2012-8-9* @修改日期:2012-8-10**/2. Java语言中分隔符有哪几种?空白符有哪些?答:Java语言中的分隔符有空白符、注释和普通分隔符三种。
Java语言中的空白符(White Space)包括空格(SP,space)、制表符(‘\t’,Tab键)、走纸换页(‘\f’)、回车(‘\r’)和换行(‘\n’)。
3. 简述标识符的用途。
下列字符串中,哪些是标识符?PIx2 -length a+b _bytes $long MIN_VALUE答:Java语言中的标识符用于对类、方法、变量、类型、数组和文件等进行命名。
上述字符串中,以下这些是Java语言的标识符:PIx2 _bytes $long MIN_VALUE4. 下列字符串中,哪些是关键字?true for int null $float _double答:上述字符串中,以下这些是Java语言的关键字:true for int null5. Java语言的基本数据类型分为那几大类?答:Java语言的基本数据类型分为数值类型(包括整数类型和浮点类型)、字符类型(char)和布尔类型(Boolean)。
整数类型有byte、 short、 int和long。
浮点类型有float和double。
第3章作业参考答案
1.填空题(1)类
(2)属性new
(3)thisstatic
2.选择题
简答题
(1)回答要点
面向对象的方法主要是把事物给对象化,包括其属性和行为。
面向对象编程更贴近实际生活的思想。
总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象(万物皆对象)。
(2)回答要点
•格式区别
构造方法和类名相同,并且没有返回类型,也没有返回值。
普通成员方法可以任意起名,必须有返回类型,可以没有返回值。
•作用区别
构造方法用于创立对象,并进行初始化值。
普通成员方法是用于完成特定功能的。
•调用区别
构造方法是在创立对象时被调用的,一个对象建立,只调用一次相应构造函数。
普通成员方法是由创立好的对象调用,可以调用屡次。
(3)回答要点
Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间,回收之前会自动调用finalize方法,用于清理资源。
(4)回答要点
对象是类的实例,类是对象的模板
4.编程题
(1)源代码:参考本章资料文件夹下“作业1”。
(2)源代码:参考本章资料文件夹下“作业2”。
实验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)
int a=-1;
Scanner reader=new Scanner(System.in);
System.out.println("从键盘输入0~6的整数");
a=reader.nextInt();
while(a<0||a>6)
{
System.out.println("输入错误");
System.out.println("从键盘输入0~6的整数");
a=reader.nextInt();
}
switch(a)
{
case 0:
System.out.println("今天是星期日");
break;
case 1:
System.out.println("今天是星期一");
break;
case 2:
System.out.println("今天是星期二");
break;
case 3:
System.out.println("今天是星期三");
break;
case 4:
System.out.println("今天是星期四");
break;
case 5:
System.out.println("今天是星期五");
break;
case 6:
System.out.println("今天是星期六");
break;
default:
System.out.println("输入错误");
break;
}
}
}
//让用户通过输入一个0~6的整数,显示今天是xingqiji
public class shiyan15
{
public static void main(String[] args)
{
for(int i=1;i<10;i++)
{
if(i==6)
break;
System.out.println(""+i);
}
System.out.println("\n显示完毕");
for(int i=1;i<10;i++)
{
if(i%2==0)
continue;
System.out.println(""+i);
}
System.out.println("\n显示完毕");
}
}
//先显示1~5各个整数,然后再显示1~10的各个奇数。