Red de conocimiento del abogados - Ley de patentes - ¡Buscando las preguntas del examen escrito de lenguaje C de nivel 2 del Examen Nacional de Grado en Computación de 1994!

¡Buscando las preguntas del examen escrito de lenguaje C de nivel 2 del Examen Nacional de Grado en Computación de 1994!

Imprimir artículo Imprima este artículo Cerrar ventana

Abril de 1994 Examen nacional de grado en informática Nivel 2 Prueba escrita Lenguaje C

Autor: Longpai Fuente del artículo: Número Longpai de clics: 45 Hora de actualización: 2005-11-10 Entrada del artículo: jiangtao Editor: jiangtao

1. Preguntas de opción múltiple (1-30: 1 punto cada una, 31-45: 2 puntos cada una,* * *60 puntos)

Para cada una de las siguientes preguntas, hay cuatro opciones A), B), C) y D). Solo una opción es correcta. Marque en negro la opción correcta en la posición correspondiente. en la hoja de respuestas. No se otorgarán puntos por las respuestas del examen.

(1) El número binario 101110 se convierte en el número octal equivalente 1.

1 A) 45 B) 56 C) 67 D) 78

(2) La CPU se compone de 2.

2 A) Memoria interna y controlador B) Controlador y unidad aritmética

C) Memoria interna y unidad aritmética D) Memoria interna, controlador y unidad aritmética

(3) DOS es un sistema operativo de 3 discos configurado para microcomputadoras de la serie IBM PC y máquinas compatibles.

3 A) Multitarea multiusuario B) Tarea única para un solo usuario C) Tiempo compartido D) Distribuido

(4) Después de iniciar el sistema operativo MS-DOS, 4 es Memoria residente.

4 A) COMMAND.COM B) DISKCOPY.COM C) FORMAT.COM D) CCCC.EXE

(5) Suponga que la estructura de directorios del disquete en la unidad B es como se muestra a continuación Mostrar.

Si el directorio actual es F2, entonces El comando para copiar el archivo PROG.BAS en el directorio raíz de la unidad A al subdirectorio F3 de la unidad B es 5.

5 A) COPIAR PROG.BAS B: B) COPIAR A:PROG.BAS B:\

C) COPIAR A:\PROG.BAS B:\F3 D) COPIAR A:PROG.BAS B:\F3\

(6) Entre los siguientes cuatro grupos de comandos de DOS, el grupo con exactamente el mismo significado es 6.

6 A) COPY y DISKCOPY B) COMP y DISKCOMP

C) DEL y RD D) RENAME y REN

(7) Evita que los disquetes sean infectado con virus El método válido es el 7.

7 A) No junte disquetes y disquetes venenosos B) Coloque una cinta en el espacio de protección contra escritura

C) Mantenga limpia la sala de computadoras D) Formatee los disquetes con regularidad

(8) La capacidad de un disquete de 5 pulgadas de alta densidad y doble cara es 8.

8 A) 360KB B) 720KB C) 1.2MB D) 1.44MB

(9) En FOXBASE, los dos tipos de variables que se pueden usar son 9 .

9 A) Variables de memoria y variables de campo B) Variables globales y variables locales

C) Variables de campo y variables simples D) Variables de memoria y variables automáticas

(10) El comando de DOS para crear un nuevo subdirectorio es 10.

10 A) CREAR B) RD C) MD D) CD

(11) En lenguaje C, si las siguientes variables son todas de tipo int, el resultado de salida es 11.

suma=pad=5; pAd=sum + + ,pAd + + , + + pAd

printf("%d\n",pad

;

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

(12) La salida del siguiente programa es 12.

# incluir

main()

{ int i=010 , j = 10

printf("%d,%; d\n",+ +i , j - -); }

12 A) 11,10 B) 9,10 C) 010,9 D) 10,9

(13) Se sabe que en el código ASCII, el número de serie de la letra A es 65 y el resultado de salida del siguiente programa es 13.

# incluir

main()

{ char c1='A', c2='Y'

printf(" %d,%d\n",c1,c2); }

13A) Debido a que el formato de salida es ilegal, se genera el mensaje de error B) 65, 90 C) A, Y D) 65, 89

(14) La longitud de la cadena a la que apunta el puntero s es 14.

