Examen de Programación I

Documentos relacionados
SESIÓN DE EJERCICIOS E4

SESIÓN DE EJERCICIOS E3

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio.

TRABAJO PRÁCTICO N 4 Ejercicios 3

Esquema de un programa en C: bloques básicos

OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.

Bloque 4. La descomposición funcional y el diseño descendente

Programación. Test Autoevaluación Tema 3

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

El lenguaje de Programación C. Fernando J. Pereda

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

LENGUAJE. Tema 1 - Introducción

Se guardan en archivos con extencion c y los cabezales con extension h

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

1. Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden ascendente.

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

TécniquesInformàtiques PRÀCTICA 6 (2 Sessions) Curs

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura.

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Fundamentos de programación

8.1 Un primer bucle FOR Varias formas de utilizar el bucle FOR Calcular el factorial de un número mediante un bucle FOR...

Prof. Dr. Paul Bustamante

Examen Principios de Programación Febrero 2012

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Informática FACULTAD DE FÍSICAS

1. Qué se muestra en pantalla si se ejecutan las siguientes sentencias (suponiendo que el resto del programa que no se presenta es correcto)?

Titulo: Suma de N primeros números

Escuela Politécnica Superior de Elche

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN

Arrays y Cadenas en C

Lección 2 Introducción al lenguaje C

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

Prof. Dr. Paul Bustamante

Introducción a la programación orientada a objetos

1 Estructura básica de un programa C++

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Problemas de Redes de Computadores. Conjunto de problemas 1

#include <stdio.h> /* Factorial de un número - versión 1- */

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Estructuras de Datos Declaraciones Tipos de Datos

Sistemas Operativos Práctica 3

ARCHIVOS. 1. Introducción. 2. Definición de archivo. 3. Archivos de acceso secuencial. 4. Gestión de un archivo secuencial de estructuras

Estructuras de Repetición (Hacer-Mientras)

Informática I. While & do While

Estructura de Datos. TDA: Listas. Primer Semestre, Indice. Tipos de estructura de datos lineales

Estructuras de repetición

Programación 2. Pruebas para la evaluación voluntaria de la asignatura. Grado en Ingeniería Informática. Curso

Tema 13: Apuntadores en C

Programación en C. (Segunda Parte) DATSI, FI, UPM José M. Peña. Programación en C

Contenido. Capítulo 1. Introducción a lenguaje C 1

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

FUNDAMENTOS DE PROGRAMACIÓN

Lenguaje C Bucles, Condicionales, operadores y Algoritmos.

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

EJEMPLOS DE PROGRAMACIÓN DE FUNCIONES EN C: Página 1 de 5

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

SOLUCION EXAMEN junio 2006

Introducción al tipo de dato ARRAY

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Prof. Dr. Paul Bustamante

Elementos de un programa en C

Prof. Dr. Paul Bustamante

sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)

Programación En Lenguaje C

Instituto Politécnico Nacional

Curso 0 de Informática

Funciones. Parámetros por valor

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres

Pregunta 1 Es correcta esta definición? Por qué?

El concepto de función en programación se fundamenta en el concepto de función matemática 1

SQL Embebido. Introducción (I)

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

1. Ejemplo de clase: La clase Disco 2. Ejemplo de clase: La clase Colección. 3. Relación entre clases: Clientismo

Tema: Arreglos de Objetos en C++.

Examen escrito de Programación 1

Modelos de Computación I. Ingeniería Informática

TIPOS DE DATOS BASICOS EN LENGUAJE C

#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión );

Prof. Dr. Paul Bustamante

Ejercicios de evaluación de fundamentos de programación en Java

Programación en C+ +/ Funciones

Reglas básicas de la programación en lenguaje C

Programación en C++/Funciones

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

Tema 9. Vectores y Matrices

Transcripción:

Tiempo disponible: 100 minutos Examen de Programación I Convocatoria de Diciembre 2006 Permutación 1 Puntuación: sobre 20 puntos - las respuestas acertadas suman 1 punto - las respuestas falladas restan 0.25 - las preguntas sin responder ni suman ni restan Datos personales que debéis rellenar en la hoja de examen: - Con letras, el cuadro superior: estudi, data, nom, cognoms, assignatura y grup (de teoría) - Marcando las casillas, y también con letras: - DNI - Centre: 337 - Assignatura: 12406 - Parcial: dejadlo en blanco - Permutació: 1 - Grup: 01 ó 02 (grupo de teoría) - En el último cuadro: el NIA, comenzando con tres ceros, por ejemplo 00012345 Cómo rellenar las respuestas : - El número de pregunta es el que aparece a la derecha de las casillas y se corresponde con un bloque con dos filas - De estas dos filas, tenéis que rellenar la primera (con un número impar). La segunda (con un número par) sirve para anular la respuesta - Recordad que debéis rellenar la casilla completa - Mejor con bolígrafo negro o lápiz oscuro (nº 1 ò 2). No uséis típex! 1. Indica cuál de las siguientes expresiones es verdadera si y sólo si un valor real x está en el intervalo cerrado [3.0,6.0]: a) (x>=3.0) (x<=6.0) b) (x>3.0) && (x<6.0) c)! ( (x<3.0) && (x>6.0) ) 2. Indica qué valor se escribe cuando se compila y ejecuta el siguiente programa: void int x=1, y=0; if (x > y) y = 4; if (y = x) y = y + 1; else y = y - 1; printf("%d",y); a) 1 b) 2 c) 3 d) 4

