luatOS网站 lua语言学习 练习题

这篇具有很好参考价值的文章主要介绍了luatOS网站 lua语言学习 练习题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

luatOS网站 lua语言学习 练习题
lua 教程跳转链接,练习题都来自这里

逻辑运算

检验大小(自测题)

题目:如果已知number变量n,那么如果需要判断n是否符合下面的条件:

3<n≤10

以下四行判断代码,正确的是?

(返回true即表示变量n符合要求)

n = 1--这个数可能是任意数字

print(n <= 10 and n > 3)

分支判断

判断三角形合法性(自测题)

你需要使用前面几章的知识,来完成下面的题目

已知三个number类型的变量a、b、c,分别代表三根木棒的长度

请判断,使用这三根木棒,是否可以组成一个三角形(两短边之和大于第三边)

如果可以组成,就打印出true

如果不可以,就打印false

--多改几个数值自行测试
a,b,c = 3,4,6

t = false

--补全代码
if (a+b>c) and (c>a and c>b) then
    t = true
end
if (a+c>b) and (b>a and b>c) then
    t = true
end
if (c+b>a) and (c<a and b<a) then
    t = true
end
print(t)

函数

判断三角形合法性2(自测题)

你需要使用前面几章的知识,来完成下面的题目

已知三个number类型的变量a、b、c,分别代表三根木棒的长度

请判断,使用这三根木棒,是否可以组成一个三角形(两短边之和大于第三边)

如果可以组成,就打印出true

如果不可以,就打印false

function triangle(a,b,c)
    t = false
    --补全代码
    if (a+b>c) and (c>a and c>b) then
        t = true
    end
    if (a+c>b) and (b>a and b>c) then
        t = true
    end
    if (c+b>a) and (c<a and b<a) then
        t = true
    end
    return t
end

result = triangle(1,2,3)--传入值为三边长度,多改几个测试下
print(result)

返回多个值(自测题)

你需要使用前面几章的知识,来完成下面的题目

已知2个number类型的变量,分别代表一个长方体的长和宽

请计算这个长方形的周长和面积

请新建一个函数rectangle,并可以用如下形式调用:

function rectangle(a,b)
    return a*b,(a+b)*2
end

area,len = rectangle(1,2)
--结果:
--面积area为2
--周长len为6
print(area,len)

table

Lua全局变量与table

你需要完成下面的任务:

已知有一个全局变量,名为@#$

请新建一个变量result

将@#$变量里的值赋值给result

_G["@#$"] = 123

result = _G["@#$"]--请补全代码
print("result值为",result)

table小测验3

请新建一个名为t的table,满足以下要求

t[10]可获得number类型数据100

t.num可获得number类型数据12

t.abc[3]可获得string类型数据abcd

t.a.b.c可获得number类型数据789

--请补全代码
t = {
    [10] = 100,
    ['num'] = 12,
    abc = {
        [3] = 'abcd'
    },
    a = {
        b = {
            c = 789
        }
    }
}

print("t[10]可获得number类型数据100:",t[10],type(t[10]))
print("t.num可获得number类型数据12:",t.num,type(t.num))
print("t.abc[3]可获得string类型数据abcd:",t.abc[3],type(t.abc[3]))
print("t.a.b.c可获得number类型数据789:",t.a.b.c,type(t.a.b.c))

table.concat

请完成下面的任务:

已知table变量t,

将t中的结果全部连起来

间隔符使用 ,

并使用print打印出来

t = {"a","b","c","d"}
print("连接结果:")
--补全代码
print(table.concat(t, ","))

table删减

请完成下面的任务:

已知table变量t,

去除t中的第一个元素

然后这时,在t的第三个元素前,加上一个number变量,值为810

t = {1,2,3,4,5,6,7,8,9}

--补全代码
table.remove(t, 1)
table.insert(t, 3, 810)

print("第一个元素应为2:",t[1])
print("第三个元素应为810:",t[3])

循环

循环测试题1(自测题)

a = 10
--需要用print输出要求的结果
print("输出结果:")

for i=1,a*2,2 do
    print(i)
