PUERTA | GATE-CS-2016 (Conjunto 1) | Pregunta 22

Considere el siguiente programa en C.

void f(int, short);
void main()
{
  int i = 100;
  short s = 12;
  short *p = &s;
  __________ ;   // call to f()
}

¿Cuál de las siguientes expresiones, cuando se coloca en el espacio en blanco de arriba, NO dará como resultado un error de verificación de tipo?

(A) f(s, *s)

(B) i = f(i,s)
(C) f(i,*s)
(D) f(i,*p)

Respuesta: (D)
Explicación: i es un número entero y *p es el valor de un puntero a corto.

1) La opción 1 es incorrecta porque estamos pasando «*S» como segundo argumento, verifique que S no sea una variable de puntero. Entonces, error
2) La segunda opción es que estamos tratando de almacenar el valor de f (i, s) en i pero mire la definición de función fuera de main, no tiene tipo de retorno. Simplemente es nulo, por lo que la asignación es incorrecta. Entonces, error
3) La opción 3 es incorrecta por la misma razón por la que la opción 1 es incorrecta
4) Entonces, la opción d es correcta.

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *