Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Examen de La Primera Evaluación de Programación

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

CIFP CAMINO DE LA MIRANDA.

PALENCIA
FECHA: jueves, 06 de febrero de 2020 PRIMERA
MODULO: PROGRAMACIÓN. MODALIDAD A DISTANCIA. EVALUACIÓN

GRUPO: DESARROLLO DE APLICACIONES MULTIPLATAFORMA. NOTA:

NOMBRE:

1. Hay que realizar los siguientes ejercicios que suponen ciertos


conocimientos y particularidades de java.

1. predecir el resultado.
// filename Test.java
class Test {
public static void main(String[] args)
{ for(int i = 0; 1; i++) { System.out.println("Hola"); break; } }
}

Resultado:

2. predecir el resultado.
// filename Test.java
class Test {
public static void main(String[] args)
{ for(int i = 0; true; i++) { System.out.println("Hola"); continue; } }
}

Resultado:

3. predecir el resultado.
// filename Test.java
class Test {
public static void main(String[] args)
{ for(int i = 0; true; i++) { System.out.println("Hola"); break; } }
}
Resultado:

4. predecir el resultado.
package main;
class Base { public void Print() { System.out.println("Base "); } }
class Derived extends Base { public void Print() { System.out.println("Derived"); } }
class Main{ public static void DoPrint( Base o ) { o.Print(); }
public static void main(String[] args) { Base x = new Base(); //Constructor
Base y = new Derived();
Derived z = new Derived();
DoPrint(x);
DoPrint(y);
DoPrint(z); } }

Resultado:

5. Predice el resultado del siguiente programa java:


Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 1
// filename: Test1.java
class Test {
int x = 10;
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.x);
}
}

Resultado:

6. Predecir el resultado
// filename: Test3.java
public class Test
{
int x = 2;
Test(int i) { x = i; }
public static void main(String[] args) {
Test t = new Test(5);
System.out.println("x = " + t.x);
}
}

Resultado:

Explicación:
La salida del programa es “x = 5”. The initialization with class declaration in Java is like initialization using Initializer List in C++. So, in
the above program, the value assigned inside the constructor overwrites the previous value of x which is 2, and x becomes 5.

7. Predice la salida del siguiente programa.

class GfG
{
public static void main(String args[])
{
String s1 = new String("ElCaminoDe");
String s2 = new String("ElCaminoDe");
if (s1 == s2)
System.out.println("Equal");
else
System.out.println("Not equal");
}
}

Resultado:

Explicación:
Since, s1 and s2 are two different objects the references are not the same, and the == operator compares object reference.
So it prints “Not equal”, to compare the actual characters in the string .equals() method must be used.

8. Predice la salida de los siguientes programas Java.


class Gfg
{
// constructor
Gfg()
{
System.out.println("ElCaminoDe");
}
Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 2
static Gfg a = new Gfg(); //line 8

public static void main(String args[])


{
Gfg b; //line 12
b = new Gfg();
}
}
Resultado:

Explicación:

9. ¿Cuál será el resultado del programa?


import java.util.*;

public class Treeset


{
public static void main(String[] args)
{
TreeSet<String> treeSet = new TreeSet<>();

treeSet.add("geeks");
treeSet.add("por");
treeSet.add("geeks");
treeSet.add("ElCaminoDe");

for (String temp : treeSet)


System.out.printf(temp + " ");

System.out.println("\n");
}
}
a) Geeks for Geeks ElCaminoDe
b) Geeks for ElCaminoDe
c) Geeks ElCaminoDe for
d) for ElCaminoDe Geeks
Resultado:

Explicación:

10. ¿Cuál será el resultado del programa?


public class Test
{
public static void main(String[] args)
{
int value = 3, sum = 6 + -- value;

int data = --value + ++value / sum++ * value++ + ++sum % value--;


System.out.println(data);
}
}
Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 3
a) 1
b) 2
c) 0
d) 3

Resultado.

EXPLICACIÓN

