Nombre: Apellidos: Número de matr´ıcula: Firma: UNIVERSIDAD DE

Anuncio
Nombre:
Apellidos:
Número de matrı́cula:
Firma:
UNIVERSIDAD DE CONCEPCIÓN
Departamento de Ingenierı́a Informática y Ciencias de la Computación
Facultad de Ingenierı́a
INF 503208 (Lenguaje de Programación I)
Profesor: L. Ferres
Certamen 1
Mayo de 2011
Duración: 2 horas
No se permite el uso de ningún material extra.
Este certamen consiste de 4 páginas y 10 problemas/preguntas. Si hay discrepancias entre
éstos números y lo que se le entregó efectivamente, hágaselo saber al encargado del certamen.
El número entre corchetes al empezar cada pregunta/problema, es la cantidad de puntos que
vale esta pregunta.
Conteste las 9 primeras preguntas.
El bonus da 10 puntos más a contar para el otro certamen.
Página 1 de 4
page 2
1. [10] Identifique 4 errores en el siguiente código (el programa busca los divisores de un
número):
#include <stdio>
int main(){
int numero;
for(i=0;i<numero;i++) {
if((numero%i)!=0)printf("%d es divisor de %d\n",i,numero);
}
return 0;
}
2. [10] Qué imprime este programa, una vez ejecutado?
#include <stdio.h>
int v=5;
void func1 (int x) {
int z = x;
printf("%d\n", z*v);
}
int func2(int x) {
x = v;
return x;
}
int main () {
int v;
v=7;
printf("%d\n", v);
func1(v);
v=func2(v);
printf("%d\n", v);
return 0;
}
page 3
3. [10] Ustedes lo pidieron! Este problema requiere el conocimiento previo de [^a], que
scanea hasta encontrarse un caracter ‘a’. Si el input para el programa es: “Hola
mundo!”, qué imprime?
#include <stdio.h>
int main(){
char str1[100],str2[100];
scanf("%[^a]%s",str1,str2);
printf("%s %s\n",str1,str2);
return 0;
}
4. [10] Este programa tiene 4 errores de sintaxis. Encuéntrelos. El programa deberı́a
imprimir “Hola,\tmundo”.
#include <stdio.h>
int main(){
char str[10] = "und";
printf("H");
printf("&c","o");
printf("%s",’la,\tm’);
printf("%s",&str);
printf("o\n");
return 0;
}
5. [5] Entregue el output de este programa:
#include <stdio.h>
void func(int x){
printf("%d ",x/2);
printf("%d ",x%2);
if(x > 0) func(x/2);
}
int main(){
func(11);
printf("\n");
return 0;
}
6. [15] Conteste las siguientes preguntas:
(a) Nombre a lo menos 5 nombres prohibidos para variables en C.
page 4
(b) En una arquitectura de computador usual, cuánto espacio en la memoria utilizan
las variables tipo: int, char, short?
(c) El código asociado a la sentencia lógica if(valor) se ejecuta cuando valor es
cierto. En C, todos los valores, incluyendo verdadero y falso se representa con
números enteros. Cuáles son los valores convencionales de verdadero y falso en
C?
(d) La libreria standard input/output (stdio.h) es la más usada al momento de
programar en C, pero no es la única. Nombre a lo menos otras 3 librerias que
puedan ser utilizadas en C.
(e) Cuál es la diferencia entre pasar una variable por valor o por referencia?
7. [10] Qué imprime el siguiente programa?
#include <stdio.h>
int main() {
int a,b,c;
a = 1;
b = 2;
c = 3;
printf("%d %d %d\n",(a<b),(b==c),(c>a));
return 0;
}
8. [20] Escriba un programa completo que obtenga un entero por consola, y que devuelva
si el entero es positivo o negativo. Haga esto último escribiendo la función es pos(int
i).
9. [10] Declare un arreglo de 10 elementos, almacene el ı́ndice mas 1 en cada uno de ellos,
e imprmalos.
10. [10] [Bonus] Escriba un programa que imprima en consola un triángulo rectángulo
isosceles de alto n, usando la función putchar. Por ejemplo, si n = 6, entonces el
triángulo se verı́a ası́:
*
**
***
****
*****
******
Fin del certamen
Total de páginas: 4
Total de puntos: 110
Descargar