1.基本操作题1. 下列程序中,分别计算1,2,3......,10的阶乘,并输出计算结果,请将程序补充完整。
程序运行结果如下:
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
10!=3628800
public class ex10_1 {
public static void main(String[]args) {
long 1 Factorial;
for(int i=1;i<=10;i++) {
_____________;
for(int j=2;___________;j++)
_____________;
System.out.println(i+ " ! =" + 1Factorial);
}
}
}
1Factorial=1
j<=i
1Factorial*=j
[解析]
本题主要考查for循环语句和简单的数学计算。解题要点是熟练掌握for循环语句,会解决一些简单的数学问题,熟悉求阶乘的算法,并用程序实现这一算法。本题中,第1个空,要对1Factorial变量进行初始化,因为需要计算1到10一共10个数的阶乘,所以最外层循环共执行10次,每次都需要将1Factorial重新初始化为1:第2个空,内层循环实现某个数的阶乘,因此循环变量的上界应该是i<=i;第3个空,阶乘算法的公式,做累乘。
2.简单应用题1. 请完成下列Java程序:输出某年的某月有多少天数,要求生成2个输入对话框,一个输入年份,一个输入月份,并且能检查输入的数字是否符合要求,如果符合要求,则根据输入的年份和月份计算出这一年的这一月有多少天。提示:闰年为年数能被4整除但是不能被100整除。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:

import javax.swing. JOptionPane;
public class ex10_2 {
public static void main(String[] args) (
String strIn;
int nYear,nMonth,nNumOfDays=0;
strIn=JOptionPane.showInputDialog(,,year.);
nYear=Integer.parseInt(strIn);
if(nYear<0) {
System.out.println("Invalidate number of year!")
return;
} strIn=JOptionPane.showInputDialog("month.);
nMonth=Integer.parseInt(strIn);
if(_____________) {
System.out.println("Invalidate number of month!"
return;
}
switch(nMonth){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
nNumOfDays=31;
break;
case 4:
case 6:
case 9:
case 11:
nNumOfDays=30;
break;
case 2:
if(________________)
nNumOfDays=29;
else
nNumOfDays=28;
break;
}
System.out.println("Number of days:"+ nNumOfDays);
}
}
nMonth<0 || nMonth>12
((nYear%4 ==0)&&!(nYear%100 == 0)) || (nYear%400 == 0)
[解析]
本题主要考查swing图形用户界面设计和case语句的简单应用。解题关键是会用swing的容器面板构造对话框,熟悉判断闰年的条件语句的设计,判断输入是否符合程序要求的条件语句设计,case语句的设计。本题中,第1个空,判断输入的月份值应该在1到12月之间,否则给出提示信息并退出;第2个空,闰年的判断,将题干中的提示用代码实现。
3.综合应用题1. 下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示10条“Welcome to the NCR Examination!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:

import javax.swing.* ;
import java.awt.*;
import java.awt.event.*;
/*
<applet code="ex10_3.class"width = 800 height=400>
</applet>
*/
public class ex10_3 extends JApplet {
JButton jb = new JButton("Add Text");
JTextPane itp = new JTextPane();
public void init() {
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for(int i = 1;i<10;i++)
jtp.getText(jtp.setText()+"Welcome to the NCR Examination!\n");
}
});
Container cp = getContentPane();
cp.add(new JScrollPane(jtp));
cp.add(BorderLayout.SOUTH,jtp);
}
public static void main(String[]args) {
ex10_3 obj10_3=new ex10_3();
String str = obj10_3.getClass().toString();
if(str.indexOf("class") != -1)
str = str.substring(6);
JFrame frm = new JFrame(str);
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(O);
}
});
frm.getContentPane().add(ex10_3);
frm.setSize(300, 400);
frm.setVisible(true);
}
}
ex10_3.html <HTML>
<HEAD>
<TITLE>ex10_3</TITLE>
</HEAD>
<BODY>
<applet code="exl0_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
jtp.setText(jtp.getText() + " Welcome to the NCR Examination!\n")
cp.add(BorderLayout.SOUTH,jb)
frm.getContentPane().add(obj10_3)
[解析]
本题主要考查Applet和swing结合进行图形用户界面设计的综合应用。解题关键是掌握swing的基本构件JTextPanel, JButton,JScrollPanel的用法,掌握BorderLayout布局管理器的使用方法,以及熟练掌握最基本的对象概念。本题中,第1处, JTextPanel的2个基本的方法,setText()和getText()的功能,熟悉这2个功能,则很容易就能将错误改正;第2处,应该是通过BorderLayout布局管理器在窗口的最下方添加一个JBuRon对象,需要清楚程序中每个对象所对应的类;第3处,应该是将类ex10_3的对象。obj10_3加入容器中,而不是把类作为参数传递给add()方法。