Tema 4.2 C

 

 

 


253 - Identifique cada función de biblioteca de C para cadenas con su finalidad.

strlen

strcmp

scanf con formato %s

strcpy

strcat



252 - Dadas las siguientes declaraciones:

void main(void) {
     int i;
     Cadena cadena1 = "Esta es la cadena 1";
     Cadena cadena2;
....
}


¿Como copiarías el contenido de cadena1 en cadena2?

Cualquiera de las dos instrucciones
strcpy(cadena2, cadena1); 
for (i = 0; i < 256; i++){ cadena2[i] = cadena1[i];}

Unicamente la instrucción
for (i = 0; i < 256; i++) {cadena2[i] = cadena1[i];}

Unicamente la instrucción
cadena2 = cadena1;

Cualquiera de las dos instrucciones:

strcpy(cadena2, cadena1);
cadena2 = cadena1;

Unicamente la instrucción
strcpy(cadena2, cadena1);



219 - ¿Cuáles de las siguientes afirmaciones son ciertas?

La invocación strcat(s1, “HOLA”); hace que el tamaño real de s1 aumente en 4

En el orden lexicográfico “ANA” es anterior a “JUANA”

La invocación strlen(“HOLA MUNDO”; devuelve 10

strcmp devuelve true si dos arrays de caracteres son iguales

Después de la invocación strcpy(s1,”HOLA”); entonces s1[2] guarda ‘L’



220 - ¿Cuáles de las siguientes afirmaciones son ciertas?

Después de hacer strcat(s1,s2); la invocación strcmp(s1,s2) devuelve false

Después de hacer strcpy(s1,s2); la invocación strcmp(s1,s2) devuelve true

Después de hacer strcat(s1,s2); la invocación strcmp(s1,s2) devuelve 0

Después de hacer strcpy(s1,s2); la invocación strcmp(s1,s2) devuelve 0

La invocación a strlen devuelve un int



254 - Rellene los espacios en blanco para que el código sea correcto: (se suponen declaradas las variables c1 y c2 de tipo Cadena)

if( (c1,c2) ){
         printf("Las cadenas c1 y c2 son iguales\n");  
}



255 - Selecciona cuáles de las siguientes inicializaciones de cadenas son correctas:

char palabra[4] = {H, o, l, a};

char palabra[5] = {'H', 'o', 'l', 'a', '\0'};

char palabra[6] = "Hola";

char palabra[4] = {'H', 'o', 'l', 'a'};

char palabra[3] = "Hola";



256 - En lenguaje C:

Las cadenas se manipulan mediante las funciones de la librería string.h

Las cadenas de caracteres tienen un caracter \0 para indicar el final

Las cadenas se definen con el tipo string

Las cadenas de caracteres se consiguen mediante el uso de arrays de char

Las cadenas se definen con el tipo Cadena que proporciona C



268 - Indique cuáles de las siguientes afirmaciones sobre los índices son correctas:

Los índices en C comienzan en 0

Si TAM es una constante que indica el tamaño de una tabla, el rango válido de índices para esa tabla va desde 0 hasta TAM-1

Si usamos un índice fuera del rango permitido obtenemos un error de compilación

Los índices se usan para acceder a elementos en una tabla

Los índices en C son números reales



269 - Rellena el espacio en blanco:
   #include <stdio.h>
#define TAM 10
int Vector10;

int ();

void main (void) {
Vector10 v;
int n;
n = inicializaVector();
}
int inicializaVector(Vector10 t) {
int num;
printf ("¿Cuantos numeros en el vector?");
scanf ("%d", );
for (i=0;i<num;i++)
scanf("%d",t);
return num;
}



3 - ¿Cuáles de las siguientes definiciones son válidas para definir un array bidimensional para guardar valores enteros?

typedef Tabla int[TAM][TAM];

typedef long Tabla[TAM][TAM];

typedef int[TAM][TAM] Tabla;

typedef int Tabla[TAM][TAM];

#typedef int Tabla[TAM][TAM];



B1 - Cuando un array de una dimensión (unidmensional) es argumento de entrada de una función. Entonces

El tamaño real del array debe ser argumento de entrada también

Habrá un argumento de tipo int en la función para que reciba el tamaño real del array

La función debe tener un argumento de tipo int para que dentro de la función se sepa cuántos elementos tiene el array

La función deberá recibir también un entero con el número de elementos que realmente tiene el array

El número de elementos del array debe ser argumento de entrada también



B2 - Si una función recibe un array bidimensional (matriz) como argumento de entrada, entonces:

La cabecera de la función tendrá dos parámetros de entrada de tipo int con el número de filas y columnas de la matriz

La función recibirá dos argumentos más con el número de finas y columnas de la matriz

Habrá dos argumentos más en la función de tipo int para el tamaño real de la matriz

La función necesita saber el tamaño real de la matriz y sólo puede hacerse mediante dos parámetros de tipo int en el prototipo de la función

La función necesitará saber el número de filas y columnas reales del array



T4.1.b - Para definir un tipo para array bidimensional de valores reales con dimensiones 10 x 20 que denominemos TablaReal se escribe

typedef ;



T4.2.b - Tenemos declaradas dos variables s1 y s2 de tipo Cadena (definido como en los apuntes).

Escriba la sentencia que asigna a s1 el valor HOLA

(,);



T4.4.b - Tenemos declaradas dos variables s1 y s2 de tipo Cadena (definido como en los apuntes).

Escriba la sentencia que hace correcto el siguiente código

if ((,)>){
         printf("La cadena %s es posterior en el diccionario a %s\n",s1,s2);
}
else{
       printf("La cadena %s es anterior en el diccionario a %s\n",s1,s2);
}



T4.3.b - Tenemos declaradas dos variables s1 y s2 de tipo Cadena (definido como en los apuntes).

Escriba la sentencia que devuelve en la variable n de tipo int la longitud de s2

=();



T4.5.b - Tenemos declarado el  tipo Cadena definido como en los apuntes y declaramos dos variables de tipo Cadena:

Cadena s1="HOLA", s2="PEPE";

Escriba dos sentencias para que s1 valga "HOLA PEPE"

(,);
(,);



T4.6.b - Tenemos declarado el  tipo Cadena definido como en los apuntes y declaramos una variable de tipo Cadena:

Cadena s1="HOLA";

Escriba una sentencias para que s1 valga "HOLAHOLA"

(,);



T4.7.b - Tenemos definidos los tipos Cadena y TablaCadena como están en los apuntes. Se teien tambien declarada la variable palabras de tipo TablaCadena entonces si queremos leer desde teclado los n primeros valores de palabras escribimos un bucle como:

for(i=0;;i++) {
    scanf(,);
}



304 - Indique qué condición lógica de las siguientes es la correcta para comprobar que dos cadenas c1 y c2 son distintas, es decir, evalúe cierto si la cadena c1 es distinta de la cadena c2.

strcmp(c1,c2)!=0

strcmp(c1,c2)==0

strcmp(c1,c2)>0

c1==c2

c1!=c2



T4.8.b - Se tienen declarados los siguientes tipos:

#define NF 10
#define NC 20
typedef float VectorFila [NC];
typedef float VectorColumna[NF];
typedef float MatrizReal[NF][NC];

y las siguientes variables:

int i,j;
VectorFila vf;
VectorColumna vc;
MatrizReal m;
int nf,nc; //número real de filas y columnas de la Matriz m

Entonces un bucle para que vc tome los valores de la primera columna de m es:

for(i=0;;i++){
   =m;
}



T4.9.b - Se tienen declarados los siguientes tipos:

#define NF 10
#define NC 20
typedef float VectorFila [NC];
typedef float VectorColumna[NF];
typedef float MatrizReal[NF][NC];

y las siguientes variables:

int i,j;
VectorFila vf;
VectorColumna vc;
MatrizReal m;
int nf,nc; //número real de filas y columnas de la Matriz m

Entonces un bucle para que vf tome los valores de la segunda fila de m es:

for(j=0;;j++){
   =m;
}



T4.10.b - Se tienen declarados los siguientes tipos:

#define NF 10
#define NC 20
typedef float VectorFila [NC];
typedef float VectorColumna[NF];
typedef float Matriz[NF][NC];

Entonces una función que devuelva la fila de índice n tiene el siguiente código:

void devuelveFila(const Matriz m, int nf, int nc, int n, VectorFila vf){
int j;
for(j=0;;j++){
 vf=m;
 }
}



T4.11.b - Se tienen declarados los siguientes tipos:

#define NF 10
#define NC 20
typedef float VectorFila [NC];
typedef float VectorColumna[NF];
typedef float Matriz[NF][NC];

Entonces una función que devuelva la columna de índice n tiene el siguiente código:

void devuelveColumna(const Matriz m, int nf, int nc, int n, VectorColumna vc){
 int i;
 for(i=0;;i++){
 vc=m;
 }
}



T4.12.b - Se tienen declarados los siguientes tipos:

#define NF 10
#define NC 20
typedef float VectorFila [NC];
typedef float VectorColumna[NF];
typedef float Matriz[NF][NC];

Entonces una función que devuelva un vector con la suma por columnas de m tiene el siguiente código:

void sumaPorColumna(const Matriz m, int nf, int nc, VectorFila vf){
 int i,j,suma;
 for(j=0;;j++){
  suma=0.;
  for(i=0;;i++){
   suma=suma+m;
  }
  vf=suma;
 }
}



T4.13.b - Se tienen declarados los siguientes tipos:

#define NF 10
#define NC 20
typedef float VectorFila [NC];
typedef float VectorColumna[NF];
typedef float Matriz[NF][NC];

Entonces una función que devuelva un vector con la suma por filas de m tiene el siguiente código:

void sumaPorFila(const Matriz m, int nf, int nc, VectorColumna vc){
 int i,j,suma;
 for(i=0;;i++){
  suma=0.;
  for(j=0;;j++){
   suma=suma+m;
  }
  vc=suma;
 }
}




Puntuacion Total

Aciertos

Aciertos Parciales

No hay comentarios:

Publicar un comentario