Programación. Test Autoevaluación Tema 3

Documentos relacionados
Programación. Ejercicios Tema 3. Elementos Básicos del Lenguaje C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación. Test Autoevaluación Tema 4

Tema 13: Apuntadores en C

Elementos de un programa en C

TEMA 3. ELEMENTOS BÁSICOS DEL LENGUAJE C

Apuntadores (Punteros)

OPERADORES Y EXPRESIONES

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Funciones Definición de función

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.

PUNTEROS (APUNTADORES)

Programación. Ejercicios Tema 3. Elementos Básicos del Lenguaje C

Tipos de datos y Operadores Básicos

ESTRUCTURAS. Struct Identificador_ tipo_estructura { Tipo miembro_1; /*Declaración de los miembros*/

INICIACIÓN A LA PROGRAMACIÓN EN C

Lenguajes de programación

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Tema 05: Elementos de un programa en C

Lenguaje de programación C. Introducción

Introducción a la Programación

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

INTRODUCCIÓN AL LENGUAJE C

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.

REPRESENTACIÓN DE DATOS

TIPOS DE DATOS BASICOS EN LENGUAJE C

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Fundamentos de Programación 2017-I

SESIÓN DE EJERCICIOS E1

Punteros y Memoria Dinámica I

Laboratorio de Arquitectura de Redes. Introducción al lenguaje C

Programación en Lenguaje C

CAPITULO 4: ENTRADA Y SALIDA DE DATOS.

LENGUAJE. Tema 4 Vectores, Matrices y Cadenas de caracteres.

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Lección 2 Introducción al lenguaje C

Tema 4. Operadores y Expresiones

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Tipos de Datos. Tipos de Datos Simples Estándar

Programación En Lenguaje C

Autoestudio 2: Variables y Operadores

WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)

El operador contenido ( ) permite acceder al contenido de

Unidad I Tipos de Datos en C

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C

Capitulo 2. Programación Modular

Para crear un arreglo de cualquier tipo de elementos la sintaxis es:

Cursosindustriales. Curso de C / C++ Por Deimos_hack

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Lenguaje de Programación: C++ Directivas al preprocesador

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

Tipos de datos y operadores en C++

ESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Tema 1: Introducción a C

TEMA 4. ESTRUCTURAS DE CONTROL

Punteros. Programación en C 1

PUNTEROS EN C (APUNTADORES)

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Descripción de un Programa

Tema 6: Memoria dinámica

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Repaso de lenguaje C. Índice. Repaso de lenguaje C. Repaso de lenguaje C: Tipos básicos

Curso de Java Introducción a la Programación II

SESIÓN DE EJERCICIOS E1

Tipos de Datos en C. Palabras reservadas en C

Tema#2. Tipos de Datos 10

Programación Orientada a Objetos

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

RESEÑA DE LENGUAJE C

Desarrollo de Programas. Prof. Lisbeth C. Pérez Rivas

El lenguaje C. 1. Identificadores, constantes y variables

Expresiones Aritméticas

Variables, expresiones y sentencias

Estructuras de datos: vectores en C. Clase 7 y 8 Introducción a la Computación Patricia Borensztejn

Programación de Videojuegos Tema 15 Tipos de Dato I. 15. Tipos de Dato I

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Apuntadores en C y C++

Tema 18: Memoria dinámica y su uso en C

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Introducción a la Programación en C Funciones

Estructuras de Datos Estáticas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

PSEUDOCODIGO, DIAGRAMAS DE FLUJO Y ALGO DE C

Fundamentos de Programación 2017-I

Tipos Básicos de Datos en C

Programación. Ejercicios Tema 6 Tipos de Datos Estructurados: Vectores y Matrices

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Transcripción:

Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro

SOLUCIONES 1. Dado el siguiente código en lenguaje C, señale la afirmación correcta: int main(void) { float num, *res; printf ("Introduzca un numero:\n"); scanf("%f", &num); res = 2*num; printf("%f", *res); a. El programa tiene un error que se detecta en tiempo de compilación (no compila) Verdadero. La variable res es un puntero a una variable de tipo float. Al ser un puntero sólo puede almacenar direcciones de memoria. Al intentar asignar a res el valor 2*num (float) se produce un error de compilación (tipos incompatibles). b. La variable res almacena el doble del valor de num c. El programa muestra en pantalla el valor acumulado en la variable res d. El programa muestra por pantalla la dirección de la variable res 2. Dada la siguiente lista de elementos del lenguaje C: define, main, +, *, podemos decir que: a. Todos son operadores. Falso: define y main son palabras clave o palabras reservadas de C. Por su parte "+" y "*" son, respectivamente, el operador suma y multiplicación b. Los dos primeros son palabras clave y tienen un significado especial para el compilador. Verdadero c. Solo los dos últimos pertenecen al léxico de C. Falso. El léxico de C se corresponde con los elementos básicos con los que se construyen los programas. Entre estos elementos se incluyen las palabras clave y los operadores. Por tanto, los cuatro términos que componen la lista pertenecen al léxico de C. d. Los dos primeros son identificadores. Falso. Los identificadores se corresponden con el nombre dado a las variables y funciones definidas por el programador. 2

3. Un puntero a. es una variable cuyo valor es una dirección de memoria. Correcto b. es una variable que almacena cualquier valor menor que la memoria (en MB) del disco duro. Falso. Las direcciones almacenadas en un puntero son direcciones de la Memoria Principal. c. no es una variable pero almacena cualquier valor menor que la memoria (en MB) del disco duro. Falso. Los punteros son variables. d. no es una variable ya que almacena un valor que es una dirección de memoria. Falso 4. Indique cuál de las siguientes opciones no se corresponde con un tipo de datos en C: a. char. Verdadero. Es el tipo de datos usado para almacenar caracteres alfanuméricos. b. float Verdadero. Es el tipo de datos usado para almacenar números reales en coma flotante con precisión simple. c. Null. Falso. NULL es una macro definida en los archivos de cabecera stdef.h, stdio.h, stdlib.h y string.h que se usa para inicializar un puntero cuando queremos que "no apunte a ningún sitio". d. void. Verdadero. Es un tipo "especial" de datos que se utiliza para indicar que una función no tiene argumentos, que no devuelve ningún valor o para crear punteros genéricos. 5. Indique cuál de los siguientes tipos de datos es estructurado: Solución: Los tipos de datos estructurados tienen una estructura interna con la que es posible incluir, bajo un mismo tipo, varios elementos. En este grupo se incluyen: las cadenas de caracteres, los vectores y matrices y las estructuras o registros. Por tanto la opción correcta es la a a. Cadenas de caracteres. b. Enteros (numéricos). c. Reales (numéricos). d. Caracteres. 6. Indique el resultado del siguiente programa en C: int a = 5, b = 3; float c = 0; c = a/b; printf(" %d entre %d es: %f", a, b, c); Solución: Dado que a y b son variables enteras el resultado de su división también será un valor entero: en este caso 1. Al asignar a c (float) un valor entero (1) se 3

produce una conversión de tipos. En este caso, 1 se transforma a real añadiendo una parte decimal en la que todos los elementos son cero. Por tanto el resultado del programa será el indicado en la opción a. a. 5 entre 3 es: 1.000000 b. 5 entre 3 es: 1 c. 5 entre 3 es: 1.666666 d. Se produce un error por el tipo de datos de la variable c. 7. Indique el resultado del siguiente programa en C: int a = 0; int *p_a; a = 5; p_a = &a; a = a+20; printf("%d", *p_a); Solución: "p_a" es un puntero a una variable de tipo entero. La instrucción "p_a=&a" asigna a "p_a" la dirección de memoria en la que está guardada la variable "a".a partir de este momento, "*p_a" es equivalente a "a". Tras ejecutar la sentencia "a = a+20", "a", y por tanto "*p_a" toman el valor 25. Por tanto, la respuesta correcta es la b. a. 5 b. 25 c. 0 d. Se produce un error de compilación. 8. Indique qué realiza el siguiente programa en C: int a = 0; int *p_a; p_a = &a; printf("%p", p_a); Solución: Al igual que en el ejercicio anterior, "p_a" es un puntero a una variable de tipo entero. La instrucción "p_a=&a" asigna a "p_a" la dirección de memoria en la que está guardada la variable "a". Sin embargo, en este caso, lo que se muestra por pantalla es el valor de la variable puntero, es decir, la dirección de memoria en 4

la que se encuentra almacenada la variable "a" Por tanto, la respuesta correcta es la b. a. Muestra el valor de la variable a (es decir, 0). b. Muestra la dirección en la que está almacenada la variable a. c. Se produce un error de compilación porque no se pueden imprimir direcciones del disco duro por pantalla. d. Se produce un error de compilación porque la asignación de la dirección de la variable a es errónea. 9. Indique cual de las siguientes afirmaciones es verdadera: a. Una variable de tipo "int" puede almacenar valores negativos. Verdadero. Las variables de tipo entero almacenan valores enteros tanto positivos como negativos. b. Una variable de tipo "float" no puede almacenar valores enteros. Falso. Una variable de tipo float puede almacenar valores enteros (valores cuya parte decimal es 0)- c. La sentencia char letra=b asigna a la variable letra el valor b. Falso. Los caracteres siempre se escriben encerrados entre comillas simples. Por tanto, la sentencia correcta sería: char letra='b'. d. La sentencia float f=3,2 asigna a la variable f el valor 3,2. Falso. En C, como en la mayoría de los lenguajes de programación, el separador decimal es el punto (.) y no la coma (,). Por tanto, la sentencia correcta sería float f=3.2. 10. Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es correcta. int main(void){ int variable=5; int resultado; resultado= (variable >= 5); printf("%d \n", resultado); return (0); Solución: El resultado de evaluar una expresión relacional es verdadero (1) o falso (0). En este caso puesto que variable=5, la relación variable >= 5 es verdadera y, por tanto, resultado toma el valor 1. Por tanto, la respuesta correcta es la a. a. En pantalla aparece 1 b. En pantalla aparece 0 c. En pantalla no aparece nada d. La compilación detecta un error de sintaxis. 5