(int j=931;j<938;j++)
{
System.out.print((char)j+" ");
}
for(int k=945;k<962;k++)
{
System.out.print((char)k+" ");
}
for(int t=963;t<=969;t++)
{
System.out.print((char)t+" ");
}
}
}
第3章 运算符、表达式和语句
1. 下列程序的输出结果是什么?
public class E
{
public static void main(String args[])
{
char x='你',y='e',z='吃';
if(x>'A')
{
y='爱';
z='情';
}
else
y='我';
z='她';
System.out.println(" "+x+y+z);
}
}
答: 你爱她
2. 下列程序的输出结果是什么?
public class E3
{
public static void main(String args[])
{
char c='\0';
for(int i=1;i<=4;i++)
{
switch(i)
{
case 1:c='b';
System.out.print(c);
case 2:c='e';
System.out.print(c);
break;
case 3:c='p';
System.o
ut.print(c);
default:
System.out.print("!");
}
}
}
}
答:beep!!
3. 编写应用程序,求1!+2!+…+10!。
答:
class Fact
{
public static void main(String args[])
{
int fact,sum=0;
for(int i=1;i<=10;i++)
{
fact=1;
for(int j=1;j<=i;j++)
fact*=j;
sum+=fact;
}
System.out.println("1到10的阶乘之和是:"+sum);
}
}
4. 编写一个应用程序,求100以内的全部素数。
答:
class Primes
{
public static void main(String args[])
{
int w=1;
for(int i=2;i<=100;i++)
{
for(int j=2;j
{
w=i%j;
if(w==0)
break;
}
if(w!=0)
System.out.println(i+"是素数");
}
}
}
5. 分别用do―while和for循环计算1+1/2!+1/3!+1/4!+…的前20项和。
答: ①for循环
class Sum
{
public static void main(String args[])
{
int fact;
double sum=0;
for(int i=1;i<=20;i++)
{
fact=1;
for(int j=1;j<=i;j++)
fact*=j;
sum+=1.0/fact;
}
System.out.println(sum);
}
}
②do―while循环
class Sum
{
public static void main(String args[])
{
int i=1;
int fact;
double sum=0;
do
{
fact=1;
int j=0;
while(++j<=i)
fact*=j;
sum+=1.0/fact;
}
while(++i<=20);
System.out.println(sum);
}
}
6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。
答:
class Wanshu
{
public static void main(String args[])
{
int x,i,sum;
for(x=1;x<=1000;x++)
{
sum=0;
for(i=1;i {
if(x%i==0)
sum+=i;
}
if(x==sum)
System.out.println(x+"是完数");
}
}
}
7. 编写应用程序,分别使用while和for循环计算8+88+888+…前10项之和。
答: ①for循环
class TheSum
{
public static void main(String args[])
{
long sum=0,data=8;
for(int i=1;i<=10;i++)
{
sum=sum+data;
data=data*10+8;
}
System.out.println(sum);
}
}
②while循环
class TheSum
{
public static void main(String args[])
{
long sum=0,data=8,i=0;
while(++i<=10)
{
sum=sum+data;
data=data*10+8;
}
System.out.println(sum);
}
}
8. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数n。
答:
class Maxn
{
public static void main(String args[])
{
int k=1,sum=0;
while((sum+=k)<8888)
k++;
k--;
System.out.println("最大能取到:"+k);
}
}
第4章 类、对象和接口
1. 类中的实例变量在什么时候会被分配内存空间?
答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。
2. 什么叫方法的重载?构造方法可以重载吗?
答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。
②构造方法可以重载。
3. 类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?
答:①类中的实例方法可以操作类变量。
②类方法不可以操作实例变量
4. 类中的实例方法可以用类名
直接调用吗?
答: 类中的实例方法不可以用类名直接调用。
5. 举例说明protected方法和友好方法的区别。
答: 当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。
6. 举例说明类变量和实例变量的区别。
答:⑴书写: 定义成员变量时,类变量有static修饰;实例变量没有static修饰。
例: class A
{
int x; //实例变量
static int y; //类变量
}
⑵内存: 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。
不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。
任何一个对象改变类变量,其他对象的相应类变量也发生相应变化。
一个对象的实例变量发生改变,不影响其他对象的相应实例变量。
例: 执行语句: A1.x=10; A1.y=20;