0% encontró este documento útil (0 votos)
95 vistas20 páginas

Análisis de Condiciones y Código en C

El documento contiene varias preguntas sobre condicionales, bucles y expresiones lógicas en lenguaje C. La mayoría de las preguntas ofrecen múltiples opciones de respuesta y piden identificar cuál es la correcta.

Cargado por

Carol Rios
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
95 vistas20 páginas

Análisis de Condiciones y Código en C

El documento contiene varias preguntas sobre condicionales, bucles y expresiones lógicas en lenguaje C. La mayoría de las preguntas ofrecen múltiples opciones de respuesta y piden identificar cuál es la correcta.

Cargado por

Carol Rios
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Analice las opciones propuestas y determine cuál de estas se cumple para la siguiente

condición.
if(!(n>9 || n<5))
 
Seleccione una:
Se cumple para valores de n menores a 5 y mayores a 9

No se cumple si los valores son n = {6, 7, 8} 


No es cierto. Para los valores 6, 7 y 8 la expresión si se cumple

Únicamente es verdadera para los valores de n = {5, 6, 7, 8, 9} CREO QUE ESTA ES LA
CORRECTA

No se cumple sí los valores de n son {5, 9}

Analice la siguiente expresión con los posibles valores de verdadero o falso de las variables
lógicas X, Y, y seleccione la afirmación correcta. 
(X && !Y) && (!X || Y)
 
Seleccione una:
a. Solo se cumple cuando X es falso
b. Solo se cumple cuando X es verdadero y Y es falso
c. Siempre se cumple

d. Nunca se cumple 
La expresión es una contradicción, por consiguiente nunca se cumple. Esta es la respuesta
correcta!! :)

¿Qué imprime el siguiente fragmento de código?


int x=5, a=10, b=7;
if(a%b < b%a){
x = x + b * a;
}
else {
x = x - a * b;
}
printf("x = %d", x);

Seleccione una:
x = 120
x = 75 ESTA ES LA CORRECTA
x = -35
x = -65 
No es correcto. Puesto que la multiplicación es primero que la suma

Al final de este fragmento de código en lenguaje C ¿cuál es el valor de la variable entera s?


note que el incremento de las variables después de hacer cada ciclo es diferente.
int s = 0, i, j;
for(i=5; i<20; i=i+2){
for(j=1; j<92; j=j*2){
s = s+1;
}
}

Seleccione una:

 vale 7 
No es correcto. Este es solo el incremento en el ciclo interno

vale 49
vale 56 ESTA ES LA CORRECTA

vale 64

Completar el siguiente fragmento en lenguaje C para que el resultado de imprimir la variable


entera acum sea 33.
int k = 3;
int acum = 0;
do{
acum = acum + k;
k = k+1;
} while(________);
printf("acum=%d", acum); // imprimir(acum)
Seleccione una:

(k < 8) 
No es correcto. La variable k se incrementa una vez más antes de salir del ciclo.

(k < 9)
(k < 30)
(k < 33)

Al ejecutarse el siguiente segmento programa, ¿qué valores imprime?


int x=1,s=0;
while(x<=50) {
if((x % 5)== 0)
{
printf(" %d \n", x);
s=x+s;
}
x++;
}
printf(" %d \n", s );

Seleccione una:
Lista los 10 primeros números de 1 a 50 y su sumatoria
Lista los 50 primeros números múltiplos de cinco y su sumatoria
Lista los 10 primeros números múltiplos de cinco y su sumatoria ESTA ES LA CORRECTA

Lista los números de 1 a 50 


No es correcto. El algoritmo no imprime 50 veces

Del siguiente fragmento de código indique el resultado final del arreglo B


int T=9;
int A[T]={2, 5, 9, 8, 1, 6, 3, 4, 7};
int B[T];
float P;
for(int i=T-1; i>=0; i--){
P = A[i] % 2;
if(P != 0){
B[T-1-i] = A[i];
}
else{
B[T-1-i] = 0;
}
}

Seleccione una:
7 0 4 0 3 0 6 0 1 TAMPOCO ES ESTA

2 0 5 0 9 0 8 0 1  
No es correcto. El algoritmo comienza por el último elemento y avanza hasta el primero

209010307

703010950
¿Qué valor queda almacenado en la posición 0 del vector?
int vector[5];
int x=0, y=5, z=10;
for(x=0; x<y; x++){
vector[y-1-x] = x * z + x;
}
 
