|
发表于 2021-11-21 18:47:31
|
显示全部楼层
0. 请问下边代码将打印多少个 'A'?
#include <stdio.h>
int main()
{
int i, j;
for (i = 0; i != 10, j != 10; i++)
{
for (j = 0; j < 10; j++)
{
putchar('A');
}
}
putchar('\n');
return 0;
}
答:10个'A'
1. 请问下边代码会打印多少个 'B'?
#include <stdio.h>
int main()
{
int i = 0;
while (i++)
{
if (i > 10)
{
goto Label;
}
putchar('B');
}
Label: putchar('\n');
return 0;
}
答:不打印'B'。i=0;不进入循环体;
2. 请写出表达式 a = b = c = 5 中的"l-value"?
答:a,b,c均是" l-value";b,c也是其中的r-value.
3. 请问表达式 a = (b = 3, 4, c = b++ + 5, ++c + ++b); 执行后,整型变量 a、b、c 的值是?
答;a=14,b=5,c=9.
4. 请使用条件运算符求出变量 x 的绝对值,并存放到变量 z 中。
答:z = x > 0 ? x : -x
5. C 语言其实在大部分情况下不使用 goto 语句也能做得很好,请尝试将下列代码段写成不带 goto 语句的版本。
A:
if (size > 12)
{
goto a;
}
goto b;
a: cost = cost * 1.05;
flag = 2;
b: bill = cost * flag;
改为:
int size;
if (size > 12)
{
cost = cost * 1.05;
flag = 2;
}
else{
bill = cost * flag;
}
B:
if (ibex > 14)
{
goto a;
}
sheds = 2;
goto b;
a: sheds = 3;
b: help = 2 * sheds;
改为:
if(ibex > 14)
{
sheds = 3;
}
else
{
sheds = 2;
help = 2 * sheds;
}
C:
readin: scanf("%d", &score);
if (score < 0)
{
goto stage2;
}
高级模式
BColorImageLinkQuoteCodeSmilies@朋友
count++;
goto readin;
stage2: printf("count = %d\n", count);
改为:
while (1)
{
scanf("%d", &score)
if (score < 0)
{
printf("count = %d\n", count);
break;
}
}
假设小甲鱼和黑夜手上均有 10000 元,小甲鱼以 10% 的单利息投资,黑夜则以每年 5% 的复合利息投资。请编写一个程序,计算需要多少年黑夜手头的 Money 才会超过小甲鱼?
提示:单利息即每年的利息均为投资额 * 利率;复合利息则是每年的本息所得作为第二年的投资额。
程序实现如图所示:
#include <stdio.h>
#include <math.h>
int main ()
{
float money = 10000;
float fish=0,black=0;
int i = 1;
while (1)
{
fish = money + money * i * 0.1;
black = money * pow (1 + 0.05, i);
if (black > fish)
{
break;
}
i++;
}
printf("%d年后,黑夜的投资额度超过小甲鱼!\n",i);
printf("小甲鱼的投资额是:%.2f\n黑夜的投资额是%.2f\n",fish,black);
return 0;
}
1. 都说天降横财不是什么好事儿,这不,小甲鱼中了双色球一等奖,扣除税收后还剩下 400 万人民币。假设小甲鱼把这些钱做固定投资,每年可以获得 8% 的红利,但在每年的第一天,小甲鱼都会取出 50 万作为本年度的开销……
请编写一个程序,计算需要多久小甲鱼才会败光所有家产,再次回到一贫如洗?(本故事纯属虚构,小甲鱼还是需要大家的支持才能养活自己滴,点击购买 VIP 支持小甲鱼 -> 传送门)
程序实现如图:
2. 根据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)。
答:
#include <stdio.h>
#include <math.h>
int main ()
{
double pi = 0;
double term = 1.0;
double i = 1.0;
double n = 1.0;
while (fabs(term) >= 1e-8)
{
term = n / i;
pi = pi + term;
i = i + 2;
n = -n;
}
printf("PI = %.7f",pi*4);
return 0;
}
3. 这是一个有趣的古典数学问题:如果说兔子在出生两个月后,就有繁殖能力,在拥有繁殖能力之后,这对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么两年之后可以繁殖多少对兔子呢?
#include <stdio.h>
int main ()
{
int t;
int c=2;//c是b-1个月的成年兔子;
int a=6,b=4;//a是月份总的兔子数量,b 是该月成年的兔子的数量;
int i;
for (i = 4;i <= 24; i++)//从第四个月开始;
{
a = a + b;
t = b;
b = b + c;
c = t;
}
printf("%d",a);
return 0;
} |
|