请问语句 A 在什么情况下会被执行?
……
while ((ch = getchar()) != '\n')
{
if (ch < '0' || ch > '9')
continue;
// 语句A
}
……
答:只有当输入为数字时,才会执行语句A。
请问代码 A 和代码 B 的区别是?
代码 A:
……
for (i = 0; i < 100; i++)
{
if (i % 2)
{
continue;
}
}
……
代码 B:
……
i = 0;
while (i < 100)
{
if (i % 2)
{
continue;
}
i++;
}
……
答:for 语句和 while 语句执行过程的区别在于出现 continue 语句时。在 for 语句中,continue 语句跳过循环的剩余部分,直接回到调整部分。在 while 语句中,调整部分是循环体的一部分,因此 continue 语句会把它也跳过(没错,小甲鱼觉得你可能又忘了,所以提醒你一下
请问下边循环会执行多少次?zUDY&
eloSMc*6"Vz'yr?n}#-:dpi4hv~q
注:i /= 2 相当于 i = i / 2
double i;
for (i = 10; i > 0; i /= 2)
{
printf("%.2f\n", i);
}
答:很多次(实际上我测试了一下是 1078 次),很多朋友回答 4 次,那是你想当然的把 i 看成整数了,注意这里是浮点数。
请问下边程序输入什么值才能正常退出?
#include <stdio.h>
int main()
{
int ch;
while (scanf("%d", &ch) == 1 && ch >= 0)
;
return 0;
}
答:输入的值只要不是自然数,程序就能正常退出。
请写出下边每行代码执行后 result 的值。
double result = 1.0;
result += 2.6;
result ++;
result * 5;
result = (int)(result + 0.5)
double result = 1.0; // result == 1.0
result += 2.6; // result == 3.6
result ++; // result == 4.6
result * 5; // result == 4.6,虽然乘以 5,但结果并没有保存起来
result = (int)(result + 0.5) // result == 5
最后的加 0.5 是一个很实用的小技巧,用于转化为整数后实现四舍五入
写一个程序,统计用户输入的字符串中,各个元音字母出现的次数(包含大小写的 a、e、i、o、u)
while ((ch = getchar()) != '\n')
表示循环读入字符,直到读到回车符结束循环
我们对素数的求解思路进行再度简化。
写一个凯撒加密程序。
写一个凯撒加密程序。版权属于:
#i+K=q{D13|tgCo%fXJu$Ram(6Gc
科普:Powered by
2]s O=ve#b`H%1'WQcnixJ308<:pA~
在密码学中,恺撒密码(或称恺撒加密、恺撒变换、变换加密)是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
例如,当偏移量是 3 的时候,所有的字母 A 将被替换成 D,B 变成 E,以此类推。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。
要求:用户输入一行明文(字符串),针对字母进行加密(偏移量设置为 3),非字母部分保留原型。_(o[*Gy?
TfsL.51&#GWhwRQP%4}i_XIO
注意:字母 y 应该被替换为字母 b,而字母 z 应该被替换为字母 c。.:]%dfuy
Epo.PnxuU'Q*:(lIM{!9;y
程序实现如图:Powered by
omR?x^dCc8VEe,X5w4HhT1J`+
#include <stdio.h>
int main()
{
int ch;
printf("请输入明文:");
while ((ch = getchar()) != '\n')
{
if (ch >= 'a' && ch <= 'z')
{
putchar('a' + (ch - 'a' + 3) % 26);
continue;
}
if (ch >= 'A' && ch <= 'Z')
{
putchar('A' + (ch - 'A' + 3) % 26);
continue;
}
putchar(ch);
}
putchar('\n');
return 0;
}