Seleccione una:
44 ESTA ES LA CORRECTA


No es correcto. Este es el primer valor calculado, pero no se asigna a la posición cero del
vector

55

41

Teniendo en cuenta el siguiente fragmento de código en C: ¿qué valores quedan en la


variable arreglo? 
int matriz[3][4]= {{1, 2, 3, 4},
{5, 6, 7, 8},
{9,10,11,12}};
int arreglo[3];
int i,j;
for (i=0;i<3;i++){
arreglo[i]=0;
for (j=0;j<4;j++){
arreglo[i]=arreglo[i]+matriz[i][j];
}
}
 
Seleccione una:
15, 18, 21, 24
10, 15, 21, 42

10 , 26, 42 
Esta es la respuesta correcta! :)

15, 26, 21
Qué imprime el siguiente fragmento de código?
int ren = 3, i, j;
int col = 3;
int arreglo[3][3] = {{10,2,9},
{7,3,14},
{2,8,24}};
int t = 0;
for(i=0; i<ren; i++){
for(j=0; j<col; j++){
if(i == j){
t = t + arreglo[i][j];
}
}
}
printf("%d", t);
 
Seleccione una:
14

21 
No es correcto. Los valores acumulados no corresponden.

37 ESTA ES LA CORRECTA

24

Determine cuál es la expresión algorítmica equivalente a la siguiente ecuación:

Seleccione una:
x1 = -b + sqrt(b*b-4*a*c)/2*a;

x1 = (-b+sqrt(b*b-4*a*c))/(2*a); 
Bien!! respuesta correcta :)

x1 = (-b + sqrt(b*b)-4*a*c) / (2*a);

x1 = (-b + sqrt(b^2-(4ac)))/2a;
Determine cuál es la expresión algorítmica equivalente a la siguiente ecuación:

Seleccione una:
A = (x+y)/(w/5)+x^2*y/2w;

A = (x+y)/w/5+(x*x*y)/2*w;

A = x+y/(w/5)+(x*x)*y/(2*w); 
Problemas, se requiere uso de paréntesis en el numerador del primer término

A = (x+y)/(w/5)+x*x*y/(2*w); ESTA ES LE CORRECTA

¿Cuál es el valor final de total que imprime el siguiente fragmento de programa si se ingresa


un promedio=4.5?
float promedio=0, matricula=100, total=0, x=0;
printf("Ingrese el promedio: ");
scanf("%f", &promedio);
if(promedio>4.5){
x=0.2;
}
else{
if(promedio>4 && promedio<4.5){
x=0.1;
}
else{
if(promedio>3.5 && promedio<4){
x=0.05;
}
else{
x=0.15;
}
}
}
total = matricula - matricula*x;
printf("Valor de matricula a pagar: %f \n", total); //imprime total

Seleccione una:
80
95
90

85 
Respuesta correcta :). Después de que ninguna de las condiciones se cumple
El siguiente fragmento en lenguaje C se debe completar con una instrucción que evite el ciclo
infinito. ¿Cuál de las instrucciones propuesta cumple con esta condición?
int x = 32;
int y = 4;
int a = -2;
while(x > 2){
y = y+x+a;
___________;
}
 
Seleccione una:
x = x+y

x = x+a 
Esta es la respuesta correcta! :)

x = y-a

y = x-a

Al final de este fragmento de código en lenguaje C ¿cuál es el valor de la variable entera s?


note que el incremento de las variables después de hacer cada ciclo es diferente.
int s = 0, i, j;
for(i=5; i<20; i=i+2){
for(j=1; j<92; j=j*2){
s = s+1;
}
}

Seleccione una:
vale 64
vale 49
 vale 7

vale 56 
Esta es la respuesta correcta! :)

Al ejecutarse el siguiente segmento de programa, ¿qué serie de valores imprime?


int a=0, n=1, p=1, temp, j;
for(j=0; j<5; j++)
{
printf("%d, ", n); // imrpime n
a=p;
p=n;
n=a+p;
}

Seleccione una:
1, 1, 2, 3, 5,
1, 2, 3, 4, 5,
0, 1, 1, 2, 3,

1, 2, 3, 5, 8, 
Esta es la respuesta correcta! :)

Al ejecutarse el siguiente segmento de programa, ¿qué valores se imprimen del vector lista?
int lista[5]={40,30,50,20,10};
int j,i, temp;
for(j=0;j<5;j++) {
for(i=0;i<5-1;i++) {
if(lista[i] < lista[i+1]) {
temp = lista[i];
lista[i] = lista[i+1];
lista[i+1] = temp;
}
}
}
for(j=0;j<5;j++) {
printf("%d, \t",lista[j]);
}

