|
|
第6章习题
1.给定以下程序:
# include <stdio.h>
int f (int a, int b, int c)
{
return (a < b && b < c) || (a > c);
}
int main (void)
{
printf ("%d\n", f (5, 10, 15));
}
已知关系运算符的优先级最高,&&次之,||最低,问题:
(1)分析一下这个程序的输出是什么;
(2)改写f函数,要求使用if语句。
2.请编写程序找出10000以内所有能够同时被3、5和7同时整除的正整数。
答案不唯一,仅供参考。
# include <stdio.h>
int main (void)
{
for (int n = 1; n < 10000; n ++)
if (n % 3 == 0 && n % 5 == 0 && n % 7 == 0)
printf ("%d\n", n);
}
3.图6-14由100个边长为100,99,98,…,2,1的正方形重叠而成,用递归的方法编写程序,计算出阴影部分的总面积。
答案不唯一,仅供参考:
阴影部分面积等于S100-S99 + S98-S97+...+S2-S1
# include <stdio.h>
int sarea (int m)
{
if (m == 2) return 2 * 2 - 1 * 1;
else return m * m - (m - 1) * (m - 1) + sarea (m - 2);
}
int main (void)
{
printf ("%d\n", sarea (100));
}
|
|