Colección de citas famosas - Libros antiguos - Examen nacional de rango informático Nivel 2 Preguntas y respuestas anteriores del idioma C

Examen nacional de rango informático Nivel 2 Preguntas y respuestas anteriores del idioma C

Septiembre 2010 Examen Nacional de Nivel Informática Nivel 2 Prueba Escrita de Lenguaje C Preguntas y Respuestas

1. Preguntas de opción múltiple ((1)-(10) 2 puntos cada una, (11) - (50) 1 punto por cada pregunta.***60 puntos))

(1) ¿Cuál de las siguientes opciones no pertenece a las tareas de la etapa de desarrollo del ciclo de vida del software?

A ) Diseño detallado B) Diseño del esquema C) Mantenimiento de software D) Pruebas de software

(2) Un árbol es una colección de nodos y su número de nodos raíz es

A) Allí es y es solo 1 B ) 1 o más de 1 C) 0 o 1 D) Al menos 2

(3) En el método orientado a objetos, la ocultación de información se basa en

A) herencia de objetos B) Polimorfismo de objetos C) Encapsulación de objetos D) Clasificación de objetos

(4) Los componentes básicos del lenguaje de programación son componentes de datos, componentes de operación, componentes de control y

A) Componente de declaraciones B) Componente de variable C) Componente de objeto D) Componente de transferencia

(5) El número de comparaciones en el peor de los casos de clasificación de burbujas es

A) n/2 B) nlog2n C) n (n-1)/2 D) n (n 1)/2

(6) Entre las siguientes descripciones, ¿cuál no pertenece al rol del ¿Especificación de requisitos de software?

A) Como base para las pruebas de confirmación y aceptación

B) Al reflejar la estructura de los problemas del usuario, se puede utilizar como base y base para el trabajo de desarrollo de software.

C) Es fácil de entender y comunicar para los usuarios y desarrolladores

D) Para facilitar que los desarrolladores realicen análisis de la demanda

(7) ¿Cuál de las siguientes declaraciones son incorrectas

A) Un programa en lenguaje C solo puede implementar un algoritmo B) Un programa en C puede estar compuesto por múltiples archivos de programa

C) Un programa en C puede estar compuesto por uno o más funciones D) Una función puede existir sola como un archivo de programa C

(8) ¿Cuál de los siguientes no pertenece a los tres elementos de la ingeniería de software?

A) Método B) Proceso C) Herramienta D) Entorno

(9) ¿Cuál de las siguientes afirmaciones es correcta?

A) El sistema de base de datos es un sistema independiente y no requiere el soporte de un sistema operativo.

B) El objetivo fundamental de la tecnología de bases de datos es resolver el problema del intercambio de datos

C) Un sistema de gestión de bases de datos es un sistema de bases de datos

D) Ninguno de las tres afirmaciones anteriores son correctas

(10) ¿Cuál de las siguientes afirmaciones es correcta?

A) Debe haber una función main() en cada archivo de programa C

B) No se puede definir otra función dentro de la función del programa C

C) Un programa C puede estar compuesto por una O compuesto por múltiples funciones

D) La posición de la función main() en el programa C es fija

(11) Al convertir el diagrama E-R al modelo relacional, tanto las entidades como las relaciones se pueden expresar como

A) Atributo B) Relación C) Clave D) Dominio

(12) ¿Cuál de las siguientes afirmaciones que definen variables es incorrecta?

A) double int_ B) int _int C) char For D; ) float USS

(13) ¿Cuál de las siguientes afirmaciones es correcta?

A) El lenguaje C no verifica la sintaxis al compilar B) Hay dos tipos de subrutinas en el lenguaje C: procedimientos y funciones

C) Las funciones del lenguaje C se pueden anidar en la definición D) Las funciones del lenguaje C se pueden anidar en llamadas

(14) Las siguientes opciones, el conjunto legal de números del lenguaje C constantes es

A) 0x8A

B)12 C).177 D) 028