Seleccione una:

50, 40, 30, 20, 10 


Esta es la respuesta correcta! :)

50, 10, 20, 30, 40


10, 20, 30, 40, 50

50, 30, 40, 20, 10

Qué problema resuelve el siguiente segmento de código? 


int vector[4] = {30,5,6,8};
int i, j, a, n=4;
for(i=0; i < n/2; i++){
a=vector[i];
vector[i]=vector[n-i-1];
vector[n-i-1]=a;
}

Seleccione una:
Imprime : 30 5 6 8

Intercala los elementos del vector 


No es correcto.

Invierte los elementos del vector ES LA CORRECTA

Ordena los elementos del vector

¿Qué valores quedan en la segunda fila de la matriz  m después de este fragmento en lenguaje C?
int i, j, acum = 0;
int m[3][3] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
for(i=0; i<3; i++){
for(j=1; j<3; j++){
m[i][j] = m[i][j] + m[i][j-1];
}
}

Seleccione una:

4, 9, 15 
Esta es la respuesta correcta! :)

2, 5, 8
4, 5, 6

4, 9, 11

Analice las opciones propuestas y determine cuál de estas se cumple para la siguiente
condición.
if(!(n>9 || n<5))
 
Seleccione una:
Únicamente es verdadera para los valores de n = {5, 6, 7, 8, 9} CREO QUE ES ESTA
No se cumple sí los valores de n son {5, 9}

No es cierto, para los valores 5 y 9 se cumple la expresión

Se cumple para valores de n menores a 5 y mayores a 9


No se cumple si los valores son n = {6, 7, 8}

Analice las opciones propuestas y determine cuál de estas se cumple para la siguiente
condición.
if(!(n>11 || n<6))
 
Seleccione una:
Se cumple para valores de n menores a 6 y mayores a 11
No se cumple si los valores son n = {7, 8, 9, 10}
No se cumple sí los valores de n son {11, 6}

Únicamente es verdadera para los valores de n = {6, 7, 8, 9, 10, 11} 


La respuesta es correcta :). Para los valores dados es verdadera y para el resto de valores no
se cumple la expresión

¿Cuál es el valor final de total que imprime el siguiente fragmento de programa si se ingresa


un promedio=4.5?
float promedio=0, matricula=100, total=0, x=0;
printf("Ingrese el promedio: ");
scanf("%f", &promedio);
if(promedio>4.5){
x=0.2;
}
else{
if(promedio>4 && promedio<4.5){
x=0.1;
}
else{
if(promedio>3.5 && promedio<4){
x=0.05;
}
else{
x=0.15;
}
}
}
total = matricula - matricula*x;
printf("Valor de matricula a pagar: %f \n", total); //imprime total

Seleccione una:
80
95
85 
Respuesta correcta :). Después de que ninguna de las condiciones se cumple

90

¿Qué valores quedan en el vector v[] al final del siguiente fragmento en lenguaje C?


int i, j, v[5] = {0,1,2,3,4}
for(j=4; j<=20; j=j+8){
for(i=0; i<5; i++){
v[4-i] = v[4-i]+j-2*i;
}
}

Seleccione una:

{12, 19, 26, 33, 40} 


{20, 20, 20, 20, 20}
{-4, -1, 2, 5, 8}

{0, 5, 10, 15, 20}

Al final de este fragmento de código en lenguaje C ¿cuál es el valor de la variable entera s?


note que el incremento de las variables después de hacer cada ciclo es diferente.
int s = 0, i, j;
for(i=5; i<20; i=i+2){
for(j=1; j<92; j=j*2){
s = s+1;
}
}

Seleccione una:
vale 49
vale 64
 vale 7

vale 56 
Esta es la respuesta correcta! :)

¿Qué valor se debe ingresar para salir del ciclo?


int n, mayor=0;
do {
printf("Ingrese un valor: ");
scanf("%d", &n);
if( n > mayor ) {
mayor = n;
}
printf("Ingrese el siguiente valor: ");
scanf("%d", &n);
} while(n != 0);
printf("EL mayor es: %d\n", mayor);
 
Seleccione una:

Un número igual a cero 


Esta es la respuesta correcta! :)

Un número menor a cero


Un número mayor al anterior

