Java习题2

Java习题二

这些题都需要用户输入一个数

Scanner 扫描仪扫描器

        是一个Java自带的一个类 主要负责的就是数据输入的问题

        对于内存而言 数据的输入来源有很多

        1.可以是从硬盘上读取数据

        2.可以是从互联网上读取数据

        3.可以是从输入设备(键盘)读取数据

       形式: nextByte()

                nextShort()

                nextInt()       常用

                nextFloat()

                nextDouble()    常用

应用格式(在应用前需要先声明):

import java.util.Scanner;

在函数中应用前需要先创建"类名 变量名=new 类名();"

Scanner 变量名 = new Scanner(System.in);

给变量赋值时:

变量类型 变量 =scanner.形式();

1,(求一个整数各位数的和)编写程序,读取一个在0和1000之间的整数,并将该整数的各位数字相加。例如:整数是932, 各位数字之和为14。

提示:利用操作符%分解数字,然后使用操作符/去掉分解出来的数字。例如: 932%10=2,932/10=93。

import java.util.Scanner;    //声明需要用到的一个类,Scanner 扫描仪扫描器,主要负责输入
class Demo01{
    public static void main(String[] args){
        System.out.print("请输入一个数字:");   //提示输入一个数
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();        //将输入的数传给整型number
        int a=number%10;    //得到的是个位
        number/=10;
        int b=number%10;    //得到的是十位
        number/=10;
        int c=number%10;    //得到的是百位
        int sum=a+b+c;      //将得到的数字之和赋值给整型sum
        System.out.println(sum);
    }
}

2,(将摄氏温度转换为华氏温度)编写程序,从控制台读入double 型的摄氏温度,然后将其转换为华氏温度,并且显示结果。转换公式如下所示:华氏温度=(9/5) *摄氏温度+32

提示:在Java中, 9/5的结果是1,但是9.0/5的结果是1.8。

import java.util.Scanner;    //声明需要用到的一个类,Scanner 扫描仪扫描器,主要负责输入
class Demo02{
    public static void main(String[] args){
        System.out.print("请输入摄氏温度:");    //提示输入
        Scanner scanner=new Scanner(System.in);    
        double cel=scanner.nextDouble();    //将输入的值赋给double型的cel
        double fah=cel * 9 / 5 + 32;    //将运算结果赋给fah
        System.out.println("摄氏温度" + cel + ",是华氏温度" + fah);   //输出答案 
    }
}

3.(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱的体积:面积=半径X半径Xp,体积=面积X高;p=3.1415926

import java.util.Scanner;
class Demo03{
    public static void main(String[] args){
        System.out.print("请输入半径和高:");    //提示输入
        Scanner scanner = new Scanner(System.in);
        double radius = scanner.nextDouble();    //将半径赋给radius
        double length = scanner.nextDouble();    //将高赋给length
        double area = radius * radius * 3.1415926;    //带公式算出面积
        double volume = area * length;    //再算出体积
        System.out.println("圆柱体的体积为"+volume);    //输出结果
    }
}


4.(财务应用程序:复利值)假设你每月向银行账户存100美元,年利率为5%,那么每月利率是0.05/12-0.00417。

第一个月之后,账户上的值就变成:

100 * (1 + 0.00417) = 100.417
第二个月之后,账户上的值就变成:
(100 + 100.417) * (1 + 0.00417) = 201.252
第三个月之后,账户上的值就变成:
(100 + 201.252) * (1 + 0.00417) = 302. 507
依此类推。


编写程序显示六个月后账户上的钱数。

class Demo04{
    public static void main(String[] args){
        double money=100;    //初始的钱
        double rate=0.05;    //年利息,月利息为0.05/12
        double sum=money*(1+rate/12);    //第一个月的钱数
        sum=(sum+money)*(1+rate/12);    //第二个月的钱数
        sum=(sum+money)*(1+rate/12);    //第三
        sum=(sum+money)*(1+rate/12);    //第四
        sum=(sum+money)*(1+rate/12);    //第五
        sum=(sum+money)*(1+rate/12);    //第六
        System.out.println(sum);     //最终将第六个月的钱数输出
    }
}

5.(几何:两点间距离)编写程序,提示用户输人两个点(x1, y1)和(x2, y2),然后显示两点间的距离。计算两点间距离的公式是根号下(x1-x2)^2+(y1-y2)^2。注意:可以使用Math.pow(a,0.5)来计算根号a。
 

import java.util.Scanner;
class Demo05{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);   
        System.out.print("请输入第一个坐标:");    //提示用户输入第一个坐标
        double x1=scanner.nextDouble();    //将第一个坐标的x值赋给x1
        double y1=scanner.nextDouble();    //将第一个坐标的y值赋给y2
        
        System.out.print("请输入第二个坐标:");    //提示输入第二个坐标
        double x2=scanner.nextDouble();    //将第二个坐标的x值赋给x2
        double y2=scanner.nextDouble();    //将第二个坐标的y值赋给y2
        
        double distance=Math.pow(Math.pow(x2-x1,2)+Math.pow(y2-y1,2),0.5);    
        //根据题目中给的公式计算,Math.pow(a,0.5),相当于a的0.5次幂
        System.out.println(distance);    //输出结果
    }
}