(15) ¿Cuál de las siguientes afirmaciones es correcta?

A) La unidad básica que constituye un programa en C es una función

B) Puedes definir otra función dentro de una función

C) La función main() debe colocarse antes que otras funciones

D) Todas las funciones llamadas deben llamarse antes Definición

(16) Si después de la declaración de definición: int a, b, c, *p=amp c;, y luego ejecuta las declaraciones en las siguientes opciones, la declaración que se puede ejecutar correctamente es

A) scanf("d",amp;p); B)scanf("ddd",a,b,c);

C)scanf("d", p); D) scanf("d", a, b, c);

(17) Existe el siguiente programa

main()

{int x, y, z;

x=y=1;

z=x, y, y

printf("d, d, d\n", x, y, z);

}

El resultado de salida después de ejecutar el programa es

A) 2, 2, 3 B ) 2, 2, 2 C) 2, 3, 1 D) 2, 1, 1

(18) Si se define: int a=25, b=14, c=19; (?:) Después de la ejecución de la declaración constituida alt;=25amp;amp;b--lt;=2amp;amp;c?printf("***a=d,b=d,c=d\n", a,b, c): printf("###a=d, b=d, c=d\n", a, b, c) el resultado generado por el programa es

A); ) ***a= 25, b=13, c=19 B) ***a=26, b=14, c=19

C) ### a=25, b=13 , c=19 D) ### a=26, b=14, c=19

(19) El resultado de salida del siguiente segmento del programa es

int a=1234 ;

float b=123.456;

doble c=12345.54321;

printf ("-, 2.1f, 2.1f", a, b, c) ;

A) Sin salida B) 12, 123.5, 12345.5 C) 1234, 123.5, 12345.5 D) 1234, 123.4, 1234.5

(20) Existe el siguiente programa

main()

{int a=0, b=0;

a=10 /*Asignar un valor a

b=20; Asigna un valor a b*/

printf("a b=d\n", a b /* Muestra el resultado del cálculo*/

}

El resultado de salida después de ejecutar el programa es

A) 30 B) a b=30 C) a b=0 D) Error

(21) Si ingresa ADescriptor (es decir, Enter) desde el teclado al ejecutar el siguiente programa, el resultado de ejecución del siguiente programa será Sí

#include

main()

{ char c;

int v0=1, v1=0, v2=0

hacer{ switch(c;

=getchar())

{ caso ′a′: caso ′A′:

caso ′e′: caso ′E′:

caso ′i ′: caso ′I′:

caso ′o′: caso ′O′:

caso ′u′: caso ′U′: v1 =1

predeterminado: v0 =1; v2 =1;

}

} mientras (c!=′\n′); =d, v1=d, v2=d\n", v0, v1, v2);

}

A) v0=11, v1=4, v2=11 B ) v0=8, v1=4, v2=8

C) v0=7, v1=4, v2=7 D) v0=13, v1=4, v2=12

(22) Existe el siguiente programa

#include

main()

{int y=9;

para ( ygt ;0;y--)

if(y3= =0) printf("d",--y);

}

Ejecución del programa El resultado es

A) 732 B) 433 C) 852 D) 874

(23) Se proporciona el siguiente segmento de programa

int x =0, s= 0;

mientras (!x!=0) s = x;

printf ("d", s);

A) Salida 0 después de ejecutar el segmento del programa B) Salida 1 después de ejecutar el segmento del programa

C) La expresión de control en el segmento del programa es ilegal D) El segmento del programa se ejecuta veces ilimitadas

(24) Existe el siguiente programa

fun(int x, int y){return(x y);}

main()

{int a= 1, b=2, c=3, suma;

suma=diversión((a,b b,a b),c);

printf("d\n",sum );

}

El resultado de salida después de la ejecución es

A) 5 B) 7 C) 8 D ) 3

( 25) Después de ejecutar el siguiente segmento del programa, el valor en la variable k es

int k=3, s[2]; [0]=k; k=s[ 1]*10;