11. ¿Cuál será el resultado del programa?


public class Test
{
public static void main(String[] args)
{
int temp = null;
Integer data = null;
System.out.println(temp + " " + data);
}
}
a) null null
b) Compilation error due to temp
c) Compilation error due to data
d) Runtime error

Respuesta.

Explicación:

temp is a primitive data type. Primitive data types cannot be assigned null values. data is an instance of class Integer and therefore
can hold null values.
12. ¿Cuál será el resultado del programa? Type Conversions
public class Test
{
public static void main(String[] args)
{
int value = 554;
String var = (String)value; //line 1
String temp = "123";
int data = (int)temp; //line 2
System.out.println(data + var);
} }
a) 677
b) Compilation error due to line 1
c) Compilation error due to line 2
d) Compilation error due to line 1 and line 2
Respuesta.

Explicación:
Converting from int to String as well as converting from String to int is not allowed in java.

13. ¿Cuál será el resultado del programa?


ublic class Test
{
public static void main(String[] args)
{
double data = 444.324;
int value = data;
System.out.println(data);
} }
Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 4
a) 444.324
b) 444
c) Runtime error
d) Compilation error

Respuesta.

Explicación:
Converting from a bigger data type to a smaller data type is not allowed in java as it is a lossy conversion.
14. ¿Cuál será el resultado del programa?
public class Test
{
public static void main(String[] args)
{
double data = 444.324;
int sum = 9;
float value = 5.1f;
System.out.println(data + sum + value);

}
}

a) 444.32495.1
b) 456
c) 458.42399
d) 458.4
Respuesta.

Explicación:
If one of the operands is long, double or float, the entire expression is converted to long, double or float respectively.
15. ¿Cuál será el resultado del programa?
public class Test
{
public static void main(String[] args)
{
byte var = 1;
var = (byte) var * 0; //line 1
byte data = (byte) (var * 0); //line 2
System.out.println(var); } }

a) 0
b) Compilation error due to line 1
c) Compilation error due to line 2
d) Compilation error due to line 1 and line 2
Respuesta.

Explicación:
When the expressions are evaluated, the data type of the result is implicitly changed to a larger data type and therefore, explicit
recasting has to be done as shown in line 2. On the other hand, line 1 shows compilation error because the expression on the right side
has data type as int whereas left side it is byte.

16. ¿Cuál será el resultado del programa?


public class Test
{
public int getData() //getdata() 1
{
return 0;
}
public long getData() //getdata 2

Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 5
{
return 1;
}
public static void main(String[] args)
{
Test obj = new Test();
System.out.println(obj.getData()); } }

a) 1
b) 0
c) Runtime error
d) Compilation error
Respuesta.

Explicación:
For method overloading, methods must have different signatures. Return type of methods does not contribute towards different
method signature, so the code above give compilation error. Both getdata 1 and getdata 2 only differ in return types and NOT
signatures.
17. ¿Cuál es la salida del siguiente trozo de código?
import java.util.*;

public class Test {


public static void main(String args[])
{
String S1 = "S1 =" + "123" + "456";
String S2 = "S2 =" + (123 + 456);
System.out.println(S1);
System.out.println(S2); } }

Options :
A. S1=123456, S2=579
B. S1=123456, S2=123456
C. S1=579, S2=579
D. None of This
Answer :
A
Explicación:
If a number is quoted in “” then it b as numeric values.
18. ¿Cuál es el resultado del siguiente código?
class Test2 {
public
static void main(String[] args)
{
byte x = 12;
byte y = 13;
byte result = x + y;
System.out.print(result);
}
}

Option
a) 25
b) Error
c) -25
d) none

Resultado

Explicación:
If we apply any arithmetic operator between two variables x and y, then the result type is max(int, type of x, type of y). Therefore, here
the compiler will give the error possible lossy conversion int to byte.