char *s="\\"Nombre\\Dirección\n";

14 A) 19 B) 15 C) 18 D) La descripción es ilegal

(15) Hay una descripción de int(*ptr)[m]; el identificador ptr es 15.

15 A) M punteros a variables enteras

B) Un puntero de función que apunta a M variables enteras

C) Un puntero a una matriz unidimensional con M elementos enteros

D) Un puntero con M elementos punteros Matriz de puntero dimensional, cada elemento solo puede apuntar a un número entero

(16) La condición !E en la declaración while(!E es equivalente a 16

16 A. ) E = = 0 B) E! =1 C) E! =0 D) ~E

(17) La salida del siguiente programa es 17.

# include

main ()

{ printf("%d\n",NULL); }

17 A) Indefinido (la variable dependiente no está definida) B) 0 C)-1 D ) 1

(18) La siguiente declaración de llamada de función contiene 18 parámetros reales

func((exp1,exp2),(exp3,exp4,exp5). )); >

18 A) 1 B) 2 C) 4 D) 5

(19) Se da la siguiente afirmación:

char a=3, b=6,c ;

c=a^b<<2;

Entonces el valor binario de c es 19

19 A) 00011011 B). D) 00011000

(20) Hay un error en 20 en el siguiente programa (el número delante de cada línea del programa es el número de línea).

1 #include

2 main()

3 {

4 float a[3]={0,0};

5 int i;

6 for(i=0;i<3;i + + ) scanf("%d",&a[i]);

7 for(i=1;i<3;i + + ) a[0]=a[0]+a[i];

8 printf("%f\n", a[0]);

9 }

20 A) Ninguno B) Línea 4 C) Línea 6 D) Línea 8

(21 ) Suponiendo que declaración int a=3;, después de ejecutar la declaración a+=a-=a*a;, el valor de la variable a es 21.

21 A) 3 B) 0 C) 9 D) -12

(22) Lo siguiente para el bucle 22.

for(x=0,y=0; (y!=123)&&(x<4); x + +

22A) es un bucle infinito B) loop El número de veces es variable C) Ejecutar 4 veces D) Ejecutar 3 veces

(23) Supongamos que la declaración char a='\72'; entonces la variable a 23.

23A) Contiene 1 carácter B) Contiene 2 caracteres C) Contiene 3 caracteres D) La descripción es ilegal

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

# incluir

# incluir

main()

{ int a=1,b=4,c=2; /p>

float x=10..5, y=4.0, z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x ;

pritnf("%f\n",z); }

24A) 14.000000 B) 015.400000 C) 13.700000 D) 14.900000

(25) tamaño de (doble) es 25.

25 A) Una llamada a función B) Una expresión doble

C) Una expresión entera D) Una expresión ilegal

(26) 26 en lenguaje C.

26 A) Los bucles compuestos por sentencias do- while no se pueden utilizar

B) Los bucles compuestos por sentencias do- while deben salir con sentencias break

C ) El bucle formado por la sentencia do- while termina cuando el valor de la expresión en la sentencia while es distinto de cero

D) El bucle formado por la sentencia do- while termina cuando el valor de la expresión en la sentencia while es cero Finaliza el ciclo

(27) La salida del siguiente programa es 27.

# incluir

# incluir

main()

{ char str[12]={'s','t' ,'r','i','n','g'};

printf("%d\n",strlen(str));

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

(28) La salida del siguiente programa es 28.

# incluir

main()

{ int a=2,c=5

printf("a=%%; d,b=%%d\n",a,c); }

28A) a=%2,b=%5 B) a=2,b=5 C) a=%% d,b=%%d D) a=%d,b=%d

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

# incluir

main()

{ int a ,b,d=241

a=d/100%9;

b=(-1)&&(-1);

printf("%d,%d\n",a,b); p> 29 A) 6,1 B) 2,1 C) 6,0 D) 2,0

(30) La salida del siguiente programa es 30.

# incluir

main()

{ int i

for ( i=1;i<=5;i + + ) {if ( i%2 ) printf("*");

más continuar; printf("#");}

printf("$\n"); }

30 A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$

(31 ) El bucle compuesto por la siguiente declaración for se ejecuta 31 veces.

