Java基础-- 强化题(一)

来源:互联网 发布:淘宝美工是干什么的 编辑:程序博客网 时间:2024/06/07 04:50
一、【必做题】
1.  如果DOS命令输入:java HelloJava出现以下结果:Bad command or file name 可能是什么原因?
path classpath 没有配置;
 path        变量值: jdk中bin的路径
 变量名:classpath      变量值: .;jdk中lib的路径
1、安装:bin(比如说编译工具),lib(比如说常用的一些基础类,我们用的System类等)
①然后再让同学在DOS运行JAVAC命令,不可以,说明环境变量还未配置
2、配置path:为了让系统知道(或找到),如果javac.exe的含义(配置好path后再让学生运行一下javac.exe,预期:不可以)
                     用于指定操作系统的可执行指令的路径。
3、配置class path:这样JVM在编译时才能找到程序中所使用的java类,如System类等。
                              用于指定java的类文件存放路径。
    注意:“.;”的含义:让java虚拟机在任何情况下都想从当前目录下去找,找不到再咱顺序去找别的
    (然后再让同学运行一下javac.exe和java.exe,发现可以)

2. 如果上题中的命令出现以下结果:Exception in thread  “main” java.lang.NoClass DefFoundError:  HelloJava可能是什么原因?
是否配置了classpath
是否有import 包名
//是否打成 java helloworkd.java

3. 在HelloJava.class所在的路径下,输入命令:java HelloJava.class看看会出现什么结果,为什么?
找不到Hellojava/class文件
4. Java虚拟机是实实在在的机器吗?
不是,Java虚拟机(Java Virtual Machine) 简称JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。作用:加载并运行java的字节码文件(.class)。

5. Java 为什么能跨操作系统平台运行?
   因为jvm java虚拟机Java虚拟机 就是在你开发的应用程序和操作系统中间加的那层 你开发的应用程序面对的是Java虚拟机这一层 具体这一层对操作系统的接口是怎样实现的 你不用管 这样你编写的代码只需编译一次 就可以做到到处运行 意思是无论部署在Linux还是Windows等等系统上 你的代码都无需修改 就跟一个翻译一样 他能将汉语翻译成英语 也能将汉语翻译成日语
6. 作业要求:设置环境变量,path,classpath,java_home; 并运行HelloWorld.java
程序如下:
public class HelloWorld
{
public static void main(String arge[])
{
System.out.println(“hello world”);
}
}
步骤:
(a)配制环境
(b)用记事本抄写程序并保存为扩展名是.java的文件
(c)编译
(d)运行

实现效果:
           

7.打印如下效果

       

*****************************

*        hello,world          *

*****************************

         
一、【必做题】
1. 下列哪些变量名是合法的?Ab?1,  @abc , lname, _int,  $25,  private,  ab*5,  #abc
Lname, _int, $25
标识符的命名规则
必须以字母、下划线(_)或美元符号($)开头
余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限。标识符中不能有空格。
不能使用Java中的关键字或者保留字做为标识符
字母大小写敏感
注意代码规范 起名要有一定含义 要让别人读懂
2. 写出以下表达式的值:
(1) int a = 2,  b = 3,  c;
  c = a / b * 8;
(2) float a = 3.0F,  b;
  b = a / 0;
(3) double a = 3.0, k;
  Int b = 3, c = 2;
  k = a / c + b / c;
(4) int a = 3,  b = 6, c;
  c =  (a++) + (++b) + a * 2 + b * 4;
(5) int a = 10, b=3, c;
  c = ((a % b) == 0) ?  ++a * 2:++b * 2;
(6) int a = 5,b ;
  b = 5 << 2;
(7) int a = 0, b = 12345, c = 0xffffffff, d, e, f;
  d = a & b;
  e = a | b;
