练习与自测
1.编写程序,输入一个整数,输出其绝对值。
2.输入3个整数,判断第1个是否为后两个的公约数。
3.编写程序,输入一字符,判断这个字符是否是拉丁字母,如是,继续判断是大写还是小写字母,如不是,则判断该字符是否是数字字符、空白字符或其他字符。
4.设计一程序模拟简单的(可做四则运算)计算器功能。如:输入1+2,输出:1+2=3;输入32,输出:32=6。
5.1950~2050年间的闰年有如下特点:能被4整除,但是当年份能被100整除的情况下,那么还必须能被400整除才是闰年。编写程序,输入一1950~2050年间的年份,判断那年是否是闰年。
6.设计一程序可算出2010年任一天是星期几。
7.打鱼还是晒网?有句俗话,叫“三天打鱼两天晒网”,如果从2000年1月1日起某人开始“三天打鱼两天晒网”,编写程序:输入2000年任意一天,输出这天此人是在打鱼还是在晒网。
8.输入一身份证号,输出这个人的生日。
9.输入一不超过10万的正整数,输出这个数在汉语中的写法。如输入“123”,输出“一百二十三”。认真测试你的程序。
————————————————————
(1) 还可以是指针。实数类型是整数类型和实浮点类型的合称。
(2) 而且应该是标量值。标量类型(Scalar Types)是算术类型(Arithmetic Types,整数类型与浮点类型,在C99中也包括复数浮点类型)和指针类型的合称。
(3) 输入更多数据项的时候,有几个被成功转化,scanf()函数调用表达式的值就为几。
(4) 本书中几乎所有的代码都可以在学习了更多的语法知识之后得到更好的改进。
(5) 此外指针和复数类型也可以,统称标量类型(scalar types)
(6) 我不理解这个东西为什么会经常出现在考试题中。文字游戏?其实没有任何实用价值,这样的代码应该直接禁止,而不是苦求其含义。
(7) 友情提醒,试图把题目中的“整数”改成实数恐怕是一个很轻率卤莽的行为。
(8) 我恐怕有人立刻就会用我的“矛”来攻我的“盾”,本题目也没有限定整数的范围,太大的整数输入同样能让程序崩溃。为此我在此声明,本书中的整数都是指在C语言的正常范围之内的,且除非特殊情况,在运算过程中也不产生溢出。
(9) 查找错误并改正的意思。传说1945年9月9日,马克II号计算机出现故障死机。女数学家Grace Hopper的同事发现有只飞蛾(bug)被夹扁在继电器触点中间,从而引起机器死机。霍波把这只飞蛾用镊子夹了出来粘在了计算机的工作日志中并郑重地在工作日志中写上了“First actual case of bug being found”。在计算机领域的专业行话里,bug通常指技术错误,Debugging通常指查找和改正技术错误。但实际上这两个词在计算机被发明以前就出现了并具有这些含义。