luatOS网站 lua语言学习 练习题

news/2024/11/2 7:37:41/

LuatOS练习题
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,6t = false--补全代码
if (a+b>c) and (c>a and c>b) thent = true
end
if (a+c>b) and (b>a and b>c) thent = true
end
if (c+b>a) and (c<a and b<a) thent = 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) thent = trueendif (a+c>b) and (b>a and b>c) thent = trueendif (c+b>a) and (c<a and b<a) thent = trueendreturn t
endresult = triangle(1,2,3)--传入值为三边长度,多改几个测试下
print(result)

返回多个值(自测题)

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

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

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

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

function rectangle(a,b)return a*b,(a+b)*2
endarea,len = rectangle(1,2)
--结果:
--面积area为2
--周长len为6
print(area,len)

table

Lua全局变量与table

你需要完成下面的任务:

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

请新建一个变量result

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

_G["@#$"] = 123result = _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 doprint(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 = 810print(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 dos = s .. string.char(t[i])
endprint( 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  donum = num + s:byte(i)
endprint(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 doStart, End = string.find(s,'awsl', i)if End == nil thenbreakendprint(Start)i = End+1
end

string.gsub

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

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

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

把结果打印出来,一行数据

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

http://www.ppmy.cn/news/81840.html

相关文章

Python+Yolov5果树上的水果(苹果)检测识别

程序示例精选 PythonYolov5果树上的水果(苹果)检测识别 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonYolov5果树上的水果(苹果)检测识别>>编写代码&#xff0c;代码整洁…

oracle如何写一个带参数的视图

--创建参数包 create or replace package view_risk is function set_depcode(depcode varchar2) return varchar2; function get_depcode return varchar2; function set_dmonth(dmonth varchar2) return varchar2; function get_dmonth return varchar2; end view_r…

SVD求解两组多维点之间的欧式变换矩阵,及halcon代码实现

之前研究了二维点的仿射变换&#xff0c;用解矩阵的方式求解了两组二维点之间的变换矩阵。 学习了下SVD&#xff0c;看到可以用SVD求解两组多维点之间的欧式变换矩阵&#xff0c;当然也是个最优化问题。 这里的变换只有平移和旋转&#xff0c;没有缩放。 一、先说结论&#…

python异常处理名称整理

Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。BaseException所有异常的基类UnboundLocalError访问未初始化的本地变量SystemExit

RK3568平台开发系列讲解(驱动基础篇)RK平台IR的使用

🚀返回专栏总目录 文章目录 一、红外遥控配置二、内核驱动2.1 DTS 定义键值表2.2 内核用户码和IR键值的获取2.3 编译 IR 驱动进内核2.4 Android 键值映射三、IR 波形沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对RK IR的使用进行学习。 一、红外遥控配置 …

新的开始(最小生成树+超级源点)

题目 我们建立一个超级源点&#xff0c;每个点都与超级源点相连&#xff0c;他们的权值为在该点建立发电站的费用&#xff0c;剩下的将其余点相连&#xff0c;权值为连接到已经通电的发电站费用&#xff0c;我们跑一遍最小生成树即可将他们全部相连&#xff0c;并且费用最小。 …

算法时间复杂度

参考视频&#xff1a;https://www.bilibili.com/video/BV14j411f7DJ 目录 1.常数阶O(1) 2.对数阶O(IogN) 3.线性阶O(n) 4.线性对数阶O(nlogN) 5.平方阶O(n^2) 6.立方阶O(n^3) 7.K次方阶O(n^k) 8.指数阶(2^n) 9.阶乘O(n!) 两层for循环 for (int i 1; i <…

uniapp在H5获取当前定位信息不需要SDK可直接获取城市(包括经纬度省市区和市区编码)

前言 最近在做获取用户当前定位信息的时候&#xff0c;发现uniapp官方提供的uni.getLocation(OBJECT)兼容性并不是特别好&#xff0c;光注意事项都是密密麻麻一大堆&#xff0c;在实际使用场景下&#xff0c;效果并不理想&#xff0c;也不是很稳定。于是便重新封装了一下腾讯地…