Sie sind auf Seite 1von 3

Universidad Nacional autónoma de Honduras

Departamento de matemática aplicada


Programación I
Prueba del segundo parcial

marzo 2018

Selección múltiple
Instrucciones: Para cada ejercicio seleccione los ı́tems que hacen que la proposición que aparece en este
sea verdadera.

1. Considere el siguiente programa: (e) Ninguna de las anteriores.

#include<iostream> 2. Considere el siguiente programa.


using namespace std;
int Ack(int m, int n); #include<iostream>
int main(){ using namespace std;
cout<<"El valor de Ack es: "<<Ack(3,0); int main(){
return 0; int i=0;
} for(i=2;i<10;i++)
int Ack(int m, int n){ cout<<"i"<<endl;
if(m==0) while(i>0){
return n+1; int j=1;
else if(n==0) i--;
return Ack(m-1,1); }
else return 0;
return Ack(m-1,Ack(m,n-1)) }
}
Las variables i y j son variables con ámbito:
La salida por pantalla es: (a) de bloque
(a) El valor de Ack es: 6 (b) de bloque y función respectivamente
(b) El valor de Ack es: 5 (c) de función y de bloque respectivamente
(c) El valor de Ack es: 4 (d) de programa
(d) El valor de Ack es: 3 (e) ninguna de las anteriores.
3. ¿Cuál es la salida por pantalla del siguiente programa?

#include<iostream>
using namespace std;
void burbuja(double A[],int );
bool buscar(double A[], int i, int j, double);
int main(){
int N=5;
double B[N];
for(int i=0;i<N;i++){
B[i]=(i*i+5*i)%11;
}
burbuja(B,N);
if(buscar(B,0,N-1,2))
cout<<"El elemento no fue encontrado"<<endl;
else
cout<<"El elemento fue encontrado"<<endl;
return 0;
}
void burbuja(double A[], int N){
double aux;
for(int i=2;i<=N;i++)
for(int j=0;j<=N-i;j++)
if(A[j]>A[j+1]){
aux=A[j];
A[j]=A[j+1];
A[j+1]=aux;
}
}
bool buscar(double A[], int i, int j, double x){
bool respuesta;
if(i<=j){
int m=(i+j)/2;
if(x<A[m])
respuesta=buscar(A,i,m-1,x);
else if(x>A[m]) respuesta=buscar(A,m+1,j,x);
else respuesta=true;
}
else respuesta=false;
return respuesta;
}

(a) El elemento no fue encontrado


(b) El elemento fue encontrado
4. Identifique cada oración de la izquierda con cada lı́nea de código de la derecha.

1. Esta función recibe un arreglo y retorna un (a) double b(double &, double );
valor lógico.
(b) for(i=1;i<10;i++)
2. En esta instrucción aparece la variable i con
ámbito de bloque. (c) double i=1.6;int main(){
3. Esta función tiene el prototipo de una (d) double b(double &, double &)
función que busca un elemento dentro de un
arreglo de números reales. (e) bool b(int []);
4. Esta función tiene el prototipo de una (f) for(int i=1;i<10;i++)
función que calcula el producto punto de dos
vectores(arreglos). (g) void b(int [], bool);
5. Esta función recibe un arreglo y un valor (h) double b(double [], double []);
lógico.
(i) bool b(double [], int, double);
6. En esta instrucción aparece la variable i con
ámbito de función. (j) void b(double [], int, double);
7. Esta función tiene el prototipo de una
función que ingresa en una posición dada de
un arreglo un número real.
8. En esta instrucción aparece la variable i con
ámbito de programa(variable global).
9. Esta función tiene el prototipo de una
función que intercambia el contenido de dos
variables y retorna su suma.
10. Esta función recibe un parámetro por refer-
encia y otro por copia.

5. Para los siguientes segmentos de programas identifique cual de ellos contiene errores de compilación.

(a) int main(){ (f) void imprimir(double &);


int &x; int main(){
x=10; double x[1000];
return 0;} double y;
y=imprimir(x[20]);
(b) double x[30];
return 0;
for(int i=0;i<10;i++)
}
cin>>x[i];
(g) void imprimir(double &);
(c) double x[30];
double imprimir(double &, int);
for(int i=0;i<=30;i++)
int main(){
cin>>x[i];
double x[1000];
(d) void imprimir(double &); double y;
int main(){ y=imprimir(x[20],123);
double x[1000]; return 0;
imprimir(x,1000); }
return 0;
(h) void imprimir(double []);
}
double imprimir(double &, int);
(e) void imprimir(double &); int main(){
int main(){ double x[1000];
double x[1000]; double y;
imprimir(x[12]); imprimir(x);
return 0; return 0;
} }

Das könnte Ihnen auch gefallen