0. 请问下边代码将打印多少个 'A'?
答: 10个
1. 请问下边代码会打印多少个 'B'?
答: 0个, i 初始化是0 , while先取i值后再++,不执行while语句块,如需要执行改成++i
2. 请写出表达式 a = b = c = 5 中的"l-value"?
答: c,b,a
3. 请问表达式 a = (b = 3, 4, c = b++ + 5, ++c + ++b); 执行后,整型变量 a、b、c 的值是?
答: a = b = 5, c = 9
4. 请使用条件运算符求出变量 x 的绝对值,并存放到变量 z 中。
答: z = x >= 0 ? x : -x;
5. C 语言其实在大部分情况下不使用 goto 语句也能做得很好,请尝试将下列代码段写成不带 goto 语句的版本。
答: A:
if (size > 12)
{
cost = cost * 1.05;
flag = 2;
}
if (flag == 2)
{
bill = cost * flag;
}
B:
if (ibex > 14)
{
sheds = 3;
}
if (sheds != 3)
{
sheds = 2;
}
help = 2 * sheds;
C:
do
{
scanf("%d", &score);
if (score < 0)
{
printf("count = %d\n", count);
break;
}
count++;
}
while (score >= 0);
动动手:
假设小甲鱼和黑夜手上均有 10000 元,小甲鱼以 10% 的单利息投资,黑夜则以每年 5% 的复合利息投资。请编写一个程序,计算需要多少年黑夜手头的 Money 才会超过小甲鱼?
答:#include <stdio.h>
int main()
{
float xjy_money, hy_money;
int y;
xjy_money = hy_money = 10000;
for (y = 0; hy_money <= xjy_money; y++)
{
xjy_money += 10000 * 0.1;
hy_money += hy_money * 0.05;
}
printf("%d年后,黑夜的投资额超过小甲鱼!\n", y);
printf("小甲鱼的投资额是:%.2f\n黑夜的投资额是:%.2f\n", xjy_money, hy_money);
return 0;
}
输出结果:
[jermey@localhost sel16]$ gcc test5.c && ./a.out
27年后,黑夜的投资额超过小甲鱼!
小甲鱼的投资额是:37000.00
黑夜的投资额是:37334.56
1. 都说天降横财不是什么好事儿,这不,小甲鱼中了双色球一等奖,扣除税收后还剩下 400 万人民币。假设小甲鱼把这些钱做固定投资,每年可以获得 8% 的红利,但在每年的第一天,小甲鱼都会取出 50 万作为本年度的开销……请编写一个程序,计算需要多久小甲鱼才会败光所有家产,再次回到一贫如洗?
答:#include <stdio.h>
int main()
{
double money;
int y;
money = 4000000;
for (y = 0; money > 0; y++)
{
money -= 500000;
money += money * 0.08;
}
printf("%d年之后,小甲鱼败光家产!\n", y);
return 0;
}
输出结果:
[jermey@localhost sel16]$ gcc test6.c && ./a.out
12年之后,小甲鱼败光家产!
2. 根据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)。
答:#include <stdio.h>
#include <math.h>
int main()
{
double s = 1.0, i = 1.0, n = 1.0, pi = 0.0;
while (fabs(i) >= 1e-8)
{
pi += i;
n += 2;
s = -s;
i = s / n;
}
pi = pi * 4;
printf("Pi = %.7f\n", pi);
return 0;
}
输出结果:
[jermey@localhost sel16]$ gcc test8.c -lm && ./a.out
Pi = 3.1415926
3. 这是一个有趣的古典数学问题:如果说兔子在出生两个月后,就有繁殖能力,在拥有繁殖能力之后,这对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么两年之后可以繁殖多少对兔子呢?
答:#include <stdio.h>
int main()
{
int i, months = 24, rbs = 1, new_rbs = 0, all_rbs = 1;
for(i = 1; i <= months; i++)
{
if (i >= 3)
{
new_rbs = rbs;
rbs = all_rbs;
all_rbs += new_rbs;
}
}
printf("2年能繁殖%d对兔子!\n", all_rbs);
return 0;
}
输出结果:
[jermey@localhost sel16]$ gcc test9.c && ./a.out
2年能繁殖46368对兔子!
|