1、Java标识符由数字,字母和下划线(_),美元符号($)组成。在Java中是区分大小写的。而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。因此,(1)、(4)、(5)、(8)是合法标识符。8. 下列各项中定义变量及赋值不正确的是()(1) int I = 32;(2) float f = 45.0;(3) double d = 45.0;(2)不正确,选项(2)定义 float 类型时必须在数据后面加上“F”或“f”。9. Java语言中,整型常数123占用的存储字节数是()(1) 1 (2) 2 (3) 4 (4) 8正确选项是(3), Java语言中,默认整型数
2、占用4个字节数。10. 以下代码的编译运行结果是 public class Test public static void main(String args) int age; age = age + 1; System.out.println(“the age is “ + age);(1)编译通过,运行无输出(2)编译通过,运行结果为 “the age is 1”(3) 编译通过但运行时出错(4)不能通过编译(4)为正确选项。Java 在使用变量前应该先初始化。11. 写出下列表达式的运行结果(1) 6+33&6=6&124(5)7+124&12-42 (1) false;(2) 6;(3
3、) 12; (4) fale;(5) false;(6) 5;第3章1. 编码验证i+和+i的区别。+i 和 i+在单独使用时, 就是 i=i+1。而 a = +i, 相当于 i=i+1; a = i; (先 i = i + 1,再使用 i 的值),而 a = i+,相当于 a = i; i=i+1; (先使用 i 的值,再 i = i + 1)。2. 写出下面表达式的结果(1)5/3 (2)5/3.0 (3)5%3 (4)5%-3 (1)1 (2)1.66667(3)2(4)23. 考虑如下的Test.java,并指出错误原因。程序清单:Test.javaclass Test public
4、static void main(String args) byte b = 5; b = (b 2); System.out.println(b); b=(b-2);错误,在进行b-2时,运算结果类自动提升为int,而b是byte类型,编译的时候会报错,因为存在高类型数据向低类型数据转化的风险。而byte b=5;是正确的,因为在编译的时候就能够确定5在byte允许的范围内,虚拟机在编译时做了一定的优化处理。4. 考虑一下对于ifelse语句,还有没有更简洁的写法。例如:if( x 0 ) y = x; else y = -x; 可以简写成什么?y=x0?x:-x;5. 给定N,编程实现打印
5、N*N的乘法表。public static void main(String args) int a = 0, b = 0, c = 0;for(int i=0; i9; i+) a=i+1;for(int j=0;ji+1;j+) b = j+1;c = a*b;System.out.print(a + * + b + = + c + ); System.out.println(6. 将下列语句转换成Java代码:(1)如果b1为真,打印“one”,否则打印“two”。(2)如果b1为假并且b2为真,打印“one”,否则打印“two”。(3)如果b1为假,并且如果b2为真则打印“one”,如
6、果b2为假则打印“two”;否则打印“three”。参考答案:(1) if(b1=true) System.out.print(one else two (2)if(b1=false & b2 =true) System.out.print( (3)if(b1=false & else if (b1=false & b2 =false) System.out.print(three7. 找出如下各项中的语法错误:(1)for(int k=0;k100;k+) System.out.println(k)(2)k+);System.out.println(k);(3)int k=0 while k
7、100 k+;(4)int k=0;dok+; while k(1)for(int k=0;k+) (2)for(int k=0;(3)int k=0;while (k100 )k+;(4)int k=0; while (k100);8. 写出三个不同的循环for、while和do-while循环,打印出从0(包括0)开始直到1000的所有10的倍数。(1) int n=0;while(n=1000 & n%10=0) System.out.print(n); n+;int n=0 do if(n%10=0) n+; while(n1000);for(int n=0;n=0) if (read
8、.hasNextInt() n = read.nextInt(); if (n 0) continue; break; else read.next(); for (int i = 0; i n; i+) for (int j = 1; j = 0; i-) 10. 写出下面程序的输出结果:public class TestWhile public static void main(String args) int a=0; while(+a=100) if (a%9)=0) System.out.print(a+t System.out.println(); 9 18 27 36 45 54
9、 63 72 81 90 99第4章1. 比较String和StringBuffer的区别,并说明什么时候适合使用StringBuffer。在Java中,String被完全当成一个对象,一个String对象是组成这个字符串的字符序列,加上用来操作字符串的方法。字符串一旦被创建,就不能改变它的值。StringBuffer类同样能够表示一串字符。但是,与String类不同,一个StringBuffer类能够被修改,StringBuffer类维护的是一个字符缓冲区,在必要时它的长度能够增长和缩短。对任何涉及修改字符串的任务,应该用StringBuffer代替String。2. 说明=和equals的
10、区别,并举例。=操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals 操作表示的是两个变量是否是对同一个对象的引用,即堆中的内容是否相同。=比较的是两个对象的地址,而equals比较的是两个对象的内容。3. 假定s是字符串字面值“exercise”,找出下列表达式有语法错误的并改正: (1)s.charAt(hello) (2)s.indexOf(er (3)s.substring(5) (4)s.lastIndexOf(er)(5)s.length()其中(1)和(4)表达式有语法错误。(1) charAt(int) 参
11、数是int 类型的;(4)lastIndexOf() 中的参数应该为int 或者 String ,这里的er 既不是int 也不是String。4. 给定一个句子,统计单词中字母的出现次数(字母不区分大小写,全部按照小写计算)。参考代码import java.util.Scanner;public class countChar public static void main(String args) /输入需要检测的字符串Input String : Scanner str0 = new Scanner(System.in); String s = str0.next(); System.o
12、ut.println(the String is : + s); s = s.toLowerCase(); /将字符串转换为小写 /输入需要统计的字符Input char : Scanner str1 = new Scanner(System.in); String s1 = str1.next(); char c = s1.charAt(0);Input char is : + c); int count = 0; /统计出现次数变量 s.length(); char ch = s.charAt(i); if (ch = c) count+;The times is : + count);5
13、. 执行String s = new String(xyz这一语句,共创建几个String对象?两个。本身是一个字符串对象,而new String()也会创造一个字符串对象。6. 对于语句String s = ; 下面那个表达式是合法的?(1)s += 5;(2)char c = s1(3)int len = s.length;(4)String t = s.toLowCase;(1)为合法的。7. String和StringBuffer中的哪个方法能改变调用该方法的对象自身的值?(1)String的charAt()(2)String的replace()(3)String的toUpperCas
14、e()(4)StringBuffer的reverse()(4)StringBuffer的reverse()可以改变对象自身的值。8. 假定s是字符串字面值“exercise”,计算下面每个表达式的值: (1)s.charAt(5)(3)s.substring(5)(4)s.lastIndexOf(e)(1)i;(2)2;(3)ise;(4)0;(5)8;9. 写出下面程序的输出结果:public class StringExample public static void main(String args) String str = new String(abcd String str1 =
15、String str2 = new String( System.out.println(str = str1); System.out.println(str = str2); System.out.println(str1 = str2); System.out.println(str.equals(str1); System.out.println(str.equals(str2); System.out.println(str1.equals(str2); System.out.println(str = str.intern(); System.out.println(str1 =
16、str1.intern(); System.out.println(str.intern() = str2.intern(); String hello = String hel = hel String lo = lo System.out.println(hello = + + lo);falsefalse true 10. 编写程序,将字符串“aabbcdefg”中每个字符作加2操作,最后结果为“ccddefghi”。public class Char String s = aabbcdefg char ch = s.toCharArray(); ch.length; chi = (ch
17、ar) (chi + 2); ch.toString(); System.out.println(ch);第5章1. 编写一个程序,计算出前10个平方数(例如1,4,9,16),并将这10个数保存到一个整型数组中,将数组中的所有元素输出到控制台,验证程序是否正确。要确保数组有10个元素,并且元素值的范围是1100. int b = new int10; for (int i=1; 11; bi = i * i; 10; System.out.println(ai);2. 声明一个数组,其中的元素为37,47,23,-5,19,56,然后创建一个新数组,将前一个数组的内容复制到后一个数组中。 i
18、nt a = 37,47,23,-5,19,56; int b = new inta.length; for(int i = 0; a.length; i+) bi = ai; for(int j = 0; b.length; j+) System.out.print(bj+3. 从命令行输入5个整数到数组a中,分别输入33、55、22、66及77。求偶数的个数及其和。示例代码: int a = new int5; int sum = 0; System.out.print(请输入数组中的元素: Scanner read = new Scanner(System.in); ai = read.
19、nextInt(); if (i % 2 != 0) sum = sum + ai;偶数个数是:偶数的和是: + sum);4. 从命令行输入一个字符串“JavaServlet”,将每个字符存入a数组。(1)大写字母有几个?分别是那几个?(2)小写字母有几个?(3)将小写字母转换成大写字母,大写字母转换成小写字母。 if(args0 != ) String inputString = args0; int countLower = 0; int countUpper = 0; String strLower = String strUpper = inputString.length(); char c = inputString.charAt(i); if (Character.isUpperCase(c) countUpper+; strUpper += c + else if (Character.isLowerCase(c) countLower+
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1