Red de conocimiento informático - Conocimiento sistemático - Programación de Zhejiangc

Programación de Zhejiangc

065438+Examen de grado de informática de la Universidad de Zhejiang en la segunda mitad de 2000

Prueba de programación de nivel C

Nota: (1) Esta prueba tiene 6 páginas, la puntuación total es 100; el tiempo de prueba es de 90 minutos;

(2) Los candidatos deben completar las respuestas a todas las preguntas en la hoja de respuestas. Complete "?" en la posición correspondiente de cada subelemento de la pregunta 1 a la pregunta 6 en la hoja de respuestas. .

(3) Los candidatos deben completar las respuestas a todas las preguntas en la hoja de respuestas.

1. Lectura del programa para completar los espacios en blanco (24 preguntas, 3 puntos cada una, 72 puntos* * *)

1. Lea las siguientes instrucciones y pasos, y proporcione. la información de cada pregunta Elige una respuesta correcta entre varias respuestas posibles.

Descripción del programa

Ingrese 5 números enteros y envíelos en orden de pequeño a grande.

Ejecute el ejemplo:

Ingrese un número entero: 9 -9 3 6 0

Después de ordenar: -9 0 3 6 9

Programa

# include & ltstdio.h & gt

main()

{ int i, j, n, t, a[10];

p>

printf("Ingrese 5 números enteros:");

for(I = 0;i<5;i++)

scanf("%d ", ( 1));

for(I = 1; (2) ;i++)

for(j = 0; (3) ;j++)

Si ((4) ) {

t = a[j], a[j] = a[j+1], a[j+1]= t;

}

printf("Después de ordenar:");

for(I = 0;i<5;i++)

printf("= ",a[I ]) ;

}

Respuestas alternativas

(1) A, & ampa[i] B, a[I]C,* a[I ]D, a[n]

(2) A, i & lt5 B, i & lt4 C, i & gt= 0 D, i & gtfour

(3) A, j & lt5–I–1 B, j & lt5–IC, j <. 5 D, j & lt= 5

(4) A, A[j]& lt; a[j+1] B, a[j]& gt; >

c, a[j]& gt; a[j+1] D, a[j-1]>[j+1]

2. Lea las siguientes instrucciones y pasos, y Elija la respuesta correcta entre varias respuestas alternativas proporcionadas para cada pregunta.

Descripción del programa

Emite todos los números enteros entre 80 y 120 que cumplan las condiciones dadas, siempre que cada número que compone el número entero sea el mismo. Es necesario definir y llamar a la función is (n) para determinar si cada bit del número entero n es igual. Si es igual, devolverá 1; de lo contrario, devolverá 0.

Ejemplo de ejecución:

88 99 111

Programa

# include & ltstdio.h & gt

main()

