Java程序设计基础习题答案学习资料.docx

上传人:b****7 文档编号:15410986 上传时间:2023-07-04 格式:DOCX 页数:40 大小:30.92KB
下载 相关 举报
Java程序设计基础习题答案学习资料.docx_第1页
第1页 / 共40页
Java程序设计基础习题答案学习资料.docx_第2页
第2页 / 共40页
Java程序设计基础习题答案学习资料.docx_第3页
第3页 / 共40页
Java程序设计基础习题答案学习资料.docx_第4页
第4页 / 共40页
Java程序设计基础习题答案学习资料.docx_第5页
第5页 / 共40页
Java程序设计基础习题答案学习资料.docx_第6页
第6页 / 共40页
Java程序设计基础习题答案学习资料.docx_第7页
第7页 / 共40页
Java程序设计基础习题答案学习资料.docx_第8页
第8页 / 共40页
Java程序设计基础习题答案学习资料.docx_第9页
第9页 / 共40页
Java程序设计基础习题答案学习资料.docx_第10页
第10页 / 共40页
Java程序设计基础习题答案学习资料.docx_第11页
第11页 / 共40页
Java程序设计基础习题答案学习资料.docx_第12页
第12页 / 共40页
Java程序设计基础习题答案学习资料.docx_第13页
第13页 / 共40页
Java程序设计基础习题答案学习资料.docx_第14页
第14页 / 共40页
Java程序设计基础习题答案学习资料.docx_第15页
第15页 / 共40页
Java程序设计基础习题答案学习资料.docx_第16页
第16页 / 共40页
Java程序设计基础习题答案学习资料.docx_第17页
第17页 / 共40页
Java程序设计基础习题答案学习资料.docx_第18页
第18页 / 共40页
Java程序设计基础习题答案学习资料.docx_第19页
第19页 / 共40页
Java程序设计基础习题答案学习资料.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java程序设计基础习题答案学习资料.docx

《Java程序设计基础习题答案学习资料.docx》由会员分享,可在线阅读,更多相关《Java程序设计基础习题答案学习资料.docx(40页珍藏版)》请在冰点文库上搜索。

Java程序设计基础习题答案学习资料.docx

Java程序设计基础习题答案学习资料

 

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案

第2章

1.关于JavaApplication的入口方法main()的检验:

main()方法的参数名是否可以改变?

main()方法的参数个数是否可以改变?

该方法名是否可以改变?

参考答案:

(1)main()方法的参数名可以改变。

(2)main()方法的参数个数不可以改变。

(3)该方法名不可以改变。

2.当一个程序没有main()方法时,能编译吗?

如果能编译,能运行吗?

参考答案:

当一个程序没有main()方法是,是可以编译通过的,但是不能给运行,因为找不到一个主函数入口。

3.下列语句能否编译通过?

bytei=127;

bytej=128;

longl1=999999;

longl2=9999999999;

参考答案:

bytei和longl1可以编译通过。

而bytej和longl2超出自身数据类型范围,所以编译失败。

4.下列语句能否编译通过?

floatf1=3.5;

floatf2=3.5f;

参考答案:

java中浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,必须在数据后面加上“F”或“f”;因此,floatf1无法编译通过。

5.验证int和char,int和double等类型是否可以相互转换。

参考答案:

(1)char类型可以转换为int类型的,但是int类型无法转换为char类型的;

(2)int可以转换为double类型的,但是double类型无法转换为int类型的。

6.计算下列表达式,注意观察运算符优先级规则。

若有表达式是非法表达式,则指出不合法之处且进行解释。

(1)4+5==6*2

(2)(4=5)/6

(3)9%2*7/3>17(4)(4+5)<=6/3

(5)4+5%3!

=7-2(6)4+5/6>=10%2

参考答案:

表达式