# incluir

# definir N 2

# definir M N+1

# definir NUM (M+1)*M /2

main()

{ int i , n=0

for ( i=1;i<=NUM;i + + );

{n + + ; printf("%d",n }

printf("\n");

31 A) 5 B) 6 C) 8 D) 9

(32) Dada la siguiente afirmación, 32 no es una referencia correcta a los elementos del array a, donde 0≤i<10.

int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a;

32 A) a[p-a] B) *(&a[i]) C) p[i] D) *(*(a+i))

(33) Existe el siguiente programa:

# incluir

# definir N 6

main()

{ char c[N]; p> for ( ;i

for ( i=0 ; i

Ingrese las siguientes tres líneas. Cada línea de entrada comienza en la primera columna, lo que representa un retorno de carro:

a

b

cdef

La salida del programa es 33

33 A) abcdef B) a C) a D) a

b b b

c cd cdef

d

e

f p>

(34) El siguiente programa llama a la función findmax para encontrar el subíndice del elemento con el valor más grande en la matriz. Elija completar los espacios en blanco.

# incluir

findmax ( s , t , k )

int *s , t , *k

{ int p; ; for(p=0,*k=p;p

si ( s[p] > s[*k] )_________; }

principal()

{ int a[10] , i , k

for ( i=0 ; i<10 ; i + + ) scanf("%d",&a[i]); p> p>

findmax ( a,10,&k );

printf ( "%d,%d\n" , k , a[k] }

34 A) k=p B) *k=p-s C) k=p-s D) *k=p

(35) Existe el siguiente programa:

#include

unión pw

{ int i; char ch[2] }

main()

{ a.ch[ 0]=13 ; a.ch[1]=0; printf("%d\n",a.i) }

El resultado de salida del programa es 35. (Nota: ch[0] está en el byte bajo, ch[1] está en el byte alto).

35 A) 13 B) 14 C) 208 D) 209

( 36) Existe el siguiente programa:

# include

main()

{ int c

while(( c=getchar( ))!='\n')

{ switch(c-'2')

{ caso 0:

caso 1: putchar(c+ 4);

caso 2: putchar(c+4); romper;

caso 3: putchar(c+3); 4: putchar (c+2);break; } }

printf("\n"); }

Ingrese los siguientes datos comenzando desde la primera columna, que representa un carro. carácter de retorno.

2743

La salida del programa es 36.

36 A) 668977 B) 668966 C) 6677877 D) 6688766

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

main()

{ char *alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"}

char **p; int i;

p=alfa;

for(i=0;i<4;i + + ) printf("%s" ,p[i]); printf("\n"); }

37A) ABCDEFGHIJKL B) ABCD C) ABCDEFGHIJKLMNOP D) AEIM

(38) La salida de lo siguiente programa Son 38.

# incluir

# definir FUDGE(y) 2.84+y

# definir PR(a) printf("%d",(int)(a ))

# define PRINT1(a) PR(a);putchar('\n')

main()

{int x=2; PRINT1(FUDGE(5)*x); }

38 A) 11 B) 12 C) 13 D) 15

(39) La salida del siguiente programa es 39.

# incluir

main()

{ int i=1,j=3

printf("%d", i + + );

{ int i=0; i+=j*2; printf("%d,%d",i,j); %d,%d\n",i,j); }

39 A) 1,6,3,1,3 B) 1,6,3,2,3 C) 1,6 ,3,6,3 D) 1,7,3,2,3

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

# incluir

main()

{ int k=4,m=1,p

p=func(k; ,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}

func(a,b)

int a,b;

{ estático int m=0,i=2

i+=m+1; ; return(m); }

40 A) 8,17 B) 8,16 C) 8,20 D) 8,8

(41) Se proporciona la siguiente declaración. :

char str[4][12]={"aaa","bbbb","ccccc","dddddd"},

*strp[4]; p >

int i;

for(i=0;i<4;i + + )strp[i]=str[i]; cadena Referencia correcta de , donde 0≤k<4.

41 A) strp B) str[k] C) strp[k] D) *strp

(42) Se proporciona la siguiente declaración:

char str1[]="string",str2[8],*str3,*str4="string";

Entonces 42 no es una llamada correcta a la función de biblioteca strcpy. copiar cadenas.

