03-03-2013, 14:29
Hola! Tengo unas preguntas si alguien me puede ayudar, con algunos ejercicios de finales de sintaxis, muchas gracias!!
1) Sea la funcion ANSI C:
unsigned int XX (const char *s, int c)
{
unsigned int i, n;
for(i=n=0 ; s[i]!='\0' ; i++) if(s[i]==c) n++; return n;
}
Cantidad de palabras reservadas: 10
Cant de Identificadores: 15
Cant de constantes: 2
Cant de otros lexemas: 26 POR QUE DA ESTO?
Cant de ungetc que realiza scanner: 29 POR QUE DA ESTO?
2) Sea inta=3; Por que la expresion ++7 * a es semanticamente incorrecta?
3)Cual es la salida y que numero retorna el siguiente programa en ANSI C:
#include <studio.h>
int main(void) {
int i=2, *pi=&i;
printf("%.1f\\n", 1+*pi);
return i++;
}
Salida: 3.0\n POR QUE? No seria 3.1f\ lo que muestra?
Retorna: 2 POR QUE? No seria 3 la salida, si i=2 y se retorna i++?
4) Describa la semantica de la funcion segun Pratt de la funcion ANSI C:
int XX (double z) { if (4) printf("1234"); else printf("0"); return14; }
RTA: Muestra por pantalla 1234 y retorna 14. No se que estoy entendiendo mal, pero cuando hace el if(4), eso devuelve un false, y no deberia imprimir nada.
Se agradece!!
1) Sea la funcion ANSI C:
unsigned int XX (const char *s, int c)
{
unsigned int i, n;
for(i=n=0 ; s[i]!='\0' ; i++) if(s[i]==c) n++; return n;
}
Cantidad de palabras reservadas: 10
Cant de Identificadores: 15
Cant de constantes: 2
Cant de otros lexemas: 26 POR QUE DA ESTO?
Cant de ungetc que realiza scanner: 29 POR QUE DA ESTO?
2) Sea inta=3; Por que la expresion ++7 * a es semanticamente incorrecta?
3)Cual es la salida y que numero retorna el siguiente programa en ANSI C:
#include <studio.h>
int main(void) {
int i=2, *pi=&i;
printf("%.1f\\n", 1+*pi);
return i++;
}
Salida: 3.0\n POR QUE? No seria 3.1f\ lo que muestra?
Retorna: 2 POR QUE? No seria 3 la salida, si i=2 y se retorna i++?
4) Describa la semantica de la funcion segun Pratt de la funcion ANSI C:
int XX (double z) { if (4) printf("1234"); else printf("0"); return14; }
RTA: Muestra por pantalla 1234 y retorna 14. No se que estoy entendiendo mal, pero cuando hace el if(4), eso devuelve un false, y no deberia imprimir nada.
Se agradece!!