3. Indica cuántas iteraciones del bloque se realizan al ejecutar el siguiente bucle: for (i=1 ; i<5 ; i=i+1) for (j=i ; j<=6 ; j=j+2) /* bloque*/ a) 10 b) 12 c) 15 d) 24 4. Indica qué valores se escriben cuándo se compila y ejecuta el siguiente programa: int f1(int x) x=x*x; return x; int f2(int x, int y) y = y * y; return x * y; int x = 2, y = 3, a, b; a = f1(x); b = f2(y,a); printf("%d, %d, %d, %d", x, y, a, b); a) 2, 3, 4, 36 b) 2, 3, 4, 48 c) 4, 9, 4, 48 5. Indica qué valor se escribe cuando se compila y ejecuta el siguiente programa: int f1(int x) return x+1; int f2(int x, int y) return x + y; int x = 2, y = 5; printf("%d, %d", f2(f1(y),f1(x))); a) 7 b) 8 c) 9

6. Indica qué se escribe cuándo se compila y ejecuta el siguiente programa: #define N 10 int v [N] = 10, 20, 30, 40, 50, 60, 70, 80, 90, 100; int x = 1; while (x < N) if (v[x]%30 == 0) v[x]=0; x++; for(x=n-1; x >= 0; x--) if (v[x] == 0) v[x] = v[x+1]; printf("%d, ", v[x]); a) 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, b) 100, 100, 80, 70, 70, 50, 40, 40, 20, 10, c) 100, 0, 80, 70, 0, 50, 40, 0, 20, 10, d) Se produce un error en tiempo de ejecución 7. Indica qué se escribe cuando se compila y ejecuta el siguiente programa: #define N 6 int v1 [N] = 6, 5, 4, 3, 2, 1; int v2 [N] = 0, 1, 2, 3, 4, 5; int x; for(x=0; x < N; x++) printf("%d, ", v2[v1[x]-1]); a) 0, 1, 2, 3, 4, 5, b) 6, 5, 4, 3, 2, 1, c) 5, 4, 3, 2, 1, 0, 8. Indica qué se escribe cuando se compila y ejecuta el siguiente programa: #define N 3 int m[n][n] = 1, 2, 3, 4, 5, 6, 7, 8, 9; int x, y; for(x=1; x < N; x++) for(y=0; y < N; y++) if (m[x][y]%2==0) m[x][y] = m[x][y] + m[x-1][y]; printf("%d, %d, %d, ", m[0][0], m[0][1], m[0][2]); printf("%d, %d, %d, ", m[1][0], m[1][1], m[1][2]); printf("%d, %d, %d, ", m[2][0], m[2][1], m[2][2]); a) 1, 2, 3, 4, 5, 6, 7, 8, 9, b) 1, 2, 3, 1, 5, 3, 7, 5, 9, c) 1, 2, 3, 5, 5, 9, 7, 13, 9,

9. Indica qué se escribe cuando se compila y ejecuta el siguiente programa: #define N 3 int m[n][n] = 1, 2, 3, 4, 5, 6, 7, 8, 9; int x, y; for(x=1; x < N; x++) for(y=0; y < N; y++) if (m[x-1][y]%2==0) m[x][y] = m[x][y]*2; printf("%d, %d, %d, ", m[0][0], m[0][1], m[0][2]); printf("%d, %d, %d, ", m[1][0], m[1][1], m[1][2]); printf("%d, %d, %d, ", m[2][0], m[2][1], m[2][2]); a) 1, 2, 3, 4, 5, 6, 7, 8, 9, b) 1, 2, 3, 4, 10, 6, 14, 16, 18, c) 1, 2, 3, 4, 4, 6, 8, 8, 12, 10. Indica qué se escribe cuándo se compila y ejecuta el siguiente programa: #include <string.h> char cadena[100] = "abcdefghij"; strcpy(cadena,"aeiou"); strcat(cadena,"xyz"); cadena[strlen(cadena)/2] = '\0'; cadena[strlen(cadena)-1] = '*'; printf("%s", cadena); a) aei* b) abcdefgh* c) aeiouxy* d) aeio\0xy* 11. Dado el siguiente programa, indica la respuesta correcta: void int v[2]=5,5; int *p, *q; p = v; q = p; v[1] = *p + v[0]; *q = *q + *p; printf("%d, %d", v[1], v[0]); a) Escribe 10, 10 b) Escribe 10, 15 c) Escribe 15, 10 d) Se produce un error

