浙江大学Java语言程序设计实验答案全集Word格式文档下载.docx
- 文档编号:17284835
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:32
- 大小:24.07KB
浙江大学Java语言程序设计实验答案全集Word格式文档下载.docx
《浙江大学Java语言程序设计实验答案全集Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《浙江大学Java语言程序设计实验答案全集Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
(1)字符'
A'
的Unicode码比字符'
a'
的Unicode码小32。
(2)假设字符型变量ch中保存一个大写字母,执行ch+=('
-'
);
后,ch中是相应的小写字母。
例:
若ch='
B'
,执行后ch='
b'
。
2、
m=3n=2.m大于n吗?
true
m=2n=2.m大于n吗?
false
str1=Hello;
str2=Hello!
s1和s2相等吗?
(1)s2比s1多一个字符“!
”,所以不相同。
(2)s2比s1多一个字符,所以s2比s1大。
3、
逻辑变量b1=true、b2=false
b1^b2(异或运算)的结果是:
b1^!
b2(b2取反后与b1异或运算)的结果是:
n=31,m=15;
m与n的位与运算结果是:
15
m、n的位与后左移2位的结果:
60
(1)若给b1赋值2,则程序出错。
因为类型不匹配:
不能从int转换为boolean
(2)n是十六进制数,化为二进制为00011111;
m是八进制数,化为二进制为00001111;
所以n&
m为00001111(二进制),就是十进制数15。
(3)120
(4)左移运算就是乘法运算,左移n位就相当于乘以2^n
4、
(m+n>
k)?
(m++):
(--m+n++)的运算结果:
2
float型变量强制转换为int型的结果是:
3
int型变量运算:
(m+2*n)/k的结果是:
(m+2*n)/k的结果赋值给float型变量后x=
(1)因为temp=(--m+n++),等价于依次执行以下命令:
--m;
temp=(m+n);
n++;
所以,temp=2,m=0,n=3,k=3
(2)因为是double类型,不能赋给float类型的变量x
在后面加F或f,将其转换成float类型,就可以赋值了
(3)此时m=1,n=3,k=3,所以(m+2*n)/k=7/3=2
(4)x=(m+2*n)/(float)k=7/=
5、
源程序如下:
publicclassBall{
publicstaticvoidmain(String[]args){
floatr=,PI=,V;
V=4f/3f*PI*r*r*r;
球的半径为"
+r);
球的体积为"
+V);
球的半径为
球的体积为
实验4顺序结构程序的设计
程序填空,不要改变与输入输出有关的语句。
一、求两个数的和与差。
输入整数a和b,计算并输出a、b的和与差。
输入
2-8
输出
Thesumis-6
Thedifferenceis10
importclassTest20001{
inta,b,sum,diff;
Scannerin=newScanner;
a=();
b=();
/*------------------*/
sum=a+b;
diff=a-b;
Thesumis"
+sum);
Thedifferenceis"
+diff);
二、求平方根。
输入1个实数x,计算并输出其平方根。
Thesquarerootofis
importclassTest20002{
doublex,root;
x=();
root=(x);
Thesquarerootof"
+x+"
is"
+root);
三、华氏温度转换为摄氏温度。
输入华氏温度f,计算并输出相应的摄氏温度c。
c=5/9(f-32).
括号内是说明
(华氏温度)
Thetempratureis
importclassTest20003{
publicstaticvoidmain(String[]args){
doublef,c;
f=();
/*------------------*/
c=9*(f-32);
importclassTest20004{
inttime1,time2,hours,mins;
time1=();
time2=();
/*计算两个时间之间的小时数和分钟数*/
hours=time2/100-time1/100;
mins=time2%100-time1%100;
/*当计算得到的分钟数为负数时进行如下处理*/
hours=mins>
0?
hours:
hours-1;
mins=mins>
mins:
mins+60;
Thetrainjourneytimeis"
+hours+"
hrs"
+mins+"
mins."
五、数字加密。
输入1个四位数,将其加密后输出。
方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。
1257
Theencryptednumberis4601(每一位上的数字加9除以10取余后,得0146,交换后得到4601)
importclassTest20005{
intnumber,digit1,digit2,digit3,digit4,newnum;
number=();
/*先分离出各位上的数字*/
digit1=number/1000;
digit2=number/100%10;
;
publicclassTest20006{
publicstaticvoidmain(String[]args)throwsIOException{
charch;
ch=(char)/*------------------*/
ch+=32;
;
perimeter="
+(int)(perimeter*100+/100.);
Thesesidesdonotcorrespondtoavalidtriangle"
2(repeat=2)
553
114
area=;
perimeter=
Thesesidesdonotcorrespondtoavalidtriangle
importclassTest30003{
publicstaticvoidmain(String[]args){
intri,repeat;
floata,b,c,area,perimeter,s;
repeat=();
for(ri=1;
ri<
=repeat;
ri++){
c=();
/*------------------*/
if(a+b>
c&
&
a+c>
b&
b+c>
a)"
else
}
四、判断数的符号
输入整数x,若x大于0,y=1;
若x等于0,y=0;
否则,y=-1,最后输出y。
3(repeat=3)
2-80
1(x=2时y=1)
-1(x=-8时y=-1)
0(x=0时y=0)
importclassTest30004{
intx,y;
if(x>
0)y=1;
elseif(x==0)y=0;
publicclassTest30007{
publicstaticvoidmain(String[]args)throwsIOException{
ch=(char)while(ch!
='
?
'
){
if('
<
=ch&
ch<
Z'
)
ch+=32;
elseif('
z'
)
"
f("
)="
+y);
说明:
对正数y保留两位小数的表达式 (int)(y*100+/
或(x)*100)/
九、显示五级记分制成绩对应的百分制区间
输入一个正整数repeat(0<
repeat<
10),做repeat次下列运算:
输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用switch语句。
五级制成绩对应的百分制成绩区间为:
A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果输入不正确的成绩,显示"
Invalidinput"
输入输出示例:
6
ABCDEj(repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j)
90-100
80-89
70-79
60-69
0-59
Invalidinput
importclassTest30010{
intrepeat,ri;
charch;
Scannerin=newScanner;
repeat=();
for(ri=1;
ri<
=repeat;
ch=()).charAt(0);
/*输入1个字符*/
/*---------*/
switch(ch){
case'
:
90-100"
break;
80-89"
C'
70-79"
D'
60-69"
E'
0-59"
default:
实验6循环结构程序的设计
(一)
1.求1+1/2+1/3+……+1/n
输入一个正整数repeat(0<
10),做repeat次下列运算:
读入1个正整数n(n<
=100),计算并输出1+1/2+1/3+……+1/n。
2(repeat=1)
10
importclassTest40001{
inti,n;
floatsum;
n=();
/*--------------------*/
1.sum=0;
.
输入一个正整数n,输出2/1+3/2+5/3+8/5+...的前n项之和,保留4位小数(不足4位时,不必用0填满4位)。
(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)
1520
(第1项是
(前5项的和是
(前20项的和是
importclassTest40011{
inti,n;
floata,b,s,t;
n=();
/*--------------------*/
a=1;
publicclassTest40014{
publicstaticvoidmain(String[]args){
intgcd,lcm,m,n,r;
intrepeat,ri;
m=();
if(m<
=0||n<
=0)
m<
=0orn<
=0"
else{
lcm=m*n;
if(m<
n){r=m;
m=n;
n=r;
r=m%n;
while(r!
=0)
{m=n;
n=r;
r=m%n;
gcd=n;
lcm=lcm/gcd;
theleastcommonmultiple:
+lcm
+"
thegreatestcommondivisor:
+gcd);
}
2.求1+1/2!
+....+1/n!
输入1个正整数n,计算s的前n项的和。
s=1+1/2!
输入:
2(repeat=2)
2(n=2)
10(n=10)
输出:
importclassTest40021{
floats,t;
s=0;
t=1;
for(i=1;
i<
=n;
i++){
t*=i;
1.s+=1/t;
..+1/n!
输入1个正整数n,计算s的前n项的和(保留4位小数)。
要求定义并调用函数fact(n)计算n的阶乘。
publicclassTest50001{
intri,repeat;
inti,n;
doubles;
for(ri=1;
ri<
ri++){
n=();
/*-----------*/
i++)
s+=fact(i);
}
/*---------------*/
staticdoublefact(intn){
inti;
doublef=1;
for(i=1;
f*=i;
returnf;
/*方法fact(n)也可以用以下递归算法设计
staticdoublefact(intn){
if(n==1)
return1;
else
returnn*fact(n-1);
*/
2.求a+aa+aaa+aa…a
输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。
要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。
例如,fn(3,2)的返回值是33。
23(a=2,n=3)
85(a=8,n=5)
246(2+22+222)
98760(8+88+888+8888+88888)
importclassTest50002{
inti,n,a;
longsn;
a=();
/*------------*/
sn=0;
i++)
sn+=fn(a,i);
}
/*------------*/
staticintfn(inta,intn){
ints=0;
for(inti=1;
s=s*10+a;
returns;
/*方法fn()也可以用以下递归算法设计
staticintfn(inta,intn){
if(n==1)
returna;
returnfn(a,n-1)*10+a;
3.统计一个整数中数字的个数
读入1个整数,统计并输出该数中2的个数。
要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。
例如,countdigit(10090,0)的返回值是3。
3(repeat=3)
-21902
345543
count=2(-21902中有2个2)
count=1(有1个2)
count=0(345543中没有2)
importclassTest50003{
intcount;
longn;
/*---------*/
n=(n);
count=countdigit(n,2);
count="
+count);
staticintcountdigit(longnumber,intdigit){
....
要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。
例如,fib(7)的返回值是13。
输出语句:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江大学 Java 语言程序设计 实验 答案 全集