你觉得什么时候应该使用 while 语句,什么时候应该使用 for 语句?
答:对于没有预先确定执行次数的循环(比如根据用户的输入内容决定是否进入下一轮循环),应该使用 while 语句;对于指定执行次数的循环,for 语句更加合适。
请问 for 语句是入口条件循环还是出口条件循环。
答:for 语句是入口条件循环,因为循环体开始执行前,会先判断表达式2中的条件是否成立。
请问下边代码总共进行了多少次判断?
……
for (count = 0; count < 10; count++)
{
printf("FishC!\n");
}
……
答:11 次。版权属于:
mcbE_wtMZ|2O<;,>!0d`x%pLSGf
for 语句首先将 count 赋值为 0 后,进行第一次判断(count 是否小于 10),条件成立,执行循环体的内容;然后 count++(此时 count 的值为 1),进行第二次判断,条件依然成立……直到 count 的值为 9(此时已经进行了 10 次判断);最后 count++,判断 count 是否小于 10(这是最后一次判断),结果为假,退出循环。
请将下边的 for 语句写成 while 语句的表示方式。
for ( ; ; )
;
答:for 语句省略三个表达式即表示永远为真的循环,即死循环。
用 while 语句应该这样写:
while (1)
;
请将下边的 while 语句写成 for 语句的表示形式
while ((ch = getchar()) != '\n')
{
printf("%c", ch);
}
答:有没有发现在这种情况下(没有计数的时候),使用 while 语句会更加自然。
for ( ; (ch = getchar()) != '\n'; )
{
printf("%c", ch);
}
请写一个程序,帮小甲鱼计算 20 公斤内的运费。(顺丰起步价 23 元,每超一公斤加 14 元)
写一个程序,对用户输入的整数进行求和。当用户输入任意字符时,结束程序并打印结果。M dgB]c-sZ
KM^)}9Eh@_4~C+P?wjxHYu
程序实现如下:Powered b
"*}K#fCpHbm]d`>P@RO),Q
写一个程序,对用户输入的整数进行求和。当用户输入任意字符时,结束程序并打印结果。aQSipKHP
72sBS]VDTCY.8;>Z}j{aU+l(
答:因为 scanf 函数()会返回成功接收字符的个数,所以我们只需检查每次调用 scanf 函数的返回值是否为 1 即可。
V^Pd为上一题的数字求和程序写一个 2.0 版本,请实现以下要求:VGx4Q}2
8)u :-,}MGAa*4(dJ"~+k&$K'
A. 用户可以输入整数和浮点数来自:
T#]btx@a%D8s9+VN-~`L,|WS>
B. 用户可以在同一行输入多个数字,数字之间可以是任意一个分隔符(如下图)5=N*JEh?#
a8K~6bG:%;LVpfu2Q)A}-mCET
C. 结果保留两位小数Powered by
SX]8c9@+:&zn;yQ,hwje|gNOp*
程序实现如下图:Powered by
OU[ancxs$;='YJ7C%r^t5FV8f
OU[ancxs$;='YJ7C%r^t5FV8f
……
do
{
status = scanf("%f", &num);
sum = sum + num;
} while (getchar() != '\n' && status == 1);
……修改后程序的计算结果出错:版权属于:
bITc=XAn5vV68"OtZHfe!zSEhR~)D
Powered by
OU[ancxs$;='YJ7C%r^t5FV8f
3. 以各种姿势输出完整的九九乘法表。课堂中我们实现的是“左下”三角形的形式打印,现在要求大家分别以“左上”、“右下”和“右上“三角形的形式打印。Look,各种姿势如下
<5^S_u`r+
=%u`,E}HMmnKcNp-CU]:kF
左下(这是课堂中演示的):Powered b
gTy+(Zc3]#^8|QCi5s 1,!`
{J6jswz0aVBr)fRTlDSyxe"i
左上:
版权属
7v#2WtEwVM_|}s*:aq~{YdN
6} Dr9dT7m@-[nHPUw4pVG8c
右下:
Powered
a9:%1#)&P*f@hC=i>_^onsU;}L
e5~a(j=VF]Uz%1yc;YEC4?>JN
右上:
Powered b
PtMDb`+IHXn8e~c^uWUV