Tema 3.1 C

 

 

 


10 - Para escribir la tabla de multiplicar del 9 la expresión correcta es

for(i=0;i<10;i++){
printf ("%d x %d = %d \n", 9,i,9*i);
}

for(i=0;i<10;i++) {
printf ("%d x %d = %d ", 9,i,9*i);
}

for(i=1,i<10,i++){
printf ("%d x %d = %d \n", 9,i,9*i);
}

for(i=1;i<=10;i++){
printf ("%d x %d = %d \n", 9,i,9*i);
}

for(i=1;i<=10;i++){
printf ("9 x %d = %d \n", i,9*i);
}



124 - En una sentencia for hay tres partes: inicialización, condición y actualización. ¿En qué orden se ejecutan?

depende del valor inicial del contador

condición - inicialización - actualización - condición

inicialización - condición - actualización - condición

inicialización - condición - actualización - inicialización

inicialización - actualización - condición - inicialización



117 - ¿Cuál es la salida por pantalla del siguiente trozo de programa? Tenga en cuenta que debe haber un solo blanco entre los valores a imprimir.



118 - Si se quiere que en una sentencia switch se incremente i en 1 si i vale 2 ó 3 entonces hay que escribir

switch(i){         
case 2: 3: i++;
}

switch(i){            
case 2,3: i++;
}

switch(i){       
case 2: i++;
case 3: i++;
}

switch(i){      
case 2:
case 3: i=i++;
}

switch(i){
case 3: case 2: i++;

}



119 - ¿Cuál es la salida por pantalla del siguiente trozo de programa? Tenga en cuenta que no hay blancos entre los valores a imprimir.










121 - Para sumar varios números reales leidos desde teclado con la condición de que estén entre 7 y 8 ambos inclusive. ¿Cuál es la mejor opción?

scanf("%f",&x);  
while (x>=7 || x<=8){
suma=suma+x;
scanf("%f",&x);
}

scanf("%f",&x);  
while (x>=7 && x<=8){
scanf("%f",&x);
suma=suma+x;
}

scanf("%f",&x);  
while (x<=7 && x>=8){
suma=suma+x;
scanf("%f",&x);
}

scanf("%f",&x);  
while (x>=7 && x<=8){
suma=suma+x;
scanf("%f",&x);
}

while (x>=7 && x<=8){       
scanf("%f",&x);
suma=suma+x;
}



127 - Indique cuáles de las siguientes afirmaciones sobre la estructura if-else son ciertas

La cláusula else debe aparecer siempre

La condición del if siempre va entre paréntesis

Dentro de las sentencias bajo un if es posible colocar otro if

Si hay varias instrucciones debajo del if o del else, deben ir entre llaves

La condición del else va entre paréntesis



125 - Si queremos imprimir la serie 1 4 7 10 13 16 19 22 25 28 Complete el código (No deje espacios en blanco):

for (i=0;i<10;i++) {
   printf();
}



134 - Dado el siquiente trozo de código, indique cuántos números se van a leer.

Siempre diez

Depende del primer número que se lea

Depende del décimo número que se lea

Siempre once

Depende del undécimo número que se lea



133 - El resultado impreso que genera el código C que aparece más abajo es:

No se puede ejecutar el programa porque hay un error de compilación.

50

0123428

El programa no termina

0




128 - ¿Cuál es la salida en pantalla del siguiente trozo de código? Tenga en cuenta que no hay blancos entre los valores a imprimir.



130 - Sea el trozo de código que figura a continuación. Si al ejecutarlo se da por teclado la secuencia de entrada: 1 2 3 4 5 -6 7 -8 9 10 11 12 -13 14 15 -16 ... entonces se imprime
scanf("%d",&n);
i=1;
while (n > 0 || i <10) {
scanf("%d", &n);
i++;
}
printf("%d", i);

10

13

12

Nada pues con esa entrada el while no termina

9


135 - Rellene los huecos para que el programa imprima correctamente la tabla de multiplicar de un número leído por la entrada estándar.
#include <stdio.h> 
void main(void){
int n, i;

scanf("", &n);
printf("La tabla de multiplicar del %d es:\n", );
for(i=;;){
printf("%d x %d = %d\n", n, i, );
}
}



23 - Si definimos
int i=1,j=5,k=10; 
Entonces la salida de las siguientes sentencias es:

246

2468

13579

1357

246810



37 - Queremos implementar una función que nos diga si un número es primo. Entonces escribimos la función siguiente. ¿Qué errores puede apreciar en este código?
  1. int esPrimo(int m){  
2. int resultado=1;
3. int i;
4. for(i=1;i<m;i++){
5. if(m%i=0){
6. resultado=0;
7. break;
8. }
9. }
10. }

La sentencia break; no está en la línea adecuada, debería estar entre la 8 y la 9

La sentencia for debe inicializar i a 2

Falta return resultado; entre las líneas 9 y 10

La variable resultado debería estar inicializada a 0 y en la línea 6 poner resultado=1

La condición del if no es correcta



A7 - Dado el código de la figura entonces si se leen los números 0 4 5 1 2 3 6
La salida es
(tenga en cuenta que no hay blancos en la sentencia printf)


A8 - Dado el código de la figura entonces si se leen los numeros 0 4 5 1 2 3 6
La salida es

(tenga en cuenta que no hay blancos en la sentencia printf)



A10 - Para imprimir la secuencia 3 6 9 12 15 18. El trozo de código sería (rellene los espacios sin dejar blancos y use la variable i como contador)
    
while(){
printf();

}



A11 - Para imprimir la secuencia 3 6 9 12 15 18. El trozo de código sería (rellene los espacios sin dejar blancos y no olvide los ; cuando sean necesarios. Use la variable i como contador)
for(){       
printf();
}



A12 - Teniendo en cuenta los siguientes prototipos:
      float potencia (float,int);
      int factorial(int);
      char aMayuscula(char);
      int mcd(int,int);

y las siguientes variables:
      float x;
      int n,m,p;
      char c;

Señale SOLAMENTE cuáles de las siguientes llamadas son correctas

x = potencia (n,x);

p = (3*n)/factorial(m);

x = potencia (3.4,2);

mcd (n,m) = p;

n = factorial (m*x);

potencia (3.4,2);

x = potencia (3.4*mcd(3,p));

p = mcd (n,m);

c = aMayuscula(c);

p = (3*n)/factorial(1/m);

p = mcd (n,m) + mcd (56.4,234);

c = aMayuscula (“e”);

x = potencia (3.4,mcd(3,p));

x = potencia (x,n);

c = aMayuscula (‘e’);

printf(“el valor es %c”,aMayuscula(c));

p = mcd (n,m) + mcd (564,234);

n = factorial (m);



120 - Dado el siguiente código y teniendo en cuenta que i vale 0

Se imprime 224

Se imprime 144

Se imprime 24

Se imprime 244

El programa tendría un error de compilación



136 - Indique cuáles de las siguientes expresiones se pueden utilizar en una etiqueta case de una sentencia switch(i){...} (Nota: suponga que la variable 'i' es de tipo int)

25

1.5

i>0

"rojo"

'A'



24 - Si definimos int i=1,j=1,m=10; Entonces la salida de la siguiente sentencia es:

for(i=0; i<m; i++){
if ((i+j)%3==0 ){
printf("%d",i);
j++;
}
}

2468

13579

246

1357

246810



36 - ¿Cuáles de las siguientes afirmaciones son correctas en C?

Las tres partes de la sentencia for están separadas por comas

En una sentencia for la condición se ejecuta antes de la inicialización

Si un array tiene n elementos entonces su recorrido debe tener como condición i<=n

Las tres partes de una sentencia for son inicialización, condición y actualización por este orden

La actualización sirve para modificar el contador



7 - En una sentencia switch para una variable i de tipo int se pone switch(i) y después:

case = 1: printf(“%d”,i); break;

case 1: printf(“%d”,i);

case 1: printf(“%n”,i); break;

case 1; printf(“%d”,i); break;

case 1: printf(“%d”,i); break;



7-b - En una sentencia switch para una variable c de tipo char se pone switch(c) y después:

case c == 'a': printf(“%c”,c); break;

