在这篇文章中,Adrian Neumann 收集了一些从初级到高级逐级困难的练习题,适合刚开始学习编程的初学者。当有新的练习题时,Adrian 会及时添加。除了一些GUI问题外,练习题一般都是算法题,无需学习任何库就可以解决。课程练习题的困难程度有时候取决于你使用的编程语言。例如,关于列表List的练习题若用内部不支持List的C语言来解决的话会困难些。
即使有一定编程经验的人想要学习一门新语言的时候,虽然这对他们来说相对简单,但我认为这还是有用的。
初级1. 写程序将” Hello World”打印到屏幕。 2. 写程序输入用户的姓名并用该姓名和他打招呼。 3. 修改上一个程序,使得仅可以与Alice和Bob这两个用户用其姓名与之打招呼。 4. 写程序输入一个数n并打印出从1到n的和。 5. 修改上个程序,使得求和的数只包含3或5的倍数,例如n=17,则求和的数为:3, 5, 6, 9, 10, 12, 15。 6. 写个程序,要求用户输入一个数n,并概率性的选择是计算1到n的和还是计算1到n的乘积。 7. 写程序打印出12×12乘法表。 8. 写程序打印所有的素数。(注意:如果你用的编程语言不支持任意大小的数,那么打印出所有你能表示的素数,包括最大数) 9. 写一个竞猜游戏,用户必须猜一个秘密的数字,在每次猜完后程序会告诉用户他猜的数是太大了还是太小了,直到猜测正确,最后打印出猜测的次数。如果用户连续猜测同一个数字则只算一次。 10. 写个程序打印出接下来的20个闰年。 11. 写程序计算:
列表list和字符串1. 写一个函数,返回列表中最大的数。 2. 写函数逆转列表,最好是原地逆转。 3. 写个函数检查指定的元素是否出现在列表中。 4. 写个函数返回列表中奇数位置的所有元素。 5. 写个函数计算列表的运行花费总和(the running total)。 6. 写个函数测试一个字符串是否是回文。 7. 写三个函数来计算列表中数字的和:分别用for循环,while循环和递归完成。 8. 写个函数on_all遍历列表中的每个元素,打印出开始的20个完全平方数。 9. 写个函数连接两个列表。 10. 写个函数交替合并两个列表,例如:[a,b,c], [1,2,3] → [a,1,b,2,c,3]。 11. 写个函数合并两个有序的列表。 12. 写个函数计算前100个Fibonacci数的列表。 13. 写个函数,返回指定数的各位数字的列表。 14. 写个函数对两个数进行加减乘,使用各个位上的数字表示的列表实现并返回一个新的数字列表,如果你有信心可以实现Karatsuba乘法。尝试不同的基数,如果你关心速度可以比较下哪个是最佳基数。 15. 实现下面的排序算法:选择排序,插入排序,归并排序,快速排序,臭皮匠排序(Stooge Sort)。具体的描述见Wikipedia。 16. 实现二分查找。 17. 写个函数,给定一个字符串列表并按下面表示打印出来,一行一个打印在矩形框中。例如列表["Hello", "World", "in", "a", "frame"] 打印的结果是: | *********
* Hello *
* World *
* in *
* a *
* frame *
*********
|
18. 写函数将一段文本text翻译为Pig Latin返回,英语翻译为Pig Latin的规则是:取出每个单词的首个字母,追加’ay’后再放到该单词的末尾。例如“The quick brown fox” 翻译后就变成了 “Hetay uickqay rownbay oxfay”。
|