Red de conocimiento del abogados - Preguntas y respuestas jurídicas - 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 fase 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 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 de la 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 conveniente para los usuarios y desarrolladores realizar Comprender y comunicarse

D) Es conveniente para los desarrolladores realizar análisis de demanda

(7) ¿Cuál de las siguientes afirmaciones es incorrecta?

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

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

(8) ¿Cuáles de los siguientes no se encuentran entre 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? Sí

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

p>

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

D) Ninguna de las tres afirmaciones anteriores es correcta

(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 una función del programa C

C) Un programa C puede estar compuesto por una o más 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, todas las entidades y relaciones se pueden expresar como

A) Atributos B) Relaciones C) Claves D) Dominios

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

A )double int_; C) char Para 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 lenguaje C: procedimientos y funciones

C) Las funciones en lenguaje C se pueden anidar definidas D) Las funciones en lenguaje C se pueden llamar de manera anidada

(14) Las siguientes Entre las opciones, el conjunto legal de constantes numéricas del lenguaje C es

A) 0x8A B)12 C).177 D) 028

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

p>

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

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

/p>

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

D) Todas las funciones llamadas deben definirse antes de ser llamadas

(16) Si después de definir la sentencia: int a,b,c,*p=&c;, y luego ejecutando las sentencias en las siguientes opciones, la sentencia que se puede ejecutar correctamente es

A) scanf("%d", &p ); B)scanf("%d%d%d",a,b,c);

C)scanf("%d",p); , 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; la declaración compuesta por el siguiente operador ternario ( ?:) Después de la ejecución a<=25&&b--<=2&&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

<); p> A) Sin salida B) 12, 123.5, 12345.5 C) 1234, 123.5, 12345.5 D) 1234, 123.4, 1234.5

(20) tiene el siguiente programa

main( )

{int a=0,b=0;

a=10; /*Asignar un valor a a

b=20; to b*/

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

}

<); p> 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 (que significa Enter) desde el teclado cuando se ejecuta el siguiente programa, luego El resultado de la ejecución del siguiente programa es

#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:v=1;v2+;

=1;

}

} mientras(c!=′\n′);

printf("v0=%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) Sí El siguiente programa

#include

main()

{int y=9;

for( y>0;y- - )

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

}

El resultado de ejecución del el programa 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); /p>

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 ilimitadamente veces

(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]; /p>

s[0 ]=k; k=s[1]*10;

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

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

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

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

C) Puede dar el puntero. A la variable se le asigna un número entero como valor de dirección

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

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

x=-1

do

x=-1; p>

{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) Allí es 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; devolver m;

}

principal()

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

k=diversión(j,m); printf("%d ",k);

k=diversión( j,m); printf("%d\n",k)

}

Después de la ejecución, el resultado de salida es

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

,5

(29) tiene el siguiente programa

fun(int x)

{int p;

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

p=x-fun(x=2);

retum p;

}principal ( )

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

La salida después de la ejecución es

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

(30) En un sistema de compilación de 16 bits, el derecho se define como int a[ ]={10,20,30},*p=&a;, cuando ejecutando p++ Finalmente, cuál de las siguientes afirmaciones es incorrecta

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

C) p mueve un byte a una dirección superior Dos bytes D) p equivale a a+1

(31) Existe el siguiente programa

main()

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

int *p1=&a,*p2=&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) El resultado de salida después de la ejecución del siguiente programa es

void func1 (int i); p>

void func2 ( int i);

char st[]="¡hola, amigo!";

void func1(int i)

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

si(i<3){i+=2;func2(i);}

}

void func2(int i)

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

if(i<3){i+=2;func1 (i);}

}

main()

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

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

(33) En el siguiente programa, determine el número de veces que se ejecuta i>j***

main()

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

para (;;)

{ i+=k;

if(i>j)

{ printf("%d",s)

romper;

} s+=i;

p>

}

}

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

(34) La siguiente función devuelve el array indexado por a El valor del subíndice donde se ubica el valor máximo

fun (int *a,int n)

{ int i, j=0,p;

p= j;

para(i=j;iif(a[i]>a[p]); return(p);

}

p>

El contenido que se debe completar subrayado es

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

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

p>

main()

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

p=&a[0][0]; >

para(i=1; i<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

# incluir

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},i;

diversión(c+4,6);

for ( i=0;i<10;i++) printf("%d,",c);

printf("\n");

}

El resultado de ejecutar el programa 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) La salida del siguiente programa es #include

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

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

principal()

p>

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

prt (&a,&b,&c); p>

prt (&a,&b,&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) Existe el siguiente programa:

# incluir