42 A) strcpy(str1,"HOLA1"); B) strcpy(str2,"HOLA2");

C) strcpy(str3,"HOLA3"); strcpy(str4,"HELLO4");

(43) La clase de almacenamiento predeterminada de parámetros formales en lenguaje C es 43.

43A) Automático (auto) B) Estático (static) C) Registrar (registrar) D) Externo (extern)

(44) tiene las siguientes declaraciones:

estructura st {int n; estructura st *siguiente;};

estructura estática st a[3]={5,&a[1],7,&a[2],9,'\ 0'},*p;

p=&a[0];

Entonces el valor de la expresión 44 es 6.

44 A) p + + ->n B) p->n + + C) (*p).n + + D) + + p->n

( 45) En los siguientes cuatro programas, 45 los valores de dos variables enteras no se pueden intercambiar.

45A) # incluir

main()

{ int a=10,b=20; p> printf("%d %d\n",a,b

}

swap(p,q)

int *p, *q;

{

int *t;

t=(int )malloc(tamañode(int)); =p;*p=*q;*q=*t; }

B) # incluir

main()

{

int a=10,b=20;

swap(&a,&b);

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

}

intercambio(p,q)

int p,q;

int *t;

t=*p;*p=*q;*q=t

}

C) # incluir

main()

{

int *a,*b

*a=10, *b=20;

intercambio(a,b);

printf("%d %d\n",*a,*b); > }

intercambiar(p,q)

int *p,*q

{

int

t=*p;*p=*q;*q=t;

}

D) # incluir

principal()

{

int a=10,b=20

int x=&a,y=&b;

intercambiar(x,y);

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

}

intercambiar( p,q)

int *p,*q;

{

int t

t=*p;*p; =*q;*q=t;

}

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

Escriba la respuesta correcta para cada espacio en blanco en la línea horizontal después del número de serie del 1 al 20 en la hoja de respuestas. Las respuestas no se calificarán en la prueba.

(1) Las tres estructuras de control básicas estipuladas en la programación estructurada son 1 estructura. Seleccionar estructuras y estructuras de bucle.

(2) En el código ASCII de siete dígitos, además de los números y las letras mayúsculas y minúsculas en inglés, hay otros 2 símbolos.

(3) El comando para copiar todos los archivos en el subdirectorio BAS de la unidad B con el tercer carácter A y sin extensión al subdirectorio ABC de la unidad C es 3.

(4) El significado chino de ROM en microcomputadoras es 4 memorias.

(5) Después de iniciar el sistema MS-DOS, el archivo por lotes que se puede ejecutar automáticamente es 5.BAT.

(6) Supongamos que la unidad actual es la unidad C, el comando para eliminar todos los archivos con la extensión .TXT en el subdirectorio FOX de la unidad B es 6.

(7) El número decimal 53 se convierte en un número hexadecimal de 7.

(8) Hay tres modelos de datos comunes en los sistemas de gestión de bases de datos: jerárquico, de red y 8.

(9) Después de comprar un disco nuevo, se deben realizar 9 procesamientos antes de guardar el archivo.

(10) En las microcomputadoras, la comparación de caracteres consiste en comparar sus 10 códigos.

(11) El siguiente programa en lenguaje C copia un archivo en el disco a otro archivo. Los dos nombres de archivo se proporcionan en la línea de comando.

#include

main(argc,argv)

int argc; char *argv[]; *f2; char ch;

if(argc< 11 )

{ printf("¡Faltan parámetros!\n"); > if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = =

NULL))

{ printf("¡No se puede abrir el archivo!\n"); exit(0);}

while( 12 )fputc(fgetc(f1),f2) ;

fclose(f1); fclose(f2); }

(12) La función trampa en el siguiente programa es una función general que utiliza el método trapezoidal para encontrar integrales definidas. La fórmula para determinar la integral definida usando el método trapezoidal es:

n-1 a-b

s=((f(a)+f(b))/2+∑ f (a+i *h))*h , h=|----|

i=1 n

Entre ellos, n es el número de intervalos pequeños integrales. El siguiente programa llama a la función trampa para encontrar la integral definida. El integrando es:

f(x)=x*x+3*x+2, and n=1000, a=0, b=. 4.

