非欧切尔 2022-11-10 15:17 采纳率: 90.4%
浏览 34
已结题

下面这个程序是什么意思呀?谁来解释一下

有以下程序

#include <stdio.h>

main()

{

char  c;

while( ( c=getchar() )!= '\\n' )

{

    switch( c-'2' )

    {

    case  0  :

    case  1 :

        putchar( c+4 );

    case  2 :

        putchar( c+4 );

        break;

    case  3 :

        putchar( c+3 );

    default :

        putchar( c+2 );

        break;

    }

}

printf( "\\n" );

}

程序运行后从第一列开始输入以下数据

2473<回车>

程序的输出结果是()。

A

668977
B

4444
C

6677877
D

68766 
  • 写回答

5条回答 默认 最新

  • a5156520 2022-11-10 15:26
    关注

    这个程序的意思是输入字符,然后在swith里面匹配case打印字符,答案是选A,具体过程如下:

    首先,第一个数字2,进入switch(),用数字字符'2'-数字字符'2'来匹配case,匹配到case 0 , 就打印字符 '2'+4 = '6' ;然后因为case0 和case 1 公用的putchar(c+4)后面没有break,所以继续往下执行case 2, 这里打印 '2'+4='6', 这里有break停止往下执行,开始判断下一个字符;

    然后,第二个数字4,'4'-'2'=2,配到到case 2, 打印'4'+4 =8 ,然后执行break,停止往下执行,开始判断下一个字符;

    接着,第三个数字7 ,'7'-'2'=5, case都不匹配,执行default ,打印 '7'+2 ='9' ,然后开始判断下一个字符;

    接着,第四个字符3 ,'3'-'2'=1, 匹配到case 1 ,打印'3'+4 = '7' ,没有break,继续往下执行,执行case 2 , 打印 '3'+4='7'.

    最后,是输入数字后面有个换行符,while循环条件不满足,程序结束。

    打印的数字依次是:668977 , 所以,答案选A。

    #include <stdio.h>
    
    main()
    
    {
    
    char  c;
     
    while( ( c=getchar() )!= '\n' )
     
    {
     
        switch( c-'2' )
        {
        case  0  :
        case  1 :
            putchar( c+4 );
        case  2 :
            putchar( c+4 );
            break;
        case  3 :
            putchar( c+3 );
        default :
            putchar( c+2 );
            break;
        }
    }
     
    printf( "\n" );
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题