练习与自测

1.如果有下面宏定义

练习与自测 - 图1

那么,sh(sub_z)的宏展开是什么?

2.如果有下面宏定义

练习与自测 - 图2

练习与自测 - 图3

那么,t(t(g)(0)+t)(1)的宏展开是什么?

3.如果有下面宏定义

练习与自测 - 图4

那么,showlist(The first, second,and third items.);report(x>y,"x is%d but y is %d",x, y);的宏展开是什么?

4.如果有下面宏定义

练习与自测 - 图5

那么,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的数字,但每一列、每一行的数字都不可以重复。

练习与自测 - 图6

8.写一个计算24点游戏的程序:一副牌中抽去大小王剩下52张,任意抽取4张牌,用加、减、乘、除(可加括号)把牌面上的数算成24。

9.华容道游戏。华容道是根据三国故事命名的一个游戏。共10个棋子,大小分别为1×l、1×2、2×1和2×2。棋盘大小为4×5。要求移动各个棋子,帮助曹操从初始位置移到棋盘最下方中部,从出口逃走。移动过程中各个棋子不容许发生重叠,也不容许移动出棋盘。

练习与自测 - 图7

————————————————————

(1) 包括头文件名、标识符、预处理数字、字符常量、字符串文字量、标点符号、单个非空白字符等。

(2) 这种情况下“<header>”中的“header”不一定真的是个源文件。

(3) 这种文件的扩展名一般为“.o”或“.obj”,有时也叫目标文件。

(4) 有一句编程名言:Don't strain to re-use code;reorganize instead(与其竭力重复使用代码,不如干脆重来)。

(5) 外部变量是在函数外部定义的变量,库函数中的许多外部变量可以被其他程序直接使用。

(6) Java语言干脆取消了宏这种东西,C++则很不情愿地保留了宏,但不提倡使用宏。