Java程序设计基础习题答案.docx
- 文档编号:27073227
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:41
- 大小:42.66KB
Java程序设计基础习题答案.docx
《Java程序设计基础习题答案.docx》由会员分享,可在线阅读,更多相关《Java程序设计基础习题答案.docx(41页珍藏版)》请在冰豆网上搜索。
Java程序设计基础习题答案
Java程序设计基础课后习题参考答案
第2章
1、关于JavaApplication 得入口方法main()得检验:
main()方法得参数名就是否可以改变?
main()方法得参数个数就是否可以改变?
该方法名就是否可以改变?
参考答案:
(1)main()方法得参数名可以改变.
(2)main()方法得参数个数不可以改变。
(3)该方法名不可以改变。
2、当一个程序没有main()方法时,能编译吗?
如果能编译,能运行吗?
参考答案:
当一个程序没有main()方法就是,就是可以编译通过得,但就是不能给运行,因为找不到一个主函数入口。
3、下列语句能否编译通过?
byte i= 127;
bytej=128;
long l1=999999;
long l2 =9999999999;
参考答案:
bytei与longl1可以编译通过。
而byte j与long l2超出自身数据类型范围,所以编译失败。
4、 下列语句能否编译通过?
floatf1= 3、5;
floatf2=3.5f;
参考答案:
java中浮点型得数据在不声明得情况下都就是double型得,如果要表示一个数据就是float型得,必须在数据后面加上“F”或“f”;因此,float f1无法编译通过。
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)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语言中,默认整型数占用4个字节数。
10、以下代码得编译运行结果就是
publicclass Test{
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、66666666
(3)2
(4)2
3、考虑如下得Test、java,并指出错误原因.
程序清单:
Test、java
class Test {
publicstaticvoidmain(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、考虑一下对于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”);
} else if (b1=false &&b2=false){
System、out、print("two”);
}else{
System、out、print(”three");
}
7、找出如下各项中得语法错误:
(1)
for(int k=0;k<100;k++)
System、out、println(k)
(2)
for(int k=0;k〈100;k++);
System、out、println(k);
(3)
intk=0
whilek〈100 {
System、out、println(k);k++
};
(4)
int k=0;
do{
System、out、println(k);
k++;
}whilek〈100;
参考答案:
(1)for(int k=0;k<100;k++){
System、out、println(k);
}
(2)for(int k=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) int n=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得菱形。
参考答案:
public staticvoid main(String[]args){
Scannerread= new Scanner(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 <n; i++){
for(intj = 1;j<n—i;j++)
ﻩSystem、out、print(”");
ﻩﻩfor(intj=0;j < i* 2 + 1;j++)
ﻩﻩSystem、out、print("*");
ﻩfor(intj= 1;j <n - i; j++)
ﻩSystem、out、print("");
ﻩﻩSystem、out、println();
ﻩﻩ}
ﻩfor(inti=n —2; i>=0;i--){
ﻩﻩfor(intj=1; j< n-i;j++)
ﻩSystem、out、print(” ”);
ﻩfor(intj =0;j<i*2+1; j++)
ﻩﻩﻩﻩSystem、out、print(”*");
ﻩfor (intj =1;j ﻩﻩﻩSystem、out、print(””); System、out、println(); ﻩ} } 10、写出下面程序得输出结果: publicclassTestWhile { public staticvoid main(String[]args){ ﻩinta=0; ﻩﻩﻩwhile(++a〈=100) ﻩﻩif ((a%9)==0) ﻩﻩﻩSystem、out、print(a+"\t"); ﻩSystem、out、println(); ﻩﻩ} } 参考答案: 9182736 45546372 819099 第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; public class countChar{ ﻩpublicstaticvoidmain(String[]args){ ﻩﻩ//输入需要检测得字符串 ﻩﻩSystem、out、print("InputString: ”); ﻩScannerstr0=newScanner(System、in); ﻩStrings =str0、next(); ﻩﻩSystem、out、println("the Stringis : ”+s); ﻩﻩs = s、toLowerCase();ﻩ//将字符串转换为小写 //输入需要统计得字符 ﻩSystem、out、print(”Inputchar: "); Scannerstr1=new Scanner(System、in); Strings1=str1、next(); charc=s1、charAt(0); ﻩSystem、out、println(”Inputchar is : "+c); intcount=0;//统计出现次数变量 for(int i= 0;i<s、length(); i++){ ﻩchar ch = s、charAt(i); ﻩﻩif(ch==c){ ﻩﻩﻩcount++; ﻩﻩ} } ﻩSystem、out、println("Thetimesis: ”+count); ﻩ} } 5、执行Strings=newString(”xyz");这一语句,共创建几个String对象? 参考答案: 两个。 "xyz"本身就是一个字符串对象,而newString()也会创造一个字符串对象。 6、对于语句String s="hello";下面那个表达式就是合法得? (1)s+= 5; (2)char c=s[1] (3)int len=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{ publicstaticvoid main(String[]args){ Stringstr =new String(”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()); String hello ="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 { public staticvoid main(String[]args){ ﻩﻩStrings="aabbcdefg"; ﻩﻩchar[]ch=s、toCharArray(); ﻩﻩfor(int i =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) { ﻩint b[]= 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,然后创建一个新数组,将前一个数组得内容复制到后一个数组中. 参考答案: public static voidmain(String[] args){ ﻩinta[] ={37,47,23,-5,19,56}; ﻩintb[] =newint[a、length]; ﻩﻩfor(inti =0; i〈a、length;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; ﻩﻩint sum=0; ﻩﻩfor(inti =0;i <a、length;i++){ ﻩﻩSystem、out、print(”请输入数组中得元素: "); ﻩﻩScanner read =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)将小写字母转换成大写字母,大写字母转换成小写字母。 参考答案: publicstatic void main(String[]args) { if(args[0]! =""){ ﻩStringinputString= args[0]; ﻩintcountLower = 0; intcountUpper =0; ﻩStringstrLower=""; ﻩﻩStringstrUpper ="”; for(inti =0; i〈
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 基础 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)