#include

3include

trampa doble(diversión,a,b)

doble (*diversión)(),a, b;

{ doble t,h;

int i,n=1000

t=0.5*((*diversión)(a)+( *divertido)(b)); h=fabs(a-b)/(doble)(n);

for(i=1;i<=n-1;i + + ) t=t+ 13 ;

t=t*h; return(t);

doble mypoly(x)

doble x; return(x*x+3.0*x+2.0); }

principal()

{ doble y,(*pf)();

y=trap(pf,0.0,4.0); printf("%f\n",y }

(13) El siguiente programa encuentra la suma de todos los números primos en a); matriz, la función isprime se utiliza para determinar si la variable independiente es un número primo. Un número primo es un número natural que sólo es divisible por 1 y por sí mismo y es mayor que 1.

#include

main()

{ int i,a[10],*p=a,sum=0

> printf("Ingrese 10 num:\n");

for(i=0;i<10;i + + ) scanf("%d",&a[i]); >

for(i=0;i<10;i + + )

if(isprime(*(p+ 15 )) = = 1){ printf("%d",*(a +i)); suma+=*(a+i); }

printf("\nLa suma=%d\n",suma }

esprime(x)

int x;

{ int i; para(i=2;i<=x/2;i + + )

si(x%i = = 0) return (0); 16; }

(14) El siguiente programa llama a la función invertir para reposicionar los valores de los elementos en una matriz en orden inverso. Los valores de una matriz se leen en la función principal.

#include

#definir N 10

invert(s,i,j)

int *s,i,j;

{ int t; si(i

principal()

{ int a[N],i;

para(i =0;i

invertir(a,0,N-1);

for(i=0;i

printf("\n") ; }

(15) El siguiente programa crea una lista vinculada unidireccional con un nodo principal. Los datos en el nodo de la lista vinculada se ingresan a través del teclado. que la entrada esté completa (lista vinculada El campo de datos del nodo principal no contiene datos. La condición para que la tabla esté vacía es ph->next == NULL

#include

lista de estructuras { int datos; lista de estructuras *siguiente;};

19 creatlist()

{ lista de estructuras *p,*q,*ph;

ph=(struct list *) malloc(sizeof(struct list));

p=q=ph; "Ingrese un número entero, ingrese –1 para finalizar: \n");

p=q=ph; printf("Ingrese un número entero, ingrese –1 para finalizar:\n");

p>

scanf("% d",&a):

while(a!=-1)

{ p=(struct list *)malloc(sizeof(struct list));

p->datos=a; q->siguiente=p; 20 =p; scanf("%d",&a }

p-> siguiente='\0'; ph); }

main()

{ struct list *head; head=creatlist();}

[Fin ]

Examen escrito de nivel 2 del examen nacional de computación de 1994

Respuestas de referencia del lenguaje C

Preguntas de opción múltiple ([1]- [30] 1 punto por cada opción, [31]-[45] 2 puntos por cada opción, ***60 puntos)

(1)B ( 2)B (3)B (4) A (5)C (6)D (7)B (8)C (9)A (10)C

(11)C (12)B (13)D (14)B (15 )C (16)A (17)B (18)B (19)A (20)C

(21)D (22)C (23) A (24)C (25)C ( 26)D (27)A (28)D (29)B (30)A

(31)C (32)D (33)C (34 )D (35)A (36)A (37)C (38)B (39)B (40)A

(41)A (42)C (43)A (44)D ( 45)C

2` Preguntas para completar espacios en blanco (2 puntos por cada espacio en blanco, ***40 puntos)

(1) Secuencia

(2) 66

(3) COPIA B:\BAS\?A*.C:\ABC (o COPIA B:\BAS\?A*.,C:\ABC)

(4) Sólo lectura

(5)AUTOEXEC

(6)DEL B:\FOX\*.TXT

<

p> (7)35

(8) Relación

(9) Formato (o inicialización, FORMATO)

(10)ASCII

(11)3

(12)! feof(f1) o feof(f1)==0

(13)(*fun)(a+i*h)

(14) mypoly

(15)I

(16)devuelve 1 o devuelve (1)

(17)i+1

(18) I

(19) lista de estructuras *

(20) q