Java程序设计项目教程(第二版)-参考答案
项目1
一、思考题
1.Java程序有几种版本,分别是什么?
java程序设计教程第三版施霞萍课后答案Java有三种版本,分别是J2ME、J2SE、J2EE
2.Java程序有何特点?
Java语言的特点如下:
①面向对象:支持代码继承及重用,是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。
②解释执行:Java解释器(运行系统)能直接运行目标代码指令。
③平台无关:Java源程序被编译成一种高层次的与机器无关的Byte-codes格式语言,被设计在Java虚拟机上运行。
④多线程:Java提供的多线程功能使得在一个程序里可同时执行多个小任务。多线程带来的好处是可以有更好的交互性能和实时控制性能。
⑤健壮性:Java致力于检查程序在编译和运行时的错误,类型检查帮助检查出许多开发早期出现的错误。
3.什么是JVM,为什么需要JVM?
JVM即Java虚拟机,是一台可以存在于不同的真实的软、硬件环境下的虚拟的计算机,其功能是将字节码解释为真实平台能执行的指令。Java正是通过虚拟机JVM技术,实现了与平台无关,实现“编写一次,到处运行”。因此,任何平台只要安装相应的Java虚拟机环境,就能运行Java程序。
4.如何理解Java程序的基本结构?
①语句package p1;是建立一个包(文件夹),生成的类文件将存放于包中。
②程序第一行public class 类名{},是一个类定义语句。public关键字指明类的访问方式为公有,也就是在整个程序内都可以访问到它。如果将类定义为public,则类其名称必须与主文件名一致,并且大小写敏感。
③类后大括号内可以定义类的成员和方法,对于一个可执行的Java类,main方法是必需的,而且该main方法必须是公有(public)、静态(static)和没有返回值(void)的,同时它只能带一个字符串型(String[])的参数。
④程序的一行“//……”是注释,只说明不运行。
⑤每个命令语句结束,必须以“;”结尾。
二、编程
1.编写一Java应用程序,要求在屏幕上输出字符串“Happy New Year!”。
class Prac1
{
public static void main(String args[])
{
System.out.println("Happy New Year!");
}
}
2.编写一个简单的Java程序,在屏幕上输出如下图形:
*
* * *
* * * * *
class Prac2
{
public static void main(String args[])
{
System.out.println(" *");
System.out.println(" ***");
System.out.println("*****");
}
}
项目2
一、选择题
1.数组中可以包含什么类型的元素?( D )
A. int型
B. String型
C. 数组
D. 以上都可以
2.Java中定义数组名为Arr,下面哪项可以得到数组元素的个数?( B )
A. Arr.length( )
B. Arr.length
C. Arr (xyz)
D. Arr (xyz)
3.下面哪条语句定义了3个元素的数组?( A )
A. int [ ] a={20,30,40};
B. int a [ ]=new int(3) ;
C. int [3] array;
D. int [ ] arr;
4.下面的代码段中,执行之后i和j的值是( B )。
int i = 10;
int j;
j = i++;
A. 10, 10
B. 11, 10
C. 10, 11
D. 11, 11
二、编程
1.试编写一个程序,输入三条边长值,并判断这三条边长能不能构成三角形,如果能,能构成什么样的三角形(一般、等边、等腰)。
import java.util.*;
class Practice1{
public static void main(String args[])
{
Scanner s=new Scanner(System.in);
int a,b,c;
Int();
Int();
Int();
if(a+b>c&&a+c>b&&b+c>a)
{
if(a==b&&a==c)
System.out.print("构成的三角形为等边三角形。");
else if(a==b||a==c||b==c)
System.out.print("构成的三角形为等腰三角形。");
else
System.out.print("构成的三角形为一般三角形。");
}
else
System.out.print("不能构成三角形。");
}
}
2.试编写一个程序,读入10个学生的成绩,成绩在0~59分为D,成绩在60~79分为C,成绩在80~89分为B,成绩在90~100分为A,并输出A、B、C、D的人数个数。
import java.util.*;
public class Practice2{
public static void main(String args[]) throws IOException
{
int a=10,a1=0,a2=0,a3=0,a4=0,c;
int numa[]=new int[a];
for (int i=0;i<a;i++){
System.out.print("请输入第"+(i+1)+"个人的成绩");
c=getInputData();
while (c<0||c>100)
{
System.out.print("请重新输入第"+(i+1)+"个学生的成绩");
c=getInputData();
}
numa[i]=c;//保存
System.out.println(numa[i]);
switch (numa[i]/10){
case 10:
System.out.println("成绩为A级!");
a1++;
break;
case 9:
System.out.println("成绩为A级!");
a1++;
break;
case 8:
System.out.println("成绩为B级!");
a2++;
break;
case 7:
System.out.println("成绩为C级!");
a3++;
break;
case 6:
System.out.println("成绩为C级!");
a3++;
break;
default:
System.out.println("成绩为D级!");
a4++;
break;
}
}
System.out.println("90-100分的人数="+a1);
System.out.println("80-89分的人数="+a2);
System.out.println("60-79分的人数="+a3);
System.out.println("0-59分的人数="+a4);
}
public static int getInputData() throws IOException
{
Scanner s=new Scanner(System.in);
int Int();
return n;
}
}
3.试编写一个程序,输出以下形式的图形。
* * * * * *
* * * * * *
* * * * * *
* * * * * *
class Practice3
{
public static void main(String args[])
{
for(int i=1;i<=4;i++)
{
for(int j=1;j<=i;j++)
System.out.print(" ");
for(int k=1;k<=5;k++)
System.out.print("*");
System.out.println();
}
}
}
4.试编写游戏程序,完成猜数字游戏,数字是由计算机随机产生的100以内整数。一
次就猜中得100分,2次才猜中得90分,依次类推,超过10次无分。程序最后输出参与者得分。
import java.util.*;
class Practice4
{
public static void main(String args[])
{
int a=(int)(Math.random()*10);
int guess,score=100;
Scanner s=new Scanner(System.in);
int i;
for( i=1;i<=10;i++)
{
Int();
if(guess==a)
break;
score=score-10;
}
System.out.print(i+"得分为:"+score);
}
}
项目3
一、选择题
1.定义类头(非内部类)时,不可能用到的关键字是( B )
A) class B)private C)extends D)public
2.下列类头定义中,错误的是( A )
A)public x extends y {...} B) public class x extends y {...} C)class x extends y implements y1 {...} D)class x {...}
3.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( D )
A)float A a; B)public A a=A( );
C)A a=new int( ); D)static A a=new A( );
4.设 X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C ) A)public X x1= new Y( ); B)X x1= X ( );
C)X x1=new X( ); D)int X x1;
5.设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是( A ) A)static X x1; B)public X x1=new X(int 123);
C)Y x1; D)X x1= X( );
6. 有一个类A,以下为其构造方法的声明,其中正确的是( A )
A)public A(int x){...} B)static A(int x){...}
C)public a(int x){...} D)void A(int x){...} 7.有一个类Student,以下为其构造方法的声明,其中正确的是( B )
A)void Student (int x){...} B)Student (int x){...}
C)s(int x){...} D)void s(int x){...}
8.下列选项中,用于定义接口的关键字是( A )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论