A) Valor indefinido B) 35 C) 31 D) 20

(26) ¿Cuál de las siguientes afirmaciones? es incorrecto

A ) Cambiar el valor del parámetro de función no cambiará el valor del parámetro real correspondiente

B) La función puede devolver el valor de la dirección

C) Se puede asignar un número entero a la variable de puntero como valor de dirección

D) Cuando el archivo stdio.h se incluye al comienzo del programa, puede asignar NULL a la variable de puntero

(27) La descripción del siguiente segmento del programa es correcta

x=-1

do

{x=x*x; ;} while (!x);

A) es un bucle infinito B) El bucle se ejecuta dos veces C) El bucle se ejecuta una vez D) Hay un error de sintaxis

( 28) Existe el siguiente programa

fun(int x, int

y)

{static int m=0, i=2;

i =m 1; m=i x y; >

principal()

{int j=1, m=I, k;

k=fun(j, m); ;

k=fun(j,m); printf("d\n",k)

}

El resultado de salida después de la ejecución es

p>

A) 5, 5 B) 5, 11 C) 11, 11 D) 11, 5

(29) tiene el siguiente programa

diversión(int x)

{int p

if(x==0║x= =1) return(3);

p= x-fun(x= 2);

retum p;

}main()

{ prinf("d\n", fun(7) );}

El resultado de salida después de la ejecución es

A) 7 B) 3 C) 3 D) 0

(30) En un sistema de 16 bits sistema de compilación, int se define a la derecha a [] = {10, 20, 30}, * p = amp;, después de ejecutar p ;, cuál de las siguientes declaraciones es incorrecta

A) p mueve un byte a la dirección alta B )p mueve una unidad de almacenamiento a una dirección superior

C) p mueve dos bytes a una dirección superior D) p es equivalente a 1

(31) Existe el siguiente programa

main()

{int a=1, b=3, c=5

int *p1; =amp; a, *p2=amp ;b, *p=&c;

*p=*p1*(*p2);

printf("d\n", c);

}

El resultado de salida después de la ejecución es

A) 1 B) 2 C) 3 D) 4

(32) Después de ejecutar el siguiente programa, el resultado de salida es

void func1 (int i

void func2 (int i

char st); []="¡Hola amigo!"

void func1 (int i)

{ printf ("c", st[i]);

if (ilt; 3) {i = 2; func2(i);}

}

void func2(int i)

{ printf("c ",st[i]);

if(ilt;3){i=2;func1(i);}

}

principal()

{ int i=0; func1(i); printf("\n");}

A) hola B) hel C) hlo D) hlm

(33) En el siguiente programa, juzgue igt; el número de veces que se ejecuta j*** es

main()

{ int i=0, j= 10, k=2, s=0;

main() p>

para (;;)

{ i =k; (igt; j)

{p

rintf("d",s);

romper;

} s =i;

A) 4 B) 7 C) 5 D) 6

(34) La siguiente función devuelve el valor del subíndice del valor máximo en la matriz señalada por a

divertido(int *a, int n)

{ int i, j=0, p

p=j

for (i=j; iif (a [i]gt; a[p]);

return (p);

}

El contenido que debe completarse está subrayado.

A) i=p B) a[p]=a[i] C) p=j D) p=i

(35) El resultado de salida después de la ejecución del el siguiente programa es

main()

{ int a[3][3],*p,i

p=amp;a[0]; [0];

for (i=1; ilt; 9; i )p[i]=i 1;

printf("d\n",a[1] [2]);

}

A) 3 B) 6 C) 9 D) Número aleatorio

(36) tiene el siguiente programa

#include

void fun(int *a, int n)/*La función de la función divertida es ordenar los elementos de la matriz señalados por a de mayor a menor*/

{int t, i, j;

for(i=0; ifor(j=i 1;jif (a}

main()

{int c[10]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 0},

diversión(c 4, 6); /p>

for (i= 0;ilt;10;i) printf("d,",c);

printf("\n");

}

El programa se ejecuta El resultado es

A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, B) 0, 9, 8 , 7, 6, 5, 1, 2, 3, 4,

C) 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, D) 1, 2, 3, 4, 9, 8, 7, 6 , 5, 0,

