Perl语言入门第四版习题答案.docx

上传人:b****2 文档编号:2257188 上传时间:2022-10-28 格式:DOCX 页数:31 大小:26.89KB
下载 相关 举报
Perl语言入门第四版习题答案.docx_第1页
第1页 / 共31页
Perl语言入门第四版习题答案.docx_第2页
第2页 / 共31页
Perl语言入门第四版习题答案.docx_第3页
第3页 / 共31页
Perl语言入门第四版习题答案.docx_第4页
第4页 / 共31页
Perl语言入门第四版习题答案.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

Perl语言入门第四版习题答案.docx

《Perl语言入门第四版习题答案.docx》由会员分享,可在线阅读,更多相关《Perl语言入门第四版习题答案.docx(31页珍藏版)》请在冰豆网上搜索。

Perl语言入门第四版习题答案.docx

Perl语言入门第四版习题答案

《Perl语言入门习题答案》

2.12练习

1、写一个程序,计算半径为12.5的圆的周长。

圆周长等于2π(π约为3.1415926)乘以半径。

答案为78.5。

-----------------------/home/confish/perl/girth

#!

/usr/bin/perl-w

#thisprogramcalculateacircle'sgirth

#

$r=12.5;

$g=12.5*2*3.1415;

print"thegirthofthecircleis$g\n";

-----------------------/home/confish/perl/girth

2、修改上述程序,用户可以在程序运行时输入半径。

如果,用户输入12.5,则应得到和上题一样的结果。

-----------------------/home/confish/perl/girthpro

#!

/usr/bin/perl-w

#abetteronetocalculategirth

#

print"entertheradiusofthecircle\n";

chomp($r=);

if($r>0)

{

print"thegirthofthecircleis".$r*2*3.1415."\n";

}

else

{

print"nonavailable!

\n";

}

-----------------------/home/confish/perl/girthpro

3、修改上述程序,当用户输入小于0的数字时,程序输出的周长为0,而非负数。

-----------------------/home/confish/perl/girthzero

#!

/usr/bin/perl-w

#calculatethegirthandprint0whentheradiusislowerthan0

#

print"entertheradiusoftheline\n";

chomp($r=);

if($r>0)

{

print"thegirthofthecircleis$r*2*3.1415\n";

}

else

{

print"thegirthofthecircleis0\n";

}

-----------------------/home/confish/perl/girthzero

1、2、3:

(一起实现的)

#!

/usr/bin/perl-w

$pai=3.141592654;

print"PleaseInputRadius:

";

$r=;

if($rlt0){

print"Thecircumferenceis0\n";

}else{

$l=$r*2*$pai;

printf"Thecircumferenceis%.1f\n",$l;

}

4、写一个程序,用户能输入2个数字(不在同一行)。

输出为这两个数的积。

-----------------------/home/confish/perl/product

#!

/usr/bin/perl-w

#printthetwonumber'sproduct

#

print"enterthetwonumbers:

\n";

chomp($m=);

chomp($n=);

print"theproductofthetwonumbersare".$m*$n."\n";

-----------------------/home/confish/perl/product

5、写一个程序,用户能输入1个字符串和一个数字(n)(不在同一行)。

输出为,n行这个字符串,1次1行(提示,使用“x”操作符)。

例如,如果用户输入的是“fred”和“3”,则输出为:

3行,每一行均为fred。

如果输入为“fred”和“299792”,则输出为299792行,每一行均为fred

-----------------------/home/confish/perl/printer

#!

/usr/bin/perl-w

#printastringcertaintimesdependontheusr'sinput

#

print"enterastringandanumber:

\n";

$str=;

chomp($num=);

print${str}x$num;

-----------------------/home/confish/perl/printer

3.9练习

1、写一个程序,将一些字符串(不同的行)读入一个列表中,逆向输出它。

如果是从键盘输入的,那在Unix系统中应当使用CTRL+D表明end-of-file,在Windows系统中使用CTRL+Z.

------------------------------------/home/confish/reprint

#!

/usr/bin/perl-w

#readsomeinputandprinttheminreversesequence

#

print"enterthestringplease:

\n";

@str=reverse;

print"\nthereversestringsare:

\n@str";

------------------------------------/home/confish/reprint

2、写一个程序,读入一串数字(一个数字一行),将和这些数字对应的人名(下面列出的)输出来。

(将下面的人名列表写入代码中)。

fredbettybarneydinoWilmapebblesbamm-bamm

例如,当输入为1,2,4和2,则输出的为fred,betty,dino,和betty

------------------------------------/home/confish/num_to_name

#!

/usr/bin/perl-w

#readsomenumbersandoutputthematchname

#

$i=0;

@names=qw/fredbettybarneydinoWilmapebblesbamm-bamm/;

print"enterthenumbersplease:

\n";

chomp(@nums=);

foreach(@nums)

{

@re=@names;

while($ine$_)

{

$n=shift(@re);

$i++;

}

$i=0;

print$n,"\n";

}

------------------------------------/home/confish/num_to_name

3、写一个程序,将一些字符串(在不同的行中)读入一个列表中。

然后按ASCII顺序将它们输出来。

也就是说,当输入的字符串为fred,barney,wilma,betty,则输出为barneybettyfredwilma。

分别在一行或不同的行将之输出。

------------------------------------/home/confish/sort_str

#!

/usr/bin/perl-w

#readsomestringsandsorttheminASCII

#

chomp(@str=sort);

#@str=sort;willprintthemindiffrentlines

print@str,"\n";

------------------------------------/home/confish/sort_str

4.11练习

1、写一个名为&total的子程序,返回一列数字的和。

提示:

子程序不应当有任何的I/O操作;它处理调用的参数,返回处理后的值给调用者。

结合下面的程序来练习,它检测此子程序是否正常工作。

第一组数组之和25。

my@fred=qw{13579};

my$fred_total=&total(@fred);

print"Thetotalof\@fredis$fred_total.\n";

print"Entersomenumbersonseparatelines:

";

my$user_total=&total();

print"Thetotalofthosenumbersis$user_total.\n";

--------------------------------/home/confish/perl/subr

#!

/usr/bin/perl-w

#asubroutinenamedtotalreturnssumofnumbers

#

subtotal

{

foreach$n(0..$#_)

{

$sum+=$_[$n];

}

$sum;

}

my@fred=qw{13579};

my$fred_total=&total(@fred);

print"Thetotalof\@fredis$fred_total.\n";

print"Entersomenumbersonseparatelines:

\n";

my$user_total=&total();

print"Thetotalofthosenumbersis$user_total.\n";

--------------------------------/home/confish/perl/subr

2、利用上题的子程序,写一个程序计算从1到1000的数字的和。

--------------------------------/home/confish/perl/suber

#!

/usr/bin/perl-w

#usethesubroutineinlastprogramtogetthesumof1..1000

#

subtotal

{

foreach$n(0..$#_)

{

$sum+=$_[$n];

}

$sum;

}

@num=(1..1000);

$sum=&total(@num);

print"Thesumof1..1000is$sum\n";

--------------------------------/home/confish/perl/suber

3、额外的练习:

写一个子程序,名为&above_average,将一列数字作为其参数,返回所有大于平均值的数字(提示:

另外写一个子程序来计算平均值,总和除以数字的个数)。

利用下面的程序进行测试:

my@fred=&above_average(1..10);

print"\@fredis@fred\n";

print"(Shouldbe678910)\n";

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1