Java期末模拟考之编程题

1、编写程序完成阿拉伯数字到中文数字的转换。

要求:运行后对每次输入做判断,如果是exit就终止程序,当初不是exit时,每输入一位0-9的拉伯数字,输出一个中文数字,例如输入"9"就输出"九"。

import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
        String s;
        Scanner in = new Scanner(System.in);
        s = in.nextLine();

        switch(s) {
            case "0": System.out.println("零");break;
            case "1": System.out.println("一");break;
            case "2": System.out.println("二");break;
            case "3": System.out.println("三");break;
            case "4": System.out.println("四");break;
            case "5": System.out.println("五");break;
            case "6": System.out.println("六");break;
            case "7": System.out.println("七");break;
            case "8": System.out.println("八");break;
            case "9": System.out.println("九");break;
        }while(!s.equals("exit"));
        in.close();
    }
}

2、已知一个类person如下:

class Person1{
    String name;
    public void ShowName(){
        System.out.println("My nane is "+name);
    }
}

要求:
1、继承person新建一个类student
2、增加变量school类型为string
3、仿造 showName方法的样式,增加方法showSchool功能是输出当前对象的school属性。4、实例化一个student对象name赋值为光头强,school赋值为熊出没


class Person1{
    String name;
    public void ShowName(){
        System.out.println("My nane is "+name);
    }
}
class Student1 extends Person1{
    String school;
    public void ShowSchool(){
        super.ShowName();
        System.out.println("My school is "+school);
    }
}
public class test2 {
    public static void main(String[] args){
    Student1 s = new Student1();
        s.name="光头强";
        s.school="熊出没";
        s.ShowSchool();

    }
}

3、已知一个类class1如下:

class Class1{

    Class1(){
        System.out.println("这是构造函数");
    }

    void show(){
        System.out.println("Hello!");
    }
  }

要求:
1、对class1进行修改,重载class1的pprint方法输入参数为应时输出字符串“这是整数”。
2、对class1进行修改错增加构造函数,内容是输出字符串“这是构造函数”。
3、使用匿名类的方式声明一个class1对象,对象名为cc并重写数,方法为输出字符串“HelloWorld!”。

import java.util.Scanner;
class class1{
    void show(){
        System.out.println("Hello");
    } 
    public class1 (){
        System.out.println("这是构造函数");
    }
    void pprint(String arg){
        System.out.println("这是字符串");
    }
    void pprint(int arg){
        System.out.println("这是整数");
    }
  
}
public class test3 {
    public static void main(String[] args){
    	 class1 cc = new class1(){
            void show(){
                System.out.println("Hello World!");
            }
        };
        cc.pprint(4);
        cc.pprint("傻逼");
         cc.show();      
       //Scanner in = new Scanner(System.in);
       //cc.pprint(in.next()); 之前答题时以为题目说的输入参数是从键盘输入
       //就设置了scanner,不过没弄完就到时间了,今晚回来搞了下
      Scanner in = new Scanner(System.in);
       cc.pprint(in.next());//string,为什莫输入2*(整数)也显示这是字符串?
       cc.pprint(in.nextInt());//int,而输入S(字符串)显示错误? 
    }
}

二、读程题
1、下面程序的输出结果:

class Myclass{
	 static int member;
}
public class test {
	public static void main(String[] args) {
		Myclass A = new Myclass();
		Myclass B = new Myclass();
		Myclass.member = 1;
		A.member=2;
		B.member=3;
		System.out.println("member = "+ Myclass.member);
	}

}

结果:member = 3
分析:考静态变量
(1)在这里插入图片描述
对于不是private的静态变量,可以在该类外用类名调用,例如以上:在Test类用Myclass类名调用非private类型的静态变量member。
(2)在这里插入图片描述
在这里插入图片描述

静态变量只在系统加载其所在类时分配空间并初始化,并且在创建该类的实例时,不再分配空间,所有实例将共享类的静态变量。

2、下面程序输出结果是:

class Super{
	public int i = 0;
	public Super() {}
	public Super(String text) {
		i = 1;
	}
}

public class Sub extends Super{
	public Sub() {}
		public Sub(String text) {
			super("");
			i =2;
		}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Sub sub = new Sub("Hello");
		System.out.println(sub.i);

	}

}

//结果:
//2

读到super("")就有些懵了,删掉就报错:
Implicit super constructor Super() is undefined. Must explicitly invoke another constructor
隐式 super构造函数Super()未定义。必须显式调用另一个构造函数

然后网查到一篇关于调用父类构造函数的文:
java继承—调用父类构造函数:(https://blog.csdn.net/u012501054/article/details/78041606)

就简单说下上面的代码:父类未定义无参数构造函数,用super("")自动调用父类中自动生成的无参数构造函数
(就先这么理解了,后面再深入了解吧)

3.读程题

public class Foo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i = 1;
		int j = i++;//i=1赋给j,之后i++ i自加,i=2
		//System.out.println(i);结果:2
		//System.out.println(j);结果:1
		
		if(++i>j&&(i++ == j)){
			//++i,i先自加i=2+1,再与j比较;i赋给j,再i自加,i=3+1
			i += j;
		}
		System.out.println(i);//结果:4
		
	}
}

4、

public class TestDemo{
	int  m = 5 ;
	public viod some(int x){
	m =  x;
	}
	public static void main(String[] args){
	new Demo().some(7);//结果:8
	}
}
class Demo extends TestDemo{
	int m = 8;
	public void some(int x){
	super.some(x);
	System.out.println(m);
	}
}

唉~不知道到时为什么那么纠结

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a_Yogurt

你的鼓励就是最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值