[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

向大家征集『新手练功区』批处理新手题目

新手也分多个阶段。
零、预备阶段,基本上不了解电脑是其一,不了解命令是其二。
  此阶段新手要先了解电脑基础知识。
一、起步阶段,只知道有批处理这个名词,不知道她具体能干什么。
  此阶段新手要先了解批处理的发展过程,积累批处理相关知识。
二、热身阶段,知道了一些命令,但不知道该如何组合使用。
  此阶段新手需要多看教程,可试运行他人例子,看看有什么效果;
  可提出一些问题看别人是如何解决的,并从中学习各个命令的用法与作用。
三、试手阶段,已经会用一些命令,可觉得用起来不熟练,解决问题很费劲。
  此阶段新手可多看帖子学习,可试做练习题,遇到问题也可发帖咨询。
  分解代码,一句句地了解分析其作用。即为什么要这样用,不这样用可以吗,有没有别的办法等。
  能读懂他人代码后就需要全面了解常用命令各种用法了。

当基本上了解了各种命令的使用方法并能做一定的应用后你就进入中级阶段了。
当然各人因条件的不同,会有学习进度的差异。大家不用着急,其实 “高手” 也有很多不懂的东西,你信不信?

费话少说。下面进入正题,在这里主要征集 热身阶段、试手阶段 和 中级阶段 这三个阶段的题目。
请大家顺便估计一下题目的难度等级,如:


试手阶段:如何判断输入的数是不是素数?
中级阶段:输入两个数字求公因数,要求判断输入是否合法。
  1. 其实大家都可以发帖的,大家有什么好题目大可不必由我来转发,不然新手练功区就我一 "光杆" 也不好看嘛!
  2. 些帖只是做题目征集用,以后好做个各类典型题目的链接。
复制代码


[ 本帖最后由 wxcute 于 2008-12-10 10:46 编辑 ]

回复 2# lhjoanna


    按国家名字排序
  1. @ECHO OFF
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1,2,3 delims=[] " %%a in (a.txt) do (
  4. echo [%%c]%%a %%b )>>log.txt
  5. sort log.txt>newa.txt & del /f /q log.txt
复制代码

TOP

键盘输入一个高精度的正整数N,去掉其中任意S个数字后使剩下的数最小。
例如:N=175438, S=4 ,可以删去7,5 ...
sjzong 发表于 2009-6-28 23:30

像我這樣的新手也來做做練習吧﹗相信大伙們定會給予教導和指正的
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=175438&set s=4
  3. :lp
  4. if defined n (
  5. set ".%n:~,1%=%n:~,1%"
  6. set "n=%n:~1%"
  7. goto lp)
  8. for /f "delims==." %%i in ('set.') do set x=!x!%%i
  9. echo !x:~,-%s%!
  10. pause
复制代码
我是NO.1 呀﹗不過.......@echo是在菜鳥比賽中....>.<

TOP

回复 17楼 的帖子

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :n
  4. cls
  5. set /p num=请输入一个正整数n=
  6. echo.%num%|findstr "^[1-9][0-9]*$">nul||goto n
  7. :m
  8. set /p m=请输入删除的个数m:
  9. echo.%m%|findstr "^[1-9][0-9]*$">nul||goto m
  10. set/a count=0
  11. :loop
  12. if "!num:~%count%,1!" neq "" (set/a count+=1&goto loop)
  13. if !m! gtr !count! echo 删除的位数过大&pause>nul&goto n
  14. echo 正整数 n=!num! ,删掉 !m! 个数字
  15. set/a count=0
  16. :a
  17. set/a b=0
  18. :b
  19. set/a b+=1
  20. set/a c=!b!-1
  21. if !num:~%b%! neq "" (
  22. if "!num:~%c%,1!" gtr "!num:~%b%,1!" (
  23.   set num=!num:~0,%c%!!num:~%b%!
  24.   set/a count+=1
  25.   if !count! neq !m! goto a
  26.   ) else (goto b)
  27. ) else (
  28. set num=!num:~0,%c%!
  29. set/a count+=1
  30. if !count! neq !m! goto a)
  31. if "!num!" equ "" (echo 得到最小的数是:空) else (echo 得到最小的数是:!num!)
  32. pause>nul&goto n
复制代码

TOP

[题目]删数问题

键盘输入一个高精度的正整数N,去掉其中任意S个数字后使剩下的数最小。
例如:N=175438, S=4 ,可以删去7,5,4,8,得到13。
原理:就是从左向右找到第一个i,使n>n[i+1],如果找到了,就删第i个,否则删最后一位。
1