f = b & c;
1)0 (int 取整数部分 2/3=0)
2)Infinity(无穷大,float把0.0当成一个无限小的数据,在Java中对于0作为除数的情况,根据操作数的数据类型,做了不同的处理:对于整数的运算,它将会出现异常;对于浮点型数据的运算,它将得到一个无穷大值或者NaN)
3) 2.5 (b/c=1 若是两个整数相除,只保留整数部分);
4)46 (++变量名:变量在参与其他操作前先将自己加1;变量名++:先用原来的值参与其他操作后,再将自己加1)
5)8(取余 被模数为正数结果都为正,被模数为负数结果都为负)
6)20(101  10100 a<<b,将a的二进制数据左移b位,右边移空的部分补0
a>>b,将a的二进制数据右移b位,如果最高位是0,则左边移空的部分补0,如果最高位是1,则左边移空的部分补1)
7)0,12345,12345(&只有参加运算的两位都为1,&与运算的结果才为1,否则为0;| 或只有参加运算的两位都为0,|运算的结果才为0,否则为1;)

3. 写出以下程序的运行结果:
public class Test {
public static void main (String args[]) {
float a = 3.25F, b= -2.5F;
int c , d;
c = (int) (a * b);
d = (byte) 386;
System.out.println(“c=c” + c);
System.out.println(“d=” +d);
}
}
c=c-8
d=-126
(容量大的数据类型转换为容量小的数据类型时,需要使用强制类型转换,在强制类型转换过程中,源类型的值可能大于目标类型,因此可能造成精度降低或溢出,使用时需注意)
4. 编写一个程序,求圆的面积,圆的半径由命令行参数输入。
注:将命令行参数赋给半径r(double型)使用的语句为:
 double r = Double.parseDouble(args[0]);

double r = Double.parseDouble(args[0]);
double size = 0;
size = 3.1415*r*r;
System.out.println("size = "+size );

命令行参数:run as  run configurations Program argument

5.华氏温度和摄氏温度互相转换,从华氏度变成摄氏度你只要减去32,乘以5再除以9就行了,将摄氏度转成华氏度,直接乘以9,除以5,再加上32即行。
    float c = 45.0f;
    float f = 113.0f;
    float cTof = (f-32) * 5/9;
    float fToc = c*9/5+32;
    System.out.println("摄氏转华氏 = "+cTof );
    System.out.println("华氏转摄氏  = "+fToc );

6.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序。
int a=9,b=5,c=0;
c=a;
a=b;
b=c;
System.out.println("a  = "+a );
System.out.println("b  = "+b );

二、【选做题】
1.  说出以下方法实现什么功能:
   public static double myFuction(double a, double b, double c) {
double  result;
result = (a < b) ? a: b;
result = (result < c) ? result : c;
return result;
}
选出最小值 三元操作符 小算法
2. 假设a,n为任意整数(0<n<10),编写一个程序,分别求出表达式a <<n, a * 2的n次方,
     A >> n以及 a / 2的n次方的值,a, n 都是命令行参数。
注:将命令行参数赋给a,n(int型)使用的语句为:
 Int a = Integer.parseInt(args[0])
 Int n = Integer.parseInt(args[1])
   求2的n次方的表达式为:
(int) Math.pow(2.0, (double) n) ;
int a = Integer.parseInt(args[0]);
int n = Integer.parseInt(args[1]);
System.out.println(a);
System.out.println(n);
System.out.println(a <<n );
System.out.println(a*(int) Math.pow(2.0, (double) n) );
System.out.println(a >>n );
System.out.println(a/(int) Math.pow(2.0, (double) n) );
命令行参数 用空格隔开
3.输入一个任意的5位整数,将它保留到百位,无需四舍五入
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
//int i = 12345;
System.out.println(i/100*100 ); 
4.输入一个0~1000的整数,求各位数的和,例如345的结果是3+4+5=12注:分解数字既可以先除后模也可以先模后除
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
int x1 = i / 1000;
int x2 = i / 100 % 10;
int x3 = i / 10 % 10;
int x4 = i % 10; 
System.out.println(x1 + x2 + x3 + x4);
5.输入一个任意的大写字母A~Z,转换为小写字母,(后面再练习输入一个字符串,大写全部转换为小写)
char c = 'A';
System.out.println((char) (c + 32) );//加32即小写对应字母
ASCii码
------------------------------------------------------
0 0
原创粉丝点击