《Java语言程序设计一》课后习题答案课程编号04747Word格式文档下载.docx
- 文档编号:17897337
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:212
- 大小:795.87KB
《Java语言程序设计一》课后习题答案课程编号04747Word格式文档下载.docx
《《Java语言程序设计一》课后习题答案课程编号04747Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《Java语言程序设计一》课后习题答案课程编号04747Word格式文档下载.docx(212页珍藏版)》请在冰豆网上搜索。
1
false
false,true
字符型
char
2
a,我,ぽ
0~65535
整数类型
字节性
byte
12,13,45
-128~127
短整型
short
-32768~32767
整型
int
8
-2E31~2E31-1
长整型
long
0L
12L,13L,45L
-2E63~2E63-1
浮点类型
单精度浮点
float
4
0F
12.345F,6.7891F
-10E38~-10E-38
10E-38~10E38
双精度浮点
double
0D
12.345D,6.7891D
-10E308~-10E-308
10E-308~10E308
1.9指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。
整型常量:
4)0xABCL,8)003,10)077,12)056L
浮点数类型常量:
3)-1E-31,5).32E3113)0.,14).0
两者都不是:
1),2),6),7),9),11)
第二章运算和语句
2.1Java的字符能参加算术运算吗?
可以。
(1)字符与整型数据运算,结果为整型数据,只能赋给整型变量,如果附给字符型变量会损失精度,需要强制类型装换;
(2)字符与字符运算,结果为字符型数据,可以直接赋给字符型或整型变量。
2.2占字节多的变量能直接赋值给占字节少的变量么?
不能直接赋值,需要强制类型转换。
2.3试用Java语言表达式描述以下数学计算式或逻辑条件:
1)
解:
V=(4.0/3)*Math.PI*Math.pow(r,3);
2)
R=1.0/(1.0/R1+1.0/R2);
3)
y=Math.pow(x,5)+Math.pow(x,3)+6;
4)
F=1.0*M1*M2/(R*R);
5)
Math.sin(x)/a*x+Math.abs(Math.cos(π*x/2));
6)0<
a<
10
a>
0&
&
10
7)条件x=1与y=2有且只有一个成立.
(x==1&
y!
=2)||(x!
=1&
y==2)
2.4设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。
1)
a=5;
b=16;
;
c=10
2.6若一个数恰好等于它的因子之和,则这个数称为“完全数”。
编写程序求1000之内的所有完全数。
分析:
若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。
例如6=1+2+3;
28=1+2+4+7+14
程序运行结果:
/**
*@author段智敏
*/
publicclassWork2_6{
publicstaticvoidmain(String[]args){
StringresultString="
1000以内,完全数有:
"
;
//最后结果字符串
for(inti=1;
i<
=1000;
i++){
if(isPerfectNumber(i)){
resultString+=i+"
,"
}
}
System.out.println(resultString);
}
privatestaticbooleanisPerfectNumber(intnumber){
intsum=0;
//因子的和
Stringstr=newString("
);
number;
if(number%i==0){
sum+=i;
str+=i+"
+"
if(sum==number){//如果因子之和,等于本身,则是完数
str=str.substring(0,str.length()-1);
//去掉字符串最后一个多余的“+”;
System.out.println(number+"
的因子有:
+str);
returntrue;
}
returnfalse;
}
2.7编写输入正实数x,求平方不超过x的最大整数n,并输出。
第一种命令行方式输入
importjava.util.Scanner;
*编写输入正实数x,求平方不超过x的最大整数n,并输出。
<
BR>
*命令行方式,输入正实数,输出结果<
*@author段智敏
*/
publicclassWork2_7_1
{
publicstaticvoidmain(String[]args)
{
ScannerconsoleScanner=newScanner(System.in);
System.out.print("
请输入正实数X:
Stringstr=consoleScanner.next();
intnumber=-1;
try
{
number=Integer.parseInt(str);
catch(NumberFormatExceptione)
System.out.println("
输入非法字符,程序结束"
return;
if(number<
1)
输入的数不是正实数,程序结束"
else
intn=(int)(Math.sqrt(number));
平方不超过"
+number+"
的最大整数,n="
+n+"
第二种窗口方式输入
运行结果如下图:
*弹出窗口方式
importjavax.swing.JOptionPane;
publicclassWork2_7_2
privateintnumber;
publicWork2_7_2()
number=this.getIntegerNumber("
请输入一个正实数"
1);
//非法,程序结束
intn=(int)(Math.sqrt(number));
showResult("
+number+"
的最大整数\nn="
+n+"
/**
*通过图形界面,得到符合规则的正整数的方法
*@parammessage-在弹出的对话框中,显示提示信息message
*@parammin-要求此数必须大于等于min
publicintgetIntegerNumber(Stringmessage,intmin)
Stringstr=JOptionPane.showInputDialog(null,"
请输入一个正整数"
"
提示信息"
JOptionPane.INFORMATION_MESSAGE);
//得到输入的正整数
catch(Exceptione)
JOptionPane.showMessageDialog(null,"
输入非数字字符\n程序结束"
错误警告"
JOptionPane.ERROR_MESSAGE);
return-1;
//输入的不是数字字符,程序结束
min)
输入的数不符合规则,不是正整数\n程序结束"
"
JOptionPane.ERROR_MESSAGE);
//输入的数不是大于2的正整数时候,程序结束
returnnumber;
*弹出对话框,显示结果
*@paramstr-需要显示的字符串
publicvoidshowResult(Stringstr)
JOptionPane.showMessageDialog(null,str,"
输出结果"
newWork2_7_2();
2.8输入正整数n,输出由n行n列星号字符组成的三角形图案。
源代码文件:
Work2_8.java
importjava.util.*;
*输入正整数n,输出由n行n列星号字符组成的三角形图案。
publicclassWork2_8
publicstaticvoidmain(Stringargs[])
请输入正整数n:
intn=-1;
n=Integer.parseInt(str);
catch(NumberFormatExceptione)
if(n<
for(inti=0;
i<
n;
i++)
{
for(intj=0;
j<
n-i-1;
j++)
{
System.out.print("
"
}
for(intk=0;
k<
i+1;
k++)
*"
System.out.println();
2.9设有整型变量x和y的值分别为5和110。
试指出执行了以下循环语句后,变量x和y的值分别多少?
1)while(x<
=y)x*=2;
解:
x=160;
y=110;
2)do{x=y/x;
y=y-x;
}while(y>
=1);
x=18;
y=0;
2.10求小于999的所有水仙花数。
Work2_10.java
*求小于999的所有水仙花数
publicclassWork2_10
StringresultString=newString("
1000之前的所有水仙花数有:
//用来存结果的字符串
for(inti=100;
999;
i++)
if(isNarcissusNumber(i))
resultString+="
+i;
System.out.println(resultString.substring(0,resultString.length()-1));
publicstaticbooleanisNarcissusNumber(intm)//判断是否是水仙花数的方法
intnumber=m;
//把m存起来
inta[]=newint[100];
//用来存n每个位上的数
intamount=0;
//表示n的位数
while(m>
0)//通过循环得到m每个位上的数,存到数组中
a[amount]=m%10;
m=m/10;
amount++;
for(intj=0;
j<
amount;
j++)//累加每位上的数的位数次方
sum+=Math.pow(a[j],amount);
if(number==sum)//如果累加的和等于这个数本身,则他是水仙花数,返回真
2.11编程序解百鸡问题:
鸡翁一,值钱五;
鸡母一,值钱三;
鸡雏三,值钱一。
百钱买百鸡。
求鸡翁、鸡母和鸡雏各几何?
Work2_11.java
*鸡翁一,值钱五;
*百钱买百鸡。
求鸡翁、鸡母和鸡雏各几何。
publicclassWork2_11
for(inti=0;
=100;
for(intj=0;
j++)
{
for(intk=0;
k<
k+=3)//鸡雏的个数必须使3的倍数
if(((5*i+3*j+k/3)==100)&
(i+j+k==100))
System.out.println("
鸡翁:
+i+"
鸡母:
+j+"
鸡雏:
+k);
2.12编写程序,按下面的公式计算自然对数底e的值:
e=1+1/1!
+1/2!
+1/3!
+1/4!
+......
*按公式计算:
publicclassWork2_12
intn=1000;
//计算精度
doublee=1.0;
=n;
e=e+1.0/Work2_12.factorial(i);
System.out.println("
e="
+e);
*计算阶乘的静态方法
*@param-需要计算阶乘的数
*@return-最后结果
staticdoublefactorial(inta)
doublef=1.0;
for(intj=1;
=a;
f=f*j;
returnf;
2.13编写程序,用如下公式计算圆周率PI的近似值:
PI=4-4/3+4/5-4/7+4/9-4/11...
Work2_13.java
*圆周率计算
publicclassWork2_13
intnum=1000000;
//控制计算的项数,越高,越准确
用公式计算圆周率,\n计算"
+num+"
项后圆周率的近似值为"
+Work2_13.getPai(num));
3.14是第"
+Work2_13.getIndex(3.14)+"
项,\t\t值为:
+Work2_13.getPai(Work2_13.getIndex(3.14)));
3.141是第"
+Work2_13.getIndex(3.141)+"
项,\t值为:
+Work2_13.getPai(Work2_13.getIndex(3.141)));
3.1415是第"
+Work2_13.getIndex(3.1415)+"
+Work2_13.getPai(Work2_13.getIndex(3.1415)));
3.14159是第"
+Work2_13.getIndex(3.14159)+"
+Work2_13.getPai(Work2_13.getIndex(3.14159)));
*根据给出的数值,得到需要计算多少项才能得到这个数值
*
*@paramp-数值
*@return-项数
publicstaticdoublegetIndex(doublep)
intr=1,num=1000000;
doublei=1.0,pai=0.0,t=1.0;
while(r<
num)
pai=pai+(4.0/i)*t;
t=-t;
i=i+2;
r++;
if(pai>
=p&
pai<
=(p+0.000001))
break;
returnr;
*根据给出的数,按公式进行计算圆周率
*@paramnum-公式项数
*@return返回按公式计算出的圆周率
publicstaticdoublegetPai(doublenum)
intr=1;
}
returnpai;
}
2.14回文整数是指正读法和反读相同的整数,编写一个程序,输入一个整数,判断他是否为回文整数。
*输入整数,判断是否是回文整数
publicclassWork2_14
publicWork2_14()
number=getIntegerNumber("
输入一个正整数n"
//要求是>
=1的整数
0)
if(isPalindrome(number))
showResult("
输入的正整数“"
”是回文数"
”不是回文数"
*判断是否是回文数
*@paramnumber-需要判断的正整数
*@
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java语言程序设计一 Java 语言程序设计 课后 习题 答案 课程 编号 04747