(37) El resultado de salida del siguiente programa es #include

void prt (int *x, int*y, int*z)

{ printf ("d, d, d\n", *x, *y, *(z));}

main( )

{ int a=10 , b=40, c=20

prt (amp; a, amp; b, amp; c;

prt (amp; a, amp; b, amp; c

}

A) 11, 42, 31

12, 22, 41

B) 11, 41, 20

12, 42, 20

C) 11, 21, 40

11, 21 , 21

D) 11, 41, 21

12, 42, 22

(38) Existen los siguientes procedimientos:

#include

vacío divertido(char * t, char *s)

{<

/p>

mientras(*t!=0)t;

mientras((*t =*s )!=0);

}

main()

{

char ss[10]=”acc”, aa[10]=”bbxxyy”;

fun(ss, aa);

printf(“s, s\n”, ss, aa);

}

El resultado del programa es

A) accxyy, bbxxyy B) acc, bbxxyy

C) accxxyy, bbxxyy D) accbbxxyy, bbxxyy

(39) Existen los siguientes programas

#include

main()

{ ARCHIVO *fp; int i=20, j=30, k, n

fp=fopen( "d1.dat ", "w");

fprintf (fp, "d\n", i); fprintf (fp, "d\n",

fclose(fp );

fp=fopen ("d1.dat", "r");

fscanf (fp, "dd", amp; k, amp; n ); printf ( "d d\n", k, n);

fclose(fp>}

El resultado de salida después de ejecutar el programa. es

A) 20 30 B) 20 50 C) 30 50 D) 30 20

(40) tiene el siguiente programa

main()

{int x[3][2]={0},I;

for(I=0;Ilt;3;I) scanf("d",x[i] );

printf("3d3d3d\n", x[0][0], x[0][1], x[1][0]);

Si ingresa: 246 durante el tiempo de ejecución, el resultado de salida es

A) 2 0 0 B) 2 0 4 C) 2 4 0 D) 2 4 6

(41) Existen los siguientes programas

int add(int a, int b){return b};}

main()

{int k, (*f)() , a=5, b=10

f=añadir

}

La siguiente declaración de llamada de función es incorrecta Sí

A) k=(*f)(a, b) k=add(a, b) k=*f(); a, b); D) k=f (a, b);

(41) tiene el siguiente programa

#include

main(int argc). , char *argv[])

{int i=1, n=0

while(ilt; arge){n=n strlen(argv[i]); ;}

printf( "d\n", n);

}

El archivo ejecutable generado por este programa se llama: proc.exe.

Si ingresa la línea de comando cuando ejecuta:

proc 123 45 67

entonces el resultado de salida del programa es

A) 3 B) 5 C) 7 D) 11

(42) tiene el siguiente programa

void fun2(char a, char b){printi(“bc”, a, b);}

char a= 'A', b= 'B';

void fun1(){ a= 'C'l b= 'D'; ( )

{ fun1()

printf( "cc", a, b

fun2('E', 'F'); /p>

}

El resultado de ejecución del programa es

A) CDEF B) ABEF C) ABCD D) CDAB

(43) Existen los siguientes programas

#include

#define N 5

#define M N 1

#define f(x) ( x*M)

main()

{int i1, i2

i1=f(2); f(1 1);

printf(“d d\n”, i1, i2

}

El resultado del programa es

A) 12 12 B) 11 7 C) 11 11 D) 12 7

(44) tiene la siguiente declaración

typedef struct TT

{char c; int a[4] ;}CIN;

La siguiente descripción es correcta

A) TT se puede utilizar para definir variables de estructura B) TT es una variable de tipo de estructura

C ) Puede usar CIN para definir variables de estructura D) CIN es una variable de tipo de estructura TT

(45) Existen las siguientes descripciones de estructura, definiciones de variables y asignaciones declaraciones

