今天早上考了java, 题目感觉还不错, 共四道题,有一道定义类的没啥意思就没列出来. 这三道题目还是不错的,特别是第一道,大一上学期学linux的时候,那时还没学C语言呢,准确的来说,还不知道什么是编程呢~~~去外面试听了几节linux的课, 那天老师直接复习C语言,可我还没见过C语言长啥样,直接傻眼了.最后布置了一道题,就是这里的第一道题了.
1. 有200个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1-200,从1号小朋友开始循环1-3报数,数到3的小朋友就退出。编写一个Java应用程序,计算出最后一个小朋友的号码是多少。
分析:使用递归
javapackage test50; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * @author VellBibi *有200个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1-200,从1号小朋友开始循环1-3报数, *数到3的小朋友就退出。编写一个Java应用程序,计算出最后一个小朋友的号码是多少。 */ public class Test3Quit { /** * @param l 剩下小朋友List * @param n 第n个开始报数 * @param m 数到m的人退出 * @return 最后一个小朋友的号码 */ public static int play(List<Integer> l, int n, int m){ int s = l.size(); if(s <= 1) return l.get(0); else { n = n + m - 1; while(n >= s) n = n-s; l.remove(n); return play(l, n, m); } } public static void main(String[] args) { System.out.println("输入有多少个小朋友:"); Scanner s = new Scanner(System.in); int n = s.nextInt(); List<Integer> l = new ArrayList<Integer>(); for(int i=1; i<=n; i++){ l.add(i); } System.out.println(play(l, 0, 3)); } }
2. 编写程序根据用户输入的整数来在屏幕上产生图形(必须使用循环):
输入7时: 输入5时:
javaimport java.util.Scanner; /** * @author VellBibi *编写程序根据用户输入的整数来在屏幕上产生图形(必须使用循环): 输入7时: * * * * * * * * * * * * * * * * * * * * * * * * */ public class PrintView { public static void print(int n){ for(int i=0; i<n; i++){ for(int j=0; j<n+i; j++){ if(j == n-i-1 || j == n+i-1) System.out.print("*"); else System.out.print(" "); } System.out.println(); } for(int i=0; i<n-1; i++){ for(int j=0; j<2*(n-1)-i; j++){ if(j == i+1 || j == 2*(n-1)-i-1) System.out.print("*"); else System.out.print(" "); } System.out.println(); } } public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); print(n); } }
3. 用Swing包来实现一个窗体,要求如下:
l 窗体的初始大小为500*500;
l 窗体中包含一个下拉框,该下拉框包含(按钮1、按钮2、按钮3):位置(60,60),大小(90,30);
l 窗体中包含一个按钮(初始文本为“按钮”):位置(150,60),大小(80,30);
l 用监听事件实现当选择不同下拉框不同的选项时,按钮上的文本显示为对应的文本;
l 用监听事件实现当最小化窗口时,通过消息框显示“您正在最小化窗口”。
javaimport java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; /** * @author VellBibi *用Swing包来实现一个窗体,要求如下: *窗体的初始大小为500*500; *窗体中包含一个下拉框,该下拉框包含(按钮1、按钮2、按钮3):位置(60,60),大小(90,30); *窗体中包含一个按钮(初始文本为“按钮”):位置(150,60),大小(80,30); *用监听事件实现当选择不同下拉框不同的选项时,按钮上的文本显示为对应的文本; *用监听事件实现当最小化窗口时,通过消息框显示“您正在最小化窗口”。 */ public class TestSwing { public static void main(String[] args) { final JFrame f = new JFrame("vell001-VellBibi"); f.setLayout(null); String[] str = new String[]{"按钮1","按钮2","按钮3"}; JComboBox cb = new JComboBox(str); cb.setBounds(60, 60, 90, 30); final JButton bt = new JButton("按钮"); bt.setBounds(150, 60, 80, 30); final JDialog dl = new JDialog(f,"您正在最小化窗口"); JLabel l = new JLabel("您正在最小化窗口!!!"); dl.add(l); dl.setSize(200, 100); cb.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if(e.getStateChange() == ItemEvent.SELECTED){ String item = (String)e.getItem(); bt.setText(item); } } }); f.addWindowListener(new WindowListener() { @Override public void windowOpened(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent e) { dl.setVisible(true);//显示dialog } @Override public void windowDeiconified(WindowEvent e) { } @Override public void windowDeactivated(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowClosed(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowActivated(WindowEvent e) { // TODO Auto-generated method stub } }); f.add(cb); f.add(bt); f.setSize(500, 500); f.setVisible(true); } }
更多java题见:50道经典的JAVA编程题(目录)