(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4是不合法的。

7.下列()是合法的Java标识符。

(1)Counter1

(2)$index,

(3)name-7(4)_byte

(5)larray(6)2i

(7)try(8)integer

参考答案:

Java标识符由数字,字母和下划线(_),美元符号($)组成。

在Java中是区分大小写的。

而且还要求首位不能是数字。

最重要的是,Java关键字不能当作Java标识符。

因此,

(1)、(4)、(5)、(8)是合法标识符。

8.下列各项中定义变量及赋值不正确的是()

(1)intI=32;

(2)floatf=45.0;

(3)doubled=45.0;

参考答案:

(2)不正确,选项

(2)定义float类型时必须在数据后面加上“F”或“f”。

9.Java语言中,整型常数123占用的存储字节数是()

(1)1

(2)2(3)4(4)8

参考答案:

正确选项是(3),Java语言中,默认整型数占用4个字节数。

10.以下代码的编译运行结果是

publicclassTest{

publicstaticvoidmain(String[]args){

intage;

age=age+1;

System.out.println(“theageis“+age);

}

}

(1)编译通过,运行无输出

(2)编译通过,运行结果为“theageis1”

(3)编译通过但运行时出错

(4)不能通过编译

参考答案:

(4)为正确选项。

Java在使用变量前应该先初始化。

11.写出下列表达式的运行结果

(1)6+3<2+7

(2)4%2+4*3/2

(3)(1+3)*2+12/3(4)8>3&&6==6&&12<4

(5)7+12<4&&12-4<8(6)23>>2

参考答案:

(1)false;

(2)6;(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.6666666666666667

(3)2

(4)2

3.考虑如下的Test.java,并指出错误原因。

程序清单:

Test.java

classTest{

publicstaticvoidmain(String[]args){

byteb=5;

b=(b–2);

System.out.println(b);

}

}

参考答案:

b=(b-2);错误,在进行b-2时,运算结果类自动提升为int,而b是byte类型,编译的时候会报错,因为存在高类型数据向低类型数据转化的风险。

而byteb=5;是正确的,因为在编译的时候就能够确定5在byte允许的范围内,虚拟机在编译时做了一定的优化处理。

4.考虑一下对于if……else……语句,还有没有更简洁的写法。

例如:

if(x>0){

y=x;

}else{

y=-x;

}

可以简写成什么?

参考答案:

y=x>0?

x:

-x;

5.给定N,编程实现打印N*N的乘法表。

参考答案:

publicstaticvoidmain(String[]args){

inta=0,b=0,c=0;

for(inti=0;i<9;i++){

a=i+1;

for(intj=0;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”,如果b2为假则打印“two”;否则打印“three”。

参考答案:

(1)if(b1=true){

System.out.print("one");

}else{

System.out.print("two");

}

(2)if(b1=false&&b2=true){

System.out.print("one");

}else{

System.out.print("two");

}

(3)if(b1=false&&b2=true){

System.out.print("one");

}elseif(b1=false&&b2=false){

System.out.print("two");

}else{

System.out.print("three");

}

7.找出如下各项中的语法错误:

(1)

for(intk=0;k<100;k++)

System.out.println(k)

(2)

for(intk=0;k<100;k++);

System.out.println(k);

(3)

intk=0

whilek<100{

System.out.println(k);k++

};

(4)

intk=0;

do{

System.out.println(k);

k++;

}whilek<100;

参考答案:

(1)for(intk=0;k<100;k++){

System.out.println(k);

}

(2)for(intk=0;k<100;k++){

System.out.println(k);

}

(3)intk=0;

while(k<100){

System.out.println(k);

k++;

}

(4)intk=0;

do{

System.out.println(k);

k++;

}while(k<100);

8.写出三个不同的循环―for、while和do-while循环,打印出从0(包括0)开始直到1000的所有10的倍数。

参考答案:

(1)intn=0;

while(n<=1000&&n%10==0){

System.out.print(n);

n++;

}

(2)

intn=0

do{

if(n%10==0){

System.out.print(n);

}

n++;

}while(n<1000);

(3)

for(intn=0;n<=1000;n++){

if(n%10==0){

system.out.print(n);

}

9.给定N,编程实现打印行数为N的菱形。

参考答案:

publicstaticvoidmain(String[]args){

Scannerread=newScanner(System.in);

intn;

while(true){

System.out.println("输入一个整数(>=0)");

if(read.hasNextInt()){

n=read.nextInt();

if(n<0)

continue;

break;

}else{

read.next();

}

}

for(inti=0;i

for(intj=1;j

System.out.print("");

for(intj=0;j

System.out.print("*");

for(intj=1;j

System.out.print("");

System.out.println();

}

for(inti=n-2;i>=0;i--){

for(intj=1;j

System.out.print("");

for(intj=0;j

System.out.print("*");

for(intj=1;j

System.out.print("");

System.out.println();

}

}

10.写出下面程序的输出结果:

publicclassTestWhile{

publicstaticvoidmain(String[]args){

inta=0;

while(++a<=100)

if((a%9)==0)

System.out.print(a+"\t");

System.out.println();

}

}

参考答案:

918273645546372819099

第4章

1.比较String和StringBuffer的区别,并说明什么时候适合使用StringBuffer。

参考答案:

在Java中,String被完全当成一个对象,一个String对象是组成这个字符串的字符序列,加上用来操作字符串的方法。

字符串一旦被创建,就不能改变它的值。

StringBuffer类同样能够表示一串字符。

但是,与String类不同,一个StringBuffer类能够被修改,StringBuffer类维护的是一个字符缓冲区,在必要时它的长度能够增长和缩短。

对任何涉及修改字符串的任务,应该用StringBuffer代替String。

2.说明==和equals的区别,并举例。

参考答案:

==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。

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)参数是int类型的;(4)lastIndexOf()中的参数应该为int或者String,这里的er既不是int也不是String。

4.给定一个句子,统计单词中字母的出现次数(字母不区分大小写,全部按照小写计算)。

参考答案:

参考代码

importjava.util.Scanner;

publicclasscountChar{

publicstaticvoidmain(String[]args){

//输入需要检测的字符串

System.out.print("InputString:

");

Scannerstr0=newScanner(System.in);

Strings=str0.next();

System.out.println("theStringis:

"+s);

s=s.toLowerCase();//将字符串转换为小写

//输入需要统计的字符

System.out.print("Inputchar:

");

Scannerstr1=newScanner(System.in);

Strings1=str1.next();

charc=s1.charAt(0);

System.out.println("Inputcharis:

"+c);

intcount=0;//统计出现次数变量

for(inti=0;i

charch=s.charAt(i);

if(ch==c){

count++;

}

}

System.out.println("Thetimesis:

"+count);

}

}

5.执行Strings=newString("xyz");这一语句,共创建几个String对象?

参考答案:

两个。

"xyz"本身是一个字符串对象,而newString()也会创造一个字符串对象。

6.对于语句Strings="hello";下面那个表达式是合法的?

(1)s+=5;

(2)charc=s[1]

(3)intlen=s.length;

(4)Stringt=s.toLowCase;

参考答案:

(1)为合法的。

7.String和StringBuffer中的哪个方法能改变调用该方法的对象自身的值?

(1)String的charAt()

(2)String的replace()

(3)String的toUpperCase()

(4)StringBuffer的reverse()

参考答案:

(4)StringBuffer的reverse()可以改变对象自身的值。

8.假定s是字符串字面值“exercise”,计算下面每个表达式的值:

(1)s.charAt(5)

(2)s.indexOf("er")

(3)s.substring(5)

(4)s.lastIndexOf(‘e’)

(5)s.length()

参考答案:

(1)i;

(2)2;

(3)ise;

(4)0;

(5)8;

9.写出下面程序的输出结果:

publicclassStringExample{

publicstaticvoidmain(String[]args){

Stringstr=newString("abcd");

Stringstr1="abcd";

Stringstr2=newString("abcd");

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==str1.intern());

System.out.println(str.intern()==str2.intern());

Stringhello="hello";

Stringhel="hel";

Stringlo="lo";

System.out.println(hello=="hel"+"lo");

System.out.println(hello=="hel"+lo);

}

}

参考答案:

false

false

false

true

true

true

false

true

true

true

false

10.编写程序,将字符串“aabbcdefg”中每个字符作加2操作,最后结果为“ccddefghi”。

参考答案:

参考代码

publicclassChar{

publicstaticvoidmain(String[]args){

Strings="aabbcdefg";

char[]ch=s.toCharArray();

for(inti=0;i

ch[i]=(char)(ch[i]+2);

}

ch.toString();

System.out.println(ch);

}

}

第5章

1.编写一个程序,计算出前10个平方数(例如1,4,9,16),并将这10个数保存到一个整型数组中,将数组中的所有元素输出到控制台,验证程序是否正确。

要确保数组有10个元素,并且元素值的范围是1~100.

参考答案:

publicstaticvoidmain(String[]args){

intb[]=newint[10];

for(inti=1;i<11;i++){

b[i]=i*i;

}

for(inti=0;i<10;i++){

System.out.println(a[i]);

}

}

2.声明一个数组,其中的元素为37,47,23,-5,19,56,然后创建一个新数组,将前一个数组的内容复制到后一个数组中。

参考答案:

publicstaticvoidmain(String[]args){

inta[]={37,47,23,-5,19,56};

intb[]=newint[a.length];

for(inti=0;i

b[i]=a[i];

}

for(intj=0;j

System.out.print(b[j]+"");

}

}

3.从命令行输入5个整数到数组a中,分别输入33、55、22、66及77。

求偶数的个数及其和。

参考答案:

示例代码:

publicstaticvoidmain(String[]args){

inta[]=newint[5];

intcount=0;

intsum=0;

for(inti=0;i

System.out.print("请输入数组中的元素:

");

Scannerread=newScanner(System.in);

a[i]=read.nextInt();

if(i%2!

=0){

count++;

sum=sum+a[i];

}

}

System.out.println("偶数个数是:

"+count);

System.out.println("偶数的和是:

"+sum);

}

4.从命令行输入一个字符串“JavaServlet”,将每个字符存入a数组。

(1)大写字母有几个?

分别是那几个?

(2)小写字母有几个?

分别是那几个?

(3)将小写字母转换成大写字母,大写字母转换成小写字母。

参考答案:

publicstaticvoidmain(String[]args){

if(args[0]!

=""){

StringinputString=args[0];

intcountLower=0;

intcountUpper=0;

StringstrLower="";

StringstrUpper="";

for(inti=0;i

charc=inputString.charAt(i);

if(Character.isUpperCase(c)){

countUpper++;

strUpper+=c+"";

}elseif(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2