struct STD

{char nombre[10];

int edad

char sexo

}s[5], *ps;

ps=amp; s[0];

Entonces la siguiente declaración de llamada de función scanf hace referencia incorrecta al miembro de la variable de estructura

A) scanf("s", s[0].nombre); B) scanf("d", y s[0].edad

C) scanf("c); ", amp; (psgt; sexo)); D) scanf("d", psgt; edad);

(46) Si existen las siguientes definiciones y declaraciones

unión data

{ int i; char c; float f;}x;

int y;

Entonces la siguiente afirmación es correcta

A) x=10.5; B) x.c=101; C) y=x; D) printf(“d\n”, x);

(47) Si la variable ha sido definida correctamente, el resultado de salida de la siguiente declaración es

s =32; s^=32; printf(“d”, s);

A)-1 B) 0 C) 1

D) 32

(48) Si hay una línea de definición de macro en el programa: #define N 100, entonces la siguiente afirmación es correcta

A) El identificador N está definido en la línea de definición de macro El valor es un número entero 100

B) Reemplazar el identificador N con 100 cuando el compilador preprocesa el programa fuente C

C) Reemplazarlo con 100 al compilar el C Identificador del programa fuente N

D) Reemplace el identificador N con 100 en tiempo de ejecución

(49) ¿Cuál de las siguientes afirmaciones es correcta?

A) En lenguaje C El El archivo es un archivo de transmisión, por lo que solo se puede acceder a los datos de forma secuencial

B) Después de abrir un archivo existente y realizar una operación de escritura, todos los datos del archivo original se sobrescribirán

C ) Después de escribir en un archivo en un programa, el archivo debe cerrarse y luego abrirse nuevamente antes de que se puedan leer los primeros datos

D) Al leer (escribir) el archivo Una vez completada la operación, debe cerrarse, de lo contrario puede ocurrir pérdida de datos

(50) tiene el siguiente programa

#include

main()

{FILE *fp; int i;

char ch[]=”abcd”,t;

fp=fopen(“abc.dat”,”wb”) ;

for(i=0;ilt;4;i)fwriteramp;ch[],1,1fp;

fseek(fp,-2L,SEEK_END);

fread (amp; t, 1, 1, fp);

fclose(fp

printf(“c\n”, t

);

El resultado de salida después de ejecutar el programa es

A) d B) c C) b D) a

2. Complete los espacios en blanco ( 2 puntos por cada espacio en blanco, 40 puntos)

(1) En el método orientado a objetos, el mecanismo para compartir atributos y operaciones entre clases se llama 1.

(2) La fila de una tabla relacional se llama 2.

(3) El acoplamiento y la cohesión son los dos criterios principales para evaluar la independencia del módulo, donde 3 refleja la conexión entre los componentes dentro del módulo.

(4) La estructura de almacenamiento de las tablas lineales se divide principalmente en estructura de almacenamiento secuencial y estructura de almacenamiento en cadena. La cola es una tabla lineal especial y la cola circular es la cuarta estructura de almacenamiento de la cola.

(5) La tarea de 5 es diagnosticar y corregir errores en el programa.

(6) El resultado de salida del siguiente programa es 6.

#include

main()

