一.选择题
- 1~5 . BCABB
- 6~10. DCCC
二.填空题
- 合法标识符:abc,a1,_abc,_1a,ab123;其余为不合法标识符
- 66
- True False
- 4
- 2
- 2 2 False 2
- m20/100 (double)m20/100或0.2*m
三.编程题
1.由命令行输入一个成绩,使用switch结构求出成绩的登记。A:90 ~ 100;B:80 ~ 89;C:70 ~ 79;D:60 ~ 69; E:0 ~ 59。
package chapter2_1;
import java.util.Scanner;
public class ScoreOut {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner (System.in);
System.out.println("请输入同学的分数(0-100): ");
int n = reader.nextInt();
switch (n/10) {
case (10) : System.out.println("A");
break;
case (9) : System.out.println("A");
break;
case (8) : System.out.println("B");
break;
case (7) : System.out.println("C");
break;
case (6) : System.out.println("D");
break;
default : System.out.println("E");
break;
}
}
}
2.计算圆周率:PI=4-4/3+4/5-4/7…;打印出第一个大于3.1415小于3.1416的值。
package chapter2_1;
public class ScoreOut {
public static void main(String[] args) {
double p = 0;
double n = 1;
while(p<=3.1415 || p>=3.1416)
{
p-=(4/(2*n-1))*(Math.pow(-1,n));
n++;
}
System.out.println("第一个大于3.1415且小于3.1416的圆周率为: "+p);
}
}
3.输入一个数据n,计算斐波那契数列的第n个值。斐波那契数列:1、1、2、3、8、13、21、34···
package chapter2_1;
import java.util.Scanner;
public class ScoreOut {
public static void main(String[] args) {
Scanner readone = new Scanner(System.in);
int n = readone.nextInt();
int m1 = 1;
int sum = 0;
if (n <= 0) {
System.out.println("输入错误");
}
else if(n <= 2) {
System.out.println("第n个斐波那契数列值为: "+sum);
}
else {
int m2 = 1;
for(int i = 3 ; i <= n; i++) {
sum = m1 + m2;
m1 = m2;
m2 = sum;
}
}
System.out.println("第"+n+"个斐波那契数列值为: "+sum);
}
}
4.计算多项式1-1/3+1/5-1/7+1/9…的值。
1)要求出前50项和值。
2)要求出最后一项绝对值小于1e-5的和值。
package chapter2_1;
public class ScoreOut {
public static void main(String[] args) {
double sum = 0.0;
for (int i=1; i <= 50;i++) {
if(i%2 == 0) {
sum = sum - 1.0/(2*i-1);
}else {
sum = sum + 1.0/(2*i-1);
}
}
System.out.println("前50项的值:"+sum);
double item = 0.0;
int j = 1;
sum = 0.0;
while(item < 0.00001) {
item =1.0/(2*j-1);
if(j%2 == 0) {
sum -= item;
}else {
sum += item;
}
j++;
}
System.out.println("最后一项绝对值小于le-5的和值为: " +sum);
}
}
5、产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?
package chapter2_1;
public class ScoreOut {
public static void main(String[] args) {
ScoreOut t = new ScoreOut();
for(int i = 0;i < 100;i++) {
int num = (int)(Math.random()*1000);
if(t.isPrime(num)) {
System.out.println(num+"是素数 ");
}else {
System.out.println(num+"不是素数 ");
}
System.out.println();
}
}
public boolean isPrime(int num) {
for(int i = 2;i < num/2;i++) {
if(num % i == 0) {
System.out.println(num+"第一个被"+i+"整除");
return false;
}
}
return true;
}
}
6、在屏幕上打印出n行的金字塔图案.
package chapter2_1;
import java.util.Scanner;
public class ScoreOut {
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
int rows = sn.nextInt();
for(int i = 1;i <= rows;i++) {
for(int j=1;j <= rows-i;j++) {
System.out.print(" ");
}
for(int k = 1;k <= 2*i-1;k++) {
System.out.print("*");
}
System.out.println();
}
}
}
7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和,打印出所有的可能。如输入10,结果为:10=5+5;10=3+7。
package chapter2_1;
import java.util.Scanner;
public class ScoreOut {
public static void main(String[] args) {
Scanner sn =new Scanner(System.in);
int n = sn.nextInt();
if(n <= 6 || n % 2 != 0) {
System.out.println("参数错误");
return ;
}
ScoreOut g = new ScoreOut();
for(int i = 3;i <= n/2;i++) {
if(i%2 == 0) {
continue;
}
if(g.isPrime(i) && g.isPrime(n-i)) {
System.out.println(i+"+"+(n-i)+"="+n);
}
}
}
public boolean isPrime(int num) {
for (int i = 2;i <= num/2; i++) {
if(num%i == 0) {
return false;
}
}
return true;
}
}