填空题

本题利用递归方法求前n个自然数的和(n=10)。
public class java1
public static void main(String[]args)
int sum=add(10);
System. out. println("1+2+…+9+10="+sum);

pubhc static int add(______)
if(n==1)
______;

else
______;

【参考答案】

第1处:int n
第2处:return 1
第3处:return n+add(n-1)
热门 试题

填空题
本题中定义了一个简单的计算器,可以进行基本的四则运算。程序中包含16个按钮用来表示0~9、+、-、*、 、=运算符和小数点,程序顶部的文本框用来显示操作数以及结果。 import java. awt. * ; import java. awt. event. * ; import javax. swing. * ; public class java2 public static void main(String[] args) try UIManager. setLookAndFeel(UIManager. getSystemLookAndFeelClassName()); catch (Exception e) JFrame frame=new CalculatorFrame(); frame. show(); class CalculatorPanel extends JPanel implements ActionListener private JTextField display; private JButton btn; private double arg=0; private String op= = ; private boolean start=true; public CalculatorPanel() setLayout(new BorderLayout()); dispIay=new JTextField( 0 ); display, setEditable(false); add(display, North ); JPanel p=new JPanel(); p. setLayout(new GridLayout(4,4)); String buttons= 789 456*123-0.=+ ; for (int i=0; i<buttons, length(); i++) btn=new JButton(buttons. substring(i, i+1)); p. add(btn); ______; add(p, Center ); public void actionPerformed(ActionEvent evt) String s=evt. getActionCommand(); if(’0’<=s. charAt(0) && s. charAt(0)<=’9’ || s. equals( . )) if (start) display. setText(s); else display, setText(display, getText()+s); start=false; else if (start) if (s. equals( - )) display. setText(s); start=false; else op=s; else double x=______; calculate(x); op=s; start=true; public void calculate(double n) if (op. equals( + )) arg+=n; else if (op. equals( - )) arg-= n; else if (op. equals( * )) arg *=n; else if (op. equals( )) arg =n; else if (op. equals( = )) arg=n; display, setText( +arg); class CalculatorFrame extends JFrame public CalculatorFrame() setTitle( java2 ); setSize(220,180); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System. exit(0); ); Container contentPane=getContentPane(); contentPane, add(new CalculatorPanel());
填空题
本题的功能是用文本框来设定表盘中指针的位置。窗口中有一个画板和两个文本框,画板中绘制了一个表盘和时针、分针,通过文本框分别设定“时”和“分”,表盘中的时针和分针就会指到对应的位置上。 import java. awt. * ; import java. awt. event. * ; import java. awt. geom. * ; import javax. swing. * ; import javax. swing, event. * ; public class java3 public static void main(String[] args) TextTestFrame frame=new TextTestFrame(); frame. setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame. show(); class TextTestFrame extends JFrame public TextTestFrame() setTitle( java3 ); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); Container contentPane=getContentPane(); DocumentListener listener=new DocumentListen-er(); JPanel panel=new JPanel(); hourField=new JTextField( 12 ,3); panel, add(hourField); hourField, getDocument (). addDocumentListener(this); minuteField=new JTextField( 00 ,3); panel, add(minuteField); minuteField, getDocument(), addDocumentListener(listener); contentPane, add ( panel, BorderLayout. SOUTH); clock=new ClockPanel(); contentPane, add (clock, BorderLayout. CENTER); public void setClock() try int hours = Integer. parseInt (hourField. getText(). trim()); int minutes = Integer. parselnt(minuteField, getText(), trim()); clock, setTime(hours, minutes); catch (NumberFormatException e) public static final int DEFAULT WIDTH=300; public static final int DEFAULT_HEIGHT=300; private JTextField hourField; private JTextField minuteField; private ClockPanel clock; private class clockFieldListener extends DocumentListener public void insertUpdate(DocumentEvent e) setClock(); public void removeUpdate(DocumentEvent e) setClock(); public void changedUpdate(DocumentEvent e) class ClockPanel extends JPanel public void paintComponent(Graphics g) super, paintComponent(g); Graphics2D g2=(Graphics2D)g; Ellipse2D circle =new Ellipse2D. Double(0,0,2 * RADIUS, 2 * RADIUS); g2. draw(circle); double hourAngle =Math. toRadians(90-360 * minutes (12 * 60)); drawHand (g2, hourAngle, HOUR_HAND_LENGTH); double minuteAngle Math. toRadians(90-360 * minutes 60) drawHand(g2, minuteAngle, MINUTE_HAND_LENGTH); public void drawHand(Graphics2D g2, double angle, double handLength) Point2D end=new Point2D. Double( RADIUS+handLength * Math. cos(angle), RADIUS-handLength * Math. sin(angle)); Point2D center=new Point2D. Double(RADIUS, RADIUS) g2. draw(new Line2D. Double(center, end)); public void setTime(int h, int m) minutes=h*60+m; repaint(); private double minutes=0; private double RADIUS=100; private double MINUTE_HAND_LENGTH=0.8 * RADIUS; private double HOUR_HAND_LENGTH=0.6 * RADIUS;