Java零基础系列课程-JavaSE基础篇
Lecture:波哥
Java
是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java
虚拟机,Java
仍是企业和开发人员的首选开发平台。
作业练习
Lecture:波
一、Java入门作业
1.选择题
1.在控制台显示消息的语句正确的是( )
A System.out.println(“我爱波哥,我爱学习,我爱Java”);
B system.out.println(“我爱波哥,我爱学习,我爱Java”);
C System.out.println(‘我爱波哥,我爱学习,我爱Java’);
D System.out.prinln(“我爱波哥,我爱学习,我爱Java”);
2.在控制台运行一个 Java 程序 Demo. class ,使用的命令正确的是( )
A java Demo.class
B javac Demo.class
C java Demo
D javac Demo
3.Java 源代码文件编译后生成的字节码文件,其扩展名是( )
A .txt
B .class
C .java
D .doc
2.简单题
- 简述Java语言的特点(至少三点)。
- 简述跨平台原理
- Java程序执行的步骤以及工作原理
- 为什么需要配置path环境变量?
3.实操题
在命令行输出你的名字,班级,年龄
代码语言:javascript复制public class HelloWorld{
public static void main(String[] args){
System.out.println("boge,Java2023,18")
}
}
卸载,安装JDK操作三遍
在自己电脑上配置环境变量操作两遍
背诵英文单词
a. public 公共的 b. public class 公共类 c. static 静态的 d. void 无返回值 e. main /主要的, 重要的 f. System.out.print() ;向控制台输出打印说 语句
二、Java基础知识
1.选择题
- 下列正确的标识符有
A)u2 | B)$test |
---|---|
C)this_is_ok | D)int |
答案:
- 字符“A”的Unicode字符编码为65.下面哪些代码正确定义了一个代表字符“A”的变量。
A)char ch=65 | B)char ch=’65’ |
---|---|
C)char ch=’u0041’ | D)char ch=’A’ |
E) char ch=”A” |
答案:
- 下面不是关键字的是
A)goto | B)main |
---|---|
C)short | D)void |
答案:
- 以下哪段程序能正确地编译通过
A)char = ‘a’; char b=1; char c=08; | B)int a=’a’; |
---|---|
C)long a=’u00FF’; | D)char a=’u0FFA’; |
E) char d=”d” |
答案:
- 下面语句哪个是正确的
A)char = ‘abc’; | B)long 01 = 0xfff; |
---|---|
C)float f = 0.23; | D)double d = 0.7E-3; |
答案:
- 下列哪个选项是short型数据的取值范围
A)-128 ~ 127 | B)-32768 ~ 32767 |
---|---|
C)-2147483648 ~ 2417483647 | D)-3.40282347E38 ~ 3.40282347E38 |
答案:
- 在Java中,int数据类型占多少位
A)8 | B)16 |
---|---|
C)32 | D)64 |
答案:
- Java 中,表示换行符的转义字符是
A)’n’ | B)’f’ |
---|---|
C)’n’ | D)’dd’ |
答案:
- 在Java中,float数据类型占多少位
A)8 | B)16 |
---|---|
C)32 | D)64 |
答案:
2.简答题
1、Java中,基本数据类型有哪些?
2、请写出java中基本数据类型所对应的字节数?
3、java的标识符由什么组成?能不能是中文?
4、short s1 = 1; s1 = s1 1;有什么错? short s1 = 1; s1 = 1;有什么错?
5、下列程序能否编译通过,如果不可以说出原因,如果可以说出结果
代码语言:javascript复制1. float f = 25;
System.out.println(f);
2. byte b = 225;
System.out.println(b);
3. double d = 3.5f;
System.out.println(d);
4. float f = (float)4.5;
System.out.println(f);
5. int i = (int)2.5;
System.out.println(i);
6. byte b = (byte)130;
System.out.println(b);
7. short s =32768;
System.out.println(s);
8. byte b = 97;
char ch = (char)b;
System.out.println(ch);
9. char ch = '1';
byte b = (byte)ch;
System.out.println(b);
10. int i = 25;
double d = 6.5;
int i = i d;
System.out.println(i);
11. byte b = 97;
char ch = b 1;
System.out.println(ch);
12. byte b= 63.5 * 2;
System.out.println(b);
13. boolean bool = false;
int i = (int)bool;
System.out.println(i);
14. String str = "2" - 1;
System.out.println(str);
15. System.out.println(22 2 "2" 2 );
16. byte b= 10;
short s= 20;
int i = b s;
System.out.println(i);
17. int b1 = 10;
int b2 = 20;
byte b3 = b1 b2;
System.out.println(b3);
18. byte b = 65;
short s = 1;
char ch = b s;
System.out.println(ch);
3.程序题
1.某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分
2.交换两个数的位置(int a = 2,b=3 ——> a = 3, b=2) 使用两种方式
代码语言:javascript复制int a = 2,b=3;
int c = a ;
a = b;
b = c;
// 异或的方式
a = a ^ b;
b = a ^ b;
a = a ^ b;
3.定义5个数字计算平均值和总和
4.根据天数(46)计算周数和剩余的天数
5.定义一个四位会员号:计算四位会员号的各位之和(个位,十位,百位,千位上数字求和)
6.计算
代码语言:javascript复制int x = 2;
int y = 3;
int res3 = (x )*2 (--y)%3 (--x)/4 ( y)*3;
int res4 = (--x)/3-(y )*2 (x )%2-(y--)%3;
请推断res3,res4,x,y此时的值。
代码语言:javascript复制int x = 3;
int res = (x )%( x);
请推断res,x此时的值。
代码语言:javascript复制int a = 2;
int b = 3;
int res1 = ((a ) ( b))*2 (--a)%(b )-( a)*3 (--b)/(--a);
请推断res1,a,b此时的值。
7.int x = 4 , y = 2 , z = 3;求表达式y-=z *–x的值是多少?表达式运行之后,x,y,z的值分别是多少?
8.请计算:
a=3,b=4;
(1):(a )/3 (–b)*2-(a–)%6 (b )*3-(b–)
(2):( b)*2-(a–)%4 (a )*5-(–b)/2 (–a)
(3):(a–)*6 (b )/3-(–a)*2-(–b)*2 ( a)
9.请计算
1.int n = 5;n = n n;求n=?
2.int n = 3;n = n n ;求n=?
三、分支和循环
1.填空题
- Java 中有两种类型的选择结构的控制语句,分别是 if 语句和 。
- 在 Java JDK1.7 之前,switch 只能支持 byte、short、char、int 或者其对应的封装类 以及 Enum 类型。在 JDK1.8 中又加入了 类型。
- for 循环的语法格式是 for (表达式 1;表达式 2;表达式 3) {循环体},其中在整个循环 过程中只执行一次的部分是 。
- 在循环结构中,如果想跳出循环体,结束整个循环结构可以使用 语句。
- 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中 尚未执行的语句,接着进行下一次是否执行循环的判定。即只结束本次循环,而不 是终止整个循环的执行。
- 使用 Math.random( )返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。使用 该函数生成[30,60]之间的随机整数的语句是 。
2.选择题
1.以下代码的执行结果是( )。(选择一项)
代码语言:javascript复制boolean m = false;
if(m = false){
System.out.println("false");
}else{
System.out.println("true");
}
A. false B. true C. 编译错误 D. 无结果
2.分析如下 Java 代码,编译运行的输出结果是( )。(选择一项)
代码语言:javascript复制public static void main(String[ ] args) {
boolean a=true;
boolean b=false;
if (!(a&&b)) {
System.out.print("!(a&&b)");
}else if (!(a||b)) {
System.out.println("!(a||b)");
}else {
System.out.println("ab");
}
}
A !(a&&b) B. !(a||b) C. ab D. !(a||b)ab 3.下列选项中关于变量 x 的定义,( )可使以下 switch 语句编译通过。(选择二项)
代码语言:javascript复制switch(x) {
case 100 :
System.out.println("One hundred");
break;
case 200 :
System.out.println("Two hundred");
break;
case 300 :
System.out.println( "Three hundred");
break;
default :
System.out.println( "default");
}
A.double x = 100; B.char x = 100; C.String x = “100”; D.int x = 100;
4.阅读下列文件定入的 Java 代码,其执行结果是( )。(选择一项)
代码语言:javascript复制publicclass Test {
publicstatic void main(String[] args) {
char ch = 'c';
switch (ch) {
case 'a':
System.out.print("a");
break;
case 'b':
System.out.print("ab");
case 'c':
System.out.print("c");
default:
System.out.print("d");
}
}
A a B. b C. c D. cd 5.以下 Java 程序编译运行后的输出结果是( )。(选择一项)
代码语言:javascript复制public class Test {
public static void main(String[] args) {
int i = 0, sum = 0;
while (i <= 10) {
sum = i;
i ;
if (i % 2 == 0)
continue;
}
System.out.println(sum);
}
}
A.0 B.55 C. 50 D.36 6.以下四个选项中和下面代码功能相同的是( )。(选择一项)
代码语言:javascript复制int i = 1;
int sum = 0;
while (i <= 100) {
if (i % 2 == 0)
sum = sum i;
i ;
}
A for (int x =1; x<=100;x ){ sum=sum x;} B. for (int x =0; x<=100;x =2){ sum=sum x;} C. for (int x =1; x<=100;x =2){ sum=sum x;} D. 上述全对
7.以下 do-while 循环代码的执行结果是( )。(选择一项)
代码语言:javascript复制int a=0; int c=0;
do{
--c;
a=a-1;
}while(a>0);
System.out.println(a " " c);
A. -1 -1 B. 死循环 C. -1 -2 D. -1 0
8.while 循环和 do-while 循环的区别是( )。(选择一项) A. 没有区别,这两个结构在任何情况下效果一样 B. while 循环比 do-while 循环执行效率高 C. while 循环是先循环后判断,所以循环体至少被执行一次 D. do-while 循环是先循环后判断,所以循环体至少被执行一次
9.在 Java 中有如下代码,则编译运行该类的输出结果是( )。(选择一项)
代码语言:javascript复制public static void main(String[ ] args) {
for(int i=0;i<10;i ){
if (i%2!=0) return;
System.out.print(i);
}
}
A.13578 B. 02468 C.0123456789 D.0
10.下面程序执行的结果是在屏幕上打印 ( )行
代码语言:javascript复制for(int i=1;i<=10;i ){
if (i<5) continue;
System.out.println("Java基础班");
}
A.5 B.6 C.7 D.8
3.判断题
- if 语句的条件表达式的结果都必须是 boolean 值。( )
- switch 选择语句是多分支选择语句,只能处理等值条件判断的情况,表达式可以是 int 类型、char 类型,但不能是 double,float 类型。( )
- while 循环结构的特点是先循环再判断,循环体至少执行一次。( )
- for 循环的语法格式是 for (表达式 1;表达式 2;表达式 3) {循环体},其中三个表达式都可以省略。( )
- break 语句可以出现在 switch 语句和循环语句中。( )
- continue 语句可以出现在 switch 语句和循环语句中。( )
4.简答题
- if 多分支语句和 switch 语句的异同之处
- while 和 do-while 语句的异同之处
- break 和 continue 语句的作用
5.编程题
- 输入一个数,判断是奇数还是偶数
- 根据成绩输出对应的等级,使用 if 多分支和 switch 语句分别实现。 a) A 级 [90,100] b) B 级 [80,90) c) C 级 [70,80) d) D 级 [60,70) e) E 级 [0,60)
- 根据月份,输出对应的季节,并输出至少两个描述该季节的成语和活动。
- 判断一个数是否是素数。
- 从键盘输入一个班5个学生的分数,求和并输出。
- 从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。
6.可选题
- 根据考试成绩输出对应的礼物,90 分以上爸爸给买电脑,80 分以上爸爸给买手机, 60 分以上爸爸请吃一顿大餐,60 分以下爸爸给买学习资料。 要求:该题使用多重 if 完成
- 请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是 S,则继续判断第二个字母,如果第二个字母是 a,则输出“星期六”。星期的英文单词如下表所示。 星期一星期二星期三星期四星期五星期六星期日MondayTuesdayWednesdayThursdayFridySaturdaySunday
- 输入一批整数,使用循环求出最大值与最小值,输入 0 时结束。
- 给 20 块钱买可乐,每瓶可乐 3 块钱,喝完之后退瓶子可以换回 1 块钱,问最多可以喝到多少瓶可乐。
- 从键盘输入某个十进制小数,转换成对应的二进制小数并输出。(查询十进制小数转换成二进制小数的算法,使用循环来实现。最多保留小数位后 7 位数字即可)
四、方法和数组
1.方法作业
1.编写一个计算器,实现加减乘除,调用测试通过
2.编写一个方法实现求圆的面积,参数为半径
3.写一个方法实现数字倒置(3456?6543)并返回这个数字
4.编写判断回文数字的方法,并调用测试
5.求两个数的最大公约数(用递归实现)
2.数组作业
1.已知如下数组
Int[] arr = {44,77,88,99,100,22};
完成如下操作:
A. 循环输出数列的值并按照如下格式输出。arr[44,77,88,99,100,22]
B . 求数列中所有数值的和
C . 求出最小值。
D. 将数组倒置并输出
E. 查找(要求使用二分法查找和基本查找)
F. 数组排序 要求使用至少两种排序算法
2.现有一个数组,要求对数组进行倒置并且按照如下格式输出
Int[] arr = {11,22,33,44,55,66,77}
输出结果77-66-55-44-33-22-11
3.现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;
4.现在给出两个数组
数组A:1,7,9,11,13,15,17,19
数组B:2,4,6,8,10
编写一个方法实现将两个数组合并成一个新的数组c,并且按照升序排序
5.定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},统计各成绩等级(90分以上为‘A’,8089分为‘B’,7079分为‘C’,60~69分为‘D’,60分以下为E)学生人数,并将其放入到数组count中,其中:count[0]存E级的人数,count[1]存D级的人数,……,count[4]存A级的人数。
6.编写顺序查找的方法
代码语言:javascript复制public static int[] ordinalSearch(int data[],int key)
,要求该方法返回一个数组(如果key存在,数组中各元素的值分别为关键字key在原数组data中的各下标;如果key不存在,则返回一个长度为1的数组,数组元素为-1)。
基本过程思路:
(1)先扫描数组data,统计数组中key的个数n.
(2)如果n为0,直接返回一个数组元素为-1的数组;否则的话定义一个数组int index[]=new int[n],再扫描数组data,把数组中值为key的各个元素的下标保存到数组index中,最后返回数组index.