6.(几何:三角形的面积)编写程序,提示用户输入三角形的三个点(x1,y1),(x2,y2)和(x3,y3),然后显示它的面积。计算三角形面积的公式是:
             s=(边1+边2+边3)2
        面积=根号下s(8 -边1)(s-边2)(s-边3)

import java.util.Scanner;
class Demo06{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入三个点的坐标:");

        double x1=scanner.nextDouble();
        double y1=scanner.nextDouble();    //第一个坐标的赋值

        double x2=scanner.nextDouble();
        double y2=scanner.nextDouble();    //第二个坐标的赋值

        double x3=scanner.nextDouble();
        double y3=scanner.nextDouble();    //第三个坐标的赋值

        double side1=Math.pow(Math.pow(x1-x2,2)+Math.pow(y1-y2,2),0.5);
        double side2=Math.pow(Math.pow(x1-x3,2)+Math.pow(y1-y3,2),0.5);
        double side3=Math.pow(Math.pow(x2-x3,2)+Math.pow(y2-y3,2),0.5);
        //分别算出三个边的长度,通过用数学中的两点间的距离公式
    
        double s=(side1+side2+side3)/2;    //算出s

        double area=Math.pow(s*(s-side1)*(s-side2)*(s-side3),0.5);    //求出面积

        System.out.printf("area=%.2f\n",area);    //输出结果
    }
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java测试题2》<br><br>一、 选择<br>1.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ? B<br>A ArrayList myList=new Object();<br>B List myList=new ArrayList();<br>C ArrayList myList=new List();<br>D List myList=new List();<br>2.paint()方法使用哪种类型的参数? A<br>A Graphics<br>B Graphics2D<br>C String<br>D Color<br>3.指出正确的表达式 D<br>A byte=128;<br>B Boolean=null;<br>C long l=0xfffL;<br>D double=0.9239d;<br>4.指出下列程序运行的结果 D<br>public class Example{<br>String str=new String("good");<br>char[]ch={'a','b','c'};<br>  public static void main(String args[]){<br>    Example ex=new Example();<br>    ex.change(ex.str,ex.ch);<br>    System.out.print(ex.str+" and ");<br>    Sytem.out.print(ex.ch);<br>  }<br>  public void change(String str,char ch[]){<br>    str="test ok";<br>    ch[0]='g';<br>  }<br>}<br>A good and abc<br>B good and gbc<br>C test ok and abc<br>D test ok and gbc<br>5.运行下列程序, 会产生什么结果 B<br>public class X extends Thread implements Runable{<br> public void run(){<br>  System.out.println("this is run()");<br> }<br> public static void main(String args[])<br> {<br>  Thread t=new Thread(new X());<br>  t.start();<br> }<br>}<br>A 第一行会产生编译错误B 第六行会产生编译错误C 第六行会产生运行错误D 程序会运行和启动6.要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合? A<br>A FileInputStream in=new FileInputStream("file.dat"); in.skip(9); int c=in.read();B FileInputStream in=new FileInputStream("file.dat"); in.skip(10); int c=in.read();C FileInputStream in=new FileInputStream("file.dat"); int c=in.read();D RandomAccessFile in=new RandomAccessFile("file.dat"); in.skip(9); int c=in.readByte();7.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变? B<br>A CardLayoutB FlowLayout<br>C BorderLayout<br>D GridLayout<br>8.给出下面代码: C<br>public class Person{<br>  static int arr[] = new int[10];<br><br>  public static void main(String a[])<br>  {<br>   System.out.println(arr[1]);<br>  }<br>}<br>那个语句是正确的?<br>A 编译时将产生错误;<br>B 编译时正确,运行时将产生错误;<br>C 输出零;<br>D 输出空。<br>9.哪个关键字可以对对象加互斥锁? B<br>A transient<br>B synchronized<br>C serialize<br>D static<br>10.下列哪些语句关于内存回收的说明是正确的? B<br>A 程序员必须创建一个线程来释放内存;<br>B 内存回收程序负责释放无用内存<br>C 内存回收程序允许程序员直接释放内存<br>D 内存回收程序可以在指定的时间释放内存对象<br>11.下列代码哪几行会出错: c<br>1) public void modify() {<br>2) int I, j, k;<br>3) I = 100;<br>4) while ( I > 0 ) {<br>5) j = I * 2;<br>6) System.out.println (" The value of j is " + j );<br>7) k = k + 1;<br>8) I--;<br>9) }<br>10) }<br>A line 4<br>B line 6<br>C line 7<br>D line 8<br>二、多项选择<br>1.执行下列代码后,哪个结论是正确的 String[] s=new String[10]; BD<br>A s[10] 为 "";<br>B s[9] 为 null;<br>C s[0] 为 未定义<br>D s.length 为10<br>2.下面的表达式哪个是正确的?AE<br>A String s="你好";int i=3; s+=i;<br>B String s="你好";int i=3; if(i==s){ s+=i};<br>C String s="你好";int i=3; s=i+s;<br>D String s="你好";int i=3; s=i+;<br>E. String s=null; int i=(s!=null)&&(s.length>0)?s.length():0;<br>3.选出合理的标识符AC<br>A _sys1_lll<br>B 2mail<br>C $change<br>D class<br>4.哪个布局管理器使用的是组件的最佳尺寸( preferred size) AE<br>A FlowLayout<br>B BorderLayout<br>C GridLayout<br>D CardLayout<br>E.GridBagLayout<br>5.下列哪个方法可用于创建一个可运行的类?AE<br>A public class X implements Runable{ public void run(){ ......} }<br>B public class X implements Thread{ public void run(){ ......} }<br>C public class X implements Thread{ public int run(){ ......} }<br>D public class X implements Runable{ protected void run(){ ......} }<br>E.public class X implements Thread{ public void run(){ ......} }<br>6.下面哪个方法可以在任何时候被任何线程调用?DEF<br>A notify()<br>B wait()<br>C notifyAll()<br>D sleep()<br>E.yield()<br>F.synchronized(this)<br>7.构造BufferedInputStream的合适参数是哪个? AC<br>A BufferedInputStream<br>B BufferedOutputStream<br>C FileInputStream<br>D FileOuterStream<br>E. File<br>8.下列说法正确的是 BC<br>A java.lang.Clonable是类<br>B java.lang.Runnable是接口<br>C Double对象在java.lang包中<br>D Double a=1.0是正确的java语句<br>9.指出正确的表达式AB<br><br>B Double a=new Double(1.0);<br>C byte a = 340;<br>D Byte a = 120;<br>10.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:CD<br>A double a=1.0;<br>A private class MyClass extends Object<br>B class MyClass extends Object<br>C public class MyClass<br>D public class MyClass extends Object<br>11.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。 CD<br><br><br>A public int add(int a)<br>B public void add(long a)<br>C public void add(int a,int b)<br>D public void add(float a)<br>12.如果下列的方法能够正常运行,在控制台上将显示什么? ACD<br><br>public void example(){<br>  try{<br>    unsafe();<br>    System.out.println("Test1");<br>    }<br>    catch(SafeException e)<br>    {System.out.println("Test 2");}<br>  finally{System.out.println("Test 3");}<br>  System.out.println("Test 4");<br>}<br>A Test 1<br>B Test 2<br>C Test 3<br>D Test 4<br>13.下列哪些情况可以终止当前线程的运行? ABD<br>A 抛出一个例外时。<br>B 当该线程调用sleep()方法时。<br>C 当创建一个新线程时。<br>D 当一个优先级高的线程进入就绪状态时。<br>三、 填空题<br>1.执行下列代码后的结果是什么? int x,a=2,b=3,c=4; x=++a+b+++c++;<br>2. 包包含了Collection的接口和类的API<br>.main方法的声明格式包括<br>4.下列程序中构造了一个SET并且调用其方法add(),输出结果是<br>public class A{<br>public int hashCode(){return 1;}<br>public Boolean equals(Object b){return true}<br>public static void main(String args[]){ Set set=new HashSet();<br>set.add(new A());<br>set.add(new A());<br>set.add(new A());<br>System.out.println(set.size());<br>}<br>}<br>5.下列程序的运行结果是<br>class A{<br>class Dog{<br>  private String name;<br>  private int age;<br>  public int step;<br>  Dog(String s,int a){<br>   name=s;<br>   age=a;<br>   step=0;<br>   }<br>  public void run(Dog fast){<br>  fast.step++;<br>  }<br>}<br><br>  public static void main (String args[]){<br>  A a=new A();<br>  Dog d=a.new Dog("Tom",3);<br>  d.step=25;<br>  d.run(d);<br>  System.out.println(d.step);<br>  }<br>}<br><br>答案::填空第1题<br>x=10,a=3,b=4,c=5<br>填空第2题<br>java.util<br>填空第3题<br>(public )(static )(void)(main)(String args[])<br>填空第4题<br>1<br>填空第5题<br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值