19. ¿Cuál es el resultado del siguiente código?


Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 6
class Test3 {
public
static void main(String[] args)
{
int x = 011;
int y = 0xfee;
int result = x + y;
System.out.print(x + ":" + y + ":" + result);
}
}
Options
a) Error
b) 010 : 0xfee : 4089
c) 9 : 4078 : 4087
d) 010 : 0xfee : 4087
Resultado.

Explicación:
If any integer number start with 0, then that number is treated as octal number hence 011 means (1*8^1 + 1*8^0) 9 and also if any
integer start with 0x means then that number is treated as Hexadecimal number means we can have the value between[0-9] and [a-z
or A-Z]. oxfee =(15*16^2 + 14*16^1 + 14*16^0) =>4078.

20. Cuál es la salida del programa.


public class Prg {
public static void main(String args[])
{
System.out.print('A' + 'B'); } }

opción
a) AB
b) 195
c) 131
d) Error

Respuesta

Explicación:
Here, ‘A’ and ‘B’ are not strings they are characters. ‘A’ and ‘B’ will not concatenate. The ASCII of the ‘A’ and ‘B’ will be added. The value
of ‘A’ is 65 and ‘B’ is 66. Hence Output will be 131.

21. ¿Cuál es el resultado del siguiente código?

public class Prg {


public static void main(String args[])
{
System.out.print("A" + "B" + 'A' + 10);
}
}

OPTION
a) ABA10
b) AB65
c) Error
d) AB
Answer :

Explicación:
If you try to concatenate any different types of data like integer, character, float with string value, the result will be a string. So ‘A’ will
be concatenated with “AB” and answer will be “ABA”.

Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 7
22. ¿Cuál es la salida de este programa?
public
class Prg {
public static void main(String args[])
{
System.out.print(20 + 1.34f + "A" + "B"); } }

OPTION
a) 201.34AB
b) 201.34fAB
c) 21.34AB
4) Error
Answer :

Explicación:
Similar data types are added and then converted to string. 20 and 1.34f will be added and then 21.34 will be concatenated with “A” and
“B”, hence output will be 21.34AB.
23. ¿Cuál es el resultado del siguiente programa?

public class Prg {


public static void main(String[] args)
{
char[] str = { 'i', 'n', 'c', 'l', 'u',
'd', 'e', 'h', 'e', 'l', 'p' };
System.out.println(str.toString());
}
}
OPTION
a) includehelp
b) Error
c) [C@19e0bfd (Memory Address)
d) NULL
Respuesta

Explicación:
[C@19e0bfd (Memory Address) : str is a character array, if you try to print str.toString() it will not converted to string because str is an
object of character array that will print an address in string format.
24. ¿Cuál es el resultado del siguiente programa?
public class prg {
public static void main(String[] args)
{ System.out.print("Hola");
System.out.println("Guys!"); } }

OPTION
a) HolaGuys!
b) Hola Guys!
c) Hola
Guys!
d) Compile with a Warning
Respuesta

Explicación:
System.out.print() does not print new line after printing string, while System.out.println(); prints new line after printing string. Hence
output will be HolaGuys! and then new line.

25. ¿Cuál será el resultado del programa?


public class Test {
public static void main(String[] args)
{

Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 8
int[] arr = { 1, 2, 3, 4, 5 };
System.out.println(arr);
} }