{ int n= 12345, d;

mientras(n!=0){ d=n10; printf("d",d/=10;}

}

(7) El resultado de salida después de ejecutar el siguiente programa es 7.

main()

{

int m=011, n=11

printf("d d\n", m; , n );

}

(8) Existe el siguiente programa. Si ingresa: 18, 11 desde el teclado durante la operación, el resultado de salida del programa es 8.

main()

{ int a, b;

printf("Ingrese a, b: "); ;a,amp;b);

mientras(a!=b)

{ mientras(agt;b) a-=b;

mientras( bgt; a) b-=a;

}

printf("3d3d\n", a, b); p>(9) Existe el siguiente segmento de programa, y ​​las variables han sido definidas y asignadas correctamente

for(s=1.0, k=1;klt;=n;k) s=s 1.0/ (k*( k 1));

printf("s=f\n\n", s);

Por favor, complete los espacios en blanco para que las funciones de lo siguiente los segmentos del programa son exactamente iguales

s=1.0;k=1;

while(_9_______){ s=s 1.0/(k*(k 1));

printf(" s=f\n\n", s);

(10) El resultado de la ejecución del siguiente programa es 11______.

#include

main()

{ int i, n[4]={1}

for(i=1; ilt; =3; i )

{ n= n[i-1]*2 1; printf("d",n }

}

(11) La función de la función f en el siguiente programa está en la matriz x Encuentre el número más grande y más pequeño entre n números (suponiendo que los n números son diferentes entre sí), intercambie el número más pequeño con el primer número e intercambie el número más grande con el último número. Por favor, complete los espacios en blanco.

#include

viod f(int x[], int n)

{ int p0, p1, i, j, t, m;

i=j=x[0]; p0=p1=0;

for(m=0;m{ si(x[m) ]gt;i) {i=x[m]; p0 =m;}

si no(x[m]}

t=x[p0]; x[p0 ]=x[n-1]; x[n-1 ]=t;

t=x[p1]; x[p1]= _12_______; 13______=t;

}

main()

{ int a[10],u;

for(u=0;ult;10;u) scanf("d ",amp;a);

f(a,10);

for(u=0;ult;10;u) printf("d",a);

printf("\n");

}

(12) La función strcpy2() en el siguiente programa realiza dos copias de la cadena, es decir , copia la cadena señalada por t dos veces en el espacio de memoria señalado por s, combinada para formar una nueva cadena. Por ejemplo, si la cadena señalada por t es efgh, después de llamar a strcpy2, la cadena señalada por s será efghefgh. Por favor complete los espacios en blanco.

#include

#include

void strcpy2(char *s, char *t)

{ char *p=t;

mientras(*s =*t);

s= 14;

mientras( 15 =*p);

main()

{ char str1[100]="abcd", str2[]="efgh"

strcpy2(str1, str2); printf("s\n", str1);

}

(13) El siguiente programa cuenta el número de letras mayúsculas en los caracteres ingresados ​​desde el terminal y los cuenta en num[0] El número de letras A, el número de letras B en num[1], etc. Finalice la entrada con #, complete los espacios en blanco.

#include

#include

main()

{ int num[26]={0}, i; char c;

mientras((_16_______) !='#')

if(isupper(c)) num[c-'A'] = 17_______;

for(i=0;ilt;26;i)

Printf("c: d\n", i 'A', num);

}

(14) En el siguiente programa, la función de la función fun es calcular x2-2x 6. La función fun será llamada en la función principal para calcular:

y1=(x 8)2-2(x 8) 6

y2=sin2(x)-2sin(x) 6

Por favor, completa los espacios en blanco.

#include "math.h"

doble diversión(doble x) { return(x*x-2*x 6 }

main( )

{

doble x, y1, y2;

printf("Ingrese x: "); scanf("lf", amp; x);

y1=divertido( 18 );

y2=divertido(

printf("y1=lf, y2=lf\n", y1); , y2);

}

(15) El resultado de salida del siguiente programa es _20______.

#include

#define M 5

#define N M M

main()

{ int k

k=N*N*5; " d\n", k);

}

1. Respuestas a preguntas de opción múltiple:

1-10: CACDC DADBA 11-20: BDDBA CCCCB 21- 30: DCBCA CCBCA

31-40: CCDAB DCDAB 41-50: CABCD BBBDB

2. Respuestas a las preguntas para completar en blanco:

1. Herencia 2. Tupla 3. Cohesión 4. Secuencia 5. Depuración del programa

6.54321 7.10 11 8. 1 9.klt;=n k

10. 3 7 5 11.x[0] x[0] 12.s--, *s 13.c=getchar() 14. (x 8), sin(x) 15.55

Espero que así sea ser útil para ti