本帖最后由 batman 于 2012-2-29 09:15 编辑
前言:
今年是2012年,也是传说中的世界末年,所以就以这个特殊的2012做为主题来开始本次的基础训练。
加分原则:
总共10题,每题10分,总分100分,视情况打分
解题要求:
独立解题,新手最好能全部做一遍(毕竟是基础练习)
题目如下:
1、在屏幕上分别分行和同行输出2012字符串的2 0 1 2四个字符以及反序输出(在这里要将2012视为不可知数值)
2、计算2012字符串四个数值的和(在这里要将2012视为不可知数值)
3、利用random生成2012,并计算random的次数
4、利用random生成2012,并保证每次使用最少的random次数(第一次取0-2012间的随机值,如取到948,就取948到2012间的随机值,依次下去,直到取到2012。。。)
5、证明2012年是闰年(在这里要将2012视为不可知数值)
6、输出2012年所有的日期
7、分别生成以2012命名的xls word txt pdf gpg的文件并在里面输入“2012 0”字符
8、将2012转换成二零一二(在这里要将2012视为不可知数值)
9、将1-2012之间的数值全转换成中文数值,如2001转换成二千零一
10、写出一段关于2012年的感想或祝福,并在屏幕上逐字逐行延时输出
-----------------------------------
下同给出所有题的参考答案,9-10题因为难度比较大,大家可以多思考思考(同时大家可以试着将开头的number变量换成其他数值运行下) | @echo off&setlocal enabledelayedexpansion | | set /a number=2012 | | | | set "str=%number%987654321"&set "str=!str:~9!" | | set /a counter=%str:~,1%-1 | | echo 题目1&echo, | | echo 分行输出 | | for /l %%a in (0,1,%counter%) do echo !number:~%%a,1!&set /a total+=!number:~%%a,1! | | echo 不换行输出 | | for /l %%a in (0,1,%counter%) do set /p=!number:~%%a,1!<nul | | echo, | | echo 倒序输出 | | for /l %%a in (%counter%,-1,0) do set /p=!number:~%%a,1!<nul | | echo,&echo, | | echo 题目2&echo, | | echo %number%数值%str:~,1%位数相加的和为%total% | | echo, | | echo 题目3&echo, | | echo 下面这种随机生成效率相当低还有可能因超出cmd计算上限而退出 | | :lp | | set /a n+=1 | | if %random% neq %number% goto lp | | echo 随机了%n%次生成%number% | | echo,&set /a min=0 | | echo 题目4&echo, | | echo 下面这种随机生成效率较高 | | for /l %%a in (1,1,%number%) do ( | | set /a "rand=min+(!random!%%(number-min+1))" | | echo !rand! | | if !rand! equ %number% echo 随机了%%a次生成!rand!&echo,&goto :next | | if !rand! gtr !min! set /a min=rand | | ) | | :next | | echo 题目5&echo, | | | | endlocal&set "number=%number%"&set "counter=%counter%" | | set /a "yp=!(%number%%%4)^!(%number%%%100)|!(%number%%%400)" | | if %yp% equ 1 ( | | echo %number%年为闰年 | | ) else ( | | echo %number%年为平年 | | ) | | echo,&setlocal enabledelayedexpansion | | echo 题目6&echo, | | set /a _2=28+yp,month_days=31 | | for %%a in (1 3 5 7 8 10 12 4 6 9 11) do ( | | if %%a equ 4 set /a month_days-=1 | | set /a _%%a=month_days | | ) | | (for /l %%a in (1,1,12) do ( | | for /l %%b in (1,1,!_%%a!) do echo %number%年%%a月%%b日 | | ))>%number%.txt | | echo %number%年所有的日期已输入%number%_date.txt | | echo, | | echo 题目7&echo, | | for %%a in (xls word txt pdf gpg) do >%number%.%%a echo 2012 0&echo %number%.%%a文件已生成 | | echo, | | echo 题目8&echo, | | for %%a in (零0 一1 二2 三3 四4 五5 六6 七7 八8 九9) do ( | | set "str=%%a" | | set "_!str:~1,1!=!str:~,1!" | | ) | | for /l %%a in (0,1,%counter%) do ( | | set "str=!number:~%%a,1!" | | for %%b in (!str!) do set /p=!_%%b!<nul | | ) | | echo,&echo, | | echo 题目9&echo, | | set /a counter=0 | | (for /l %%a in (1,1,%number%) do ( | | set "str=%%a"&set "input=" | | for %%a in (10 100 1000) do if %%a equ !str! set /a counter+=1 | | for /l %%a in (0,1,!counter!) do ( | | set "var=!str:~%%a,1!" | | for %%b in (!var!) do set "input=!input!!_%%b!" | | if %%a equ 0 ( | | if !counter! equ 1 set "input=!input!十" | | if !counter! equ 2 set "input=!input!百" | | if !counter! equ 3 set "input=!input!千" | | ) | | if %%a equ 1 ( | | if !counter! equ 2 set "input=!input!十" | | if !counter! equ 3 set "input=!input!百" | | ) | | if %%a equ 2 if !counter! equ 3 set "input=!input!十" | | ) | | for %%a in (十零-十 零十-零 零百零-零 零百-零) do ( | | for /f "tokens=1,2 delims=-" %%b in ("%%a") do set "input=!input:%%b=%%c!" | | ) | | if "!input:~-2!" equ "百零" set "input=!input:百零=百!" | | if "!input:~-2!" equ "千零" set "input=!input:千零=千!" | | echo !input! | | ))>%number%_汉字.txt | | echo 1至%number%间的数值已全转换为汉语数值并输入到%number%_汉字.txt中 | | echo, | | echo 题目10&echo, | | | | set "tab= " | | for /f "delims=:" %%a in ('findstr "::" %0') do ( | | set "str=%%a" | | if "!str:~,1!" neq "f" ( | | for /l %%a in (0,1,20) do ( | | set /p=!str:~%%a,1!<nul | | for /l %%b in (1,1,500) do ver>nul | | ) | | ) | | echo,&echo, | | ) | | pause>nul | | :: 2012年注定是个不平凡之年 | | :: 她是传说中的世界末日 | | :: 她也是批处理之家发展的第六个年头 | | :: 我们将在2012年迎来盛大的伦敦奥运 | | :: 而对于我,2012年更是不寻常 | | :: 因为今年是小女儿的第一个本命年 | | :: 也是她迈入初中的紧张之年 | | :: 在此,我衷心祝愿: | | :: 批处理之家!tab!红红火火 蒸蒸日上 | | :: 中华健儿!tab!英姿飒爽 再创辉煌 | | :: 小女儿!tab!快乐成长 学业有成 | | :: 全世界!tab!和平安祥 再无战荒COPY |
|