Options:
1. 1
2. Compile-time error
3. 1 2 3 4 5
4. [I@Hashcode_in_Hexadecimal
Resultado:

Explicación:
In the above program, we are using declaration, creation and initialization in a single statement. But while printing, we are printing the
base address of the array and not the full array. To display array, loops need to be used.
26. ¿Cuál será el resultado del programa?
public
class Test {
public
static void main(String[] args)
{
int b = 2147483648;
System.out.println(b); } }

Options:
1. No output
2. 2147483648
3. 2147483647
4. compile-time error
Resultado:

Explicación:

27. ¿What will be the output of the following program?


public class Test
{
static char ch = 59;
public static void main(String[] args)
{ System.out.println(ch); } }

Options:
1. compile-time error
2. null
3. No output
4. ; //ascii value of 59 is ;
Resultado:

Explicación:
As the static variable is of type char. When we print it, the ASCII value of the given integer gets printed.
28. ¿Cuál será el resultado del programa?

public
class Test {
public
static void main(String[] args)
{
int x = 0xGeeks;
System.out.println(x);
}
Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 9
}

Options:
1. 1
2. Compile-time error
3. null
4. Run-time error
Resultado:

respuesta.

Explicación:

Here we try to assign literals in Hexadecimal-form in int data types. But according to rule the allowed characters are A-F but here we
are using characters which are not allowed. That’s why the above program will compile time error saying error: not a statement.
29. ¿Cuál será el resultado del programa?.
public
class Test {
public
static void main(String[] args)
{
// we are assiging 8 byte data to 4 byte variable
float f = 10l;
System.out.println(f);
}
}

Options:
1. 10
2. Compile-time error
3. 10.0
4. RuntimeException
Resultado:

Respuesta.

Explicación:

Here we are assigning a long value to a float variable. According to the data types float is of 4 byte and long is of double byte. Apart
from that we can assign a long value to a float type.

Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 10
2. Obtener el factorial de un un número utilizando itaración. El programa
te pide un número de 1 al 50 y calcula el factorial del número que has
introducido.

3. Obtener el factorial de un número utilizando recursividad. El programa


te pide un número de uno al cincuenta y el programa calcula el factorial
de ese número

import java.util.Scanner;

// Java program to find factorial of given number


class test {
// método para encontrar el factorial de un número.
static int factorial(int n)
{ int res = 1, i;
for (i=2; i<=n; i++) res *= i;
return res; }
//clase principal
public static void main(String[] args) {
int num;
Scanner sc = new Scanner(System.in);
System.out.println("introduce el número: ");
num = sc.nextInt();
System.out.println("el factorial de: "+num+" es :" Factorial(num)); } }

4. Eliminar duplicados de un array. Hay que hacer lo siguiente: hay que


llenar un array de números enteros, estos elementos son elementos
aleatorios de uno al cien.

Con esto se puede generar un número entero del uno al cien


int(Math.random() * 100) Una vez el has llenado el array tienes que buscar
elementos duplicados sin utilizar api.

Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 11
5. ejercicio hay que realizar bubble sort con una matriz de 100 números
enteros generados de manera aleatoria en una matriz de 100 números
enteros del 1 al 100.

Explico cual es la ordenación de la burbuja.


Comparas cada elemento con el adyacente y si el que ocupa la posición n es menor que el
elemento que ocupa la posición n+1 entonces los intercambio, en caso contrario los dejas tal
como están. Este proceso que realizo sobre todos los elementos del array me permite que al
final del primer recorrido tenga el mayor de los números al final del array, con lo cual este
elemento puede ser excluido de subsiguientes recorridos.

Una buena forma de hacelo es esta: tomo el trozo de código del ejercicio anterior y lo lleno de
números aleatorios entre el uno y el cien, realizo la ordenación sin utilizar el api, puesto que
en el api os podeís encontrar el Shell sort, quick sort y otros.

// programa java para implementar la ordenación de la burbuja.


class BubbleSort {
void bubbleSort(int arr[]) {
int n = arr.length;
for(int i = 0; i <n-1; i++)
for(int j = 0; j<n-i-1; j++)
if (arr[j] > arr[j+1])
{ // swap temp and arr[i]
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp; } }
/* imprime el array */
void printArray(int arr[]){
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i] + " ");
System.out.println(); }
// método que sirve para probar lo anterior
public static void main(String args[])
{ BubbleSort ob = new BubbleSort();
for(int i=0; i< arr.length; i++) {arr[i] = int(Math.random()*100);}
ob.bubbleSort(arr);
System.out.println("Sorted array");
ob.printArray(arr); } }
public class Array {
public static void main(String[] args) {
Random r = new Random();
int[] ar1 = new int[100];
for(int i = 0; i < ar1.length; i++) {
ar1[i] = r.nextInt(100);
System.out.print(ar1[i] + " "); } }}

Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 12
6. Hay que hacer un programa en java que lea un fichero que es: los
hermanos karamazov.txt utf8 y busque dentro del fichero la palabra
‘seville’ aparece 4 veces.
Lo que hay que hacer es algo parecido a lo que hace el comando grep en
unix .

