¡Entra el maestro del lenguaje C! Explique la respuesta a la pregunta sobre el lenguaje del caso de cambio.
int x=0, y=2, z = 3;
Interruptor (x)
{
Caso 0:
Cambiar (y==2)
{
caso 1:printf(" * "); break;
Caso 2: printf(" % "); descanso;
}
Caso 1: cambiar (z)
{
caso 1:printf (" ");
Caso 2: printf(" ");
Caso 3: printf(" # "); p> p>
main()
{
//2473
//668977
int c; p>
mientras((c=getchar())!='\n ')
{switch(c-'2 ')
{
Caso 0:
Caso 1: putchar(c+4);
Caso 2: putchar(c+4);
Caso 3 : putchar (c+3);
Valor predeterminado: putchar(c+2);
}
}
printf( " \ n ");
}
Pregunta 1:
Debido a que el resultado de switch(y==2) es verdadero, el valor real en C es 1, así que ejecuta.
caso 1:printf(" * ");
Break //Salga del interruptor más cercano.
Continuar ejecutando
Caso 1: switch(z)//El valor de z es 3, luego ejecuta el caso 3: printf(" # ");
El resultado final es: * #
Pregunta 2:
El programa sale cuando encuentra '\n', ingresa el carácter '2' y los números 0-9 en la tabla de códigos ASCII son adyacentes. Entonces se puede usar aquí como un valor numérico.
Entrada 2, el resultado del cambio (c-'2') es 0. Cuando el conmutador no encuentra una interrupción y finaliza, continuará ejecutándose, por lo que debería generar 66.
Ingrese 4, el resultado del cambio (C-'2') es 2 y luego ejecútelo directamente.
Caso 2: putchar(c+4); break; salida (' 4'+'4'): 8
Entrada 7, interruptor (c-'2 ') El el resultado es 5. Como no existe el caso 5, se ejecuta el valor predeterminado default:putchar(c+2). Break; salida(' 9'+'2'):9
Entrada 3, el resultado del cambio (c-'2') es 1. implementar.
Caso 1: putchar(c+4);
Caso 2: putchar(c+4); encuentra una interrupción para finalizar el cambio, por lo que genera: 77.
Se ha explicado detalladamente más arriba. Si aún no lo entiendes, puedes agregarme a Baidu.