1、三种控制结构是什么?
顺序、循环、选择.
2、if后面不写{},if的控制范围是否只限于第一句?
是的
3、Math.random是什么意思?如果想要获取15-20之间的随机数,怎么写?
产生一个0-1的随机数,包含0但不包含1
(int)(Math.random()*6)+15
4、switch是否可以用if else多选择结构来代替?
可以、switch适用于做多值的判断
5、switch中的表达式的结果需要是什么类型?
byte、short、int、char
jdk1.5加入了枚举
jdk1.7加入了string
6、switch语句中,一个case开始执行后,什么时候结束执行这个case的语句?
break
7、switch语句中,default是否必须写?
不是必须
8、case后面要加 冒号 :
9、循环结构模拟了现实世界中的什么逻辑?
重复问题
10、循环结构的四种内部结构是什么?
while、dowhile、for、foreach
11、while和dowhile有什么区别?
do while至少执行一次
12、什么情况下会有死循环?
循环条件始终成立时候
13、for相较于while有什么优势?
语法结构简便、适用于解决固定次数的问题
14、循环中break和continue的作用?
break:强行退出循环
continue:跳过本次循环,开始下次循环
15、语句块能否使用外部的变量?语句块中定义的变量,外部能否使用?
可以调用外部的变量,但是语句块定义的变量外部不能调用
16、方法的定义中,是否必须要有返回值类型?如果确实不需返回值,使用哪个关键字声明?
void
17、方法的定义中,return是必须的吗?
不是,return作用是终止方法的运行并返回值
18、Java中,参数的传递使用值传递还是引用传递?
值传递
19、形参与实参的区别?
20、方法定义时,使用形参还是实参?
形参
21、定义形参时,需要声明变量类型吗?
需要
22、实参类型是否必须和形参类型匹配?
对
23、什么是方法的重载,有什么作用?
同一个类中,方法名称相同、参数列表不同
24、两同三不同指的是?返回值不同构成重载吗?形参名称不同构成重载吗?
24、递归算法中,递归头和递归体分别指什么?
25、递归算法的优点是什么?缺点是什么?
后面是上机练习:
26、使用递归算法完成阶乘算法
public static int JieChengM(int num) { if (num==1) { return 1; }else { return num * JieChengM(num-1); } }
27、根据随机生成的的月份,打出该月份的天数.(不考虑闰年、闰月)
public static int DaysOfMonth(int month) { switch (month) { case 2: return 28; case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; } return 0; }
28、用while和for循环分别计算100以内奇数和偶数的和,并输出。
//奇数 public static int forOdd(){ int sum = 0; for (int i = 1; i < 100; i+=2){ sum+=i; } return sum; } //偶数 public static int forEven(){ int sum = 0; for (int i = 2; i < 100; i+=2){ sum+=i; } return sum; } //奇数 public static int whileOdd(){ int sum = 0; int i = 1; while (i < 100){ sum+=i; i+=2; } return sum; } //偶数 public static int whileEven(){ int sum = 0; int i = 2; while (i < 100){ sum+=i; i+=2; } return sum; }
29、用while和for循环输出1-1000之间能被5整除的数,且每行输出3个。
public static void method5(){ int flag = 0; for (int i = 1; i < 1000; i++){ if (i%5==0){ System.out.print(i+"\t"); flag++; if (flag%3==0){ System.out.println(); } } } }
30、打印出九九乘法表
private static void chengfabiao() { for (int i=1;i<=9;i++){ for (int j=1; j<=i;j++){ System.out.print(i+"*"+j+"="+i*j+"\t"); } System.out.println(); } }
31、编程求:∑1+∑2+……+∑100
public static void main(String[] args) { int num = 0; for (int i=1; i<=100;i++){ num+=JieChengM(i); } System.out.println(num); } public static int JieChengM(int num) { if (num==1) { return 1; }else { return num + JieChengM(num-1); } }
32、生成0-100随机数,直到生成88为止,停止循环!
int i = (int) (Math.random() * 101); while (i != 88) { i = (int) (Math.random() * 101); System.out.println(i); } System.out.println(i);
33、把100~150之间不能被3整除的数输出
public static void main(String[] args) { for (int i =100; i<=150; i++){ if (i%3!=0){ System.out.println(i); } } }
34、打印出实心10*10正方形、空心10*10正方形
private static void printA() { for (int i = 1; i<=10;i++){ for (int j = 1; j<=10;j++){ System.out.print(" *"); } System.out.println(); } } private static void printB() { for (int i = 1; i<=10;i++){ if (i==1||i==10){ for (int j = 1; j<=10;j++){ System.out.print(" *"); } }else { System.out.print(" *"); for (int j = 1; j<=8;j++){ System.out.print(" "); } System.out.print(" *"); } System.out.println(); } }
35、打印出实习10*10菱形, 空心10*10菱形
private static void printA() { // 正三角 for (int i=0; i<5;i++){ for (int j=0; j<=5-i;j++){ System.out.print(" "); } for (int j = 0; j < 2*i-1;j++){ System.out.print(" *"); } for (int j=0; j<=5-i;j++){ System.out.print(" "); } System.out.println(); } // 倒三角 for (int i=5; i>0;i--){ for (int j=0; j<=5-i;j++){ System.out.print(" "); } for (int j = 0; j < 2*i-1;j++){ System.out.print(" *"); } for (int j=0; j<=5-i;j++){ System.out.print(" "); } System.out.println(); } } private static void printB() { // 正三角 for (int i=0; i<5;i++){ for (int j=0; j<=5-i;j++){ System.out.print(" "); } for (int j = 0; j < 2*i-1;j++){ if (j==0||j==2*i-2){ System.out.print(" *"); }else { System.out.print(" "); } } for (int j=0; j<=5-i;j++){ System.out.print(" "); } System.out.println(); } // 倒三角 for (int i=5; i>0;i--){ for (int j=0; j<=5-i;j++){ System.out.print(" "); } for (int j = 0; j < 2*i-1;j++){ if (j==0||j==2*i-2){ System.out.print(" *"); }else { System.out.print(" "); } } for (int j=0; j<=5-i;j++){ System.out.print(" "); } System.out.println(); } }
36、如上所有上机相关算法的作业,封装成方法,便于重用