评分人数

TOP

回复 2楼 的帖子

第一题本来是要处理一个数的,对中间和末尾的0进行不同的标记,00123和123都被识别为一个数。既然兄问了,那么如果在头部就原样输出吧,例:输入  00110207600    输出  0011#2#76**
我看到这个题目,就有做出这个题目的冲动!所以就写出答案,望版主通过
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :accept
  4. cls
  5. set /p n=要替换数字串[0~9]是:
  6. echo.%n%|findstr "^[0-9][0-9]*$">nul||goto accept
  7. for /f "tokens=* delims=0" %%a in ("%n%") do (
  8.   if "%%a" equ "" (echo 替换后的数字串是:%n%&pause>nul&goto accept) else (set b=%%a)
  9. )
  10. set num1=!n:%b%=!
  11. set num2=
  12. set num3=
  13. :loop
  14. if "!b:~-1!" neq "" (
  15.   if "!b:~-1!" equ "0" (set num3=!num3!*&set b=!b:~0,-1!&goto loop) else (goto replace))
  16. :replace
  17. set num2=!b:0=#!
  18. set num=!num1!!num2!!num3!
  19. echo 替换后的数字串是:%num%
  20. pause>nul&goto accept
复制代码


[ 本帖最后由 sjzong 于 2009-6-29 01:09 编辑 ]

TOP

出题4

2.【问题描述】数学上定义:
        n!=1×2×3×...×(n-1)×n (N>0)
        0!=1
        若用integer型数据表示阶乘,最多可到7!,用Longint类型也只能到12!
        要求输入正整数n,求 n! 的精确表示

TOP

出题3

方阵填数:在一个N×N的方阵中,填入1,2,.....N×N个数,并要求

        构成如下的格式:
        如  N=4                     N=5
        10 11  12   1                  13  14  15 16   1
        9  16  13   2                  12  23  24 17   2
        8  15  14   3                  11  22  25 18   3
        7   6   5   4                  10  21  20 19   4
                                       9   8   7   6   5

TOP

出题2

2、题目描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。
因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。
输入:输入包括两行,第一行是一个整数n(1<=n<=10000),表示果子的种类数。第二行包含n个整数,用空格分隔,第i个整数ai(1<=ai<=20000)是第i种果子的数目。
输出:输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于2^31。

TOP

出题1

1、用高精度计算出S=1!+2!+3!+……n!(n≤),其中“ !”表示阶乘。输入正整数N,输出计算结果S。

TOP

试手阶段:
判断输入的任意字符串,是纯字符串,还是纯数字。除了特殊字符。
(*^_^*)

TOP

热身阶段:获取字符的ASCII(20,126]

[ 本帖最后由 rat 于 2008-12-10 11:35 编辑 ]

TOP

大家出的题目都很好,我发帖征集题目的本意是让更多的人参与到出题的行列中来。

其实大家都可以发帖的,大家有什么好题目大可不必由我来转发,不然新手练功区就我一 &quot;光杆&quot; 也不好看嘛!

些帖只是做题目征集用,为的是以后好做个各类典型题目的链接用。

再次希望大家多多出题、出好题 ^_^ 。

TOP

把jpg图片批量重命名为奇偶

某文件夹下有两组图片:
以 a 开头的 —— a001.jpg,a002.jpg...直到 a200.jpg
以 b 开头的 —— b001.jpg,b002.jpg...直到 b200.jpg

要求:
把 a 开头的文件重命名为奇数 —— a001.jpg,a003.jpg...直到 a399.jpg
把 b 开头的文件重命名为偶数 —— a002.jpg,a004.jpg...直到 a400.jpg

======================================================
这个问题是从别的论坛的『 软件使用交流 』版块看到的问题。原帖:
现在我这里有大量的文件需要重命名,共分为两大类,一类为奇数项,但是文件名称为a001.jpg,a002.jpg。。。。。a200.jpg  还有一类是偶数项,文件名为b001.jpg,b002.jpg。。。b200.jpg,现在我想将a开始的文件命名为a001.jpg,a003,jpg。。。a399.jpg,将b开始的文件重命名为a002.jpg,a004.jpg.......a400.jpg。 请问这个用什么方法最好了,最好能告诉详细些。先谢谢啦

[ 本帖最后由 tireless 于 2008-12-9 22:10 编辑 ]
1

评分人数

    • wxcute: 这是个好题目。其实不用我发帖,你也可以发 ...PB + 3

TOP

回复 6楼 的帖子

中了五万块不是要请客吧?
今天出题的帐单就由你来付了,呵呵。

TOP

返回列表