void fun(char *t, char *s)

{

while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{

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

fun(ss,aa);

printf("%s,%s\n", ss,aa);

}

El resultado de ejecutar el programa es

A) accxyy, bbxxyy B) acc, bbxxyy

C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy

(39) Existe el siguiente programa

#include

main()

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

fp=fopen("d1.dat","w"); (fp,"%d\n",i)

;fprintf(fp,"%d\n",j);

fclose(fp);

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

fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);

}

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

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

(40) Existe el siguiente programa

main()

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

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

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

}

Si la entrada es: 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) Existe el siguiente programa

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

main()

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

f=add;

}

Entonces la siguiente declaración de llamada a función es incorrecta

A ) k=(*f) (a,b); B)k=añadir(a,b); C)k=*f(a,b); >

(41) Existe el siguiente programa

#include

main(int argc,char *argv[])

{int i= 1,n=0;

while(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

, 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(“%b%c”,a,b);}

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

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

principal()

{ fun1()

printf( “%c%c”,a,b);

fun2('E', 'F');

}

El resultado de ejecutar el programa es

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

(43) Sí El siguiente programa

#include

#define N 5

#define M N+1

#define f(x) (x *M)

main()

{int i1,i2;

i1=f(2);

i2=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 el siguiente enunciado

typedef struct TT

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

Entonces la siguiente descripción es correcta

A) TT puede ser se usa para definir variables de estructura B) TT son variables de tipo de estructura

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

(45) Existen las siguientes descripciones de estructuras, definiciones de variables y declaraciones de asignación

struct STD

{char name[10];

int age;

char sex;

}s[5],*ps;

ps=&s[0];

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

A) scanf(“%s”,s[0].name B) scanf(“%d”,&s[0].age);

C) scanf(“%c ",&(ps>sexo)); D) scanf("%d",ps>edad);

(46) Si existen las siguientes definiciones y declaraciones

datos de unión

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

int y;

Lo siguiente la declaración es correcta

A )x=10.5; B) El resultado de salida es

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 valor del identificador N definido en la línea de definición de macro es Entero 100<

/p>

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

C) Reemplazar el identificador N con 100 cuando compila el programa fuente C

D) Reemplazar el identificador N por 100 en tiempo de ejecución

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

A) El archivo en lenguaje C es un archivo de streaming, por lo tanto, los datos pueden solo se puede acceder de forma secuencial

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

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

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

(50) tiene el siguiente programa

#include

main()

{FILE * fp; i;

char ch[]=”abcd”,t;

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

para (i=0;i<4;i++)fwriter&ch[],1,1fp;

fseek(fp,-2L,SEEK_END);

fread(&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=n%10; printf("%d",d); /p >

(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 del programa es 8.

main()

{ int a,b;

printf("Ingrese a,b:");scanf("%d,%d" ,&a,&b);

mientras(a!=b)

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

mientras(b> a) b-=a;

}

printf("%3d%3d\n",a,b);

(9) Existe el siguiente segmento de programa, y ​​las variables han sido definidas y asignadas correctamente

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

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

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

s=1.0;k=1;

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

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;i<=3;i++)

{ n=n[i-1]*2+1; printf("%d",n); /p>

(11) En el siguiente programa La función de la función f es encontrar el número más grande y más pequeño entre n números en la matriz x (asumiendo que los n números son diferentes entre sí), intercambie el número más pequeño con el primer número y empareje el número más grande con el último cambio. Complete los espacios en blanco.

#include

viod f(int x[],int n)<. /p>

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

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

para (m=0;m{ if(x[m]>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 ;u<10;u++) scanf("%d",&a);

f(a,10);

for(u=0;u<10;u++) printf("%d",a);

printf("\n");

}

(12) La función strcpy2() en el El siguiente programa realiza dos copias de la cadena, es decir, copia la cadena a la que apunta t dos veces en el espacio de memoria al que apunta s y la fusiona 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 la terminal, en num[ 0] Cuente el número de letras A, cuente 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;i<26;i++ )

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

}

(14) En el siguiente programa , la función de la función fun es Para calcular x2-2x+6, la función fun se llamará 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 }

principal); ()

{

double x,y1,y2;

printf("Ingrese x:"); scanf("%lf",&x);

y1=diversión( 18 );

y2=diversión(

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

}

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

#include

# definir M 5

#definir N M+M

main()

{ int k;

k=N*N * 5; printf("%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. -preguntas en blanco:

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

6. /p>

10.x[0] x[0] 12.s--,*s++ 13.c=getchar() 14. (x+8),sin(x) 15.55<. /p>

Espero que te haya sido útil Ayudado