有以下程序 #include main() { char c; while( ( c=getchar() )!= ’\n’ ) { switch( c-’2’ ) { case 0 : case 1 : putchar( c+4 ); case 2 :

admin2019-08-18  21

问题 有以下程序
#include
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

答案A

解析 字符常量与其ASCII码值一一对应,在计算的时候,一般是字符数据对应的ASCII码参与运算。本程序的逻辑是如果输入的字符不为<回车>,判定表达式"c-?2?"的值,如果表达式的值为0或者1,即输入的字符为?2?、?3?时,输出两遍c+4对应的字符;输入的字符为?4?时,输出一遍c+4对应的字符;输入的字符为?5?,输出c+3和c+2对应的字符;输入的字符为?7?时,输出c+2对应的字符,所以答案选A。
转载请注明原文地址:https://jikaoti.com/ti/Ruf0FFFM
0

最新回复(0)