12. Dado el siguiente programa, indica la respuesta correcta: #include <stdlib.h> int *a, *b, *c; a = (int *) malloc(sizeof(int)); *a = 3; b = a; *b = 2; c = b; *c = *b - *a; printf("%d, %d, %d", *a, *b, *c); a) Escribe 3, 2, 1 b) Escribe 3, 2, -1 c) Escribe 0, 0, 0 13. Dado el siguiente programa, indica la respuesta correcta: #include <stdlib.h> int *p, *q, *r; p = (int *) malloc(sizeof(int)); q = (int *) malloc(sizeof(int)); r = (int *) malloc(sizeof(int)); *p = 10; *q = *p; *q = *p * 10; *r = *q * 10; r = p; printf("%d, %d, %d", *p, *q, *r); a) Escribe 10, 100, 1000 b) Escribe 10, 100, 10 c) Escribe 100, 100, 1000 d) Escribe 100, 100, 100 14. Dado el siguiente programa, indica la respuesta correcta: int a; void f(int *x, int y) a = a * 2; *x=*x * y; int b=1; a = 1; f(&b, a); printf("%d, %d", a, b);

a) Escribe 1, 1 b) Escribe 2, 1 c) Escribe 1, 2 d) Escribe 2, 2 15. Dado el siguiente programa, indica la respuesta correcta: int f1(int *a) *a = *a * *a; return *a; void f2(int *a,int *b) *b = f1(a) * f1(b); int a=2,b=2; f2(&a,&b); printf("%d, %d",a,b); a) Escribe 2, 2 b) Escribe 2,16 c) Escribe 2, 4 d) Escribe 4, 16 16. Tenemos el siguiente programa y dos ficheros f1.txt (que contiene el texto caracola1 ) y f2.txt (que contiene el texto caracola2 ). Suponiendo que no hay ningún error abriendo los ficheros, indica la respuesta correcta: FILE *f1,*f2; char c=' '; f1=fopen("f1.txt","r"); f2=fopen("f2.txt","a"); if ((f1==null) (f2==null)) printf("error abriendo los ficheros\n"); else while (c!=eof) c=getc(f1); fprintf(f2,"%c%c", c, c); c=getc(f1); fclose(f1); fclose(f2); a) El fichero f1.txt acaba conteniendo el texto caracola1, y f2.txt el texto caracola2 b) El fichero f1.txt acaba conteniendo el texto caracola1, y f2.txt el texto caracola2ccrrccll11 c) El fichero f1.txt acaba conteniendo el texto caracola1, y f2.txt el texto ccrrccll11

17. Tenemos el siguiente programa y un fichero f.txt, cuyo contenido es caracola. Suponiendo que no hay ningún error abriendo el fichero, indica la respuesta correcta: void muestra(file *f) char c = ' '; while ((c = getc(f))!=eof) fprintf(stdout, "%c",c+2); void FILE *f; f=fopen("f.txt","r"); muestra(f); fclose(f); a) Escribe caracol por pantalla b) Escribe ectceqnc por pantalla c) Escribe caracola por pantalla d) Se produce un error al llamar a la función muestra 18. Tenemos el siguiente programa y un fichero f.txt, cuyo contenido es 123456. Suponiendo que no hay ningún error abriendo el fichero, indica la respuesta correcta: void FILE *f; char c1; int c2; f=fopen("f.txt","r"); while (!feof(f)) fscanf(f, "%c%d", &c1, &c2); printf("%c-%d", c1, c2); a) Escribe 1-2-3-4-5-6 por pantalla b) Escribe 1-23456 por pantalla c) Escribe 1-23-45-6 por pantalla

19. Dado el siguiente programa, indica la respuesta correcta: #include <stdlib.h> struct punto int x; int y; ; void struct punto *p1, *p2; p1 = (struct punto *)malloc(sizeof(struct punto)); p2 = p1; (*p1).x=10; (*p1).y=(*p1).x; printf("%d, %d", p2->x, p2->y); a) Escribe 10, 10 b) Escribe 0, 0 c) Se produce un error en la línea printf("%d, %d", p2->x, p2->y); d) Se produce un error en la línea (*p1).x=10; 20. Se necesita una función misterio que intercambie dos valores enteros y devuelva el mayor de ellos. El intercambio debe tener efecto no sólo en el contexto de la función misterio sino también en el de las funciones que le llamen. Cuál de los siguientes prototipos de función sería el adecuado? a) int misterio(int *a, int *b); b) void misterio(int *a, int *b, int *c); c) float misterio(int *a, int *b); d) int misterio(int a, int b);