java基本语法

第二章习题
1.运算符练习
1.1.
写出输出的结果.
//考查运算符的优先级
class Demo{
public static void main(String[] args){
int x=0,y=1;
if(++x==y-- & x++1||–y0)
System.out.println(“x=”+x+",y="+y);//x = 2,y = 0;
else
System.out.println(“y=”+y+",x="+x);
}
}
1.2.
int n = 5,m = 13;
//插入代码,实现n和m值的交换
System.out.println(“n=”+n+",m="+m);

1.3.
写出输出结果。
class Demo{
public static void main(String[] args){
int a=3,b=8;

	int c=(a>b)?a++:b++;
	System.out.println("a="+a+"\tb="+b+"\tc="+c);  //

	int d=(a>b)?++a:++b;
	System.out.println("a="+a+"\tb="+b+"\td="+d);  //

	int e=(a<b)?a++:b++;
	System.out.println("a="+a+"\tb="+b+"\te="+e);  //

	int f=(a<b)?++a:++b;
	System.out.println("a="+a+"\tb="+b+"\tf="+f);  //
}

}

1.4.
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)

1.5.
Java有没有goto?
答:java中的保留字,现在没有在java中使用

1.6.
用最有效率的方法算出2乘以8等於几?
答:2 << 3

1.7.
char型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,
所以放一个中文是没问题的

1.8.
String是最基本的数据类型吗?
答:基本数据类型包括byte、int、char、long、float、double、boolean和short。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,

2.流程控制练习
2.1.
写出结果。
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0)

		if(n>2)
			System.out.println("A");	
	else
		System.out.println("B");
	
}

}

2.2.
switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是
int、 short、 char 或者 byte。long不能作用于swtich.JDK1.7新加入了String类型。

