
2008 年程序设计大赛(计算机专业组)
算法与程序设计题(C++语言)
以下各题要求给出完整的程序(大一学生完成题目 1-8,其他学生完成题目
4、5,9-14)
题目 1:公鸡一只 5 元,母鸡一只 3 元,小鸡三只一元,现有 100 元买百只鸡,问公鸡、
母鸡、小鸡各能买多少只?(10 分)
题目 2:求 S=a+aa+aaa+…+aaa…aa(n 项),其中 a 是一个一位数字。例如
2+22+222+22222(此时 a=2,n=4),n 和 a 的值由键盘输入。(10 分)
题目 3:根据输入的年、月输出从年初到本月底的天数,闰年是只能被 4 整除而不能被
100 整除的年,或能被 400 整除的年,要求用 switch 结构。(10 分)
题目 4:编写一个递归函数 reverse(int n,int m)能将主函数传过来的十进制数 n 转换
成需要的 m 进制数。(10 分)
题目 5:通过函数 swap()来完成 2 个数的交换,在主函数中输入数据并输出交换后的结果。
(10 分)
题目 6:用重载函数的形式求两个数(都为整数、实数或字符)中较大者并输出结果。
(10 分)
题目 7:下面是一个计算器类的定义,请完成该类的实现并在主函数中定义一个初值 99 为
的计算器对象,然后进行两次加 1,一次减 1,最后显示计算器的值。(20 分)
class counter{
int value;
public:
counter(int number);
void increment(); //给原值加 1
void decrement(); //给原值减 1
int getvalue(); //取得计算器值
void display(); //显示计算器值
1