1、Perl语言入门第四版习题答案Perl语言入门习题答案2.12 练习1、写一个程序,计算半径为12.5的圆的周长。圆周长等于2(约为3.1415926)乘以半径。答案为78.5。-/home/confish/perl/girth#!/usr/bin/perl -w#this program calculate a circles girth#$r=12.5;$g=12.5*2*3.1415;print the girth of the circle is $gn;-/home/confish/perl/girth 2、修改上述程序,用户可以在程序运行时输入半径。如果,用户输入12.5,则应得到
2、和上题一样的结果。 -/home/confish/perl/girthpro#!/usr/bin/perl -w#a better one to calculate girth#printenter the radius of the circlen;chomp($r=);if($r0) printthe girth of the circle is .$r*2*3.1415.n; else printnonavailable!n; -/home/confish/perl/girthpro3、修改上述程序,当用户输入小于0 的数字时,程序输出的周长为0,而非负数。-/home/confish/
3、perl/girthzero#!/usr/bin/perl -w#calculate the girth and print 0 when the radius is lower than 0#printenter the radius of the linen;chomp($r=);if($r0) printthe girth of the circle is $r*2*3.1415n; else printthe girth of the circle is 0n; -/home/confish/perl/girthzero1、2、3:(一起实现的)#!/usr/bin/perl -w$p
4、ai=3.141592654;print Please Input Radius:;$r=;if ( $r lt 0 ) print The circumference is 0n; else $l=$r*2*$pai; printf The circumference is %.1fn,$l;4、写一个程序,用户能输入2 个数字(不在同一行)。输出为这两个数的积。 -/home/confish/perl/product#!/usr/bin/perl -w#print the two numbers product#printenter the two numbers:n;chomp($m=)
5、;chomp($n=);printthe product of the two numbers are .$m*$n.n;-/home/confish/perl/product5、写一个程序,用户能输入1 个字符串和一个数字(n)(不在同一行)。输出为,n 行这个字符串,1 次1 行(提示,使用“x”操作符)。例如,如果用户输入的是“fred”和“3”,则输出为:3 行,每一行均为fred。如果输入为“fred”和“299792”,则输出为299792 行,每一行均为fred-/home/confish/perl/printer#!/usr/bin/perl -w#print a string
6、 certain times depend on the usrs input#printenter a string and a number:n;$str=;chomp($num=);print $strx$num;-/home/confish/perl/printer3.9 练习1、写一个程序,将一些字符串(不同的行)读入一个列表中,逆向输出它。如果是从键盘输入的,那在Unix 系统中应当使用CTRL+D 表明end-of-file,在Windows 系统中使用CTRL+Z. -/home/confish/reprint#!/usr/bin/perl -w#read some input
7、 and print them in reverse sequence#print enter the string please:n;str=reverse ;print nthe reverse strings are:nstr;-/home/confish/reprint2、写一个程序,读入一串数字(一个数字一行),将和这些数字对应的人名(下面列出的)输出来。(将下面的人名列表写入代码中)。fred betty barney dino Wilma pebbles bamm-bamm例如,当输入为1,2,4 和2,则输出的为fred, betty, dino, 和betty -/home/
8、confish/num_to_name#!/usr/bin/perl -w#read some numbers and output the match name# $i=0;names=qw /fred betty barney dino Wilma pebbles bamm-bamm/;printenter the numbers please:n;chomp(nums=);foreach(nums) re=names; while($i ne $_) $n=shift( re); $i+; $i=0; print $n,n;-/home/confish/num_to_name3、写一个程
9、序,将一些字符串(在不同的行中)读入一个列表中。然后按ASCII 顺序将它们输出来。也就是说,当输入的字符串为fred, barney, wilma, betty,则输出为barney betty fred wilma。分别在一行或不同的行将之输出。-/home/confish/sort_str#!/usr/bin/perl -w#read some strings and sort them in ASCII#chomp(str=sort);#str=sort; will print them in diffrent linesprint str,n;-/home/confish/sort_
10、str4.11练习1、写一个名为&total 的子程序,返回一列数字的和。提示:子程序不应当有任何的I/O 操作;它处理调用的参数,返回处理后的值给调用者。结合下面的程序来练习,它检测此子程序是否正常工作。第一组数组之和25。my fred = qw 1 3 5 7 9 ;my $fred_total = &total(fred);print The total of fred is $fred_total.n;print Enter some numbers on separate lines: ;my $user_total = &total();print The total of th
11、ose numbers is $user_total.n; -/home/confish/perl/subr#!/usr/bin/perl -w#a subroutine named total returns sum of numbers#sub total foreach $n(0.$#_) $sum+=$_$n; $sum; myfred=qw1 3 5 7 9;my $fred_total=&total(fred);printThe total of fred is $fred_total.n;printEnter some numbers on separate lines:n;my
12、 $user_total=&total();printThe total of those numbers is $user_total.n;-/home/confish/perl/subr2、利用上题的子程序,写一个程序计算从1 到1000 的数字的和。-/home/confish/perl/suber#!/usr/bin/perl -w#use the subroutine in last program to get the sum of 1.1000#sub total foreach $n(0.$#_) $sum+=$_$n; $sum; num=(1.1000);$sum=&total(num);printThe sum of 1.1000 is $sumn;-/home/confish/perl/suber3、额外的练习:写一个子程序,名为&above_average,将一列数字作为其参数,返回所有大于平均值的数字(提示:另外写一个子程序来计算平均值,总和除以数字的个数)。利用下面的程序进行测试:my fred = &above_average(1.10);print fred is fredn;print (Should be 6 7 8 9 10)n;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1