// Java Program to illustrate reading from FileReader


// using BufferedReader
package File;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ReadFromFile2
{
public static void main(String[] args)throws Exception
{
// hay que proporcionar la ruta como parámetro:
//
// like \test as \t (ie. as a escape sequence)
File file = new File("C:\\karamazov\\karamazov.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
String input="seville"; // Input word to be searched
int count=0; //Intialize the word to zero
while ((st = br.readLine()) != null) {
words=s.split(" "); //Split the word using space
for (String word : words) {
if (word.equals(input)) //Search for the given word {
count++; //If Present increase the count by one } } }
if(count!=0) //Check for count not equal to zero
{ System.out.println("The given word is present for "+count+ " Times in the file"); }
else { System.out.println("The given word is not present in the file"); } fr.close(); } }
System.out.println(st); } }

7. Escribe.un programa que sirva para obtener la serie de leonardo di


Fibonacci de manera recursiva de esta manera el programa tiene que que
pedir cuántos números de Fibonacci quieres obtener por ejemplo 8000, y
el programa obtiene los 8000 primeros números de la serie de
fibonacci. La serie de fibonacci es

N1 - El primer valor es cero


N2 - El segundo valor es uno
N3 = N2+N1 - Todos los subsiguientes valores sea formas por la suma de los dos anteriores

NN-3=NN-2 + NN-1
Núltimo = Npenúltimo + Nantepenúltimo
Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 13
Para cualquier valore que quieras pensar como ultimo.

public class fibonacci {


static int n1=0,n2=1,n3=0;
static void printFibo(int count){
if(count>0){
n3 = n1 + n2;
n1 = n2;
n2 = n3;
System.out.print(" "+n3);
printFibo(count-1);
}
}
public static void main(String[] args) {
int count;
Scanner sc = new Scanner(System.in);
System.out.println("introduce el número: ");
count = sc.nextInt();
System.out.print(n1+" "+n2);
printFibo(count-2); }

8. Escribe un programa en java que obtenga los números primos que hay en
los 1000 primeros números naturales. Realice lo que se llama la criba de
eratóstenes, que es para obtener números primos. Aunque puede hacerse de
varias formas. un número primo es aquel que solamente es divisible por
si mimos y la unidad. Haz uno que halle los 1000 primeros números
primos.

Forma fácil es tomar un array de de 1000 elementos de tipo boolean, y en principio todos son primos osea
true, hasta que alguno de ellos no lo es, (porque su mod no es o cero o el mismo número) con lo cual pasa a
false y al final del recorrido total he ‘cribado’ u obtenido aquellos ‘true’ verdareramene primos.

import java.util.Scanner;

class PrimeNumberDemo {
public static void main(String args[]) {int n; int status = 1; int num = 3;
//el valor de n
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the value of n:");
//el valor es almacenado en n
n = scanner.nextInt();
if (n >= 1)
{ System.out.println("First "+n+" prime numbers are:");
//2 es primo
System.out.println(2); }
for ( int i = 2 ; i <=n ; )
{ for ( int j = 2 ; j <= Math.sqrt(num) ; j++ )
{ if ( num%j == 0 )
{ status = 0; break; } }
if ( status != 0 ) { System.out.println(num); i++; }
status = 1;
num++; } }

Examen de la primera evaluación del modulo de programación de ciclo Desarrollo de Aplicaciones Multiplataforma. Modalidad a distancia. Pág. 14

También podría gustarte