




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽理工大学 计算机科学与工程学院Linux开发基础Development Foundation on Linux OS教师:赵宝Outline Shell programming on Linux OS GNU C/C+ programming CGI programming in C/C+ language Perl programming CGI programming in Perl language2Section 4 Perl programming34.1 编写第一个Perl程序 第一步:选择一个自己喜欢的编译器,例如我们选择vi编辑器。第二步:在编辑器中输入Perl程序:vi
2、helloworld.pl代码如下:helloworld.pl #! /usr/bin/perl print “Hello,word!n”;第三步:设置该文件为可执行文件: chmod +x helloworld.pl第四步:运行程序即可: $./helloworld.pl44.1.1 提问并保留结果在此基础上做稍微复杂一点的改变,我们使该程序按你的名字打招呼。要做到这一点,需要一个变量来存放姓名。我们使用$name来保存姓名。#!/usr/bin/perlprintf 请问您的姓名?;$name=;chop($name);printf 你好, $name,欢迎光临!n;这里第三行表示从终端获
3、得行输入并赋值给$name,这里的$name的值有一个换行符,第四行chop($name)表示去掉$name的最后一个字符(即换行符)。第五行显示输入。54.1.2 增加选择现在让我们为admin编写一个特殊的欢迎辞,而对其他人则采用普通欢迎辞。要达到这样的效果必须将输入的姓名与admin作比较,如果相同则执行特殊功能。#!/usr/bin/perlprintf 请问您的姓名?;$name=;chop($name);if ($name eq “admin) printf 欢迎admin进入本系统!n; else printf 你好, $name,欢迎光临!n;这里第五行用eq操作符对两个字符串
4、进行比较,相同则执行下一句,否则执行else下的语句(是不是和C语言差不多?)。 64.1.3 猜测密码 现在已经可以对admin发不同的欢迎辞,但如何加上密码来控制权限呢?比如说,可以让除admin以外的人都必须输入密码直到正确为止: #!/usr/bin/perl$password=wsxy; #密码为wsxyprintf 请问您的姓名?;$name=;chop($name);if ($name eq “admin) printf 欢迎admin进入本系统!n;7 else printf 你好, $name!n 请输入密码:; $guess=; chop($guess); while ($
5、guess ne $password) printf 密码错误,请重新输入:; $guess=; chop($guess); 8这里先将密码保存在标量变量$password中,然后当不是zmd登录后,先显示欢迎语句,然后要求输入密码,通过ne操作符将输入结果和$password相比较,密码相同则退出,不同则一直循环下去。 9当运行程序时,Perl的内部编译器首先遍历整个源程序,把它转变为内部的字节码 ,它是程序的一种内部数据结构。Perl的字节码引擎将运行这些字节码。 104.2 标量数据标量是 Perl 中最简单的数据类型。大多数的标量是数字(如 255 或 3.25e20)或者字符串 (如
6、 hello或者盖茨堡地址) 。标量数据可有操作符(如相加和串联),通常会产生一个新的标量数据。标量数据的值可以存放在标量变量中。标量可以从文件或设备读取,也可以写进去。 114.2.1所有数字内部的格式一致 整数(如 255,2001 等)和浮点数(有小数点的实数,如 3.14159 ,1.35x1025),在Perl中 都当作双精度浮点数来处理。这就是说在 Perl 内部没有整数值。程序中的整数被当做等价的浮点数来处理。程序运行时,也许注意不到这种转换,不应当寻找只属于整数的操作符(不能被浮点数使用的),因为它们不存在 。124.2.2浮点数 数字符号(literal)是 Perl 程序源
7、代码中代替某个值的方法。数字符号不是计算或 I/O 操作的结果 ,它是直接写进代码中的数据。有或没有小数点的数字都是允许的(包括+或-号),也可带一个十进制的指数(符号为 E) 1.25255.000255.07.25e45 #7.25x10 的 45 次方(一个大整数 )-6.5e24 # -6.5x10 的 24 次方(一个大的负数)-12e-24 #- -12x10 的-24 次方(很小的负数 )-1.2E-23 #指数符号可以大写(E)134.2.3 整数02001-40255144.2.4字符串惯用C的程序员要注意,在PERL中,字符串的末尾并不含有隐含的NULL字符,NULL字符可
8、以出现在串的任何位置。. 双引号内的字符串中支持简单变量替换,例如:$number = 11;$text = This text contains the number $number.;则$text的内容为:This text contains the number 11.“双引号内的字符串中支持转义字符 15要在字符串中包含双引号或反斜线,则在其前加一个反斜线,反斜线还可以取消变量替换,如:$res = A quote and A backslash ;$result = 14;print (The value of $result is $result.n)的结果为:The value
9、of $result is 14. 可用nnn(8进制)或xnn(16进制)来表示ASCII字符,如:$result = 377; # this is the character 255,or EOF$result = xff; # this is also 255 16单引号字符串单引号字符串与双引号字符串有两个区别,一是没有变量替换功能,二是反斜线不支持转义字符,而只在包含单引号和反斜线时起作用。单引号另一个特性是可以跨多行,如:$text = This is two lines of text;与下句等效:$text = This is twonlines of textn; 17.字符
10、串和数值的互相转换例1:$string = 43;$number = 28;$result = $string + $number; # $result = 71若字符串中含有非数字的字符,则从左起至第一个非数字的字符,如:$result = hello * 5; # $result = 0$result = 12a34 +1; # $result = 13 18变量初始值在PERL中,所有的简单变量都有缺省初始值:,即空字符。但是建议给所有变量赋初值,否则当程序变得大而复杂后,很容易出现不可预料且很难调试的错误。 194.2.5数字操作符 Perl 除了提供通常的操作符加(+),减(-),乘
11、(*),除(/)等等之外:2+35.1-2.43*1214/210.2/0.310/3 #通常是浮点除,3.33333 20还提供了模数运算符(%)。10%3 的值是 10 除以 3 的余数。两个操作数首先变成它们对应的整数值 ,如 10.5%3.2 转换为10%3 后再计算 。另外,Perl 中提供了和 FORTRAN 类似的指数操作符,C 和 Pascal 很希望有类似的能力。这个操作符由两个*号表示,如 2*3,表示 2 的 3 次方,等于 8 21(1)乘幂的基数不能为负,如 (-5) * 2.5 # error;(2)乘幂结果不能超出计算机表示的限制,如10 * 999999 # e
12、rror(3)取余的操作数如不是整数,四舍五入成整数后运算;运算符右侧不能为零(4)单目负可用于变量: - $y ; # 等效于 $y * -1 224.2.6整数比较操作符 操作符 描述 大于= 等于= 大于等于!= 不等于 比较,返回 1, 0, or -1 操作符结果为:0 - 两个值相等1 - 第一个值大1 - 第二个值大 234.2.7 字符串比较操作符 操作符 描述 lt 小于 gt 大于 eq 等于 le 小于等于 ge 大于等于 ne 不等于 cmp 比较,返回 1, 0, or -1 244.2.8 逻辑操作符 逻辑或:$a | $b 或 $a or $b逻辑与:$a & $
13、b 或 $a and $b逻辑非:! $a 或 not $a逻辑异或:$a xor $b 254.2.9 位操作符位与:&位或:|位非:位异或:左移:$x 2注:不要将&用于负整数,因为PERL将会把它们转化为无符号数。 264.2.10赋值操作符 = Assignment only+= Addition and assignment-= Subtraction and assignment*= Multiplication and assignment/= Division and assignment%= Remainder and assignment*= Exponentiation
14、and assignment&= Bitwise AND and assignment|= Bitwise OR and assignment= Bitwise XOR and assignment 27$a = 1; none (basic assignment)$a -= 1; $a = $a - 1;$a *= 2; $a = $a * 2;$a /= 2; $a = $a / 2;$a %= 2; $a = $a % 2;$a *= 2; $a = $a * 2;$a &= 2; $a = $a & 2;$a |= 2; $a = $a | 2;$a = 2; $a = $a 2; 2
15、8.=可在一个赋值语句中出现多次,如:$value1 = $value2 = a string;.=作为子表达式($a = $b) += 3;等价于$a = $b;$a += 3;但建议不要使用这种方式。294.2.11自增自减操作符 :+、-(与C+中的用法相同).不要在变量两边都使用此种操作符:+$var- # error.不要在变量自增/减后在同一表达式中再次使用:$var2 = $var1 + +$var1; # error.在PERL中+可用于字符串,但当结尾字符为z、Z、9时进位,如:$stringvar = abc;$stringvar+; # $stringvar contai
16、ns abd now$stringvar = aBC;$stringvar+; # $stringvar contains aBD now30$stringvar = abz;$stringvar+; # $stringvar now contains aca$stringvar = AGZZZ;$stringvar+; # $stringvar now contains AHAAA$stringvar = ab4;$stringvar+; # $stringvar now contains ab5$stringvar = bc999;$stringvar+; # $stringvar now
17、 contains bd000.不要使用-,PERL将先将字符串转换为数字再进行自减$stringvar = abc;$stringvar-; # $stringvar = -1 now31果字符串中含有非字母且非数字的字符,或数字位于字母中,则经过+运算前值转换为数字零,因此结果为1,如:$stringvar = ab*c;$stringvar+;$stringvar = ab5c;$stringvar+;324.2.12字符串联结和重复操作符联接: .重复:x联接且赋值(类似+=): .=例:$newstring = potato . head;$newstring = t x 5;$a
18、= be;$a .= witched; # $a is now bewitched334.2.13 逗号操作符其前面的表达式先进行运算,如:$var1 += 1, $var2 = $var1;等价于$var1 += 1;$var2 = $var1;使用此操作符的唯一理由是提高程序的可读性,将关系密切的两个表达式结合在一起,如:$val = 26;$result = (+$val, $val + 5); # $result = 32注意如果此处没有括号则意义不同:$val = 26;$result = +$val, $val + 5; # $result = 27 344.2.14 条件操作符与
19、C中类似,条件?值1:值2,当条件为真时取值1,为假时取值2,如:$result = $var = 0 ? 14 : 7;$result = 43 + ($divisor = 0 ? 0 : $dividend / $divisor);PERL 5中,还可以在赋值式左边使用条件操作符来选择被赋值的变量,如:$condvar = 43 ? $var1 : $var2 = 14;$condvar = 43 ? $var1 = 14 : $var2 = 14;354.2.14转义字符36374.2.15 操作符的优先级+, - 自增,自减-, , ! 单目* 乘方=, ! 模式匹配*, /, %,
20、x 乘,除,取余,重复+, -, . 加,减,联接 移位-e, -r, etc. 文件状态, , =, lt, le, gt, ge 不等比较=, !=, , eq, ne, cmp 相等比较& 位与38|, 位或,位异或& 逻辑与| 逻辑或. 列表范围? and : 条件操作符=, +=, -=, *=, 赋值and so on , 逗号操作符not Low-precedence logical NOTand Low-precedence logical ANDor, xor Low-precedence logical OR and XOR 39建议:1、当你不确定某操作符是否先执行时,一
21、定要用括号明确之。2、用多行、空格等方式提高程序的可读性。 404.3 数组一、列表 列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , hello , 2),空列表:()。注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值。列表例:(17, $var, a string)(17, 26 2)(17, $var1 + $var2)($value, The answer is $value)41二、数组-列表的存贮列表存贮于数组变量中,与简单变量不同,数组变量以字符打头,如:array = (1, 2, 3
22、);注:(1)数组变量创建时初始值为空列表:()。(2)因为PERL用和$来区分数组变量和简单变量,所以同一个名字可以同时用于数组变量和简单变量,如:$var = 1;var = (11, 27.1 , a string);但这样很容易混淆,故不推荐。421、数组的存取.对数组中的值通过下标存取,第一个元素下标为0。试图访问不存在的数组元素,则结果为NULL,但如果给超出数组大小的元素赋值,则数组自动增长,原来没有的元素值为NULL。如:array = (1, 2, 3, 4);$scalar = $array0;$array3 = 5; # now array is (1,2,3,5)$sc
23、alar = $array4; # now $scalar = null;$array6 = 17; # now array is (1,2,3,5,17)43数组间拷贝result = original;.用数组给列表赋值list1 = (2, 3, 4);list2 = (1, list1, 5); # list2 = (1, 2, 3, 4, 5).数组对简单变量的赋值(1) array = (5, 7, 11);($var1, $var2) = array; # $var1 = 5, $var2 = 7, 11被忽略(2) array = (5, 7);($var1, $var2, $
24、var3) = array; # $var1 = 5, $var2 = 7, $var3 = (null).从标准输入(STDIN)给变量赋值$var = ;array = ; # D为结束输入的符号442 、字符串中的方括号和变量替换$var0 为数组var的第一个元素。$var0 将字符转义,等价于$var. 0,$var被变量替换,0保持不变。$var0 亦等价于$var .0。$var则取消了大括号的变量替换功能,包含文字:$var.453、列表范围:(1.10) = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)(2, 5.7, 11) = (2, 5, 6, 7,
25、11)(3.3) = (3).用于实数() = (2.1, 3.1 ,4.1, 5.1)() = ().用于字符串(aaa.aad) = (aaa,aab, aac, aad)day_of_month = (01.31).可包含变量或表达式($var1.$var2+5)46.小技巧:$fred = Fred;print (Hello, . $fred . !n) x 2);其结果为:Hello, Fred!Hello, Fred!474、数组的输出:(1) array = (1, 2, 3);print array;结果为:123485、列表/数组的长度当数组变量出
26、现在预期简单变量出现的地方,则PERL解释器取其长度。array = (1, 2, 3);$scalar = array; # $scalar = 3,即array的长度($scalar) = array; # $scalar = 1,即array第一个元素的值注:以数组的长度为循环次数可如下编程:$count = 1;while ($count = array) print (element $count: $array$count-1n);$count+;496、子数组array = (1, 2, 3, 4, 5);subarray = array0,1; # subarray = (1,
27、 2)subarray2 = array1.3; # subarray2 = (2,3,4)array0,1 = (string, 46); # array =(string,46,3,4,5) nowarray0.3 = (11, 22, 33, 44); # array = (11,22,33,44,5) nowarray1,2,3 = array3,2,4; # array = (11,44,33,5,5) nowarray0.2 = array3,4; # array = (5,5,5,5) now可以用子数组形式来交换元素:array1,2 = array2,1;507、有关数组的库
28、函数(1)sort-按字符顺序排序array = (this, is, a,test);array2 = sort(array); # array2 = (a,is, test, this)array = (70, 100, 8);array = sort(array); # array = (100, 70, 8) now( 2)reverse-反转数组array2 = reverse(array);array2 = reverse sort (array);513)chop-数组去尾chop的意义是去掉STDIN(键盘)输入字符串时最后一个字符-换行符。而如果它作用到数组上,则将数组中每一
29、个元素都做如此处理。list = (rabbit, 12345,quartz);chop (list); # list = (rabbi, 1234,quart) no 4)join/split-连接/拆分join的第一个参数是连接所用的中间字符,其余则为待连接的字符数组。$string = join( , this, is,a, string); # 结果为this is a stringlist = (words,and);$string = join(:, list, colons); #结果为words:and:colonsarray = split(/:/,$string); # a
30、rray = (words,and, colons) now 525)push在列表右端添加元素info = (“tom, “male,“25);push(info,”teacher”,”USA”); 6)pop在列表右端删除元素返回被删除的值.info = (“tom, “male,“25);Pop(info);则返回值为25.7)unshift:在列表左端添加元素8)shift:在列表左端删除元素,返回 被删除的值Example: /home/xjfang/perl/arr1539)Splice函数从列表中的任意部分删除元素某些元素,然后添加其它元素。nums=(1,2,3,4,5);Sp
31、lice(num,3,1,(dog,cow);则 num变为(1,2,3,dog,cow,5)Splice(num,3,0, (dog,cow); #insert则结果为(1,2,3,dog,cow,4,5)Splice(num,3,1, (); #删除列表中的一个元素则结果为(1,2,3,5);Splice(num,3,2); #get deleted element_list: (4,5)5410)Split函数: 一个极佳的文本处理函数之一$sentence=“it is time for class”;word=split(/ /,$sentence);则word=(it,is,tim
32、e,for,class);一个在系统用户数据库中查找用户的例子:/home/xjfang/perl/viewusers.pl554.4 Perl的基本输入输出 从STDIN输入从标准输入设备读取数据是很容易的,我们已经从第一课上就使用操作符了。例如:$name=;在数组环境中,可把所有剩余的行作为一列表返回。如:name=;此时,需要读入多行,然后再对各行分别处理。通常做法是:while($_=)chop($_);#处理$_(每一行)56上述程序可简化为:while()chop; #等同于chop($_)处理$_(每一行)因为$_是许多操作符的缺少变量。57从输入读取输入的另一种方法是使用。是
33、从Perl程序命令行所指定的文件中读取数据。例如有个文件名为pro1的程序:#!/usr/bin/perl;while()print $_;在UNIX环境中运行:pro1 file1,file2,file3example: /home/xjfang/perl/readfile.pl此时,将依次读入文件file1,file2,file3中的每一行,然后显示输出。58向STDOUT输出Perl用print和printf向标准输出设备输出。print操作符使用字串列表作为参数,依次把每个字符串发送给标准输出,在发送时不插入或改变任何字符。如:print 网上学园.欢迎您! #打印网上学园欢迎您!pr
34、int 1+2,你好 #打印3你好59printf操作符用于格式化输出,在C语言中有相同的功能。它使用一个参数表,第一个参数是格式控制字符串,它定义了如何打印其余参数。例如:printf %10s% 8d%8.2fn,$a,$b,$c它的打印结果为:10个字符宽度的$a,空格,8个字符宽度的整数$b,8个字符宽度且包含两位小数的浮点数$c,最后换行。注意:与前面操作符相类似,printf()的括号可以省略。 604.5控制结构1、选择结构选择性控制结构选择性控制结构包括if和unless语句,类似于C语言中的if。首先介绍一下真和假的定义。在Perl中,这些规则有些难以理解。控制表达式的值为空
35、串或0时,则表达式为假, 对于其它任何情况,表达式的值都为真。注意:00不是空串或0,值为真。0.0也是如此。61指令: if 假如语法一:if(判别运算式) 表达式为真时的语句块; 上个语法在Perl中也可以写成:表达式为真时的语句块 if (判别运算式);62范例:print请输入您的分数?n;$scorre=; #代表标准输入,会让使用者输入一字符串chop($score); #将$score最后一个换行字符n删除掉if($score=60) print您的分数及格了!n;也可以写成: print 您的分数及格了!n if ($score=60);63语法二: if(判别运算式一) 判别
36、式一为真时的语句块;else 判别式一为假时的语句块;64范例:print请输入您的分数?n; $scorre=;chop($score);if($score=60) print您的分数及格了!n;else print您的分数不及格!n;65语法三: if (判别运算式一) 判别式一为真时的语句块;elsif(判别运算式二) 判别式二为真时的语句块;elsif(判别运算式三) 判别式三为真时的语句块;else 所有判别式为假时的语句块;66范例:print请输入您的分数?n;$scorre=;chop($score);if($score60) print您的分数大于60分!n;elsif ($
37、score60) print您的分数小于60分!n:else print您的分数刚好是60分!n;67指令: unless 假如非unless的含义就是说“如果判别式不为真,就执行.”。语法一:unless(判别运算式) 判别式为假时语句块;上个语法在Perl中也可以写成:判别式为假时语句块 unless (判别运算式);68范例:print请输入您的分数?n;$scorre=; #代表标准输入,会让使用者输入一字符串chop($score); #将$score最后一个换行字符n删除掉unless($score60) print您的分数及格了!n;也可以写成: print您的分数及格了!nun
38、less($score60);69语法二:unless(判别运算式) 判别式为假时语句块;else 判别式为真时语句块;70范例:print请输入您的分数?n;$scorre=;chop($score);unless($score60) print您的分数及格了!n;else print您的分数不及格!n;71:&,|及?:作为控制结构它们看上去像标点符号,或是表达式的一部分。但在Perl中可作为控制结构。 比如说:if (判别表达式)为真时语句块;也可以写为:为真时的语句块 if (判别表达式)72但更简单的方式是:判别式 & 为真时的语句块 &为逻辑与操作符,其含义为:若判别式为真,则表达
39、式的值依赖于后面语句块的值。所以为真时的语句块被执行(用来求值)。若判别式为假,则整个表达式为假,不用考虑后面语句块的值。所以为假时的语句块不被执行。同样道理,unless(this)that可替换为this|that。?:表达式举例:exp1?exp2:exp3表示:如果exp1为真则求exp2的值,否则求exp3的值。732.循环性控制结构任何一种语言没有循环就是不完整的。Perl也是如此,它可以用while, do.while, for, until, foreach来实现。循环中还可以用last,next,redo等操作符进行控制。74指令:while 当. 语法: while(判别运
40、算式) 程序叙述区块;上个语法在Perl中也可以写成: 程序叙述区块while(判别运算式);75范例一:while($=10) $sum+=$i;$i+;print$sumn; #此时$sum =55;76范例二:$filename=/path/cgi.txt;open(FILE,$filename)|die Cannot open $filenamen;#可以把视为打开文件某一行的数据while($line=) print $line;close(FILE);77就会把cgi.txt这个文件的内容显示出来。而这个范例可以把它改写成: $filename=/path/cgi.txt;open
41、(FILE,$filename)|die Cannot open $ filenamen;print $linewhile($line=);close (FILE);78在这个范例中是把$filename文件内的数据一行一行的指派给$line这个纯量变量,再把$line显示出来.如果没有将指派给一个纯量变量的话,则会有一内定的输入变量$_被所指派.因为$_是一个内定的变量,所以如果使用print函数的时候没有加上要输出数据的话,就会把$_的数据print出来.所以这个范例也可以改写成: $filename=/path/cgi.txt;open(FILE,$filename)dieCannot
42、open $ filenamen;while() print;close(FILE);79指令:do while 当. 语法:do 程序叙述区块;while(判别运算式);在while和do while循环中最大的不同是在do while循环中,程序叙述区块至少会被执行一次。80范例:do $sum+=$i;$i+;while($i10) $sum+=$i;$i+;print $sumn; #此时$Sum=55;83指令:do while 直到.才语法:do 程序叙述区块; until (判别运算式);84范例:do $sum+=$i;$i+;until($i10);print $sumn; #此时$sum=55;85指令:for 循环陈述语法一:for (初始化运算式;判别运算式;循环过程运算式) 程序叙述区块;86范例一:$sum=0;for($i=1;$i=10;$i+) $sum+=$i;print $sumn; #此时$sum=55;87范例二:array=(3,6,9);$number=a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手术室护理对玻璃体切割术患者视力及并发症发生情况的影响研究
- 回授法健康教育对2型糖尿病患者自我管理能力及生活质量的影响研究
- 3 我不拖拉 第2课时(教学设计)-2023-2024学年道德与法治一年级下册统编版
- 12古诗三首《题临安邸》教学设计-2024-2025学年统编版语文五年级上册
- 三农智能化服务设施建设规划手册
- DB3713-T 267-2022 绿色直播间管理规范
- DB3709-T 015-2022 肥城桃 桃园绿肥栽培技术规范
- 13 人物描写一组《两茎灯草》(教学设计)-2023-2024学年语文五年级下册统编版
- 3《电和磁》(教学设计)-2024-2025学年科学六年级上册教科版
- 某植物园改造工程施工组织
- 小品剧本《铡美案》台词完整版辽宁民间艺术团宋小宝
- 2024年湖南有色金属职业技术学院单招职业技能测试题库完美版含答案解析
- 运输车辆安全培训试题及答案
- 机动车燃油公告查询
- 办公设备(电脑、一体机、投影机等)采购 投标方案(技术方案)
- 【真题】2023年南京市中考语文试卷(含答案解析)
- 小班儿歌《迎春花》课件
- 老旧住宅小区加装电梯施工组织方案
- 查干淖尔一号井环评
- 统一身份认证管理平台介绍
- 2021年安徽省公务员录用考试《行测》真题及答案
评论
0/150
提交评论