练习与自测
1.如果有下面宏定义
那么,sh(sub_z)的宏展开是什么?
2.如果有下面宏定义
那么,t(t(g)(0)+t)(1)的宏展开是什么?
3.如果有下面宏定义
那么,showlist(The first, second,and third items.);report(x>y,"x is%d but y is %d",x, y);的宏展开是什么?
4.如果有下面宏定义
那么,char p[]=join(x, y);的宏展开是什么?
5.将自然数分解为质数因子之积有时不是那么容易的事情。为了验证267-1是否为质数,美国数学家F.N.Cole用了3年的时间。编程把267-1分解为质数因子之积。
6.编程求M/N(0<M<N<100)的精确值。如果是无限循环小数,要求给出第一个循环节。
7.数独据说是一种由18世纪末的数学家欧拉所创造的游戏。写一个求解下面数独游戏的程序。题目要求在每一个小格中,分别填上1至9的数字,但每一列、每一行的数字都不可以重复。
8.写一个计算24点游戏的程序:一副牌中抽去大小王剩下52张,任意抽取4张牌,用加、减、乘、除(可加括号)把牌面上的数算成24。
9.华容道游戏。华容道是根据三国故事命名的一个游戏。共10个棋子,大小分别为1×l、1×2、2×1和2×2。棋盘大小为4×5。要求移动各个棋子,帮助曹操从初始位置移到棋盘最下方中部,从出口逃走。移动过程中各个棋子不容许发生重叠,也不容许移动出棋盘。
————————————————————
(1) 包括头文件名、标识符、预处理数字、字符常量、字符串文字量、标点符号、单个非空白字符等。
(2) 这种情况下“<header>”中的“header”不一定真的是个源文件。
(3) 这种文件的扩展名一般为“.o”或“.obj”,有时也叫目标文件。
(4) 有一句编程名言:Don't strain to re-use code;reorganize instead(与其竭力重复使用代码,不如干脆重来)。
(5) 外部变量是在函数外部定义的变量,库函数中的许多外部变量可以被其他程序直接使用。
(6) Java语言干脆取消了宏这种东西,C++则很不情愿地保留了宏,但不提倡使用宏。