Preguntas en lenguaje C de nivel 2 de computadora, ¡responda y explique! Gracias

#include lt;stdio.hgt;

#define MAXLEN 80

int main(void)

{

int k=0, número=0;

char str[MAXLEN]

while((str[k]=getchar())!='#')

k ;

str[k]='\0'

para(k=0; str[k]; k )

if(str[k]gt;='0'amp;amp;str[k]lt;='9'||str[k]=='A'||str[k]=='B ')

if(str[k]gt;='0'amp;amp;str[k]lt;='9')

número=número*12 str[ k]-'0';

else if(str[k]=='A'||str[k]=='B')

número=número*12 str[k]-'A' 10;

else ; /*Línea 15*/

else break; /*Línea 16*/

printf( "d\n",número);

devuelve 0;

}

----El análisis es el siguiente----

Pregunta 17

El programa ingresa 10#,

El número del primer paso=0*12 1=1

El número del segundo paso=1 * 12 0=12

Pregunta 18

Entrada del programa 1a0#

El número del primer paso=0*12 1=1

Debido a que a no está dentro del rango de A y Z, el bucle salta. En este momento, número = 1

Pregunta 19, línea de modificación del programa 16

Entrada del programa a*. 0#

Debido a que ni a ni * están dentro del rango de 0 a 9, A y B, el valor numérico no se puede calcular

Entonces número=0*12 0=0

No.Pregunta 20, el programa elimina la línea 15 y restaura la línea 16

La función en este momento es similar a la de la pregunta 19, porque de lo contrario no se ejecutará LZ; analizarlo por sí mismo

El primer paso: num=0*12 1=1

El segundo paso: num=1*12 6=18

El tercer paso: num=18*12 0=216

LZ piénsalo detenidamente. . .