Java第二章作业
程序员文章站
2022-07-14 20:03:01
...
1
编写一个应用程序,给出汉字‘你’、‘我’、‘他’在Unicode表中的位置。
我的答案:
记事本里写得程序;
运行结果:
正确答案:
public class E {
public static void main(String args[]) {
System.out.println((int)'你');
System.out.println((int)'我');
System.out.println((int)'他');
}
}
2
编写应用程序,输出满足1+2+3…+n<8888的最大正整数n。
我的答案:
运行结果:
作答错误,最后应为 i=i-2;
判断在比较之前就+1,而且之后又加了 1;
正确答案:
public class Xiti6 {
public static void main(String args[]) {
int n=1;
long sum=0;
while(true) {
sum=sum+n;
n++;
if(sum>=8888)
break;
}
System.out.println("满足条件的最大整数:"+(n-2));
}
}
3
输入8个整数放入数组中,把其中最大的元素与第一个元素交换,最小的元素与最后一个元素交换,输出交换后的数组。
我的答案:
运行结果:
正确答案:
import java.util.*;
public class Lianxi{
public static void main(String[] args) {
int N = 8;
int[] a = new int [N];
Scanner s = new Scanner(System.in);
int idx1 = 0, idx2 = 0;
System.out.println("请输入8个整数:");
for(int i=0; i<N; i++) {
a[i] = s.nextInt();
}
System.out.println("你输入的数组为:");
for(int i=0; i<N; i++) {
System.out.print(a[i] + " ");
}
int max =a[0];
for(int i=0; i<N; i++) {
if(a[i] > max) {
max = a[i];
idx1 = i;
}
}
if(idx1 != 0) {
int temp = a[0];
a[0] = a[idx1];
a[idx1] = temp;
}
int min = a[0];
for(int i=0; i<N; i++) {
if(a[i] < min) {
min = a[i];
idx2 = i;
}
}
if(idx2 != N-1) {
int temp = a[N-1];
a[N-1] = a[idx2];
a[idx2] = temp;
}
System.out.println("\n交换后的数组为:");
for(int i=0; i<N; i++) {
System.out.print(a[i] + " ");
}
}
}
4
编写一个应用程序求100以内的全部素数。
我的答案:
运行结果:
正确答案:
public class Xiti2 {
public static void main(String args[]) {
int i,j;
for(j=2;j<=100;j++) {
for(i=2;i<=j/2;i++) {
if(j%i==0)
break;
}
if(i>j/2) {
System.out.print(" "+j);
}
}
}
}
4
编写应用程序,使用for循环语句计算8+88+888…前10项之和。
我的答案:
运行结果:
正确答案:
public class Xiti5 {
public static void main(String args[]) {
int m=8,i=1;
long sum=0,item=m;
for(i=1,sum=0,item=m;i<=10;i++) {
sum=sum+item;
item=item*10+m;
}
System.out.println(sum);
}
}
5
分别用do-while和for循环计算1+1/2!+1/3!+1/4!… … 的前10项和。
我的答案:
运行结果:
正确答案:
class Xiti3 {
public static void main(String args[]) {
double sum=0,a=1,i=1;
do { sum=sum+a;
i++;
a=(1.0/i)*a;
}
while(i<=10);
System.out.println("使用do-while循环计算的sum="+sum);
for(sum=0,i=1,a=1;i<=20;i++) {
a=a*(1.0/i);
sum=sum+a;
}
System.out.println("使用for循环计算的sum="+sum);
}
}