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);
  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循环打印出如下的字符。

相关文档
最新文档