end

循环测试题2(自测题)

a = 10
--需要用print输出要求的结果
print("输出结果:")

cc = ''

for i=1,a do --请补全代码
    cc = cc .. '*'
    print(cc)
end

循环测试题3(自测题)

a = 20
--需要用print输出要求的结果
print("输出结果:")

cc = ''

for i=1,a do --请补全代码
    cc = cc .. tostring(i)
    print(cc)
end

循环测试题4(自测题)

有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。

第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。

以后每天早上都吃了前一天剩下的一半加天数个(例如,第5天吃了前一天剩下的一半加5个)。

到第n天早上再想吃的时候,就只剩下一个桃子了。

那么,已知变量a为最后一天的天数,请打印出第一天的桃子数。

如:a为5时,输出114

a = 5
--需要用print输出要求的结果
print("输出结果:")
peach = 1

-- 第 n   天,剩 1 个桃子
-- 第 n-1 天,剩 (1+n-1)*2 个桃子
for i=a-1,1,-1 do --请补全代码
    peach = (peach + i)*2
end
print(peach)

详解string库

string.sub

请完成下面的任务:

已知字符串变量s,请分别打印出(每种一行):

s从第4个字符开始,到最后的值

s从第1个字符开始,到倒数第3个字符的值

s从倒数第5个字符开始,到倒数第2个字符的值

s = "1919810"

--补全代码
print(s:sub(4))
print(s:sub(1,-3))
print(s:sub(5,-2))

string.rep

打印一行数据,数据内容为810个114514

--补全代码
print(string.rep('114514',810))

string.len

新建一个变量s,使数据内容为810个114514
并打印出字符串s的长度

s = string.rep('114514',810)--补全代码
print(s:len())

大小写转换

已知一个变量s,打印出全是大写字母的s字符串

s = "asd8938KJjsidiajdl;(()k)"
print(s:upper()) --补全代码

string.format

已知一个变量n,为number类型整数
打印出n:连上n值的字符串

n = 810

print(string.format('n:%d', n)) --补全代码

string.char

已知一个字符串的每个字符在数组t中按顺序排列

请根据t的值,打印出字符串内容(一行数据)

注:这个字符串存储的不一定是可见的字符

t = {0x79,0x6F,0x75,0x20,0x61,0x72,0x65,0x20,0x72,0x69,0x67,0x68,0x74}
print("真正的字符串内容:")
--补全代码

s = ''

-- #t 取从第一个元素往后到最后一个不是 nil 的值的索引的下标值。
--[[有些陷阱需要注意,当我定义一个空 table 时,
    我在非起始位置赋值一个数据,这时候通过 # 返回的值是 0
]] 
for i=1,#t do
    s = s .. string.char(t[i])
end

print( s )

string.byte

已知字符串s

请把s中代表的数据,全部相加,并打印出来

s = string.char(1,2,3,4,5,6,7,8,9)
print("s内数据的和是:")
--补全代码

print(s)
print(s:byte(1,-1))
num = 0
for i=1,#s  do
    num = num + s:byte(i)
end

print(num)

string.find

已知字符串s,里面有很多相同的字符串

请找出字符串s中,所有字符串awsl的位置

使用print打印结果,结果一行一个

如字符串12awslawslaw,输出3和7

s = "12awsaslwlaawsllslllswasllalssawwlawslaw"
print("两个awsl的位置分别是:")
--补全代码

