您好,欢迎访问三七文档
按键级认证考题1、鼠标按圆型移动,半径为r=100,圆点为(200,200),请写出代码.Dima,x,yMoveTo100,200Fora=0To360x=200-100*cos(a*3.14/180)y=200-100*sin(a*3.14/180)MoveTox,yDelay5NextEndScript1、(前台)区域范围为(100,150)到(200,300)内的所有点是否均为"FFFFFF",是则弹出对话框"没有其他颜色",否则弹出第一个点的颜色值并退出程序.请写出代码x=100y=150RtColor=Plugin.Color.GetPixelColor(x,y,0)RtColor1=RtColorWhile(y<300)x=100While(x<200)IfRtColor="FFFFFF"Thenx=x+1ElseMessageBoxRtColor1ExitScriptEndIfRtColor=Plugin.Color.GetPixelColor(x,y,0)Wendy=y+1WendMessageBox"没有其他颜色"2、利用多线程对多个记事本的窗口位置进行随机移动.请写出代码RunApp"notepad.exe"//启动3个记事本测试用RunApp"notepad.exe"RunApp"notepad.exe"Delay2000//等待3个记事本工具打开DimEnvHwnd1HwndEx=Plugin.Window.Search("记事本")Hwnd=Split(HwndEx,"|")IfUBound(Hwnd)>=0Then//判断是否搜到句Fori=0ToUBound(Hwnd)-1wnd=Clng(Hwnd(i))//类型转换Hwnd1=wndBeginThread移动//启动线程Delay100//启动线程需要点时间NextEndIfDoDelay1000LoopSub移动Hwnd2=Hwnd1Randomizex=Int(Rnd*500)Randomizey=Int(Rnd*500)//MessageBoxx&","&yCallPlugin.Window.Move(Hwnd2,x+100,y+100)EndSu3、筛选出100以内所有个位数加十位数等于10的数,例如82,8+2=10满足条件,请写出代码s=""Fori=1To99a=imod10b=int(i/10)If(a+b)=10Thens=s&i&"|"EndIfNextMessageBoxs4、写一个算法可以将十进制的字符串转成八进制的字符串.例如"8"->"10",请写出代码PublicFunctionDEC_to_OCT(Dec)DEC_to_OCT=""DoWhileDec>0DEC_to_OCT=DecMod8&DEC_to_OCTDec=Dec\8LoopEndFunctiona=DEC_to_OCT("8")MessageBoxa5、有N个窗口,第一个窗口移动到(0,0)点,其余的窗口根据第一个窗口平铺,窗口不超出屏幕边缘(窗口平铺),请写出代码RunApp"notepad.exe"RunApp"notepad.exe"RunApp"notepad.exe"RunApp"notepad.exe"RunApp"notepad.exe"RunApp"notepad.exe"HwndEx=Plugin.Window.Search("记事本")Hwnd=Split(HwndEx,"|")ScreenX=Plugin.Sys.GetScRX()ScreenY=Plugin.Sys.GetScRY()MessageBoxScreenXsRect=Plugin.Window.GetWindowRect(Hwnd(0))MessageBoxsRectxy=Split(sRect,"|")x=xy(2)-xy(0)y=xy(3)-xy(1)sx=0sy=0i=0MessageBoxxWhile(Screeny-sy>y)While(ScreenX-sx>x)Delay10CallPlugin.Window.Move(Hwnd(i),Cstr(sx),Cstr(sy))sx=sx+xi=i+1Ifi>UBound(Hwnd)-1ThenExitScriptEndIfWendsy=sy+ysx=0MessageBoxsyWend写一个子程序,可以使鼠标从当前的坐标逐点的移动到目的坐标(带轨迹的鼠标移动),请写出代码DoCalla(50,50)Calla(800,600)Loopsuba(x,y)DoGetCursorPosx0,y0Ifx>x0Theni=1ElseIfx<x0Theni=-1ElseIfx=x0Theni=0EndIfIfy>y0thenii=1ElseIfy<y0thenii=-1ElseIfy=y0thenii=0EndIfMoveRi,iiIfx=x0andy=y0ThenExitdoEndIfLoopEndsub11、随即生成一个1~100之间的整数,玩家可以通过inputbox输入数字,猜对则退出游戏,猜错则提示答案的范围(猜数游戏),请写出代码例如:随机数为:60,用户输入20,程序提示"答案范围为:20~100".用户再次输入75,程序提示"答案范围为:20~75".用户再次输入60,程序提示"猜中",然后退出程序.Randomize答案=int(Rnd*100)+1最小数=1最大数=100数字=InputBox("(猜数游戏),输入1~100之间的整数,玩家可以通过输入数字,猜对则退出游戏,猜错则提示答案的范围")数字=int(数字)DoIf数字=答案ThenMsgBox数字&",恭喜答对了"EndScriptElseIf数字>答案Then最大数=数字ElseIf数字<答案Then最小数=数字EndIf数字=InputBox("答案范围为:"&最小数&"~"&最大数)数字=int(数字)Loop12、鼠标按圆型移动,半径为r=100,圆点为(200,200),请写出代码.圆点x=200:圆点y=200:半径=100:圆周率=3.14:角度数=1//公式:弧度=角度*圆周率/180DoMoveTo圆点x+半径*cos(角度数*圆周率/180),圆点y+半径*Sin(角度数*圆周率/180)角度数=角度数+1Loop13、锁定鼠标位置在(200,300)到(500,600)之间,超出范围则回到边界(鼠标范围锁定),请写出代码Call锁范围(200,300,500,600)Function锁范围(x1,y1,x2,y2)DoGetCursorPosx,yIfx<x1orx>x2ory<y1ory>y2ThenIfx<x1Thenx=x1ElseIfx>x2Thenx=x2EndIfIfy<y1Theny=y1ElseIfy>y2Theny=y2EndIfMoveTox,yEndIfLoopEndFunction?可以让普通窗口(例如记事本)在屏幕内移动,碰到屏幕边缘随机反向移动(类似屏幕保护的汽泡程序),请写出Call泡泡屏保("记事本")Function泡泡屏保(模糊标题)Hwnd=Split(Plugin.Window.Search(模糊标题),"|")IfUBound(Hwnd)>=0=0ThenEndScriptEndIfiii=3i=iii:ii=iii最大宽=Plugin.Sys.GetScRX():最大高=Plugin.Sys.GetScRY()边框=Split(Plugin.Window.GetWindowRect(Hwnd(0)),"|")W1=Clng(边框(0)):H1=Clng(边框(1)):W2=Clng(边框(2)):H2=Clng(边框(3))W0=W2-W1:H0=H2-H1doIfW1<=0Theni=1*iiiElseIfW1+W0>=最大宽Theni=-1*iiiEndIfIfH1<=0Thenii=1*iiiElseIfH1+H0>=最大高Thenii=-1*iiiEndIfW1=W1+i:H1=H1+iiCallPlugin.Window.Move(Hwnd(0),W1,H1)Delay50LoopEndFunction15、获取数组array(10,9,1,5,2,3,4,5,6,11)中最接近平均数的值,请写出代码a=array(10,9,1,5,2,3,4,5,6,11)i=0ForUBound(a)+1ii=ii+a(i)i=i+1Next均值=ii/(UBound(a)+1)i=0ForUBound(a)IfAbs(均值-a(i))>Abs(均值-a(i+1))Thenii=a(i+1)ElseIfAbs(均值-a(i))<Abs(均值-a(i+1))Thenii=a(i)EndIfi=i+1NextMsgBoxii16、有一个字符串,里面包含一些数字,写一个函数,把这些数字加起来。比如“我30你40他50”结果就是120。请写出代码a="我30你40他50ni"Fori=1ToLen(a)+1IfIsNumeric(Mid(a,i,1))=TrueThenii=ii&Mid(a,i,1)Elseb=b+iiii=0EndIfNextMsgboxb17、遍历字符串"A1a2d5m8Qz",取出所有小写字母及数字,并按照与原来相反的顺序拼接成新的字符串,请写出代码MsgBox反提取小写数字("A1a2d5m8Qz")Function反提取小写数字(字符)i=Len(字符)ForLen(字符)If(Asc(mid(字符,i,1))>96andAsc(mid(字符,i,1))<123)or(Asc(mid(字符,i,1))>47andAsc(mid(字符,i,1))<58)Then反提取小写数字=反提取小写数字&mid(字符,i,1)EndIfi=i-1NextEndFunction//1、遍历字符串"A1a2d5m8Qz",取出所有小写字母及数字,并按照与原来相反的顺序拼接成新的字符串,请写出代码FunctiongetNewStr(str)Dimac,nstr,nsnstr=""Fori=len(str)To1Step-1ns=Mid(str,i,1)ac=Asc(ns)If(ac>96andac<123)or(ac>47andac<58)Thennstr=nstr+nsEndIfNextgetNewStr=nstrEndFunction'MessageBoxgetNewStr("A1a2d5m8Qz")//2、有一个字符串,里面包含一些数
本文标题:按键级认证考题
链接地址:https://www.777doc.com/doc-4359333 .html