java复习资料打印.docx
- 文档编号:24012790
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:41
- 大小:22.41KB
java复习资料打印.docx
《java复习资料打印.docx》由会员分享,可在线阅读,更多相关《java复习资料打印.docx(41页珍藏版)》请在冰豆网上搜索。
java复习资料打印
第2章标识符、关键字和数据类型
4.下列哪些语句是错误的:
intx=8;
byteb=127;
b=x;
答:
b=x语句错误;原因是高级别的变量赋值给低级别的变量时,一定要用显式转换即b=(byte)x;。
5.下列程序的输出结果是什么?
publicclassE
{publicstaticvoidmain(Stringargs[])
{long[]a={1,2,3,4};
long[]b={100,200,300,400,500};
b=a;
System.out.println("数组b的长度:
"+b.length);
System.out.println("b[0]="+b[0]);}
}
答:
数组b的长度:
4
b[0]=1
6.上机运行下列程序,注意观察输出结果。
publicclassE
{publicstaticvoidmain(Stringargs[])
{for(inti=20302;i<20322;i++)
{System.out.println((char)i);}
}
}
答:
低住佐佑佒体佔何佖佗佘余佚佛作佝佞佟你佡
7.System.out.println(“你好”);可输出字符串,也可以使用System.out.println()输出变量或表达式的值,只需使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置即可,如:
System.out.println(“”+x);System.out.println(“:
”+123+“大于”+122);等。
上机调试下列程序,注意观察结果,特别注意System.out.print()和System.out.println()的区别。
publicclassOutputData
{
publicstaticvoidmain(Stringargs[])
{
intx=234,y=432;
System.out.println(x+"<"+(2*x));
System.out.print("我输出结果后不回车");
System.out.println("我输出结果后自动回车到下一行");
System.out.println("x+y="+(x+y));
System.out.println(""+x+y+"=234432");
}
}
答:
234<468
我输出结果后不回车我输出结果后自动回车到下一行
x+y=666
234432=234432
8.编写一个Java应用程序,输出全部的希腊字母。
答:
publicclassXLWords
{
publicstaticvoidmain(Stringargs[])
{for(inti=913;i<930;i++)
{System.out.print((char)i+"");}
for(intj=931;j<938;j++)
{System.out.print((char)j+"");}
for(intk=945;k<962;k++)
{System.out.print((char)k+"");}
for(intt=963;t<969;t++)
{System.out.print((char)t+"");}
}
}
第3章运算符、表达式和语句
1.下列程序的输出结果是什么?
publicclassE
{
publicstaticvoidmain(Stringargs[])
{
charx='你',y='e',z='吃';
if(x>'A')
{
y='爱';
z='情';
}
else
y='我';
z='她';
System.out.println(""+x+y+z);
}
}
答:
你爱她
2.下列程序的输出结果是什么?
publicclassE3
{
publicstaticvoidmain(Stringargs[])
{
charc='\0';
for(inti=1;i<=4;i++)
{
switch(i)
{
case1:
c='b';
System.out.print(c);
case2:
c='e';
System.out.print(c);
break;
case3:
c='p';
System.out.print(c);
default:
System.out.print("!
");
}
}
}
}
答:
beep!
!
3.编写应用程序,求1!
+2!
+…+10!
。
答:
classFact
{
publicstaticvoidmain(Stringargs[])
{
intfact,sum=0;
for(inti=1;i<=10;i++)
{
fact=1;
for(intj=1;j<=i;j++)
fact*=j;
sum+=fact;
}
System.out.println("1到10的阶乘之和是:
"+sum);
}
}
4.编写一个应用程序,求100以内的全部素数。
答:
classPrimes
{
publicstaticvoidmain(Stringargs[])
{
intw=1;
for(inti=2;i<=100;i++)
{
for(intj=2;j
{
w=i%j;
if(w==0)
break;
}
if(w!
=0)
System.out.println(i+"是素数");
}
}
}
5.分别用do―while和for循环计算1+1/2!
+1/3!
+1/4!
+…的前20项和。
答:
①for循环
classSum
{
publicstaticvoidmain(Stringargs[])
{
intfact;
doublesum=0;
for(inti=1;i<=20;i++)
{
fact=1;
for(intj=1;j<=i;j++)
fact*=j;
sum+=1.0/fact;
}
System.out.println(sum);
}
}
②do―while循环
classSum
{
publicstaticvoidmain(Stringargs[])
{
inti=1;
intfact;
doublesum=0;
do
{
fact=1;
intj=0;
while(++j<=i)
fact*=j;
sum+=1.0/fact;
}
while(++i<=20);
System.out.println(sum);
}
}
6.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
编写应用程序,求1000之内的所有完数。
答:
classWanshu
{
publicstaticvoidmain(Stringargs[])
{
intx,i,sum;
for(x=1;x<=1000;x++)
{
sum=0;
for(i=1;i { if(x%i==0) sum+=i; } if(x==sum) System.out.println(x+"是完数"); } } } 7.编写应用程序,分别使用while和for循环计算8+88+888+…前10项之和。 答: ①for循环 classTheSum { publicstaticvoidmain(Stringargs[]) { longsum=0,data=8; for(inti=1;i<=10;i++) { sum=sum+data; data=data*10+8; } System.out.println(sum); } } ②while循环 classTheSum { publicstaticvoidmain(Stringargs[]) { longsum=0,data=8,i=0; while(++i<=10) { sum=sum+data; data=data*10+8; } System.out.println(sum); } } 8.编写应用程序,输出满足1+2+3+…+n<8888的最大正整数n。 答: classMaxn { publicstaticvoidmain(Stringargs[]) { intk=1,sum=0; while((sum+=k)<8888) k++; k--; System.out.println("最大能取到: "+k); } } 第4章类、对象和接口 13.请写出下列程序的输出结果。 classA { publicintf(intx) { returnx+1; } } classBextendsA { publicintf(intx) { returnx*x; } } publicclassE { publicstaticvoidmain(Stringargs[]) { Aa=newB(); intm=a.f(10); System.out.println(m); } } 答: 100 14.请写出下列程序的输出结果。 classA { intx; publicvoidsetX(intx) { this.x=x; } intgetX() { returnx; } } classB { publicvoidf(Aa) { a.setX(100); } } publicclassE { publicstaticvoidmain(Stringargs[]) { Aa=newA(); a.setX(8); System.out.println(a.getX()); Bb=newB(); b.f(a); System.out.println(a.getX()); } } 答: 8 100 16.编写一个类A,该类创建的对象可以调用方法f输出英文字母表,然后再编写一个该类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字母表,而且调用子类新增的方法g输出希腊字母表。 答: classA { intm; voidf() { for(m=65;m<91;m++) System.out.print((char)m+""); for(m=97;m<123;m++) System.out.print((char)m+""); System.out.println(""); } } classBextendsA { inti; voidg() { for(i=913;i<930;i++) System.out.print((char)i+""); for(i=931;i<938;i++) System.out.print((char)i+""); for(i=945;i<962;i++) System.out.print((char)i+""); for(i=963;i<970;i++) System.out.print((char)i+""); System.out.println(""); } } publicclassTest { publicstaticvoidmain(Stringargs[]) { Bb=newB(); System.out.println("我调用方法f输出英文字母表: "); b.f(); System.out.println("我调用方法g输出希腊字母表: "); b.g(); } } 17.编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法publicvoidspeak(intm)throwsMyException,要求参数m的值大于1000时,方法抛出一个MyException对象。 最后编写主类,在主类的main方法中用Student创建一个对象,让该对象调用speak方法。 答: classMyExceptionextendsException { Stringstr1; MyException(intm) { str1=m+"出现错误可能造成的原因是取值大于1000"; } publicvoidshowStr1() { System.out.println(str1); } } classStudent { publicvoidspeak(intm)throwsMyException { if(m>1000) { MyExceptionexception=newMyException(m); throwexception; } else System.out.println(m); } } publicclassTest { publicstaticvoidmain(Stringagrs[]) { intm; Studentstu1=newStudent(); m=987; try { stu1.speak(m); m=1234; stu1.speak(m); } catch(MyExceptione) { e.showStr1(); } } } 18.编写一个类,该类有一个方法publicintf(inta,intb),该方法返回a和b的最大公约数。 然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数。 要求在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回。 要求在应用程序的主类中分别使用父类和子类创建对象,并分别调用方法f计算两个正整数的最大公约数和最小公倍数。 答: classA { publicintf(inta,intb) { if(a { inttemp=0; temp=a; a=b; b=temp; } intr=a%b; while(r! =0) { a=b; b=r; r=a%b; } returnb; } } classBextendsA { publicintf(inta,intb) { intm; m=super.f(a,b); return(a*b)/m; } } publicclassTest { publicstaticvoidmain(Stringargs[]) { Aa=newA(); System.out.println("18和102的最大公约数是: "+a.f(18,102)); Bb=newB(); System.out.println("18和102的最小公倍数是: "+b.f(18,102)); } } 第6章时间、日期和数字 1.用Data类不带参数的构造方法创建日期,要求日期的输出格式是: 星期小时分秒。 答: importjava.util.*; importjava.text.*; classTest { publicstaticvoidmain(Stringargs[]) { Date时间=newDate(); SimpleDateFormats=newSimpleDateFormat("EHH时mm分ss秒"); System.out.println(s.format(时间)); } } 3.计算某年、某月、某日和某年、某月、某日之间的天数间隔。 要求年、月、日通过main方法的参数传递到程序中。 答: importjava.util.*; classTest { publicstaticvoidmain(Stringargs[]) { Calendarc=Calendar.getInstance(); c.set(2000,0,1); longtime1=c.getTimeInMillis(); c.set(2008,7,8); longtime2=c.getTimeInMillis(); longdayCous=(time2-time1)/(1000*60*60*24); System.out.println("2008年8月8日和2000年1月1日相隔"+dayCous+"天"); } } 5.使用BigInteger类计算1! +3! +5! +7! +…的前30项的和。 答: importjava.math.*; publicclassTest { publicstaticvoidmain(Stringargs[]) { BigIntegersum=newBigInteger("0"), jieCheng=newBigInteger("1"), ONE=newBigInteger("1"), i=ONE; intk=0; while(++k<=30) { sum=sum.add(jieCheng); i=i.add(ONE); jieCheng=jieCheng.multiply(i); i=i.add(ONE); jieCheng=jieCheng.multiply(i); } System.out.println(sum); } } 第7章AWT组件及事件处理 6.编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。 设计4个按钮,分别命名为“加”、“差”、“积”、“除”,另外,窗口中还有3个文本框。 单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。 要求处理NumberFormatException。 答: importjava.awt.*; importjava.awt.event.*; classCalculatedextendsFrameimplementsActionListener { TextFieldtext1,text2,text3;//3个文本框 ButtonbuttonH,buttonC,buttonJ,buttonS;//4个按钮 Calculated(Strings) { super(s); setLayout(newFlowLayout());//FlowLayout布局 text1=newTextField(10); text2=newTextField(10); text3=newTextField(17); buttonH=newButton("加"); buttonC=newButton("差"); buttonJ=newButton("积"); buttonS=newButton("除"); add(text1); add(text2); add(text3); text3.setEditable(false); add(buttonH); add(buttonC); add(buttonJ); add(buttonS); buttonH.addActionListener(this); buttonC.addActionListener(this); buttonJ.addActionListener(this); buttonS.addActionListener(this); addWindowListener(newWindowAdapter() { publicvoidwindowClosing(WindowEvente) { System.exit(0); } } ); setBounds(100,100,160,180); setVisible(true); validate(); } publicvoidactionPerformed(ActionEvente) { doublenum1=0,num2=0,totle=0; try { num1=Double.parseDouble(text1.getText()); num2=Double.parseDouble(text2.getText()); if(e.getSource()==buttonH) { totle=num1+num2; text3.setText("和"+totle); } elseif(e.getSource()==buttonC) { totle=num1-num2; text3.setText("差"+totle); } elseif(e.getSource()==buttonJ) { totle=num1*num2; text3.setText("积"+totle); } elseif(e.getSource()==buttonS) { totle=num1/num2; text3.setText("商"+totle); } } catch(NumberFormatExceptionevent) { text3.setText("请输入数字字符! "); } } } publicclassTest { publicstaticvoidmain(Stringargs[]) { Calculatedcalc=newCalculated("计算");//标题为“计算”的窗口 } } 8.写一个应用程序,要求编写一个Panel的子类MyPanel,MyPanel中有一个文本框和一个按钮,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器,当单击按钮时,程序获取文本框中的文本, 并将该文本作为按钮的名称。 然后在编写一个Frame的子类,即窗口。 窗口的布局为BorderLayout布局。 窗口中添加两个MyPanel面板,分别添加到窗口的东部区域和西部区域。 答: importjava.awt.*; importjava.awt.event.*; classMyPanelextendsPanelimplementsActionListener { Stringname; TextFieldtext; Buttonbutton; MyPanel() { text=newTextField(10); button=newButton("确定"); add(text); add(button); button.addActionListener(this); addWindowLi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 复习资料 打印