Un número menor al anterior

Dado el siguiente fragmento de programa, indique la operación que se produce sobre el vector v. Asuma
que k es un índice válido del arreglo y que los índices del vector aumentan de izquierda a derecha.
while(k > 0){
v[k] = v[k-1];
k--;
}
 
Seleccione una:

Desplaza los primeros k+1 elementos del vector v a la izquierda

Calcula las diferencias entre los elementos k y k-1 del vector v.

Copia el elemento k del vector v en las primeras k posiciones. 


No es correcto. No hay copia de valores, se esta asignando una posición nueva cada vez.

Desplaza los primeros k elementos del vector v a la derecha.

¿Cuál es la salida del fragmento en lenguaje C, cuando se imprime la variable entera aux?


int vector[8] = {3, 7, 4, 2, 5, 1, 6, 8};
int i, aux = 0;
for(i=0; i<8; i++){
aux = aux + vector[i];
if(aux > 22){
i=8;
}
}
printf("%d", aux); // imprimir(aux)
 
Seleccione una:
21
36

28 
Esta es la respuesta correcta!  :)

22

Interprete de manera correcta la operación que hace sobre una matriz de N filas y N columnas el
siguiente fragmento en lenguaje C.
int i, j, aux;
for(i=0; i<N; i++){
aux = 0;
for(j=0; j<N; j++){
aux = aux + m[j][i];
}
printf("%d ", aux); // imprimir(aux)
}
 
Seleccione una:
Imprime la suma de los elementos por cada fila de la matriz
Imprime los valores de la última fila de la matriz

Imprime la suma de los elementos por cada columna de la matriz 


Esta es la respuesta correcta! :)

Imprime la suma de todos los elementos de la matriz

¿Qué valor se imprime con la variable acum al final del siguiente fragmento en lenguaje C?
int i, j, acum = 0;
int m[4][4] = {{ 0, 1, 2, 3},
{ 4, 5, 6, 7},
{ 8, 9,10,11},
{12,13,14,15}};
for(i=0; i<4; i++){
for(j=0; j<4; j++){
if(j == 2 || j == i)
acum = acum + m[i][j];
}
}
printf("acum = %d", acum); // imprimir(acum)
 
Seleccione una:
60
53

52 
Esta es la respuesta correcta! :)

48

Dada la siguiente ecuación ¿cuál de las condiciones propuestas previene la ocurrencia de


errores antes del cálculo de la ecuación y permite que se den todos los valores válidos?.
Tenga en cuenta que a, b, c son variables reales (float)

Seleccione una:
if(sqrt(b*b – 4*a*c) > 0)

if(b*b >= 4*a*c && a != 0)

if(b*b > 4*a*c && a == 0)

if(-b + sqrt(b*b - 4*a*c)/(2*a) >= 0) 


No es correcto. Si a es igual a cero la expresión produce un error

¿Qué imprime el siguiente fragmento en lenguaje C?   


int i=22, j=3, resultado=0;
if(!((i > 4) || (j <= 6))){
resultado = i+j;
}
else{
resultado = i-j;
}
if(!((i < 4) || (j >= 6))){
resultado = i*j;
}
else{
resultado = i/j;
}
printf("%d", resultado);
 
Seleccione una:
7

66 
El resultado es correcto. La condición if(!((i < 4) || (j >= 6))) si se cumple

25

19

¿Cuál es la última salida del siguiente segmento de código?


int a, b, n=6, x=0, y=0;
for(a=1; a<=n; a++){
if(a%2== 0) {
for(b=a; b<n; b++){
x=x+1;
}
printf("\n%d >> %d", a, x);
}
else{
for(b=1; b<a; b++) {
y=y+1;
}
printf("\n%d >> %d", a, y);
}
}

Seleccione una:
5 >> 6
5 >> 5
6 >> 0

 6 >> 6 
Esta es la respuesta correcta! :)

Analice la siguiente expresión con los posibles valores de verdadero o falso de las variables
lógicas X, Y, y seleccione la afirmación correcta. 
!(X && !Y) == !Y || X
 
 
Seleccione una:

Siempre se cumple 
No es cierto. El caso X = falso y Y = verdadero no cumple la expresión lógica

Solo se cumple si Y es verdadero


No se cumple si X es falso y Y es verdadero

Nunca se cumple 

