Java语言程序设计一课后习题答案.docx
- 文档编号:10418275
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:67
- 大小:374.96KB
Java语言程序设计一课后习题答案.docx
《Java语言程序设计一课后习题答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计一课后习题答案.docx(67页珍藏版)》请在冰豆网上搜索。
Java语言程序设计一课后习题答案
第一章Java语言基础
指出Java语言的主要特点和ava程序的执行过程。
答:
强类型。
编译和解释。
自动无用内存回收功能。
面向对象。
与平台无关。
安全性。
分布式计算。
多线程。
2.说出开发与运行Java程序的主要步骤。
答:
安装SUN的JDK,配置classpath
编写源文件。
编译。
运行。
3.如何区分应用程序和小应用程序。
答:
应用程序必须在一类中定义一个main()方法,该方法代表应用程序的入口。
小应用程序不必定义main()方法,但是必须继承applet类。
4.说出Java源文件的命名规则。
答:
和类命名规则一样,首字母大写。
5.选择一种上机环境,参照实例,编写一个输出“helloworld!
”字样的Java程序。
答:
选择SUN的IDE,用UltraEdit-32编写如下:
//HelloWorld.java
/**
*
这是第一个程序
*@author饶林
*@see
*/
classHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("HelloWorld!
");
}
}
6.Java用什么字符集?
共有多少个不同的字符?
答:
Java语言使用Unicode字符集,共有65535个字符。
7.Java语言标识符的命名规则是什么?
答:
由字母(包括英文字母、下划线、美元字符、文字字符)和数字字符组成。
限定标识符的第一个字符不能是数字。
8.Java有哪些基本的数据类型,它们的常量又是如何书写的?
答:
基本的数据类型也称为原始数据类型,是系统预先规定的一些常用类型。
它们是:
整数类型、浮点数(实数)类型、字符(文字)类型、逻辑类型(布尔型)。
9.指出下列内容那些事Java语言的整形常量,哪些是浮点数类型常量,那些两者都不是?
1)E-42)A4233)-1E-314)0xABCL5).32E316)0877)0xL
8)0039)0x12.510)07711)11E12)056L13)0.14).0
答:
整形常量:
4,5,6,8,10,12
浮点型:
1,3,9,13,14
两者都不是:
2,7,11
第二章运算和语句
1.Java字符能参加算术运算吗?
答:
能,例如char类型a自加后变b
2.占字节多的变量能直接赋给占字节少的变量吗?
答:
不能,需强制类型转换。
3.试用Java语言表达式描述以下数学计算式或逻辑条件:
1)
V=(4/3)*math.PI*math.pow(r,3);
2)R=1/(1/R1+1/R2)
原式
3)y=x5+x3+6
y=pow(x,5)+pow(x,3)+6;
4)F=M1M2/R2
F=M1*M2/R*R
5)
Math.sin(x)/ax+Math.cos(π*x/2)>0?
Math.cos(π*x/2):
-Math.cos(π*x/2);
*@author饶林
*@see
*/
publicclassPraxis2_6{
publicstaticvoidmain(String[]args){
inti,j,sum;
for(i=1;i<=1000;i++){
//sum归0必须在此处
sum=0;
for(j=1;j<=i/2;j++){
if((i%j)==0)
sum=sum+j;
}
if(i==sum)
System.out.print(i+"");
}
}
}
7.编写输入正实数x,求平方不超过x的最大正整数n,并输出。
解析:
/**
*
这是第三个程序
*@author饶林
*@see
*/
importjava.util.*;
publicclassPraxis2_7
{
publicstaticvoidmain(String[]args)
{
ScannerconsoleScanner=newScanner(System.in);
System.out.print("请输入正实数X:
");
intx=consoleScanner.nextInt();
inty=(int)(Math.sqrt(x));
System.out.println("n="+y);
}
}
8.输入正整数n输出n行n列星号字符组成三角图案。
/**
*
这是第四个程序
*@author饶林
*@see
*/
importjava.util.*;
publicclassPraxis2_8{
publicstaticvoidmain(String[]args){
ScannerconsoleScanner=newScanner(System.in);
System.out.print("请输入正整数x:
");
intx=consoleScanner.nextInt();
for(inty=0;y for(intm=x-y-1;m>0;m--){ System.out.print(""); } for(intn=0;n System.out.print("*"); } System.out.println(); } } } 9.设有整形变量x和y的值分别为5和110.指出执行了下列语句后,变量x和y后的值分别是多少? 1)while(x<=y)x*=2; X=160,y=110; 2)do{x=y/x;y=y-x;}while(y>=1); X=18,y=0; 10.水仙花数是一个n(>=3)位的数,它等于每个数字的n次幂之和。 例如,153是一个水仙花数,153=13+53+33,是编写一个程序,求小于999的所有水仙花数。 /** * 这是第五个程序 *@author饶林 *@see */ publicclassPraxis2_10{ publicstaticvoidmain(String[]args){ intx,y,z; for(intm=100;m<999;m++){ x=m/100; y=(m%100)/10; z=(m%100)%10; if(m==x*x*x+y*y*y+z*z*z) System.out.print(m+""); } } } 11.编程序解百鸡问题: 鸡翁一,值钱五,鸡母一,值钱三,鸡邹三,值钱一,百钱买百鸡,求鸡翁,鸡母,鸡邹各几何? /** * 这是第六个程序
*@author饶林
*@see
*/
publicclassPraxis2_11
{
publicstaticvoidmain(Stringargs[])
{
for(inti=0;i<=100;i++)
for(intj=0;j<=100;j++)
for(intk=0;k<=100;k+=3)//鸡雏的个数必须使3的倍数
{
if(((5*i+3*j+k/3)==100)&&(i+j+k==100))
System.out.println("鸡翁:
"+i+";鸡母:
"+j+";鸡雏:
"+k);
}
}
}
12.编写程序,按下面的公式计算自然对数底e的值:
e=1+1/1!
+1/2!
+1/3!
......
/**
*
这是第七个程序
*@author饶林
*@see
*/
publicclassPraxis2_12
{
publicstaticvoidmain(Stringargs[])
{
intn=1000;//计算精度
doublee=1.0;
for(inti=1;i<=n;i++)
{
e=e+1.0/Praxis2_12.factorial(i);
}
System.out.println("e="+e);
}
staticdoublefactorial(inta)//计算阶乘的静态方法
{
doublef=1.0;
for(intj=1;j<=a;j++)
f=f*j;
returnf;
}
}
13.编写程序,用如下公式计算圆周率的近似值:
14.回文整数是正读反读相同的整数,编写一个程序,输入一个整数,判断是否为回文整数。
/**
*
这是第八个程序
*@author饶林
*@see
*/
importjava.util.*;
publicclassPraxis2_14//输入整数,判断是否是回文整数
{
publicstaticvoidmain(Stringargs[])
{
inta[]=newint[100];
inti=0;
booleanb=true;
ScannerconsoleScanner=newScanner(System.in);
System.out.print("请输入一个int型整数:
");
intx=consoleScanner.nextInt();
inttest=x;
while(test>0)//把整数的各个位上的数存到数组里
{
a[i]=test%10;
test=test/10;
i++;
}
for(intj=0;j
{
if(a[j]!
=a[i-j-1])
{
b=false;
break;
}
}
if(b)System.out.println(x+"是回文整数");
elseSystem.out.println(x+"并不是回文整数");
}
}
15.草地上有一堆野果,有一只猴子每天要吃掉一半又一个,五天后刚好吃完,问有多少个,猴子每天吃多少个?
/**
*
这是第九个程序
*@author饶林
*@see
*/
publicclassPraxis2_15{
publicstaticvoidmain(String[]args){
intday,x1,x2;
day=5;x2=0;
while(day>0){
x1=(x2+1)*2;
x2=x1;
day--;
}
System.out.println("共有"+x2+"个桃子。
");
System.out.println("----------------------------");
for(inti=1;i<6;i++){
inteast;
east=x2/2+1;
x2=x2/2-1;
System.out.println("第"+i+"天吃"+east+"个。
");
}
System.out.println("----------------------------");
}
}
第三章面向对象编程基础
1.什么是面向对象技术?
它有什么优点?
答:
程序设计者考虑的是对象的描述,对象间的关系,类的管理、什么时候什么地方调用对象的那一种方法。
最大的优点是面向对象编程能有效地支持重用,是超大规模的程序也变得相对容易维护。
2.面向对象的程序设计与面向过程的程序设计有什么区别?
答:
面向过程的语言编程编程模式是:
程序=数据结构+算法
编程时需要考虑的是程序做什么,怎么做,重点考虑每个实现的细节。
面向对象的编程模式:
程序=对象+消息
程序设计者考虑的是对象的描述、对象间的关系、类的管理、什么时候和什么地方调用对象的那一种方法。
3.在程序中对象有什么区别?
答:
类是对同一种对象的描述,类概括了同类对象的共有性质:
数据和方法。
类的每个对象都有自己的标识,但它们具有相同的一组属性和提供相同的一组方法。
4.举例说明类方法和实例方法,以及类变量和实例变量的区别。
什么情况下用实例变量?
什么情况下用类变量?
答:
一般静态的数据和方法使用类变量。
5.子类能继承超类的那些成员变量和方法?
超类
子类
Private
No
(默认)
Yes
Protect
Yes
Public
Yes
6.子类在什么情况下能隐藏超类的成员变量和方法?
答:
重写
7.在子类中是否允许有一个方法和超类的方法名字相同,而类型不同?
答:
不应许,子类中定义一个方法,并且这个方法的名字、返回类型、参数个数、和类型与从父类继承的方法完全相同。
例如:
classR{
intadd(){
inta=2;
returna++;
}
}
publicclassRRextendsR{
floatadd(){
floata=2.0;
returna;
}
publicstaticvoidmain(String[]args){
System.out.println(add());
}
}
8.试说出对象、类、继承和多态性的概念。
9.略
10.接口与抽象类的区别。
答:
抽象类:
whatcanIdo?
接口:
Icandoit.
例子:
就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);而且只能是门,你不能说它是窗(单继承);一个门可以有锁(接口)也可以有门铃(多实现)。
门(抽象类)定义了你是什么,接口(锁)规定了你能做什么(一个接口最好只能做一件事,你不能要求锁也能发出声音吧(接口污染))。
11.指出Applet的程序结构及各方法的作用。
答:
JavaAPI的Applet类为您提供设计applet程序外观并管理其动作时所需要的支持。
该类提供一种叫做Panel(面板)的图形用户界面(GUI)组件以及大量方法。
要创建一个applet程序,就需要扩展该Applet类(或创建子类)并实现您所需要的外观和动作。
12.以下程序的错误:
Takecare.java:
5:
无法从静态上下文中引用非静态变量a
floatc=a+b;
^
13.试声明一个复数类Complex。
解析:
//样例大家扩展
classComplex{
doublea,b;
Complex(){}
Complex(doublea,doubleb){
this.a=a;
this.b=b;
}
publicStringPrint(){
Stringresult=newString(this.a+(b>0?
"+":
"")+(b!
=0?
this.b+"i":
""));
returnresult;
}
publicComplexadd(Complexval){
Complexresult=newComplex();
result.a=this.a+val.a;
result.b=this.b+val.b;
returnresult;
}
}
publicclassTestComplex{
publicstaticvoidmain(String[]args){
Complexcomplex1=newComplex(1.0,2.0);
Complexcomplex2=newComplex(2.0,3.0);
System.out.println(complex1.add(complex2).Print());
}
}
第四章数组和字符串
1.举例说明如何声明、创建初始化数组。
答:
有三种方法。
书P69,不一一举例了。
2.略
3.一个数组能存储不同类型的元素吗?
答:
不能。
4.编写一个Java程序,形成以下形式的二维数组,并输出。
解析:
publicclassArry{
publicstaticvoidmain(String[]args){
int[][]a={{1,2,9,10,25},
{4,3,8,11,24},
{5,6,7,12,23},
{16,15,14,13,22},
{17,18,19,20,21}};
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 课后 习题 答案