{ int I; int es (int n);

for(I = 80; i<= 120;i++)

if (( 5))

printf("%d ", I

printf(" \ n "

}

); int es (int n)

{ int antiguo, dígito

antiguo = n % 10;

hacer {

dígito = n % 10;

si( (6)) devuelve 0;

(7)

n = n/10;

} while( n!= 0 );

(8)

}

Respuestas alternativas

(5) A. is(n ) == 0 B, es(i) == 0 C, es(n)! = 0 D, es(i)! = 0

(6)¡Números! = n % 10 B, dígito == antiguo

c, antiguo == n % 10 D, dígito! = antiguo

(7) A. dígito = antiguob.; c. antiguo = número; d. antiguo = número/10; 1; c, devuelve 0; d, devuelve número! =Antiguo;

3. Lea las siguientes descripciones y procedimientos del programa y elija la respuesta correcta entre las diversas respuestas alternativas proporcionadas para cada pregunta.

Descripción del programa

Ingrese una cadena (menos de 80 caracteres) que termine con un retorno de carro y envíela en orden inverso. Es necesario definir y llamar a la función inversa (a), que almacena la cadena S en orden inverso.

Ejecute el ejemplo:

Ingrese una cadena: 1+2=3

Después de la inversión: 3=2+1

Programa

# include & ltstdio.h & gt

Desplazamiento no válido (char *str)

{ int i, j, n = 0

;

char t;

mientras(str[n]!= '\0')

n++;

for(i = 0, ( 9 );i<j;(10)) {

t = cadena[i], cadena[i] = cadena[j], cadena[j]= t;

}

}

main()

{ int I = 0;

char s[80]; ("Ingrese una cadena:");

Y ((11))

i++;

s[I]= '\ 0';

(12);

printf("Después de la reversión:");

Opción de venta;

}

Respuestas alternativas

(9) A, j = n–1 B, j = n C, j = n - 2 D, j = n + 1

(10)A, i++, j - B, i++, j++ C, i -, j++ D, i -, j -

(11)A, s[i] = getchar() B , (s[i] = obtenerchar())! = '\n '

c,s[i]! = '\0' D , ( s[i] = getchar()!= '\n ')

(12)A. Invertir (*s) B. Invertir (s) C. Invertir ( & amps) D. Reverse (str)

4. Lee el programa a continuación y responde las preguntas.

Elija la respuesta correcta entre varias respuestas alternativas proporcionadas para cada pregunta.

Programa

#incluye & ltstdio.h & gt

#Definición S(x)3 <(x)<cinco

int n, a;

void f1 (entero)

{ for(;n & gt= 0;n -) {

if (n % 2! = 0) Continuar;

printf("%d ", n

}

printf(" \ n "); p>

}

double f2(double x, int n)

{ if(n == 1) devuelve x

En caso contrario, devuelve x; * f2(x, n-1);

}

principal()

{ int a = 9

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

f 1(4

printf("%.1f\n ", f2 (2.0); , 3));

printf("%d %d\n ",n,S(n));

}

Pregunta

(13) Cuando el programa se está ejecutando, se genera 1 línea (13).

a, 0 1 B, 9 1 C, 0 0 D, 9 0

(14) Cuando el programa se está ejecutando, se genera la segunda línea (14).

a, 3 1 B, 4 2 0 C, 4 3 2 1 D, 0

(15) Cuando el programa se está ejecutando, se genera la tercera línea (15).

a, 8.0 B, 2.0 C, 4.0 D, 3.0

(16) Cuando el programa se está ejecutando, se genera la cuarta línea (16).

a, 0 1 B, 3 1 C, 0 0 D, 3 0

5. Lee el programa a continuación y responde las preguntas. Elija la respuesta correcta entre varias respuestas alternativas proporcionadas para cada pregunta.

Programa

Programa 1

# include & ltstdio.h & gt

main()

{ int i, j;

estático a[4][4];

for(I = 0;i<4;i++)

for(j = 0 ; j & lt= I; j++) {

if(j = = 0 | | j = = I)a[I][j]= 1;

si no a[ I][j]= a[I-1][j-1]+a[I-1][j];

}

for(I = 2 ;i<4 ;i++) {

for(j = 0;j & lt= I;j++)

printf("%d ",a[I][j] );

printf(" \ n ");

}

}

Programa 2

# include & ltstdio. h & gt

main()

{ char str[80];

int I;

obtiene( str);

for(I = 0; str[i]!= '\0';i++)

if(str[I]= = ' z ')str[ I]= ' a ';

else str[I]= str[I]+1

Vender (str); Pregunta

(17) Cuando se ejecuta el programa 1, genera 1 línea (17).

a, 1 B, 1 1 C, 1 2 1 D, 1 3 1

(18) Cuando se ejecuta el programa 1, genera la segunda línea (18).

a, 1 B, 1 1 C, 1 2 1 D, 1 3 1

(19) Cuando se ejecuta el programa 2, la entrada es 123 y la salida es (19 ).

a, 123 B, 012 C, 231 D, 234

(20) Cuando se ejecuta el programa 2, ingrese sz y salida (20).

a, sz B, ty C, ta D, tz

6. Lee el programa a continuación y responde las preguntas. Elija la respuesta correcta entre varias respuestas alternativas proporcionadas para cada pregunta.

Programa

# include & ltstdio.h & gt

main()

{ int i, j;

char ch, *p1, *p2, *s[4]={"árbol","flor","hierba","jardín"};

for(I = 0; i & lt4;i++) {

p2 = s[I];

p 1 = p2+I

mientras(*p1!= '\0; '){

* p2 = * p 1;

p1++, p2++

}

* p2 = '\ 0<; /p>

}

for(I = 0;i<4;i++)

printf("%s\n ",s[I]);

p>

}

Problema

(21) Cuando el programa se está ejecutando, se genera 1 línea (21).

Árbol D, árbol e

(22) Cuando el programa se está ejecutando, la segunda línea genera (22).

a, flor B, flor C, flor D, flor C

(23) Cuando el programa se está ejecutando, la tercera línea genera (23).

a, hierba B, ss C, rass D, culo

(24) Cuando el programa se está ejecutando, la cuarta línea genera (24).

a, B, C, D, jardín

Dos. Programación (65438 + 04 puntos por pregunta, ***28 puntos)

1. Ingrese 100 números enteros y guárdelos en la matriz A, luego ingrese un número entero X, cuente y genere la aparición de X en la matriz A. El número de veces...

2. Escriba un programa de acuerdo con los siguientes requisitos:

(1) Defina la función fact(n) para calcular n. , el tipo de valor de retorno de la función es doble.

(2) Defina la función main(), ingrese un número entero positivo n y calcule y genere el valor de la siguiente fórmula. ¡Llame a la función fact(n) para calcular n! .

1. Completa los espacios en blanco en la lectura del programa (24 preguntas, 3 puntos cada una, 72 puntos* * *)

1. D D (A, B, C son todos aceptables) B 3. A A B B.

4.B B A A 5. C D D C 6. C D D C

Dos.

Programación (65438+04 puntos por pregunta, ***28 puntos)

1.# include & ltstdio.h & gt

void main()

{ int a[100], x, I, recuento = 0;

printf("Ingrese 100 entero: \ n "); )

scanf("%d ",a+I);

printf("Ingrese entero x:\ n ");

scanf( "% d ",&x);

for(I = 0;i<100;i++)

if(a[I]= = x)count++;

printf ( "count=%d\n ",count);

}

2. Doble hecho (entero)

{ int I ;

doble s = 1;

for(I = 1;i<= n;i++)

s * = I;

Devolver s;

}

# include & ltstdio.h & gt

void main()

{double s = 0

;

int n, yo

hacer scanf("%d ", & ampn

mientras(n & lt; = 0) ;

for(I = 1;i& lt= n;i++)

s+=(n-I+1)/fact(I);

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

}