梦中仙
发表于 2023-5-12 10:45:13
答案
零度体温
发表于 2023-5-13 10:24:46
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个。这道题的陷阱在于让你认为退出外层循环需要同时符合 i == 10 和 j == 10 两个条件。其实并不是这样,这是一个逗号表达式,只取最后边的值。也就是说只要满足 j == 10 就可以了。
1. 请问下边代码会打印多少个 'B'?
#include <stdio.h>
int main()
{
int i = 0;
while (i++)
{
if (i > 10)
{
goto Label;
}
putchar('B');
}
Label:putchar('\n');
return 0;
}
一个都没有!因为i++是先取出变量i的值,再为变量自身加一。因此第一进入循环判断时,取出的值是0,并不符合循环的条件,因此循环一次都没有被执行。
2. 请写出表达式 a = b = c = 5 中的"l-value"?
a、b、c 都是"l-value"。
3. 请问表达式 a = (b = 3, 4, c = b++ + 5, ++c + ++b); 执行后,整型变量 a、b、c 的值是?
b=3;
c=8
b=4;
c=9;
b=5;
a=(b=3,4,c=8,9+5)=16
b=5
c=9
解答这道题需要充分消化这一节课我们所学习的内容,首先 b = 3(因为赋值运算符的优先级比逗号运算符高);c = b++ + 5,c = 8(因为 b++ 是先使用变量 b 的值,再将自身加一);a 最后的值是 ++c + ++b,此时 c = 8,b = 4,则 a = 9 + 5,最后 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;
B.
if (ibex > 14)
{
goto a;
}
sheds = 2;
goto b;
a: sheds = 3;
b: help = 2 * sheds;
C.
readin: scanf("%d", &score);
if (score < 0)
{
goto stage2;
}
count++;
goto readin;
stage2: printf("count = %d\n", count);
答:
A.
if (size > 12)
{
cost = cost * 1.05;
flag = 2;
}
bill = cost * flag;
B.
if (ibex > 14)
{
sheds = 3;
}
else
{
sheds = 2;
}
help = 2 * sheds;
C.
scanf("%d", &score);
while(score >=0)
{
count++;
scanf("%d", &score);
}
printf("count = %d\n", count);
动动手:
假设小甲鱼和黑夜手上均有 10000 元,小甲鱼以 10% 的单利息投资,黑夜则以每年 5% 的复合利息投资。请编写一个程序,计算需要多少年黑夜手头的 Money 才会超过小甲鱼?
提示:单利息即每年的利息均为投资额 * 利率;复合利息则是每年的本息所得作为第二年的投资额。
#include<stdio.h>
#include<math.h>
int main()
{
int year = 0;
float fishc = 10000,heiye = 10000;
double f_result,h_result;
do
{
year++;
f_result = fishc * 0.10 * year + fishc;
h_result = heiye * pow(1.05,(double)year);
}while(h_result < f_result);
printf("%d年后,黑夜的投资额超过小甲鱼!\n",year);
printf("小甲鱼的投资额为:%.2f\n",f_result);
printf("黑夜的投资额为:%.2f\n",h_result);
return 0;
}
1. 都说天降横财不是什么好事儿,这不,小甲鱼中了双色球一等奖,扣除税收后还剩下 400 万人民币。假设小甲鱼把这些钱做固定投资,每年可以获得 8% 的红利,但在每年的第一天,小甲鱼都会取出 50 万作为本年度的开销……
请编写一个程序,计算需要多久小甲鱼才会败光所有家产,再次回到一贫如洗?
#include<stdio.h>
int main()
{
int year = 0;
float fishc = 400;
do
{
year++;
fishc -= 50;
fishc = fishc * (1+0.08);
}while(fishc > 0 );
printf("%d年后,小甲鱼败光了所有的家产,再次回到一贫如洗....",year);
return 0;
}
2. 根据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)。
#include<stdio.h>
#include<math.h>
int main()
{
double pi_4 = 1,pi;
int i = 1;
double j = 1;
double k;
do
{
i = -i;
j += 2;
k = 1 / j * i;
pi_4 += k;
}while(fabs(k) >= pow(10,-8));
pi = pi_4 * 4;
printf("PI的值为%.7f\n",pi);
return 0;
}
3. 这是一个有趣的古典数学问题:如果说兔子在出生两个月后,就有繁殖能力,在拥有繁殖能力之后,这对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么两年之后可以繁殖多少对兔子呢?
#include<stdio.h>
#include<math.h>
int main()
{
//第一个月开始前的兔子数
int tu; //兔子总数
int tu_0 = 1; //本月可繁殖的兔子
int tu_1 = 0; //上月新生兔,一个月后可繁殖
int tu_2 = 0; //本月新生兔,两个月后可繁殖
int mouth;
for(mouth=3;mouth<=12;mouth++)
{
//下个月初,一批兔子成熟,可繁殖兔子数增多
tu_0 += tu_1;
tu_1 = tu_2;
tu_2 = tu_0; //新繁殖兔子数
}
tu = tu_0 + tu_1 + tu_2;
printf("两年后兔子总数为%d\n",tu);
return 0;
}
Wuhahahaha
发表于 2023-5-13 11:09:43
0
FanXing3
发表于 2023-5-16 20:41:54
答案
ynnh
发表于 2023-5-17 11:09:37
朕来阅奏了{:10_312:}
昕宇782916672
发表于 2023-5-18 17:25:58
1
UtaokiM
发表于 2023-5-18 18:27:10
1
进阶的小鱼
发表于 2023-5-19 19:04:06
努力
听雨ty
发表于 2023-5-21 11:43:20
9
10
5
4,3,9
#include<stdio.h>
int main()
{
int x,z;
printf("请输入一个数字:\n");
scanf("%d",&x);
x>0?z=x:z=-x;
printf("%d\n",z);
return 0;
}
she35
发表于 2023-5-21 23:58:14
haha
humengzhao
发表于 2023-5-23 16:57:05
0.10
1.0个
2.a,b,c
3.4,3,4
4.
出走的猫
发表于 2023-5-24 15:44:14
1
ssshw
发表于 2023-5-26 10:35:46
nbnb
司空曙
发表于 2023-5-26 15:57:14
\0. 请问下边代码将打印多少个 'A'?
答:每次i的内循环,打印10次A。j从0到9,一共10次j
当i=0,j = 10时,不符合判断条件,结束循环。一共打印10次
\1. 请问下边代码会打印多少个 'B'?
答:不会打印B。因为goto Label1后,没有返回循环体操作,直接结束代码
\2. 请写出表达式 a = b = c = 5 中的"l-value"?
答:c = 5;b=c ; a=b;
\3. 请问表达式 a = (b = 3, 4, c = b++ + 5, ++c + ++b); 执行后,整型变量 a、b、c 的值是?
答:a = (b = 3, 4, c = b++ + 5, ++c + ++b);
\4. 请使用条件运算符求出变量 x 的绝对值,并存放到变量 z 中
\5. A:if(size > 12){
cost = cost +*1.05;
flag = 2;
}
B:
1. if (ibex > 14)
{
sheds = 3;
}
sheds = 2;
C:
if (score < 0)
{
printf("count = %d\n", count);
}
风铃山谷
发表于 2023-5-26 16:28:19
6
珍真
发表于 2023-5-27 17:41:30
kk
gggtu
发表于 2023-5-29 16:28:22
q
极度纯洁的微笑
发表于 2023-5-31 13:07:52
{:5_102:}
jxy111
发表于 2023-6-1 23:09:41
1
旻偲
发表于 2023-6-2 01:08:40
0.100次
1.10次
2.a,b,c
3.a = 14, b= 5,c = 9;
4.int x;
x = x >= 0? x : -x;
5.A:if(size >12)
{
cost *= 1.05;
flag = 2;
}
else
{
bill = cost * flag;
};
B:
if (ibex >14)
{
sheds = 3;
}
else
{
sheds = 2;
help = 2*sheds
};
C:
while(1)
{
scanf("%d",&score);
if (score < 0)
{
printf("count = "%d\n",count);
}
else
{
count ++;
}
}