第292页 | C Primer Plus 中文版 | 阅读 ‧ 电子书库

同步阅读进度,多语言翻译,过滤屏幕蓝光,评论分享,更多完整功能,更好读书体验,试试 阅读 ‧ 电子书库

16.16 复习题

1.下面的几个组由一个或多个宏组成,宏的后面是使用宏的源代码。在每种情况下代码的结果如何?这些代码合法吗(假设其中的C变量已经声明)?

2.修改第1题的d组中的定义,使其更可靠。

3.定义一个宏函数,该函数返回两个值中的较小值。

4.定义宏EVEN_GT(X, Y),该宏在X为偶数并且大于Y时返回1。

5.定义一个宏函数,用于打印两个整数表达式及其值。例如,若其参数为3+4和4*12,将打印出:

6.创建#define语句完成下列功能:

a.创建一个值为25的命名常量。b.使SPACE代表空格字符。c.使PS()代表打印空格字符。d.使BIG(X)代表X的值加3。e.使SUMSQ(X, Y)代表X和Y的平方和。

7.定义一个宏,该宏按下列格式打印一个int变量的名字、值和地址:

8.假设测试程序时要暂时跳过一个代码块,但不从文件中删除该代码块。如何完成这项工作?

9.编写一段代码:如果已定义了宏PR_DATE,则打印执行预处理的日期。

10.下面的程序有什么错误?

11.假设scores是由1000个int值组成的数组,要按降序对该数组的值排序。您打算使用qsort()和比较函数comp()。

a.如何正确调用qsort()?b.如何正确定义comp()?

12.假设datal是由100个double值组成的数组,data2是由300个double值组成的数组。

a.调用memcmpy()函数将data2中的前100个元素复制到datal中。b.调用memcmpy()函数将data2中的最后100个元素复制到datal中。

请支持我们,让我们可以支付服务器费用。
使用微信支付打赏


上一页 · 目录下一页


下载 · 书页 · 阅读 ‧ 电子书库