奥鹏东师 《java程序设计》练习题答案doc.docx
《奥鹏东师 《java程序设计》练习题答案doc.docx》由会员分享,可在线阅读,更多相关《奥鹏东师 《java程序设计》练习题答案doc.docx(14页珍藏版)》请在冰豆网上搜索。
奥鹏东师《java程序设计》练习题答案doc
《Java程序设计》练习题一答案
练习题第1套答案
一、单选题
1、A2、C3、C4、D5、D6、B7、B8、D9、B10、B
11、C12、B13、C14、A15、B16、B17、A18、B19、D20、B
二、简答题
1、
(1)创建状态(newthread):
此时的线程只是一个空对象,系统不为它分配资源,只能启动或终止该线程;
(2)可运行状态(runnable):
调用的start()方法会产生运行该线程所需的系统资源,安排其运行,并调用run()方法;
(3)不可运行状态(notrunnable):
以下四种情况会导致线程进入不可运行状态:
调用sleep()方法、调用suspend()方法、调用wait()方法、发生I/O阻塞;
(4)死亡状态(dead):
线程的自然撤消(即run()方法的正常退出)或被停止(调用stop()方法)。
2、注释是程序中的说明性文字,是程序的非执行部分。
它的作用是为程序添加说明,增加程序的可读性。
Java使用以下三种方式对程序进行注释:
1)“//”符号,它表示从“//”符号开始到此行的末尾位置都作为注释。
2)“/*...*/”符号,它表示从“/*”开始到“*/”结束的部分都作为注释部分,可以使多行注释。
3)“/**……*/”符号,表示从“/**”开始到“*/”结束的部分都作为文档部分。
三、程序结果题
1、答案:
4
8
3
2、答案 :
100
010
001
四、编程题
1、1)
publicclassaa
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("Hello,World!
");
}
}
2、[解答]:
publicclassTest_4{
publicstaticvoidmain(String[]args){
intx=4,y=2,z;//初始化x,y,z
z=x&y;//求z=x&y;即x与y的值
System.out.println("z=x&y:
"+z);
z=x|y;//求z=x|y;即x或y的值
System.out.println("z=x|y:
"+z);
z=x^y;//求z=x^y;即x异或y的值
System.out.println("z=x|y:
"+z);
z=x>>y;//求z=x>>y;即x右移y位的值
System.out.println("z=x>>y:
"+z);
z=~x;//求z=~x;即x位反的值
System.out.println("z=~x:
"+z);
}
}
3、答案:
public class Narcissus
{
public static void main(String args[])
{
int i,j,k,n=100,m=1;
//while
while(n<1000)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)
System.out.println("找到第"+ m++ +"个水仙花数:
"+n);
}
//end while
//for
m=1;
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)
System.out.println("找到第"+ m++ +"个水仙花数:
"+n);
//end for
}
}
练习题第2套答案
一、单选题
1、B2、D3、C4、C5、B6、D7、D8、D9、A10、C
11、D12、D13、B14、A15、D16、D17、D18、A19、B20、C
二、简答题
1、while语句是循环结构中的一种,其语法格式为:
初始化语句;
while(循环条件表达式)
{
语句序列;
迭代语句;//用于变更循环条件
}
当循环条件表达式为true时,就循环执行语句序列和迭代语句,
do……while语句也是循环结构中的一种语句,和while循环非常类似,格式为:
初始化语句;
do
{
语句序列;
迭代语句;
}while(条件表达式);
首先执行一遍循环体内的语句序列和迭代语句,然后判断条件表达式,若为true则继续执行循环体,否则终止循环。
相对while循环来说,do……while至少执行循环语句一次。
for语句是Java语言中提供的另一种循环语句,它的语法结构如下:
for(循环初始化语句;循环条件表达式;迭代语句){循环体语句序列;}
首先执行循环初始化语句,然后判断循环条件表达式,如果为true,则执行循环体,然后执行迭代语句。
2、
(1)init()方法:
完成初始化操作,只被调用一次;
(2)start()方法:
启动浏览器运行Applet的主线程,可被多次调用;
(3)paint()方法:
显示Applet界面,可被多次调用;
(4)stop()方法:
暂停Applet,可被多次调用;
(5)destroy()方法:
撤消Applet,释放系统资源,只被调用一次。
三、程序结果题
1、答案:
true
2、答案:
3
四、编程题(共40分)
1、(10分)答案:
getName();getPath();length();
2、(10分)答案:
publicclassTest_17_1{
publicstaticvoidmain(String[]args){
inti,j;
for(i=1;i<=4;i++){
for(j=1;j<=i;j++){
System.out.print("#"+"");
}
System.out.println();
}
}
}
3、(20分)答案:
程序代码如下:
classteacher{
privateStringid;
privateStringname;
privateStringsex;
privateintage;
teacher(Stringid,Stringname,Stringsex,intage)
{this.id=id;
this.name=name;
this.sex=sex;
this.age=age;
}
publicStringgetId()
{returnid;}
publicStringgetName()
{returnname;}
publicStringgetSex()
{returnsex;}
publicintgetAge()
{returnage;}
voidsetAge(intage)
{this.age=age;}
}
publicclassex34
{
publicstaticvoidmain(Stringargs[])
{
teachertea=newteacher("1501051873","李兵","男",23);
System.out.println("该教师的信息:
"+"\n身份证号:
"+tea.getId()+"\n姓名:
"+
tea.getName()+"\n性别:
"+tea.getSex()+"\n年龄:
"+tea.getAge());
tea.setAge(35);
System.out.println("修改后的年龄为:
"+tea.getAge());
}
}
《Java程序设计》练习题二答案
练习题第3套答案
一、单选题
1、C2、A3、A4、D5、B6、D7、B8、A9、B10、A
11、D12、A13、C14、D15、C16、D17、C18、D19、A20、C
二、简答题
1、答案:
Java定义了8个基本数据类型:
字节型,短整型,整型,长整型,字符型,浮点型,双精度型,布尔型。
它们分为4组:
1)整数型(byte,short,int,long)
2)浮点数型(float,double)
3)字符型(char)
4)布尔型(boolean)
2、答案:
(1)单行注释:
以//(双斜线)开头的内容直到本行结束;可放在语句后面也可单放一行,但不可放在语句中间或前面;
(2)多行注释:
以符号/*开头直到*/结束的中间内容;
(3)文档注释:
以符号/**开头直到*/结束的中间内容,该注释可被专门的注释软件识别,并从程序中提取出来形成程序文档。
三、程序结果题
1、答案:
456
2、答案:
falsetrue
四、编程题
1、[解答]:
publicclassTest_12{
publicstaticvoidmain(String[]args){
intk,sum=0;
for(k=1;k<=10;k++){
sum=sum+k*k;
}
System.out.println("sum="+sum);
}
}
2、答案:
publicclassTest_17_1{
publicstaticvoidmain(String[]args){
inti,j;
for(i=1;i<=4;i++){
for(j=1;j<=i;j++){
System.out.print("%"+"");
}
System.out.println();
}
}
}
3、[解答]:
importjava.io.*;
publicclassTest_9{
publicstaticvoidmain(String[]args)throwsNumberFormatException,IOException{
InputStreamReaderisr=newInputStreamReader(System.in);
BufferedReaderbr=newBufferedReader(isr);
System.out.println("请输入数字x的值:
");
doublex=Double.parseDouble(br.readLine());
doubley=0;
if(x<1){
y=x;
}else{
if(x>=1&&x<10){
y=3*x-2;
}else{
y=4*x;
}
}
System.out.println("y="+y);
}
}
练习题第4套答案
一、单选题
1、C2、C3、C4、B5、A6、C7、A8、B9、A10、C
11、D12、A13、A14、B15、C16、A17、A18、A19、D20、D
二、简答题
1、答案:
Break:
强行退出循环,忽略循环体中的任何其他语句和循环的条件的条件测试。
Continue:
语句用来终止本次循环。
其功能是终止当前正在进行的本轮循环,即跳过后面剩余的语句,转而执行循环的第一条语句,计算和判断循环条件,决定是否进入下一轮循环。
2、答案:
while和do......while是用于控制循环结构的。
Do-while与while语句的主要区别在于,先执行循环体中的语句再计算条件表达式,所以do-while语句的循环体至少执行一次。
三、程序结果题
1、答案:
6.010.0
2、答案:
1313
四、编程题
1、答案:
publicclassex23
{
publicstaticvoidmain(String[]args)
{
inti,j;
for(i=4;i>0;i--)
{
for(j=1;j<2*i;j++)
System.out.print("*");
System.out.println("");
}
}
}
2、[解答]:
publicclassex23{
publicstaticvoidmain(String[]args){
Strings="sdsfdfaf";
inta=s.indexOf("abc");
if(a!
=-1){
System.out.print("包含字符串abc");
}else{
System.out.print("不包含字符串abc");
}
}
}
3、[解答]:
(1)inta=newint[2][3],数组a有2行,3列,元素个数为6
(2)第一行元素的名字为a[0][0],a[0][1],a[0][2]
(3)置行1列2的元素为0,语句是a[0][1]=0;
(4)
for(inti=0;i<2;i++){
for(inj=0;j<3;j++){
a[i][j]=0;
}
}
(5)
intsum=0;
sum=a[0][2]+a[1][2];
练习题第5套答案
一、单选题
1、C2、B3、B4、A5、B6、B7、D8、B9、A10、A
11、C12、C13、D14、C15、A16、D17、A18、A19、C20、B
二、简答题
1、答案:
一是利用try-catch-finally结构来捕获处理异常,try块:
用来包含可能抛出异常的程序段,可以是方法的调用,也可以是复杂的语句序列。
catch块:
用来捕获指定的异常,并进行相应处理。
finally块:
finally块是可选的,它为异常处理提供了一个统一的出口,无论程序中是否出现异常,也不论出现什么异常,finally块中的语句均要被执行一遍。
二是利用throws语句来声明抛出异常。
这样就不需要在方法中处理该异常,而是留给了方法的调用者。
2、Java中的标识符必须以字母(a~z、A~Z)、下划线(_)或美元符号($)为开头,其后可以是字母、下划线、美元符号和数字(0~9)。
Java中的标识符严格区分大小写。
Java中的标识符没有长度限制。
三、程序结果题
1、答案:
5
2、答案:
01234
四、编程题
1、[解答]:
publicclasstest1{
publicstaticvoidmain(String[]args){
Strings="sdQfEKJsfjEKjhjsjQHdFfKjSDFsdf";
Strings1="",s2="",s3;
for(inti=0;is3="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(s3.indexOf(s.charAt(i))!
=-1){
s1=s1+s.charAt(i);
}else{
s2=s2+s.charAt(i);
}
}
System.out.println("大写字母:
");
System.out.println(s1);
System.out.println("小写字母:
");
System.out.println(s2);
}
}
2、[解答]:
publicclassTest_14{
publicstaticvoidmain(String[]args){
intm,k,i,n=0;
booleanflag;
for(m=1;m<=100;m=m+2){
flag=true;
k=(int)Math.sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0){
flag=false;
break;
}
if(flag){
System.out.print(m+"");
n=n+1;
}
if(n%10==0)
System.out.println();
}
}
}
3、[解答]:
publicclassContinueFor99
{//使用continue语句打印出三角形状的九九乘法口诀表。
publicstaticvoidmain(String[]args)
{
inti,j,num;
System.out.println("九九乘法表");
a:
for(i=1;i<=9;i++)
{for(j=1;j<=9;j++)
{
num=i*j;
System.out.print((int)i+"*"+(int)j+"="+(int)num);//输出:
i*j=num
System.out.print("");//调整两个输出字符串间的距离
if(i==j)System.out.println("");
if(i==j)continuea;//当i=j时,换行并结束本次循环
}
}
}
}
publicclassBreakFor99
{//使用break语句打印出三角形状的九九乘法口诀表。
publicstaticvoidmain(String[]args)
{
inti,j,num;
System.out.println("九九乘法表");
for(i=1;i<=9;i++)
{for(j=1;j<=9;j++)
{
num=i*j;
System.out.print((int)i+"*"+(int)j+"="+(int)num);//输出:
i*j=num
System.out.print("");//调整两个输出字符串间的距离
if(i==j)System.out.println("");
if(i==j)break;//当i=j时,换行并结束本次循环
}
}
}
}