今天早上考了java, 题目感觉还不错, 共四道题,有一道定义类的没啥意思就没列出来. 这三道题目还是不错的,特别是第一道,大一上学期学linux的时候,那时还没学C语言呢,准确的来说,还不知道什么是编程呢~~~去外面试听了几节linux的课, 那天老师直接复习C语言,可我还没见过C语言长啥样,直接傻眼了.最后布置了一道题,就是这里的第一道题了.

1. 有200个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1-200,从1号小朋友开始循环1-3报数,数到3的小朋友就退出。编写一个Java应用程序,计算出最后一个小朋友的号码是多少。

分析:使用递归

package 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));
	}

}

今天考试的JAVA编程题今天考试的JAVA编程题

2. 编写程序根据用户输入的整数来在屏幕上产生图形(必须使用循环):

输入7时:                      输入5时:

今天考试的JAVA编程题 今天考试的JAVA编程题

import 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);
	}

}
今天考试的JAVA编程题

3. 用Swing包来实现一个窗体,要求如下:

l 窗体的初始大小为500*500;

l 窗体中包含一个下拉框,该下拉框包含(按钮1、按钮2、按钮3):位置(60,60),大小(90,30);

l 窗体中包含一个按钮(初始文本为“按钮”):位置(150,60),大小(80,30);

l 用监听事件实现当选择不同下拉框不同的选项时,按钮上的文本显示为对应的文本;

l 用监听事件实现当最小化窗口时,通过消息框显示“您正在最小化窗口”。

import 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编程题今天考试的JAVA编程题

更多java题见:50道经典的JAVA编程题(目录)

相关文章: