Perl语言学习练习及参考答案

合集下载

第章习题及参考答案 (1)

第章习题及参考答案 (1)

第1章习题及参考答案一.单选题1.(C )技术是基于Java Servlet以及整个java体系的Web开发技术。

A.CGI B.ASP C.JSP D.PHP2.下面哪一个不是动态网页技术(D )。

A. B.ASP C.JSP D.HTML3.在客户端网页脚本语言中最为通用的是( A )。

A.JavaScript B.VB C.Perl D.ASP4.下列描述错误的是( B )。

A.DHTML是HTML基础上发展的一门语言B.HTML主要分为两大类:服务器端动态页面和客户端动态页面C.客户端的DHTML技术包括HTML4.0、CSS、DOM和脚本语言D.DHTML侧重于WEB内容的动态表现5.可以不用发布就能在本地计算机上浏览的页面编写语言是(B )。

A.ASP B.HTML C.PHP D.JSP6.一个HTML文档必须包含3个元素,它们是html、head和(B )。

A.script B.body C.title D.link7.下面(C )是换行符标签。

A.<body> B.<font> C.<br> D.<p>8.为了标识一个HTML文件,应该使用的HTML标记是( C )。

A.<p></p> B.<boby></body> C.<html></html> D.<table></table> 9.在静态网页中,必须使用(A )标记来完成超级链接。

A.<a>…</a>B.<p>…</p>C.<link>…</link>D.<li>…</li> 10.用HTML标记语言编写一个简单的网页,网页最基本的结构是(D )。

A.<html> <head>…</head> <frame>…</frame> </html>B.<html> <title>…</title> <body>…</body> </html>C.<html> <title>…</title> <frame>…</frame> </html>D.<html> <head>…</head> <body>…</body> </html>11.以下标记符中,用于设置页面标题的是(A )。

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

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

Perl语言入门(第四版)习题答案《Perl语言入门习题答案》2.12 练习1、写一个程序,计算半径为12.5的圆的周长。

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

答案为78.5。

-----------------------/home/confish/perl/girth#!/usr/bin/perl -w#this program calculate a circle's girth#confish@ubuntu7.10$r=12.5;$g=12.5*2*3.1415;print "the girth of the circle is $g\n";-----------------------/home/confish/perl/girth2、修改上述程序,用户可以在程序运行时输入半径。

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

-----------------------/home/confish/perl/girthpro #!/usr/bin/perl -w#a better one to calculate girth#confish@ubuntu7.10print"enter the radius of the circle\n";chomp($r=<STDIN>);if($r>0){print"the girth of the circle is".$r*2*3.1415."\n";}else{print"nonavailable!\n";}-----------------------/home/confish/perl/girthpro3、修改上述程序,当用户输入小于0 的数字时,程序输出的周长为0,而非负数。

-----------------------/home/confish/perl/girthzero #!/usr/bin/perl -w#calculate the girth and print 0 when the radius is lower than 0#confish@ubuntu7.10print"enter the radius of the line\n";chomp($r=<STDIN>);if($r>0){print"the girth of the circle is$r*2*3.1415\n";}else{print"the girth of the circle is 0\n";}-----------------------/home/confish/perl/girthzero1、2、3:(一起实现的)#!/usr/bin/perl -w$pai=3.141592654;print "Please Input Radius:";$r=<STDIN>;if ( $r lt 0 ){print "The circumference is 0\n";}else{$l=$r*2*$pai;printf "The circumference is %.1f\n",$l;}4、写一个程序,用户能输入2 个数字(不在同一行)。

perl面试例题

perl面试例题

Perl 第一阶段学习总结1 use strict 和use warnings 的作用?use strict 什么场合要用use strict?当你的程序有一定的行数时,尤其是在一页放不下时,或者是你找不到发生错误的原因时。

为什么要用 use strict?众多的原因之一是帮你寻找因为错误拼写造成的错误。

比如错误使用了'$recieve_date' 变量,但实际上你在程序中已声明的是 '$receive_date' 变量,这个错误就很难发现。

同样,use strict 迫使你把变量的范围缩到最小,使你不必担心同名变量在程序的其它部份发生不良作用。

(尽管这是 my 的功能,但是如果你使用 use strict 的话,它会强迫你用 my 声明变量,来达到上述目的)。

指定了use warnings;的话perl在编译的时候会将警告信息打印出来,否则不打印。

2 perl注释的方法?(1)‘#’用于注释单行(2) 注释一段=cut; #注释=cut 包围的代码………=cut;Or<<TXT; #注释<<TXT…TXT包围的代码………TXTOr__END__ #注释此行之后的所有代码………Or__DATA__ #可将__DATA__之后的代码作为程序的参数列表………3 单引号和双引号的区别?单引号不能内插且只能转义’\’,’’’两个字符。

双引号可以内插和转义所有字符。

4 print @array;print “@array”;print @array . “\n”有什么区别?Eg:my @array = qw/a b c/;Print @array; # abcPrint “@array” # a b c “内插时,会在数组各个元素之间自# 动添加分隔用的空格(小骆驼书原话)”Print @array . “\n” # 3 ‘.’是标量操作符,所以@array是#标量上下文。

Python练习题及参考答案

Python练习题及参考答案

第1章Python概述一、选择题1.C 2.B二、填空题1.#2.IDLE三、简答题1.答:Python是解释型语言:计算机不能直接理解高级语言,只能直接理解机器语言。

使用解释型语言编写的源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。

因此使用Python编写的程序不需要翻译成二进制的机器语言,而是直接从源代码运行,过程如图1-3所示。

图1-3 Python程序的运行过程2.答:(1)简单易学:Python语言很简洁,语言也很简单,只需要掌握基本的英文单词就可以读懂Python程序。

这对于初学者无疑是个好消息。

因为简单就意味着易学,可以很轻松的上手。

(2)Python是开源的、免费的:开源是开放源代码的简称。

也就是说,用户可以免费获取Python的发布版本,阅读、甚至修改源代码。

很多志愿者将自己的源代码添加到Python 中,从而使其日臻完善。

(3)Python是高级语言:与java和c一样,Pathon不依赖任何硬件系统,因此属于高级开发语言。

在使用Python开发应用程序时,不需要关注低级的硬件问题,例如内存管理。

(4)高可移植性:由于开源的缘故,Python兼容很多平台。

如果在编程时多加留意系统依赖的特性,Python程序无需进行任何修改,就可以在各种平台上运行。

Python支持的平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acorn RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE和PocketPC。

(5)Python是解释型语言:计算机不能直接理解高级语言,只能直接理解机器语言。

使用解释型语言编写的源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。

pink练习题

pink练习题

pink练习题一、基础知识类1. 请列举出五种常见的编程语言及其主要用途。

2. 简述面向对象编程中的三大特性。

3. 请解释什么是数据结构,并列举出三种常见的数据结构。

4. 描述操作系统的五大功能。

5. 请说明计算机网络中的OSI七层模型。

6. 简述数据库的基本概念,包括数据库、数据库管理系统和SQL语言。

7. 请解释什么是算法,并列举出三种常见的排序算法。

8. 描述软件工程的五大过程模型。

9. 请说明计算机硬件系统的主要组成部分。

10. 简述计算机软件的分类。

二、编程实践类1. 编写一个Python程序,实现输入一个整数,输出它的阶乘。

2. 编写一个C++程序,实现输入一个字符串,输出它的反转形式。

3. 编写一个Java程序,实现一个简单的计算器功能,包括加、减、乘、除。

4. 编写一个JavaScript程序,实现一个简单的网页时钟。

5. 编写一个HTML和CSS代码,实现一个简单的网页布局。

6. 编写一个SQL查询语句,查询学生表中年龄大于18岁的学生信息。

7. 编写一个PHP程序,实现用户登录功能。

8. 编写一个React组件,实现一个待办事项列表。

9. 编写一个Node.js程序,实现一个简单的HTTP服务器。

10. 编写一个TypeScript程序,实现一个简单的类和对象。

三、算法与数据结构类1. 请用伪代码描述冒泡排序算法的实现过程。

2. 请用Python实现快速排序算法。

3. 请用C++实现链表的基本操作,包括插入、删除和查找。

4. 请用Java实现二叉树的前序遍历、中序遍历和后序遍历。

5. 请用JavaScript实现堆排序算法。

6. 请用PHP实现图的邻接矩阵表示和深度优先搜索。

7. 请用C实现哈希表的基本操作,包括插入、删除和查找。

8. 请用Go实现红黑树的插入操作。

9. 请用Rust实现跳表的数据结构。

10. 请用Swift实现并查集的数据结构。

四、操作系统与计算机网络类1. 请解释进程和线程的区别。

Python模拟练习题与答案

Python模拟练习题与答案

Python模拟练习题与答案1、下列选项中不符合Python语言变量命名规则的是( )A、TempStrB、IC、3_1D、_AI答案:C2、当需要在字符串中使用特殊字符时,python使用( )作为转义字符。

A、\B、/C、#D、%答案:A3、关于Python序列类型的通用操作符和函数,以下选项中描述错误的是( )A、如果s是一个序列,s =1,“kate”,True],s3] 返回TrueB、如果s是一个序列,x是s的元素,x in s返回TrueC、如果s是一个序列,s =1,“kate”,True],s–1] 返回TrueD、如果s是一个序列,x不是s的元素,x not in s返回True答案:A4、以下关于Python自带数据结构的运算结果中错误的是( )项?A、l = 1, 2, 3, 4]l.insert2, -1则l为 1, 2, -1, 4]。

B、l = 1, 2, 3, 4]l.pop1则l结果为1, 3, 4]。

C、l = 1, 2, 3, 4]l.pop则l.index3 结果为2。

D、l = 1, 2, 3, 4]l.rerverse则l1]为3。

答案:A5、下面代码的输出结果是( ) >>>f=lambda x,y:y+x>>>f(10,10)A、100C、20D、10,10答案:C6、下面哪个不是Python合法的标识符A、int32B、40XLC、selfD、_name_答案:B7、若k为整形, 下述while循环执行的次数为 k=1000 while k>1: print k k = k/2A、9B、10C、11D、1000答案:B8、下列表达式的值为True的是A、2!=5 or 0B、3>2>2C、5+4j>2-3jD、1 and 5==0答案:A9、假设函数中不包括global保留字,对于改变参数值的方法,以下选项中错误的是( )A、参数是列表类型时,改变原参数的值B、参数是组合类型可变对象时,改变原参数的值C、参数的值是否改变与函数中对变量的操作有关,与参数类型无关D、参数是整数类型时,不改变原参数的值答案:C10、获得字符串s长度的方法是( )A、s.lenB、s.lengthC、lensD、lengths11、以下程序的输出结果是()A ,x,y,ok1,ok2=100,10,20,5,0 if x<y:Ify!=10:If not ok1:A=1Elif ok2: a=10A=-1Print(a)A、1B、0C、-1D、值不确定答案:C12、二维列表ls=[[1,2,3], [4,5,6],[7,8,9]],以下选项中能获取其中元素5的是( )A、ls1]1]B、ls–2]–1]C、ls4]D、ls–1]–1]答案:A13、以下关于循环结构的描述,错误的是:A、遍历循环的循环次数由遍历结构中的元素个数来体现B、非确定次数的循环的次数是根据条件判断来决定的C、非确定次数的循环用 while 语句来实现,确定次数的循环用 for 语句来实现D、遍历循环对循环的次数是不确定的答案:D14、下列说法中哪项是错误的:A、while语句的循环体中可以包括if语句B、if语句中可以包括循环语句C、循环语句不可以嵌套D、选择语句可以嵌套答案:C15、关于import引用,以下选项中描述错误的是( )A、可以使用from turtle import setup 引入turtle库B、使用import turtle as t引入turtle库,取别名为tC、使用import turtle引入turtle库D、import保留字用于导入模块或者模块中的对象答案:A16、利用print()格式化输出,能够控制浮点数的小数点后两位输出的是( )B、{:.2f}C、{:.2}D、{.2f}答案:B17、以下哪条语句定义了一个Python字典( )A、{1:2,2:3 }B、{1, 2, 3}C、1, 2, 3]D、1, 2, 3答案:A18、Python异常处理中不会用到的关键字是( )A、finallyB、elseC、tryD、if答案:D19、len(“abc”)的长度是3,len(“老师好”)的长度是( )A、1B、3C、6D、9答案:B20、表格类型数据的组织维度是( )A、高维数据B、一维数据C、多维数据D、二维数据答案:D21、关于Python文件的 '+' 打开模式,以下选项中描述正确的是( )A、与r/w/a/x一同使用,在原功能基础上增加同时读写功能B、读模式C、追加写模式D、覆盖写模式答案:A22、在print函数的输出字符串中可以将( )作为参数,代表后面指定要输出的一个字符。

Perl练习题

Perl练习题

2.12 练习写一个程序,计算半径为12.5的圆的周长。

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

答案为78.5。

#!/usr/bin/perl$r=12.5;$pai=3.1415926 ;$C=2*$pai*$r;Print “$C\n”;修改上述程序,用户可以在程序运行时输入半径。

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

#!/usr/bin/perl$r=<STDIN>;$pai=3.1415926 ;$C=2*$pai*$r;Print “$C\n”;修改上述程序,当用户输入小于0 的数字时,程序输出的周长为0,而非负数。

#!/usr/bin/perl$r=<STDIN>;$pai=3.1415926 ;if($r>=0){$C=2*$pai*$r;}If($r<0){$C=0;}Print “$C\n”;写一个程序,用户能输入2 个数字(不在同一行)。

输出为这两个数的积。

#!/usr/bim/perl$a=<STDIN>;$b=<STDIN>;$c=$a*$b;Print”$c”;写一个程序,用户能输入1 个字符串和一个数字(n)(不在同一行)。

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

例如,如果用户输入的是“fred”和“3”,则输出为:3 行,每一行均为fred。

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

#!/usr.bin/perl$string=<STDIN>;$int=<STDIN>;$output=$string x $intprint $output;3.9练习写一个程序,将一些字符串(不同的行)读入一个列表中,逆向输出它。

如果是从键盘输入的,那在Unix 系统中应当使用CTRL+D 表明end-of-file,在Windows 系统中使用CTRL+Z.写一个程序,读入一串数字(一个数字一行),将和这些数字对应的人名(下面列出的)输出来。

perl语言期末考核大作业

perl语言期末考核大作业
chomp(my @enzyme=<STDIN>);
open(FILE,">>C:\\myperl\\酶切位点.txt");
print (FILE "@enzyme\n");
close (FILE);
print "\n此序列以保存到C:\\myperl\\酶切位点.txt\n\n";
print "下面输出的是数据库中所保存的所有的酶切位点:\n\n";
my $out = Bio::SeqIO->new(-file => '>testseq.fsa', -format => 'Fasta');
$out->write_seq($seq);
双击bioperltest.pl,得到
或者在命令处理程序中:
输入:
C:\Perl>perldoc Bio::Biblio
===================================================================================
.
print"\n\n请在这里输入你的选项:";
}
sub search
{
system 'cls';
print "\n\n====================================你已进入酶切位点查找程序================================\n";
while ($n1<(length($string)-1))
{
$y=substr($string,$n1,1);

perl 复习题 (答案)

perl 复习题 (答案)

PERL复习题(答案不是标准答案,仅供参考)一、选择题1. What is the simplest type of data that Perl can work with?A elementB scalarC vectorD component2. Which operator can be used to take the bottom item from an array?A popB pushC pullD plant3. Which operator is used to arrange items in character order?A ascendB sortC arrangeD descend4. Rather than using print, what is often used in Perl when formatting is important?A printfB formatC alignD show5. Which modifier can be used when matching in Perl to ignore case?A sB vC iD c6. Which operator can be used to break up a string into more than one part based upon a separator?A chopB splitC divideD parse7. What option do you use when starting Perl to tell it to run in warning mode? _-w \ use warnings (Fill in the blank.)8. Which control structure can be used to execute only a condition is false?A untilB unlessC whileD without9. Which of the following commands should be used to open a filehandle named KAREN to an existing file named sw?A open KAREN “>sw”;B open KAREN, “>sw”;C open “sw” KAREN;D open “>sw”, KAREN;10. Within Perl, which operator is used to change the working directory?A cdB chdirC pwdD wd11. Which operator can be used to access the first item in an array?A shiftB startC right$D left$12. Within a loop, which operator immediately ends execution of the loop?A nextB lastC redoD leave13. Which function can be used to make sure your program exits with a nonzero status even if there a standard error?A hashB noexitC nozeroD die14. Which of the following operators work most like simple searching/pattern matching?A /fB /gC s///D m//15. Which keyword is used in Perl to define a subroutine?A branchB subC splitD make16. You want to close the directory handle EV AN. Which of the following should you use to accomplish this?A close EV AN;B closedir EV AN;C close_directory EV AN;D none of the above17. Which of the following lines of code accomplishes the same thing as $price = $price + 9;?A $price +9;B $price =+9;C $price +=9;D 9 + $price18. What value do variables have before they are first assigned?A undefB nullC 0D nil19. Which Perl function can be used to launch a child process to run a program?A splitB spinC forkD system20. Which Perl function can be used to identify the first found occurrence of a substring?A findB indexC locateD allocate21. Which control structure can be used to loop as long as a conditional expression returns true?A untilB unlessC whileD without22. Which operator can be used to create private variables within a subroutine?A nativeB limitedC myD regional23. Which of the following operators is used to return a value in a subroutine?A returnB sendC giveD show24. Your script has just read in a variable from the keyboard and you want to strip that variable of the newline character that came in. What operator should you use to perform this operation?A tidyB trimC chompD slim25. What is the default sort order in Perl?A alphabeticB numericC ASCIID none of the above26. Within a loop, which operator jumps to the end of the loop but does not exit the loop?A nextB lastC redoD leave27. (不确定)Which of the following should be used to print values in an array that do not contain newlines and add them to the end of each entry?A print @array;B print @array\n;C print “@array\n”;D print “$@array \\”;28. Which string comparison operator would be equivalent to the numeric > operator?A neB eqC geD gt29. Which function can be thought of as the opposite of split?A linkB joinC uniteD bond30. Which operator can be used to add an item to the bottom of an array?A popB pushC pullD plant31. Which of the following mathematical operations has the highest precedence in Perl?A **B ++C +D -32. 以下哪一个字符串直接量的定义方式是错误的()(1)'thank you'(2)" "(3)"a "friend" of yours"(4)"a \"friend\" of yours"33. 以下哪一条语句是错误的()(1)$_= 'hello world';(2)$a='hello world';(3)my $b,$a='hello world';(4)my ($a,$b)=(0,'hello world');34. 要使下面的程序正常运行,while后的表达式应选()。

Perl语言入门实战习题[试题]

Perl语言入门实战习题[试题]

Perl语言入门实战习题[试题] 《Perl语言入门实战习题》一、计算FASTA文件中每条序列的长度; 输入文件,FASTA格式:注:如果输入文件在windows下产生,在Linux系统下操作时,宜先用dos2unix处理:用法:dos2unix 输入文件输出文件:Perl代码:#!/usr/bin/perl -wuse strict;unless (@ARGV==2) { # @ARGV 传给脚本的命令行参数列表die"Usage: perl $0 <input.fa> <out.len>\n"; # 当命令行参数不是2的时候输出使用说明 }my ($infile,$outfile) = @ARGV; # 把命令行参数赋值给输入文件和输出文件 open IN,$infile || die"error: can't open infile: $infile"; # 打开输入文件句柄IN open OUT,">$outfile" || die$!; # 打开输出文件句柄OUT $/=">";<IN>; # 设置输入记录分隔符为”>”,并去除第一个”>”while ( my $seq = <IN>){ # 把序列ID行和序列赋值给$seqmy $id = $1 if($seq =~ /^(\S+)/); # 获取序列IDchomp $seq; # 去掉末尾的”>”$seq =~ s/^.+?\n//; # 删除第一行$seq =~ s/\s//g; # 删除序列中的空白字符my $len = length($seq); # 计算序列长度print OUT "$id\t$len\n"; # 输出结果到输出文件}$/="\n"; # 把输入记录分隔符改为默认值close IN; # 关闭输入文件句柄close OUT; # 关闭输出文件句柄二、计算FASTA文件中每条序列的GC含量; 输入文件同上,输出文件:Perl代码:#!/usr/bin/perl -wuse strict;unless (@ARGV==2) {# @ARGV 传给脚本的命令行参数列表die"Usage: perl $0 <input.fa> <out.gc>\n";# 当命令行参数不是2的时候输出使用说明}my ($infile,$outfile) = @ARGV;# 把命令行参数赋值给输入文件和输出文件open IN,$infile || die"error: can't open infile: $infile";# 打开输入文件句柄IN open OUT,">$outfile" || die$!;# 打开输出文件句柄OUT$/=">";<IN>;# 设置输入记录分隔符为”>”,并去除第一个”>” while(<IN>){# $_=<IN>,把序列ID行和序列赋值给$_,$_= 可以省略不写my $id = $1 if(/^(\S+)/);# 获取序列IDchomp; # 去掉末尾的”>”s/^.+?\n//;# 删除第一行s/\s//g; # 删除序列中的空白字符my $GC = (tr/GC/GC/);#计算G或C碱基个数my $AT = (tr/AT/AT/);#计算A或T碱基个数my $len = $GC + $AT;# 计算序列非N长度my $gc_cont = $len ? $GC / $len : 0; #计算GC含量,如果长度为0,GC含量算0print OUT "$id\t$gc_cont\n"; # 输出结果到输出文件 }$/="\n";# 把输入记录分隔符改为默认值close IN; # 关闭输入文件句柄close OUT;# 关闭输出文件句柄三、求反相互补序列;输入文件同上,输出文件也是FASTA格式 Perl代码:#!/usr/bin/perl -wuse strict;unless (@ARGV==2) {# @ARGV 传给脚本的命令行参数列表die"Usage: perl $0 <input.fa> <out.gc>\n";# 当命令行参数不是2的时候输出使用说明}my ($infile,$outfile) = @ARGV;# 把命令行参数赋值给输入文件和输出文件open IN,$infile || die"error: can't open infile: $infile";# 打开输入文件句柄IN open OUT,">$outfile" || die$!;# 打开输出文件句柄OUT $/=">";<IN>;# 设置输入记录分隔符为”>”,并去除第一个”>” while (<IN>){# $_=<IN>,把序列ID行和序列赋值给$_,$_= 可以省略不写my $id = $1 if(/^(\S+)/);# 获取序列IDchomp; # 去掉末尾的”>”s/^.+?\n//;# 删除第一行s/\s//g; # 删除序列中的空白字符$_ = reverse $_; # 序列方向tr/ATCG/TAGC/; # 序列互补print OUT ">$id\n",$_,"\n"; # 输出结果到输出文件}$/="\n";# 把输入记录分隔符改为默认值close IN; # 关闭输入文件句柄close OUT;# 关闭输出文件句柄四、列表信息整合;输入列表1:序列长度文件输入文件2:序列测序覆盖深度文件输出文件:把上述两个列表的信息整合成一个列表,并且最后一行给出汇总结果:Perl代码#!/usr/bin/perl -wuse strict;(@ARGV==3) || die"Usage: perl $0 <list1> <list2> <combine.list>\n"; # 当命令行参数不是3的时候输出使用说明my ($infile1,$infile2,$outfile) = @ARGV;# 把命令行参数赋值给输入文件1、输入文件2和输出文件 my %id_len; # 定义一个哈希open IN1,$infile1 || die$!; # 打开第一个文件句柄while(<IN1>){my ($id,$len) = split /\s+/,$_; # split函数用空白符号切割每一行的内容$id_len{$id} = $len; # 哈希赋值:id => length}close IN1; # 关闭第一个文件句柄open IN2,$infile2 || die$!; # 打开第2个文件句柄open OUT,">$outfile" || die$!; # 打开输出文件句柄my $tol_len = 0; # 定义总长度变量,并赋值为0my $tol_depth = 0; # 定义总深度变量,并赋值为0while (<IN2>){my ($id,$depth) = split; # split函数用空白符号切割每一行的内容my $len = $id_len{$id}; # 序列长度print OUT join("\t",$id,$len,$depth),"\n"; # 输出整合信息到输出文件$tol_len += $len; # 长度累加$tol_depth += $len * $depth; # 深度累加}$tol_depth /= $tol_len; # 计算总体平均深度print OUT "Total\t$tol_len\t$tol_depth\n"; # 输出汇总结果到输出文件close IN2; # 关闭第二个输入文件句柄close OUT; # 关闭输出文件句柄五、串流程;Perl在工作中常用于串流程,现有同事写了3个perl脚本分三步将输入文件,infile.txt处理成最终的final.result:第1步:perl step1.pl infile.txt output1 第2步:perl step2.pl infile.txt output2 第3步:perl step3.pl output1 output2 final.result为提高工作效率,现需要写一个脚本使用infile.txt 作为输入文件,直接得到final.result,中间产生的文件结果不保留。

Perl语言入门(第四版)习题标准答案

Perl语言入门(第四版)习题标准答案

Perl语言入门(第四版)习题答案————————————————————————————————作者:————————————————————————————————日期:《Perl语言入门习题答案》2.12 练习1、写一个程序,计算半径为12.5的圆的周长。

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

答案为78.5。

-----------------------/home/confish/perl/girth#!/usr/bin/perl -w#this program calculate a circle's girth#confish@ubuntu7.10$r=12.5;$g=12.5*2*3.1415;print "the girth of the circle is $g\n";-----------------------/home/confish/perl/girth2、修改上述程序,用户可以在程序运行时输入半径。

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

-----------------------/home/confish/perl/girthpro#!/usr/bin/perl -w#a better one to calculate girth#confish@ubuntu7.10print"enter the radius of the circle\n";chomp($r=<STDIN>);if($r>0){print"the girth of the circle is ".$r*2*3.1415."\n";}else{print"nonavailable!\n";}-----------------------/home/confish/perl/girthpro3、修改上述程序,当用户输入小于0 的数字时,程序输出的周长为0,而非负数。

perl笔记

perl笔记

Perl学习笔记 (2)1. Perl简介 (2)2. 数据类型 (4)2.1概览 (4)2.2命名空间(Namespaces) 4 2.3标量(Scalars) 52.4数组(Arrays) 82.5关联数组(Hashes) 112.6引用(References) 122.6.1 Perl引用简介 (12)2.6.2 创建引用 (12)2.6.3 使用引用 (13)2.6.4 符号引用 (14)2.6.5 垃圾回收与弱引用 (15)2.7 数据结构 (16)2.7.1 Arrays of Arrays 16 2.7.2 Hash of Arrays 182.7.3 Arrays of Hashes 20 2.7.4 Hashes of Hashes 22 2.7.5 Hashes of Functions 24 3操作符(Operators) (25)3.1 概述 (25)3.2 Perl操作符一览 (25)3.3 各种操作符使用说明 (27)3.3.1 项与左赋列表操作符 (27)3.3.2 箭头操作符 (27)3.3.3 自增自减 (27)3.3.4 乘方 (27)3.3.5 表意一元操作符 (28)3.3.6 捆绑操作符 (28)3.3.7 乘操作符 (28)3.3.8 加操作符 (28)3.3.9 移位操作符 (29)3.3.9 有名一元和文件测试操作符 (29)3.3.10 关系操作符 (30)3.3.11 位操作符 (31)3.3.12 C风格逻辑操作符 (31)3.3.13 范围操作符 (31)3.3.14 条件操作符 (31)3.3.14 赋值操作符 (32)3.3.15 逗号操作符 (32)3.3.16 逻辑and, or, not和xor操作符 (33)3.4 与C操作符的比较 (33)3.4.1 Perl操作符的特别之处 (33)3.4.1 C有Perl没有的操作符 (33)4. 语句 (33)4.1简单语句 (34)4.2复合语句 (34)4.2.1 条件语句(if/unless语句) 354.2.2 循环语句(while/until/for/foreach语句) 354.2.3 分支语句 (38)5. 子程序(函数) (38)5.1子程序简介 (38)5.2 函数原型与属性 (40)5.3 Perl内部函数 (41)6. 文件、目录与I/O.. 426.1文件操作 (42)6.2 目录操作 (44)6.3 print/printf. 446.4 注意事项 (45)7. 模式匹配 (46)7.1模式匹配操作符简介 (46)7.2 模式修饰符 (47)7.3模式匹配操作符详解 (48)7.3.1 m//操作符(匹配) 487.3.2 s///操作符(替换) 497.3.3 tr///操作符(字译) 517.4元字符 (52)7.5常见问题的正则解决方案 (55)8. 面向对象编程 (55)8.1模块使用 (56)8.2对象使用 (56)9.Perl特殊变量 (58)10 Perl程序文档(POD) 6011. Perl编程风格 (61)12. 参考文献 (62)学习笔记简介Perl一般被认为是Practical Extraction and Report Language(实用获取与报表语言)的缩写,是由C以及sed、awk、Unix shell及其它语言演化而来的一种语言。

Perl语言学习练习及参考答案

Perl语言学习练习及参考答案

#题2:#使用for循环打印出如下的字符。

# 1# 12# 123# 12345#*******************#Fw_Print_Step ($step++,"使用for循环打印出如下的字符。

11212312345");my $str= "";for (1..4) {$str= $str.$_;if ($_==4) {$str= $str.$_+1;}print " $str\n";}#*******************##题3:my $str1 = "abc";my $str2 = "efg";#将上述2个字符串连接起来,并输出合并后的字符串长度#*******************#Fw_Print_Step ($step++,"将上述2个字符串\"$str1\"和\"$str2\"连接起来,并输出合并后的字符串长度");my $str =$str1.$str2;my $str_length=length($str);print "新字串$str的长度为:$str_length";#*******************##题4:#以逆序方式打印出字符串包含的各个字符,如变量为"123456789"则输出为"9","8",..."2","1". my $str1="abc123def456";#*******************#Fw_Print_Step ($step++,"以逆序方式打印出字符串包含的各个字符,如变量为\"123456789\"则输出为\"9\",\"8\",...\"2\",\"1\".");my $str=$str1;print "以逆序方式打印出字符串\"$str1\"包含的各个字符:\n";for($length=length($str1); $length>0; $length--) {$sub_str=chop($str);if ($length>1) {print "\"$sub_str\",";} else {print "\"$sub_str\".";}}#*******************##题5:#分别使用for与while循环来计算1+2+3+...+100的值#*******************#Fw_Print_Step ($step++,"分别使用for与while循环来计算1+2+3+...+100的值"); print "用for循环计算1+2+3+...+100的值:\n ";my $result=0;for (1..100) {$result=$result+$_;}print "1+2+3+...+100=$result";print "\n用while循环计算1+2+3+...+100的值:\n ";my $result=0;my $num=1;while ($num<=100) {$result=$result+$num;$num++;}print "1+2+3+...+100=$result";#*******************##题6:#以逆序的方式打印出端口列表包含的成员口my @cmdArray = ("config", "int fa 0/1", "no shutdonw", "end");#*******************#Fw_Print_Step ($step++,"以逆序的方式打印出端口列表包含的成员口");for (my $start=$#cmdArray; $start>=0; $start--) {my $array=$cmdArray[$start];print "$array\n";}#*******************##题7:#使用foreach打印出Hash表的所有下标与值my %map = ('red', 0xff0000,'green', 0x00ff00,'blue',0x0000ff);#*******************#Fw_Print_Step ($step++,"使用foreach打印出Hash表的所有下标与值");foreach $capword (sort keys(%map)) {print ("$capword: $map{$capword}\n");}#while( ($key, $value) = Each (%Map)) {# Print "\N$key=$value;"}#*******************##题8:#使用正则匹配判断字符串是否包含error,若是打印提示信息。

Perl面试题

Perl面试题

Perl语言面试题1.问题:什么是Perl?答案:Perl是一种解释型、功能丰富的编程语言,它具有动态的特性,能够处理文本和数据,非常适合用于文本处理、系统管理、网络编程、数据库操作等任务。

2.问题:Perl的基本语法是什么?答案:Perl的基本语法包括变量声明、控制结构(如if、while等)、循环结构(如for、foreach等)、函数定义和调用等。

3.问题:在Perl中如何声明变量?答案:在Perl中,可以使用$符号来声明变量,例如$var = 10;。

4.问题:在Perl中如何进行字符串操作?答案:Perl提供了丰富的字符串操作函数,如substr、index、length、tr 等,可以进行字符串的切割、查找、替换等操作。

5.问题:在Perl中如何进行数组操作?答案:Perl支持数组操作,可以使用@符号来声明数组,并使用push、pop、shift、unshift等函数进行数组的添加、删除、移除等操作。

6.问题:在Perl中如何进行文件操作?答案:Perl提供了丰富的文件操作函数,如open、readline、readlines 等,可以进行文件的打开、读取、写入等操作。

7.问题:在Perl中如何进行正则表达式匹配?答案:Perl支持正则表达式匹配,可以使用正则表达式函数如qr()和m()来进行模式匹配和替换操作。

8.问题:在Perl中如何使用循环结构?答案:Perl支持多种循环结构,如for、foreach、while等,可以根据需要选择合适的循环结构进行迭代操作。

9.问题:在Perl中如何定义和使用函数?答案:在Perl中,可以使用sub关键字定义函数,并使用&符号调用函数。

函数可以接受参数并返回值。

10.问题:请举一个使用Perl进行文本处理的例子?答案:例如,使用Perl提取一个文本文件中的特定行,可以根据行号或关键字进行提取。

具体实现可以使用open函数打开文件,并使用readline或readlines函数逐行读取文件内容,根据条件筛选出需要的行。

Perl 学习笔记(免费)

Perl 学习笔记(免费)

1. 获取用户输入:2. chomp操作符作用:去除字符串后面的换行符3. 注释:# 注释4. 数组的最后一个值的索引:在变量中加一个#所以数组的个数就是$#rock + 15. 列表赋值6. 创建数组:@name引用的时候:$name[]数组的赋值:7. 数组尾部操作:Push和pop数组头部操作:Unshift(插入)和shift(取出)8. splice操作符可以对数组中的任意位置进行插入和删除操作。

它可以接受4个变量第一个变量是数组名,第二个变量是起始索引,第三变量是长度,第四个变量是补充数组。

二个参数:删除后面全部三个参数,设定删除的长度:四个参数:设定插入的东西9. 标量内插到字符串中:数组也可以内插到字符串中,在内插过程中,会添加空格10. foreach使用默认值,不使用变量:11. reverse操作符:用于将次序变反12. sort操作符用于对数组进行排序13. 对数组使用each操作符:Each可以用于提取哈希的键值,这样也同时可以提取数组的序号和数值。

use 5.012;这样写主要是想用 say如果不用each,需要实现的过程如下:14. 上下文:所谓上下文就是返回的值是根据需要进行返回的。

15清空数组:15. 子程序定义:sub name {};调用子程序:&+子程序名如果我们不写return,照样可以返回,主要是这样写除了返回,没有任何意义。

如果没有明显返回值,就是返回1传递参数:在子程序调用的时候,可以直接写参数,系统会自动将自动将参数保存到$_[]数组中,然后在子程序中可以直接调用$_[0],$_[1]来获得参数。

16. 子程序的私有变量My +定义私有变量用my定义的私有变量可以用在很多地方,比如在for循环中的i我们就可以定义为局部私有变量。

17. use strict可以使的Perl更加严格这不报错,但这就报错,报出的错误是:也就是说不能轻易的用全局变量,应该像上面那样用my修饰,或者是因为你写错了,应该用上面那个已经定义过的变量。

Perl语言入门习题

Perl语言入门习题

Perl语言入门习题_第四章1.[12]写一个名为&total 的子程序,返回一列数字的和。

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

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

第一组数组之和我25。

2.[5]利用上题的子程序,写一个程序计算从 1 到1000的数字的和3.[18]额外的练习:写一个子程序,名为&above_average,将一列数字作为其参数,返回所有大于平均值的数字(提示:另外写一个子程序来计算平均值,总和除以数字的个数)。

#!/usr/bin/perluse strict;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(<STDIN>);print "The total of those numbers is $user_total.\n";sub total{my $sum;for(@_){$sum += $_;}return $sum;}#!/usr/bin/perluse strict;my @tmp = 1..1000;my $sum = &total(@tmp);print "total is : $sum.\n";sub total{my $sum;for(@_){$sum += $_;}return $sum;}#!/usr/bin/perluse strict;my @fred = &above_average(1..10);print "\@fred is @fred\n";print "(Should be 6 7 8 9 10)\n";my @barney = &above_average(100, 1..10); print "\@barney is @barney\n";print "(Should be just 100)\n";sub above_average{my $sum = &total(@_);my $average = $sum / @_;my @result;foreach(@_){if($_ > $average){push @result , $_ ;}}return @result;}sub total{my $sum;for(@_){$sum += $_;}return $sum;}----------------------------------------------------------------------------------Perl语言入门习题_第五章1.[7] 写一个程序,类似于cat,但保持输出的顺序关系。

Perl+习题答疑

Perl+习题答疑

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

如果是从键盘输入的,那在Unix 系统中应当使用CTRL+D 表明end-of-file,在Windows 系统中使用CTRL+Z.(第3章习题)unless(@ARGV) {die "<input file> <output file>\n";}open(IN,"<$ARGV[0]") or die;my @line=<IN>;open(OUT,">$ARGV[1]") or die;foreach(reverse(@line)) {print OUT "$_";}2 写一个子程序,名为&above_average,将一列数字作为其参数,返回所有大于平均值的数字(提示:另外写一个子程序来计算平均值,总和除以数字的个数)。

利用下面的程序进行测试:(第4章习题)my @fred = &above_average(1..10);print "\@fred is @fred\n";print "(Should be 6 7 8 9 10)\n";my @barney = &above_average(100, 1..10);print "\@barney is @barney\n";print "(Should be just 100)\n";#!\usr\bin\perl -wuse strict;my @fred = &above_average(1..10);print "\@fred is @fred\n";print "(Should be 6 7 8 9 10)\n";my @barney = &above_average(100, 1..10);print "\@barney is @barney\n";print "(Should be just 100)\n";sub above_average{my @in=@_;my $average_value=&average(@in);my @out;foreach(@in) {if($_>$average_value){push @out,$_;}}return @out;}sub average {my @in=@_;my $sum=0;foreach(@in){$sum+=$_;}return $sum;}3 写一个程序,要求用户在不同的行中输入一些字符串,将此字符串打印出来,规则是:每一条占20 个字符宽度,右对齐。

Perl语言入门实战习题[试题]

Perl语言入门实战习题[试题]

Perl语言入门实战习题[试题] 《Perl语言入门实战习题》一、计算FASTA文件中每条序列的长度; 输入文件,FASTA格式:注:如果输入文件在windows下产生,在Linux系统下操作时,宜先用dos2unix处理:用法:dos2unix 输入文件输出文件:Perl代码:#!/usr/bin/perl -wuse strict;unless (@ARGV==2) { # @ARGV 传给脚本的命令行参数列表die"Usage: perl $0 <input.fa> <out.len>\n"; # 当命令行参数不是2的时候输出使用说明 }my ($infile,$outfile) = @ARGV; # 把命令行参数赋值给输入文件和输出文件 open IN,$infile || die"error: can't open infile: $infile"; # 打开输入文件句柄IN open OUT,">$outfile" || die$!; # 打开输出文件句柄OUT $/=">";<IN>; # 设置输入记录分隔符为”>”,并去除第一个”>”while ( my $seq = <IN>){ # 把序列ID行和序列赋值给$seqmy $id = $1 if($seq =~ /^(\S+)/); # 获取序列IDchomp $seq; # 去掉末尾的”>”$seq =~ s/^.+?\n//; # 删除第一行$seq =~ s/\s//g; # 删除序列中的空白字符my $len = length($seq); # 计算序列长度print OUT "$id\t$len\n"; # 输出结果到输出文件}$/="\n"; # 把输入记录分隔符改为默认值close IN; # 关闭输入文件句柄close OUT; # 关闭输出文件句柄二、计算FASTA文件中每条序列的GC含量; 输入文件同上,输出文件:Perl代码:#!/usr/bin/perl -wuse strict;unless (@ARGV==2) {# @ARGV 传给脚本的命令行参数列表die"Usage: perl $0 <input.fa> <out.gc>\n";# 当命令行参数不是2的时候输出使用说明}my ($infile,$outfile) = @ARGV;# 把命令行参数赋值给输入文件和输出文件open IN,$infile || die"error: can't open infile: $infile";# 打开输入文件句柄IN open OUT,">$outfile" || die$!;# 打开输出文件句柄OUT$/=">";<IN>;# 设置输入记录分隔符为”>”,并去除第一个”>” while(<IN>){# $_=<IN>,把序列ID行和序列赋值给$_,$_= 可以省略不写my $id = $1 if(/^(\S+)/);# 获取序列IDchomp; # 去掉末尾的”>”s/^.+?\n//;# 删除第一行s/\s//g; # 删除序列中的空白字符my $GC = (tr/GC/GC/);#计算G或C碱基个数my $AT = (tr/AT/AT/);#计算A或T碱基个数my $len = $GC + $AT;# 计算序列非N长度my $gc_cont = $len ? $GC / $len : 0; #计算GC含量,如果长度为0,GC含量算0print OUT "$id\t$gc_cont\n"; # 输出结果到输出文件 }$/="\n";# 把输入记录分隔符改为默认值close IN; # 关闭输入文件句柄close OUT;# 关闭输出文件句柄三、求反相互补序列;输入文件同上,输出文件也是FASTA格式 Perl代码:#!/usr/bin/perl -wuse strict;unless (@ARGV==2) {# @ARGV 传给脚本的命令行参数列表die"Usage: perl $0 <input.fa> <out.gc>\n";# 当命令行参数不是2的时候输出使用说明}my ($infile,$outfile) = @ARGV;# 把命令行参数赋值给输入文件和输出文件open IN,$infile || die"error: can't open infile: $infile";# 打开输入文件句柄IN open OUT,">$outfile" || die$!;# 打开输出文件句柄OUT $/=">";<IN>;# 设置输入记录分隔符为”>”,并去除第一个”>” while (<IN>){# $_=<IN>,把序列ID行和序列赋值给$_,$_= 可以省略不写my $id = $1 if(/^(\S+)/);# 获取序列IDchomp; # 去掉末尾的”>”s/^.+?\n//;# 删除第一行s/\s//g; # 删除序列中的空白字符$_ = reverse $_; # 序列方向tr/ATCG/TAGC/; # 序列互补print OUT ">$id\n",$_,"\n"; # 输出结果到输出文件}$/="\n";# 把输入记录分隔符改为默认值close IN; # 关闭输入文件句柄close OUT;# 关闭输出文件句柄四、列表信息整合;输入列表1:序列长度文件输入文件2:序列测序覆盖深度文件输出文件:把上述两个列表的信息整合成一个列表,并且最后一行给出汇总结果:Perl代码#!/usr/bin/perl -wuse strict;(@ARGV==3) || die"Usage: perl $0 <list1> <list2> <combine.list>\n"; # 当命令行参数不是3的时候输出使用说明my ($infile1,$infile2,$outfile) = @ARGV;# 把命令行参数赋值给输入文件1、输入文件2和输出文件 my %id_len; # 定义一个哈希open IN1,$infile1 || die$!; # 打开第一个文件句柄while(<IN1>){my ($id,$len) = split /\s+/,$_; # split函数用空白符号切割每一行的内容$id_len{$id} = $len; # 哈希赋值:id => length}close IN1; # 关闭第一个文件句柄open IN2,$infile2 || die$!; # 打开第2个文件句柄open OUT,">$outfile" || die$!; # 打开输出文件句柄my $tol_len = 0; # 定义总长度变量,并赋值为0my $tol_depth = 0; # 定义总深度变量,并赋值为0while (<IN2>){my ($id,$depth) = split; # split函数用空白符号切割每一行的内容my $len = $id_len{$id}; # 序列长度print OUT join("\t",$id,$len,$depth),"\n"; # 输出整合信息到输出文件$tol_len += $len; # 长度累加$tol_depth += $len * $depth; # 深度累加}$tol_depth /= $tol_len; # 计算总体平均深度print OUT "Total\t$tol_len\t$tol_depth\n"; # 输出汇总结果到输出文件close IN2; # 关闭第二个输入文件句柄close OUT; # 关闭输出文件句柄五、串流程;Perl在工作中常用于串流程,现有同事写了3个perl脚本分三步将输入文件,infile.txt处理成最终的final.result:第1步:perl step1.pl infile.txt output1 第2步:perl step2.pl infile.txt output2 第3步:perl step3.pl output1 output2 final.result为提高工作效率,现需要写一个脚本使用infile.txt 作为输入文件,直接得到final.result,中间产生的文件结果不保留。

PERL解题

PERL解题

Note that atan2(0, 0) is not well-defined. 2. 单元 1 写一个程序,计算半径为 12.5 的圆的周长。圆周长等于 2л(л约为 3.141592654)乘以 半径。答案是 78.5。 ex2_1:
1
#! /usr/bin/perl $c=2*3.141592654*12.5; print $c."\n";
3 写一个程序,将一些字符串(在不同的行中)读入一个列表中。然后按 ASCII 顺序将它们 输出来。也就是说,当输入的字符串 为 fred,barney,wilma,betty,则输出为 barney betty fred wilma。分别在一行或不同 的行将之输出。 ex3_3: #! /usr/bin/perl @strings=<STDIN>; chomp(@cstring=@string); @cstring1=sort @cstring; print sort @strings; print "@cstring1"; 4. 单元 1 写一个名为&total 的子程序,返回一列数字的和。提示:子程序不应当有任何的 I/O 操 作;它处理调用的参数,返回处理后的值给调用者。结合下面的程序来练习,它检测此子程 序是否正常工作。第一组数组之和为 25。 ex4_1: #! /usr/bin/perl 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:";

Python语言程序设计(工作手册式)【实训题目-含答案】实训3.5

Python语言程序设计(工作手册式)【实训题目-含答案】实训3.5

3.5实训3.5.1 实训1【分支】一、实训目的1.熟练使用Python的常用运算2.利用if分支语句编写Python代码二、单元练习(-)选择题1.下列选项中,当X为大于1的奇数时,运算结果为0的表达式是(C)A.x%2==1B.x/2C.x%2!=0D.x%2==02.在嵌套使用if语句时,Python语言规定e1se总是(A)A.和之前与其具有相同缩进位置的if相匹配;B.和之前与其最近的if相匹配;C.和之前的第一个if配对;D.和之前与其最近且不带e1se的if配对。

3.下列PyIhon语句正确的是(D)A.min=xifx<ye1seyB.max=x>y?x:yC.if(x>y)printxD.if1>2:Print("he11o”)(二)填空题2.在算术运算符(+、・、*、/、%)、关系运算符(=、!=、>、V、>=、<二)、逻辑运算符(and、or、not)和赋值运算符(=、+=、-+、*=、/=、%=、**=、〃=)中,运算优先级最高的运算符是**指数,最低的运算符not、or、and。

3.判断一个字符是数字字符的条件表达式isdigit。

4.判断一个字符是字母的条件表达式isa1num5.在Python语言中,用true 表示逻辑“真”,用fa1se表示逻辑“假”。

三、实训任务任务1:【猜字游戏】编写一个猜字游戏,要求随机输入一个OjO的数字,提供1次猜字机会。

importrandomsecret=random.randint((),10)Print("请你猜一猜从1到10的数字”)Print("你只有一次机会”)guess=eva1(input("请输入你猜的数字:"))ifguess<secret:Print('太小了)e1ifguess>secret:Print('太大了')e1se:Print('答对了)Print('正确答案是+Str(SeCret))任务2:【学生成绩等级评定】根据学生考试成绩,确定成绩等级,成绩与等级的对应关系如下表所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#题2:#使用for循环打印出如下的字符。

# 1# 12# 123# 12345#*******************#Fw_Print_Step ($step++,"使用for循环打印出如下的字符。

11212312345");my $str= "";for (1..4) {$str= $str.$_;if ($_==4) {$str= $str.$_+1;}print " $str\n";}#*******************##题3:my $str1 = "abc";my $str2 = "efg";#将上述2个字符串连接起来,并输出合并后的字符串长度#*******************#Fw_Print_Step ($step++,"将上述2个字符串\"$str1\"和\"$str2\"连接起来,并输出合并后的字符串长度");my $str =$str1.$str2;my $str_length=length($str);print "新字串$str的长度为:$str_length";#*******************##题4:#以逆序方式打印出字符串包含的各个字符,如变量为"123456789"则输出为"9","8",..."2","1". my $str1="abc123def456";#*******************#Fw_Print_Step ($step++,"以逆序方式打印出字符串包含的各个字符,如变量为\"123456789\"则输出为\"9\",\"8\",...\"2\",\"1\".");my $str=$str1;print "以逆序方式打印出字符串\"$str1\"包含的各个字符:\n";for($length=length($str1); $length>0; $length--) {$sub_str=chop($str);if ($length>1) {print "\"$sub_str\",";} else {print "\"$sub_str\".";}}#*******************##题5:#分别使用for与while循环来计算1+2+3+...+100的值#*******************#Fw_Print_Step ($step++,"分别使用for与while循环来计算1+2+3+...+100的值"); print "用for循环计算1+2+3+...+100的值:\n ";my $result=0;for (1..100) {$result=$result+$_;}print "1+2+3+...+100=$result";print "\n用while循环计算1+2+3+...+100的值:\n ";my $result=0;my $num=1;while ($num<=100) {$result=$result+$num;$num++;}print "1+2+3+...+100=$result";#*******************##题6:#以逆序的方式打印出端口列表包含的成员口my @cmdArray = ("config", "int fa 0/1", "no shutdonw", "end");#*******************#Fw_Print_Step ($step++,"以逆序的方式打印出端口列表包含的成员口");for (my $start=$#cmdArray; $start>=0; $start--) {my $array=$cmdArray[$start];print "$array\n";}#*******************##题7:#使用foreach打印出Hash表的所有下标与值my %map = ('red', 0xff0000,'green', 0x00ff00,'blue',0x0000ff);#*******************#Fw_Print_Step ($step++,"使用foreach打印出Hash表的所有下标与值");foreach $capword (sort keys(%map)) {print ("$capword: $map{$capword}\n");}#while( ($key, $value) = Each (%Map)) {# Print "\N$key=$value;"}#*******************##题8:#使用正则匹配判断字符串是否包含error,若是打印提示信息。

my $str = "Error:Unknown command!";#*******************#Fw_Print_Step ($step++,"使用正则匹配判断字符串是否包含error,若是打印提示信息。

"); if ($str =~ /error/i) {print "The string include \"error\"";} else {print "The string no include \"error\"";}#*******************##题9:#按照如下的函数定义写出该函数#===================================================================== ==========## 函数名: SetPortGroup# 函数功能:将DUT_PORT划分为端口列表,每个列表的端口速率必须相同(根据fa/gi进行判断),且2<=列表端口个数<=5# 输入参数:DUT_PORT数组名# 返回信息:端口列表#===================================================================== ==========##设置DUT参与测试的端口数my @DUT_PORT;$DUT_PORT[0]=5;#设置DUT的端口,端口号以gi 0/1、gi 2/1等形式来表示$DUT_PORT[1]="fa 0/1";$DUT_PORT[2]="fa 0/2";$DUT_PORT[3]="fa 0/3";$DUT_PORT[4]="fa 0/4";$DUT_PORT[5]="fa 0/5";$DUT_PORT[6]="fa 0/6";$DUT_PORT[7]="fa 0/7";$DUT_PORT[8]="fa 0/8";$DUT_PORT[9]="fa 0/9";$DUT_PORT[10]="gi 0/10";$DUT_PORT[11]="gi 1/1";$DUT_PORT[12]="gi 1/2";$DUT_PORT[13]="gi 1/3";$DUT_PORT[14]="gi 1/4";$DUT_PORT[15]="gi 1/5";$DUT_PORT[16]="gi 1/6";$DUT_PORT[17]="gi 1/7";$DUT_PORT[18]="gi 1/8";#调用SetPortGroup函数实现对DUT_PORT的分组#*******************#Fw_Print_Step ($step++,"按照如下的函数定义写出该函数.#=======================================================## 函数名: SetPortGroup# 函数功能:将DUT_PORT划分为端口列表,每个列表的端口速率必须相同(根据fa/gi进行判断),且2<=列表端口个数<=5# 输入参数:DUT_PORT数组名# 返回信息:端口列表#========================================================#");sub SetPortGroup {my @dutPort=@_;my @portList="";#统计FA端口的数目my $fa_num=0;print "将DUT_PORT数组中的端口转换为列表的形式:\n";for ($i=1;$i<=$dutPort[0];$i++) {@portList=(@portList,"$dutPort[$i]");}for (0..$#portList) {print "$portList[$_]\n";}print "\n-------------------------------------------------------\n";print "判断每个列表的端口速率是否相同\n";for ($i=1;$i<=$#portList;$i++) {my $speed=$portList[$i];if ($speed=~/fa/i) {print "端口$portList[$i] 的速率为100Mbps\n";$fa_num++;} else {print "端口$portList[$i] 的速率为1000Mbps\n";}}print "\n-------------------------------------------------------\n";if ($#portList < 2) {print "FAIL:测试端口不少于2个";@portlist="";} elsif ($#portList > 5) {print "FAIL:测试端口不超过5个";@portlist="";} elsif ($fa_num==0||$#portList==$fa_num) {print "PASS:列表的端口速率相同.";} else {print "FAIL:列表的端口速率不相同";@portlist="";}return @portList;}SetPortGroup @DUT_PORT;==========================题1:比较变量int1与int2的大小,并打印出比较结果==========================变量int1=2,int2=10比较结果:2 < 10==========================题2:使用for循环打印出如下的字符。

相关文档
最新文档