¿Qué valor se imprime con la variable acum al final del siguiente fragmento en lenguaje C?
int i, j, acum = 0;
int m[4][4] = {{ 0, 1, 2, 3},
{ 4, 5, 6, 7},
{ 8, 9,10,11},
{12,13,14,15}};
for(i=0; i<4; i++){
for(j=0; j<4; j++){
if((i+j)%2 == 0)
acum = acum + m[i][j];
}
}
printf("%d", acum); // imprimir(acum)

Seleccione una:
48
64

60 
Esta es la respuesta correcta! :)

56

¿Qué función realiza el siguiente segmento de código asumiendo una matriz de


tamaño n filas por n columnas?  
int i, j, s = 0;
for (i=0; i < n; i++) {
for (j=0; j < n; j++) {
if (i>j) {
s = s + matriz[i][j];
}
}
}

Seleccione una:
La suma de todos los valores de la matriz que están por encima de la diagonal principal

La suma de los totales acumulados por las filas de la matriz 


No es correcto. No se suman todos los valores

La suma de todos los valores de la matriz que están por debajo de la diagonal principal

La suma de los valores de la diagonal principal de la matriz

Dada la siguiente ecuación ¿cuál de las condiciones propuestas previene la ocurrencia de


errores antes del cálculo de la ecuación y permite evaluar los casos válidos. Tenga en cuenta
que x es una variable real (float)

 
 
Seleccione una:
if(x-1 >= 0 || x < 1)

if(x >= -1 && x != 1) 


Es correcto :)

if(x-1 > 0  && x != -1)

if(x > 1 && x < -1)

Interprete de manera correcta la operación que hace sobre una matriz de N filas y M columnas el
siguiente fragmento en lenguaje C.
int i, j, aux;
for(i=0; i<N; i++){
aux = m[i][0];
for(j=1; j<M; j++){
if(m[i][j] < aux){
aux = m[i][j];
}
}
printf("%d ", aux); // imprimir(aux)
}

Seleccione una:
Imprime el valor mínimo por cada fila de la matriz ESTA ES LA CORRECTA
Imprime los valores de la primera columna de la matriz

Imprime el valor máximo por cada fila de la matriz 


No es correcto. La condición interna muestra otro propósito.
Imprime los valores de la última columna de la matriz

Dadas dos variables reales X, Y construya una expresión aritmético lógica que sea evaluada
como verdadera solo para los valores sombreados en la figura 1 y que sea evaluada como
falsa para el resto.

 
Seleccione una:
if(Y>=-1 && Y<=2 && !(Y>=0 && Y<=1) || X>=-1 && X<=4 && !

(X>=0 && X<=2)) 
No es correcto. Por ejemplo se cumple si Y es igual a 5

if((Y>=-1 && Y<=1 && X>=-2 && X<=2 || Y>=0 && Y<=2 && X>=0 && X<=4) && 
!(Y>=0 && Y<=1 && X>=0 && X<=2))

if(X>=-2 && X<=4 && Y>=-1 && Y<=2 || X<=2 && Y<=1)

if(Y>=-1 && Y<=1 && X>=-2 && X<=2 || Y>=0 && Y<=2 && X>=0 && X<=4)

¿Cuál es el valor final de la variable x después de ejecutar el siguiente segmento de código?


int x;
int y = 20, z = 8;
x = y / z;
if ( x <= 2){
x = z + y *2;
}
else{
x = z - y *2;
}
Seleccione una:
2.5

48 
Esta es la correcta! :)

-32

56

Dado el siguiente fragmento de programa, indique la operación que se produce sobre el vector v. Asuma
que k es un índice válido del arreglo y que los índices del vector aumentan de izquierda a derecha.
while(k > 0){
v[k-1] = v[k];
k--;
}
 
Seleccione una:

Desplaza los primeros k elementos del vector v a la derecha.

Copia el elemento k del vector v en las primeras k posiciones. 


Esta es la respuesta correcta! :)

Desplaza los primeros k+1 elementos del vector v a la izquierda

Calcula la suma de los primeros k+1 elementos del vector v en la primera posición de este.

Al ejecutarse el siguiente segmento de programa, ¿qué valores se imprimen de la matriz mat? 


int mat[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int f,c;

for(f=0;f<3;f++) {
for(c=0;c<3;c++) {
if(c<f) {
printf("%d, \t", mat[f][c]);
}
}
}
printf("\n");

Seleccione una:
4, 7, 8 
Esta es la respuesta correcta! :)

2, 3, 6
1, 5, 9

1, 4, 5

También podría gustarte