![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lua程序设计
vvc223c
这个作者很懒,什么都没留下…
展开
-
Lua程序设计第一章练习题答案
练习1.1输入负数栈会溢出,要加一个负数的判断来解决这个问题。function fact(n) if n==0 then return 1 elseif n>0 then return n * fact(n-1) else return -1 endendprint("Enter a number:")a = io.read("*n")print(fact...原创 2019-09-20 12:07:52 · 309 阅读 · 0 评论 -
lua第十五章数据文件和序列化练习题答案
练习15.1num = -1function serialize(o) local t = type(o) if t == "number" or t == "string" or t == "boolean" or t == "nil" then io.write(string.format("%q", o)) elseif t == "table" then num = n...原创 2019-09-23 17:52:20 · 170 阅读 · 1 评论 -
lua程序设计第十七章模块和包练习题答案
练习17.1-- 文件名 list.lualocal list = {} function new() return {first = 0, last = -1} end list.constant = "这是一个常量" list.new = new function list.pushFirst(list,value) local first = list.first -...原创 2019-09-24 12:25:32 · 401 阅读 · 0 评论 -
第二十章元表和元方法练习答案
练习20.1local mt = {}function new(l) local set = {} setmetatable(set,mt) for _, v in ipairs(l) do set[v] = true end return setendmt.__sub = function(a,b) local temp = new({}) for k in ...原创 2019-09-24 19:21:04 · 101 阅读 · 0 评论 -
lua程序设计第21章面向对象编程练习题答案
练习21.1stack = {}function stack:new() o = {first = 0} self.__index = self setmetatable(o,self) return oendfunction stack:push(value) local first = self.first - 1 self.first = first self[fir...原创 2019-09-25 11:49:38 · 302 阅读 · 0 评论 -
lua程序设计第22章环境练习题答案
练习22.7课本的代码,错误在于setfield(“t.x.y”, 10)print(getfield(“t||x||y”)) -->10这样也能得到结果,显然不合理并且setfield也有严重的问题function getfield(f) local v = _G for w in string.gmatch(f,"([%a_][%W_]*)") do print(w)...原创 2019-09-25 16:02:29 · 220 阅读 · 0 评论 -
lua程序设计23章垃圾收集练习题答案
练习23.1在5.2版本之前,既没有引用瞬表以前,弱表中键和值之间的循环引用阻止垃圾收集器收集循环内的元素,即使它们不再可以从外部访问,5.3版本引入了瞬表,在5.3中一个具有弱引用键和强引用值的表是一个瞬表,在瞬表中,一个键的可访问性控制着对应值的可访问性,比如瞬表中的一个元素(k,v),指向v的引用只有当存在某些指向k的其他外部引用存在时才是强引用,否则,即使v引用了k,垃圾收集器最终还是...原创 2019-09-25 19:02:18 · 204 阅读 · 0 评论 -
lua程序设计第24章协程练习题答案
练习24.1function consumer(x) while true do local x = receive() io.write(x,"\n") endendfunction producer() while true do local x = io.read() send(x) endendfunction receive() value = c...原创 2019-09-26 11:26:01 · 255 阅读 · 0 评论 -
lua程序设计第26章使用协程实现多线程练习题答案
练习26.1local socket = require "socket"host = "www.lua.org"file = "/manual/5.3/manual.html"function download(host,file) local c = assert(socket.connect(host,80)) local count = 0 local request = s...原创 2019-09-26 15:26:34 · 175 阅读 · 0 评论 -
lua程序设计第二十七章C语言API练习题答案
注意运行环境是vs2017 记得使用extern 来引入此外还要设置附加包含目录,附加库目录,以及依赖项否则就可能会产生以下错误错误 30 error LNK2019: 无法解析的外部符号 "void __cdecl luaL_op练习27.1#include <stdio.h>#include <string.h>extern "C"{ #include...原创 2019-09-27 14:44:58 · 336 阅读 · 0 评论 -
lua程序设计第十四章数据结构答案
练习14.1a = { {nil,nil,1,nil,nil,nil,nil}, {nil,nil,nil,nil,nil,nil,nil}, {3,nil,nil,nil,nil,nil,nil}, {nil,nil,nil,5,nil,nil,nil}, {nil,nil,nil,nil,nil,nil,nil}, ...原创 2019-09-23 14:47:07 · 172 阅读 · 0 评论 -
lua程序设计第十二章日期和时间用法以及练习题答案
os.time返回一个当前的日期和时间,以秒为单位os.time()-->1569149141os.time({year = 2015, month = 8, day = 15, hour = 12, min = 45, sec = 20})-->1439613920os.dateos.date在一定程度上是函数os.time的反函数如t = os.date("*t...原创 2019-09-22 19:59:39 · 234 阅读 · 0 评论 -
lua程序设计第十一章出现频率最高的单词练习题答案
示例11.1local counter = {} for line in io.lines() do for word in string.gmatch(line,"%w+" ) do counter[word]= (counter[word] or 0) + 1 endendlocal words = {} for w in pairs(counter) do ...原创 2019-09-22 18:43:09 · 136 阅读 · 0 评论 -
lua程序设计第二章练习答案
练习2.1添加一个计数变量num = 0当打印一次棋盘的时候就把num +1num = num + 1最后判断是否已经打印了一次棋盘,如果是则直接return,结束函数的调用 if(num == 1) then return end完整代码如下:N = 8**num = 0**function isplaceok(a,n,c)for i = 1...原创 2019-09-20 13:01:19 · 208 阅读 · 0 评论 -
lua程序设计第三章练习题答案
练习3.1.0e12 = 0.00x12 = 180xA = 100xFFFFFFFF = 42949672950.1e1 = 1.00x0.1p1 = 0.125练习3.2math.maxinterger *2 左移一位 0x1111…变成1111…10 对应的值就是-2math.mininteger * 2 左移 10000…00 左移 000000 对应的值为0math...原创 2019-09-20 16:51:10 · 418 阅读 · 0 评论 -
lua程序设计第四章字符串的使用方法以及练习题答案
字符串有关基础与用法:字符串是不可变值string.gsub改变字符串中的某些部分还会在第二个返回值中返回发生替换的次数a = “one string”b = string.gsub(a, “one”,another)#获取字符串长度a = "Hello"print(#a) -->5使用一对双引号或单引号声明字符串常量a = "a line"a = 'a line'...原创 2019-09-20 19:51:18 · 557 阅读 · 0 评论 -
lua程序设计第五章表的用法、函数和练习题答案
使用构造器表达式创建表如:a = {}k = "x"a[k] = 10 --新元素,键是"x",值是10a[20] = "great" --新元素,键是20,值是"great"a["x"] --> 10表永远是匿名的,表本身和保存表的变量之间没有固定的关系a = {} --空表a["x"] = 10 b = a -- 'b'和'a'引用同一张表b["x"] --&g...原创 2019-09-21 14:47:09 · 253 阅读 · 0 评论 -
lua程序设计第六章函数的用法以及练习题答案
函数调用需要使用圆括号把参数列表括起来,当函数只有一个参数,且参数是字符串常量或者表构造器时,括号可以不用加print "Hello world" <--> print("Hello world")f{x = 10, y = 20} <--> f({x = 10, y = 20})参数的行为与局部变量的行为完全一致,相当于值为参数值的一个局部变量。调用函数时使用...原创 2019-09-21 17:06:45 · 441 阅读 · 0 评论 -
lua程序设计第七章输入输出用法以及练习题答案
io.write可以读取任意数量的字符串,并将其写入当前输出流,由于可以使用多个参数,尽量避免使用io.write(a…b…c),应该调用io.write(a,b,c)应该只在"用后即弃"的代码或调试代码中使用函数printio.write遵循一般的转换规则,如果想要完全地控制这种转换,一个使用string.format:io.write("sin(3) = ", math.sin(3), ...原创 2019-09-21 20:27:18 · 382 阅读 · 0 评论 -
lua程序设计第八章练习题答案
练习8.1首先lua不支持switch语句,像c c++ c#即支持elseif,又支持switch语句,而lua必须有其他的语句来实现多个条件的筛选,所以lua语言比这些语言更需要这种结构.练习8.2第一种while true do xxxx xxxend第二种repeat xxxx xxxxuntil false第三种for i = 1, math.huge d...原创 2019-09-21 22:29:55 · 571 阅读 · 0 评论 -
lua程序设计第9章闭包用法与练习题答案
lua语言中的函数是第一类值a = {p = print}a.p("Hello world") --> Hello worldprint = math.sin -> 'print'现在指向sin函数a.p(print(1)) -->0.8414709848079function foo(x) return 2 * x end <--> foo = f...原创 2019-09-22 12:48:16 · 277 阅读 · 0 评论 -
lua程序设计第十章模式匹配用法以及练习题答案
string.finds = "hello world"print(string.find(s, "hello")) --> 1 5s = "hello world"print(string.find(s, "lll")) --> nilstring.find还有两个可选参数,第3个参数是索引,从目标字符串哪个位置开始搜索,第4个位布尔值,是否进行简单搜索,简单搜索指的...原创 2019-09-22 17:42:57 · 794 阅读 · 0 评论 -
lua程序设计第28章扩展应用练习题答案
练习28.2#include <stdio.h>#include <string.h>#include <stdarg.h>extern "C"{#include <lua.h>#include <lauxlib.h>#include <lualib.h>}void error(lua_State * L,...原创 2019-09-27 17:59:15 · 174 阅读 · 0 评论