2.3.
写出结果。
public class Demo{
public static void main(String []args){
int i = 0, j = 5;
tp: for (;?{
i++;
for(;?{
if(i > j–)
break tp;
}
}
System.out.println("i = " + i + ", j = "+ j);//i=1,j=-1;
}
}

2.4.
1、 输出从1到100之间所有的整数;
2、 输出从1到100之间所有的奇数;
3、 输出从1到100之间所有不能被3整除的数;并输出这些整数的和

2.5.
分别使用if-else if-else语句和switch-case语句
根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季

答:
if(x3 || x4 || x5)
System.out.println(x+“春季”);
else if(x
6 || x7 || x8)
System.out.println(x+“夏季”);
else if(x9 || x10 || x11)
System.out.println(x+“秋季”);
else if(x
12 || x1 || x2)
System.out.println(x+“冬季”);
else
System.out.println(x+“月份不存在”);

[第二种]
if(x>12 || x<1)
System.out.println(x+“月份不存在”);
else if(x>=3 && x<=5)
System.out.println(x+“春季”);
else if(x>=6 && x<=8)
System.out.println(x+“夏季”);
else if(x>=9 && x<=11)
System.out.println(x+“秋季”);
else
System.out.println(x+“冬季”);

[第3种]
public static void main(String[] args) {
int x = 4;
switch(x){
case 3:
case 4:
case 5:
System.out.println(x+“春季”);
break;

case 6:
case 7:
case 8:
	System.out.println(x+"夏季");
	break;
case 9:
case 10:
case 11:
	System.out.println(x+"秋季");
	break;
case 12:
case 1:
case 2:
	System.out.println(x+"冬季");
	break;
default:
	System.out.println("nono");

}

2.6.
已知学生成绩以100分为满分,共分5个等级:A,B,C,D,E。
90~100为等级A,80~89为等级B,70~79为等级C,
60~69为等级D,0~59为等级E。
要求定义一个成绩变量,当成绩变化时,可直接知道该成绩对应的等级。
例如:当成绩为100时,该学生的等级时A。

class LevelDemo{
//定义一功能,通过给定分数,获取该分数对应的等级。
public static void main(String[] args){
int num = 89;
if(num>=90 && num<=100)
System.out.println(“level = A”);
else if(num>=80 && num<=89)
System.out.println(“level = B”);
else if(num>=70 && num<=79)
System.out.println(“level = C”);
else if(num>=60 && num<=69)
System.out.println(“level = D”);
else
System.out.println(“level = E”);

}

}

2.7.
编写程序,判断给定的某个年份是否是闰年。
闰年的判断规则如下:
(1)若某个年份能被4整除但不能被100整除,则是闰年。
(2)若某个年份能被400整除,则也是闰年。
if((year % 4 ==0 && year % 100 != 0) || year % 400 == 0){}

2.8.
利用程序输出如下图形:
*






for (int i = 0; i < 7; i++) {
if(i < 4){
for (int j = 0; j < 2 * i + 1; j++) {
System.out.print("* “);
}
System.out.println();
}else{
for (int k = 0; k < 13 - 2 * i; k++) {
System.out.print(”* ");
}
System.out.println();
}
}

2.9.
一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
publicclass Num1 {
publicvoid ball(){
double num=100;
double height=100;
for (int i = 0; i < 10; i++) {
height=height/2;
num+=height*2;
}
System.out.println(“小球10次共经过:”+num+“米”);
System.out.println(“第10次的高度为:”+height+“米”);
}
publicstaticvoid main(String[] args) {
Num1 num1= new Num1();
num1.ball();
}
}

2.10.
在JAVA中,如何跳出当前的多重嵌套循环?
答:用break; return 方法。

3.数组练习
3.1.
java能动态分配数组吗?
答:可以。int i = 12;int[] myInt = new int[i];

3.2.
怎么获取数组的长度?
.length属性获取

3.3.
数组有没有length()这个方法? String有没有length()这个方法?
答:数组没有length()这个方法,有length的属性。String有length()这个方法

3.4.
下面数组定义正确的有BD
A.String strs[] = { ‘a’ ‘b’ ‘c’};
B.String[] strs = {“a”, “b”, “c”};
C.String[] strs = new String{“a” ”b” ”c”};
D.String strs[] = new String[]{“a”, “b”, “c”};
E.String[] strs = new String[3]{“a”, “b”, “c”};

3.5.
写出结果。
class Demo{
public static void main(String[] args){
String foo=“blue”;
boolean[] bar=new boolean[2];
if(bar[0]){
foo=“green”;
}
System.out.println(foo);
}
}
[输出]:blue

3.6.
下面哪个数组定义是错误的。
并对错误的答案加上单行注释,写出错误的原因。
A,float[]=new float[3]; //
B, float f2[]=new float[];//
C, float[] f1=new float[3];//
D, boolean[] b={“true”,“false”,“true”};//
E, double f4[]={1,3,5}; //
F, int f5[]=new int[3]{2,3,4}; //
G, float f4[]={1.2F,3.0,5.4};//
3.7.

对数组{1,8,4,6,12,89,100,85}实现逆序排列

4.其他练习
4.1.标识符命名规则是什么?
由数字(0-9),大小写英文字母,以及_和$组成。
不能以数字开头。
不能使用关键字来自定义命名。

4.2.数据类型有哪些?基本数据类占用多少字节?
(1)基本数据类型(4类8种):
整数类型:byte、short、int、long
浮点数类型:float、double
字符类型:char
布尔类型:boolean(ture false)
(2)引用数据类型:

接口
数组

4.3.什么是函数?函数有什么特点?
定义:函数就是定义在类中的具有特定功能的一段独立小程序。
特点:
定义函数可以将功能代码进行封装
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,
那么该函数中的return语句如果在最后一行可以省略不写。

4.4.谈谈jvm内存结构?
栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存:数组和对象,通过new建立的实例都存放在堆内存中。
方法区:静态成员、构造函数、常量池、线程池
本地方法区:window系统占用
寄存器:

4.5.&与&&的区别?
答:Java 中&&和&都是表示与的逻辑运算符,都表示逻辑运输符 and,当两边的表达式都为 true 的时候,整个运算结果才为true,否则为 false。&&的短路功能,当第一个表达式的值为 false 的时候,则不再计算第二个表达式;&则两个表达式都执行。&可以用作位运算符,当&两边的表达式不是 Boolean 类型的时候,&表示按位操作。
4.6.说说Break和continue用法?

1)break 语句通常用在循环语句和开关语句中。当 break 用于开关语句 switch 中时,可使程序跳出 switch而执行 switch 以后的语句;如果没有 break 语句,则将成为一个死循环而无法退出。当 break 语句用于 do-while、for、while 循环语句中时,可使程序终止循环而执行循环后面的语句,通常 break 语句总是与 if 语句联在一起,即满足条件时便跳出循环。2)continue 语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。continue 语句只用在 for、while、do-while 等循环体中,常与 if 条件语句一起使用,用来加速循环、
continue 语句和 break 语句的区别:1) continue 语句只结束本次循环,而不是终止整个循环的执行2) break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值