break语句和continue语句

 

 

请问语句 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;
}

 

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倦504

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值