case 'a': printf(“%c”,c); break;

case 'a': printf(“%d”,c); break;

case 3: printf(“%lf”,i);

case 'a' printf(“%c”,c); break;



36-b - ¿Cuáles de las siguientes afirmaciones son correctas en C?

En una sentencia for la inicialización se ejecuta antes de la condición

La condición comprueba que el for cumple los requisitos para seguir ejecutándose

Si un array tiene n elementos entonces su recorrido debe tener como condición i<=n - 1

Las tres partes de una sentencia for son condición, inicialización y actualización por este orden

La variable contador se declara e inicializa dentro del for



24-b - Si definimos int i=1,m=10; Entonces la salida de la siguiente sentencia es:

for(i=0; i<m; i++){
if (i%3==0 ){
printf("%d",i);
}
}

246810

0369

1357

3, 6, 9

0, 3, 6, 9



136-b - Indique cuáles de las siguientes expresiones se pueden utilizar en una etiqueta case de una sentencia switch(c){...} (Nota: suponga que la variable 'c' es de tipo char)

"azul"

i>a

30

'a'

3.6



120-b - Dado el siguiente código y teniendo en cuenta que i vale 0:

Se imprime 144

Se imprime 2

El programa tendría un error de ejecución

Se imprime 012

Se imprime 22



A11-b - Para imprimir la secuencia 3 6 9 12 15 18. El trozo de código sería (rellene los espacios sin dejar blancos y no olvide los ; cuando sean necesarios. Use la variable i como contador)
for( ){       
printf();
}



A10-b - Para imprimir la secuencia 5 10 15 20 25 30. El trozo de código sería (rellene los espacios sin dejar blancos y use la variable i como contador)
    
while(){
printf();

}



Dado el código de la figura, si se leen los numeros 0 4 5 1 2 3 6. La salida es

(tenga en cuenta que no hay blancos en la sentencia printf)



Dado el código de la figura, si se leen los numeros 0 4 5 1 2 3 6. La salida es

(tenga en cuenta que no hay blancos en la sentencia printf)



37-b - Queremos implementar una función que nos diga si un número es primo. Entonces escribimos la función siguiente. ¿Qué errores puede apreciar en este código?
 
1.
long factorial (int n){
2. long res = 1;
3.
4. for(i=n; i>1;i++){
5. res = res*i;
6. res--;
7. }
8. return res;
9. }

La sentencia 6 debería ser borrada

Hay que declarar la variable i

El incremento de i en el for debería ser un decremento (i--)

El valor de retorno debería ser de tipo int, ya que el parámetro de entrada es int

La variable res debería estar inicializada a 0



Si definimos
int i=1,j=5,k=10; 
Entonces la salida de la siguiente sentencia es:

2468

02468

13579

159

123579



Rellene los huecos para que el programa imprima correctamente los números pares hasta un número leído de teclado(este número incluido
#include <stdio.h> 
void main(void){
int n, i;

scanf("", &n);
printf("Los pares hasta %d son:\n", );
for(i=;;){
printf("%d", );}
}



10-b - Para escribir la tabla de multiplicar del 5 la expresión correcta es:

for(i=1;i<=10;i++){
printf ("%d x %d = %d \n", 5,i,5*i);
}

for(i=1,i<10,i++){
printf ("%d x %d = %d \n", 5,i,5*i);
}

for(i=0;i<10;i++) {
printf ("%d x %d = %d ", 5,i,5*i);
}

for(i=0;i<10;i++){
printf ("%d x %d = %d \n", 5,i,5*i);
}

for(i=1;i<=10;i++){
printf ("5 x %d = %d \n", i,5*i);
}



124-b - En una sentencia while hay dos partes: condición y bloque de sentencias. ¿En qué orden se ejecutan?

condición - bloque de sentencias

sentencias - bloque - condición

depende del valor de la condición

depende del bloque de sentencias

condición - sentencias - bloque



119 - ¿Cuál es la salida por pantalla del siguiente trozo de programa? Tenga en cuenta que no hay blancos entre los valores a imprimir.




Puntuacion Total

Aciertos

Aciertos Parciales

No hay comentarios:

Publicar un comentario