Start,End = 0,0
-- print(#s)
-- print(string.find(s,'awsl'))
i=1
while i<#s do
    Start, End = string.find(s,'awsl', i)
    if End == nil then
        break
    end
    print(Start)
    i = End+1
end

string.gsub

已知字符串变量s,请分别打印出(每种一行):

把字符串s中,前5个a,替换为b

把字符串s中,前3个c,替换为xxx

把结果打印出来,一行数据文章来源地址https://www.toymoban.com/news/detail-458503.html

s = "asdicagydausckfugdaflgscdabgsdbahhacbshbsd"
print("s变换前的值:",s)
--补全代码
r = s:gsub("a","b",5)
-- print("s变换后的值:", r)
r = r:gsub("c","xxx",3)

print("s变换后的值:", r)

到了这里,关于luatOS网站 lua语言学习 练习题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Lua程序设计第四版》 第二部分9~13章自做练习题答案

    Lua程序设计第四版第二部分编程实操自做练习题答案,带⭐为重点。 请编写一个函数integral,该函数以一个函数f为参数并返回其积分的近似值 使用右矩阵法近似积分值 如下代码段将输出什么结果 编写练习5.4的柯里化版本 柯里化(Currying)是把接受 多个参数 的函数变换成

    2024年02月13日
    浏览(27)
  • 《Lua程序设计第四版》 第一部分前8章自做练习题答案

    Lua程序设计第四版第一部分语言基础自做练习题答案,带⭐为重点。 运行阶乘的示例并观察,如果输入负数,程序会出现什么问题?试着修改代码来解决问题 输入负数,程序会死循环,修改如下 分别使用-l参数和dofile运行twice示例,并感受你喜欢哪种方式 载入库,在 lua解释

    2024年02月13日
    浏览(37)
  • 智能合约学习笔记一 、——{Solidity语言详解——(1—2)小练习}

    1.根据提示,在指定位置写出编译版本,要求使用^符号,版本要求在0.6.0及以上。 2.根据提示,在指定位置写出所定义的合约名称。 3.为了查看程序的效果,我们使用在线 Solidity 开发工具 Remix IDE 编译和运行 Solidity 程序。中文在线版:在浏览器打开下方链接: Remix - 中文版

    2024年02月02日
    浏览(27)
  • C 语言练习题更新

    目录(先不要看答案,首先自己做才能更好的领悟,做不来没关系) 题目一:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。 题目

    2024年02月14日
    浏览(32)
  • C语言之练习题

    欢迎来到我的: 世界 希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 这期文章由:两题问答题+四道编程题;小孩在文章中写有详细解题思路,感谢大家支持支持。 思路: 首先我们要知道 x=x(x-1) 的含义; 假设x=3;也就是 011 ; 而x-1=2;是 010 ;

    2024年02月10日
    浏览(40)
  • C语言之数组练习题

    第1关:数组插入元素 300 任务要求 参考答案 评论106 任务描述 相关知识 数组 数组元素的表示方法 编程要求 测试说明 任务描述 本关需要你将一个数插入到一组已经排好序的数组并输出。 相关知识 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式

    2024年02月05日
    浏览(41)
  • 【C语言】练习题整理:11

    今天是10道选择题 下面代码段的输出结果是: -12 自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。 如x=y=z,由于“=”的右结合性,应先执行y=z,再执行x=(y=z)运算。 C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。 计算顺序是

    2024年02月11日
    浏览(37)
  • C语言/C++练习题

    题目:从键盘输入年份和月份,输出这个月的天数。 【样例输入】2023 1 【样例输出】31 【样例输入】2020 2 【样例输出】29 提示:当输入的月份为2月份时,需要判断该年年份是否为闰年。 判断闰年的条件:年份为4的倍数并且不是100的倍数,或者年份是400的倍数。 ​ 在控制

    2024年02月06日
    浏览(34)
  • 习题练习 C语言

    首先我们要了解什么是offsetof宏: . 此具有函数形式的宏返回数据结构或联合类型中成员成员的偏移值(以字节为单位)。 . 返回的值是size_t类型的无符号整数值,其字节数位于指定成员与其结构开头之间。 什么意思呢,可以看到下面这张图片: 下面我们来看到这一习题:

    2024年02月14日
    浏览(36)
  • 习题练习 C语言(暑期)

    今天为大家分享我暑假期间所练习的一些小题目! 相信大家看完之后都会有所提升的! 加油! 以下不正确的定义语句是( ) A: double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0}; B: char c2[] = {‘x10’, ‘xa’, ‘8’}; C: char c1[] = {‘1’,‘2’,‘3’,‘4’,‘5’}; D: int y[5+3]={0, 1, 3, 5, 7, 9}; 题目解

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包