Preguntas del examen de lenguaje C (1)
1. Preguntas de opción múltiple (2 puntos cada una, ***20 puntos)
1. El tipo de datos perteneciente al lenguaje C es ( )
A. Plural tipo B. Tipo lógico c. Colectivo D. Tipo de doble precisión
2. La ejecución de un programa en C comienza desde ( )
A. La función main() comienza hasta que finaliza la función main() B. La primera función comienza hasta que finaliza la última función
C. Comience con la primera afirmación y termine con la última afirmación D. La función main() comienza hasta que finaliza la última función
3. Suponga que la declaración int a=3 luego ejecuta la declaración a =a-=a*a; la variable a es ( )
A. 3B. 0C. -12 D. 9
4. Si hay char c[5]={'c', 'd', '\0', 'e', '\0'}, ejecute la instrucción printf. ("s", c); el resultado es ().
A. cd\0e B. 'Centros para el Control y la Prevención de Enfermedades. CDD. cd e
5. Conocido: int a[2][3]={1, 2, 3, 4, 5, 6}, (*p)[3]=a; La fórmula que no es 4 es ( ).
A. *(*p 3) B. *página 3C. *(*(p 0) 3) D. a[0][3]
6. Lo siguiente contiene descripciones incorrectas del reemplazo de macros ().
A. El reemplazo de macros no ocupa tiempo de ejecución B. El nombre de la macro no tiene tipo
C. El reemplazo de macros es solo reemplazo de cadenas D. El nombre de la macro debe estar expresado en letras mayúsculas
7. Ejecute char str[10]=”Ch\nina”; el valor de strlen(str) es ( )
A. 5B. 6 C. 7D. 9
8. La salida del siguiente programa es: ( )
#define POWER(x) (x*x)
main() p >
{int i=4; printf("d",POWER(i-2) }
A. p >
9. Después de definir int a[3][4][2];, el décimo elemento es ( )
A. a[2][1][2] B. a[1][0][1] C. a[2][0][1] D. a[2][2][1]
10. La salida del siguiente programa es: ( )
typedef struct
{long x[2]. ] ;lt;brgt;short y[4];lt;brgt;char z[8];lt;brgt;}MYTYPE;
MYTYPE a;
main()
p>{ printf("d\n", tamañode(a));}
A. 2 B. 8 C. 14 D. 24
2. Complete los espacios en blanco Pregunta (1 punto por cada espacio en blanco, ***11 puntos)
1. El número de bytes que ocupa la cadena "A" en la memoria es.
2. Los identificadores en lenguaje C solo pueden consistir en letras, guiones bajos y .
3. Si hay una declaración de definición "int a=25, b=14, c=19;", el resultado de la ejecución de la siguiente declaración es
if (a lt). ; = 25amp; amp;b--lt;=2amp;amp;c) printf("***a=d,b=d,c=d\n",a,b,c);
else printf("###a=d,b=d,c=d\n",a,b,c);
4. "B\172\\ \'a"; entonces el resultado de ejecutar la declaración printf("d", strlen(a));
5. Si se define: int a[12]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p[4], i; para (i=0; ilt; 4; i) p[i]=amp; a[i*3] entonces el valor de *(*(p 1) 2) es el valor de *p[2] para. Si la primera dirección de la matriz es 2000, la dirección a la que apunta p[1] es.
6. Supongamos que a=2, b=3, x=3.5, y=2.5, entonces el resultado de la expresión (float)(a b)/2 (int)x(int)y es.
7. Supongamos que x e y son variables de tipo int con valores iniciales de 1. Luego, después de ejecutar la expresión: --xamp;amp;y, el valor de y es .
8. La declaración for(i=1; i==10; i)continue es el número de bucles.
9. La siguiente salida del programa.
main()
{enum em {em1=3, em2=1, em3};
char *aa[]={"AA", "BB", "CC", "DD"}; printf("sss\n", aa[em1], aa[em2], aa[em3]); p>3. Resultados del programa de escritura (5 puntos por cada pregunta, ***35 puntos)
1. x ,y,z;lt;brgt;x=1,y=2,z=3; x =y=z;lt;brgt;printf("1:d\n",z=xgt;y?x: y ); brgt; z=-1; , c; lt; brgt; c=f(a b )/f(b);lt;brgt;printf("d\n",c);lt;brgt;}
3. int k)
{ printf ("d",k);
if(kgt;0)
fun(k-1);
}
principal( )
{ int w=5; divertido(w); printf("\n"); #include
main()
{int x=1, y=0;lt;brgt;switch(x)lt;brgt;{ caso 1:lt;brgt; switch(y)lt;brgt;{ caso 0: printf("primero\n");break;lt;brgt;caso 1:printf("segundo\n");break;lt;brgt;}
caso 2:printf("tercero\n" ");
}
}
5. #include
principal()
{ int k =4;
func(k); func(k);
}
func( int a)
{ estático int m=0;
m =a;
printf("d", m
}
6.estructura st
{ int x;
int *y
}*p;
int s[]={30, 20} ;
struct st a[]={1,amp;s[0],2,amp;s[1]};
principal()
{ p=a; printf("d,",p-gt;x);
printf("d\n", (* ( p)-gt;y));
}
7. Supongamos que hay dos archivos de texto en el directorio del disco actual, sus nombres y contenidos son los siguientes:
Nombre del archivo: a1.txt a2.txt p>
Contenido: ABCDEF# abcdef#
#include "stdio.h"
main()
{FILE *fp;lt;brgt;void fc();lt;brgt;if((fp=fopen(" a1.txt", "r"))==NULL)lt; brgt; {printf("¡No se puede abrir el archivo!\n"); exit(1);}
else{fc(fp ); fclose(fp);}
if((fp=fopen("a2.txt", "r"))==NULL)
{printf("No se puede ¡abrir archivo!\n"); exit(1);}
else{fc(fp); fclose(fp);}
}
void fc(fp1)
ARCHIVO *fp1;
{char c;lt;brgt; while((c=fgetc(fp1))!='#')putchar(c) ;lt; brgt;}
IV.Programa para completar los espacios en blanco (2 puntos por cada espacio en blanco, ***14 puntos)
1. elementos de la matriz a y, por favor complete los espacios en blanco.
principal()
{ int a[3][3]={2, 4, 6, 8, 10, 12, 14, 16, 18}
; >int suma=0, i, j;
for(i=0; ilt; 3; ① )
for(j=0; ② ; j )
if(i= =j) suma=suma ③;
printf("suma=d\n",suma);
}
2. La siguiente función coy copia todos los caracteres de la matriz de caracteres S2 a la matriz de caracteres S1. Al copiar, también se debe copiar '\0' y los caracteres después de '\0' no se utilizan.
tímido(char s1[], char s2[])
{ int i
for(i=0; s2[i]!= ① ;i )
s1[i]=s2[i];
② ;
}
3. programa Es para ordenar los elementos con subíndices impares en la cadena a de pequeño a grande. Los demás elementos permanecen sin cambios. Complete los espacios en blanco.
main()
{ char a[]="estudiantes", t; int i, j
for(i=1; ilt; 7; ;i =2)
for(j=i 2;jlt;8; ① )
si( ② )
{t=a[i] ;a[i]=a[j]; a[j]=t;}
puts(a);
}
c preguntas del examen de idioma (2)
1. Preguntas para completar espacios en blanco (2 puntos cada una, ***20 puntos)
1. Los tipos de datos básicos del lenguaje C son: _______________________________;
Los tipos de construcción son: ____________________________. Pág.13
2. Los símbolos de comentarios para los programas fuente en lenguaje C son: ____________________________,
Para indicar la estructura jerárquica, los programas fuente en lenguaje C generalmente se escriben en el formato __________________.
Pág.4
3. Programa fuente TEST. El archivo objeto generado por la compilación de C es: ____________________;
Después del procesamiento de la conexión, el archivo ejecutable generado es: ____________________.
4. El valor de strlen ("1234\0xy) es: _______________________________;
El valor de sizeof (float) es: ____________________________
5. La última fila de la matriz bidimensional a [10] [50] La primera dirección de, ¿Cómo se debe incluir el archivo de encabezado personalizado D:\MYC\MY.H en el archivo del programa fuente:_________________________ P.130
7. se define como: int stat (int a, float * p)
{…………}
Los dos tipos de parámetros de esta función son _______________ y _______________
8. , y, z=4;
x=y=z;
x=(ygt;z)? :_________;
p>Supongamos que int a=0, b=0, c=0; c= a | b ;, entonces los valores de a, b y c son: _____________ y if. (x=0) La forma equivalente de escribir es if (!
10. Se sabe que la declaración de asignación zhang.year=1985; se puede determinar que zhang es una variable de tipo _______________
La sentencia C que define el puntero del archivo es: _______________________________
2 Preguntas de opción múltiple (1 punto cada una, ***10 puntos)
1. La unidad básica de un programa en C es ____________________________
A. B. Identificador C. Expresión
2. el tipo de datos es ____________ A. 0 a 65536 B. 0 a 65535
C. -32767 al 32768D. -32768 a 32767
3. En lenguaje C, el valor lógico "verdadero" está representado por ____________________.
A. Macros predefinidas con valores verdaderos B. Número distinto de cero
C. Número positivo D. Enteros distintos de cero
4. El lenguaje C estipula que else siempre coincide con ____________________ para declaraciones if anidadas.
A. Con el más externo si B. El más reciente si
C. El más reciente si sin más D. con el if antes del { }
5 más cercano. Definición de matriz char a[10]={`a`, `b`, `c`}: incluye varios elementos ____________________.
A. 3B. 9C. 4D. 10
6. Cuando el nombre de la matriz se pasa como parámetro real a la función llamada, el parámetro formal obtiene ____________________.
A. El valor del primer elemento de la matriz B. Los valores de todos los elementos del array
C. La primera dirección del primer elemento de la matriz D. La primera dirección de todos los elementos de la matriz
7. Para expresar la relación x ≥ y ≥z, la expresión correcta en lenguaje C es_________________________.
A. (xgt;=gt;ygt;=z) B. (xgt;=y)Y (ygt;=z)
C. (xgt;=y)amp;amp; (ygt;=z) D. (xgt;y)amp; (ygt;=z)
8. Según la definición int a[ ]={1, 2, 3}, i, *p=a _______________ es incorrecto desde el análisis gramatical.
A. a[p-a] B. *(amp;a) C. pd. *(*(a i))
9. Si hay una declaración scanf ("dd", amp; a, amp; b); las variables a y b deben ser 12 y 34 respectivamente, la forma de entrada correcta es ____________________________.
A. 12 34 B. 12,34 C. 1234 D. 12:34
10. union uex {int i; float f; char c }ex; entonces el valor de sizeof (ex) es ____________________.
A. 4B. 5C. 6D. 7
3. Analiza el programa y escribe los resultados. (Cada pregunta vale 4 puntos, ***20 puntos)
1. El programa fuente es el siguiente Cuando se ejecuta, se supone que la cadena de entrada del teclado es ``2004``
#include
void main(void)
<. p>{int n=0;
char c;
mientras( (c=getchar( )) ! =`\n` ) /* Número de carácter*/ p>
{
if (cgt;=`0`amp;amp;clt;=`9`)
n = n*10 c- `0`; /*Número*/
}
printf(“valor=d|n”,n);
}
El resultado es: valor=2004.
2. El programa fuente es el siguiente:
#include
void main(void)
{
int num[9]={ 399, 398, 397,396,395,299,290,311,301};
int puntuación[9]={81,85,59,77,90,66,89,93,73};
int iMax, iPos, i;
iPos=0;
iMax=puntuación[iPos]
para (i=1 ;ilt;9;i) p>
if (puntuación;iMax)
{
iPos=i;
iMax=puntuación[ iPox];
}
printf("num=d, puntuación=d", num[iPos]; puntuación[iPos]);
El resultado es: num=311, puntuación=93 .
3. El programa fuente es el siguiente Cuando se ejecuta, se supone que los datos de entrada del teclado son: 1 2 3 4 5 6 7 8 9 10
#include
void main(void. )
{
int i, a[10];
int *p
p=a;
for (i=0 ;ilt;10;i)
scanf("d",p);
for(p=a;plt; SPANgt;;p )
if (*p2) printf ("3d", *p);
}
El resultado es: 1 3 5 7 9.
4. El programa fuente es el siguiente, ejecútelo dos veces, ingrese los datos 13 y 21 respectivamente
#include
#include
void main(void)
{
int n, s;
escaso ("d", amp; n);
s=panduan(n); p>
if (s==1) printf ("sí\n");
else printf ("no\n);
}
int panduan(int n)
{
int k, j
k=(int)sqrt((doble)n); p>
for(j=2;jlt;=k,j)
{
if(nj==0) descanso;
} p>
if(jgt;k) retum(1);
else retum(0);
}
El resultado es sí
no
5. El programa fuente es el siguiente Cuando se ejecuta, se supone que los caracteres de entrada del teclado son: AxByCz
#include
#include
void main(void)
{
char str[80];
int i;
obtiene(str);
for(i=0;str!=`\0`;i)
if(strgt;=`a`amp ;amp;strlt;=`z`) str -=32;
si no (strgt;=`A`amp;amp; strlt;=`Z`) str =32;
puts(str);
}
El resultado es: aXbYcZ.
4. Hay un error en cada subrayado en el siguiente programa. Corrija el error en el subrayado para que cumpla con los requisitos de la pregunta (4 puntos por cada cuerpo, ***20 puntos)
1. 100
incluye corregido a _______________. /p>
la suma nula (void) se corrige a _______________
{
int s, i; p>
for (s=0, i =1;ilt;=100;i)
{
s=s i;
}
printf ("s=f", s) corregido a ____________________.
}
2. El programa fuente implementa x
#include
double pow(float . int) y lo corrige a __________________.
void main(void)
{
int i, n
float x
scanf; ("f,d",amp;x,amp;n);
for (i=1; ilt;9;i)
printf("d,e\n ", i, pow(i, x);
} Corregido a_______________.
double v v pow(float x, int n)
{
int i;
doble p=0; corregido a _______________
para (i=1; ilt; i )gt;
p*=x;
retum(p);
}
3. El programa fuente implementa el orden ascendente. >#include
void main(void)
{
int i, j, iMin, a[10]={4, 3, 5, 1 , 10, 12, 2, 6, 7, 9}, iTemp;
para (i=0; ilt; 9; i)
{
iMin=0; corregido a ____________________
para (j=i 1; jlt; 10; j)
if(a[iMin]lt; iMin=" j; "gt ; corregido a _______________.
if (iMin==i) corregido a_________________________.
{ iTemp=a;
a[ iMin]=a;
a[iMin]=iTemp
}
}
for(i =0; ilt; 10; i)
printf(“4d”, a):
}
4. El programa fuente es para promediar
#include
void main(void)
{
int i, suma corregida a ____________________
float avg;
int sc[10], *p=sc;
for (i=0, ilt; 10; i) se corrige a ____________________.
{
scanf("d", p);
suma = *p; Corregido a ____________________.
}
promedio = suma/ 10; corregido a _______________.
printf("avg=f", avg);
}
5. El programa fuente encuentra eX=1 x x2/2! ...... >{
float exp, x, t;
int i, n;
scanf("f, d", amp; x, amp; n );
t=0;
for(i=1; ilt;=n; i)
{
if(tlt;1e-6) bucle; Corregido a ____________________
<. p>t =x/i; Corregido a ____________________exp*=t; corregido a ____________________
}
printf(“\n15.6f” , exp);
}
5. Preguntas de programación (6 puntos cada una, ***30 puntos)
1. escribe una subfunción para intercambiar dos variables enteras x e y
#include
void swap (int *, int *
void main (void)<); /p>
{
int x, y;
scanf("d, d", amp;x, amp;y);
intercambiar( amp;x, amp; y);
printf("d, d", x, y);
}
intercambio vacío()
{
}
2. Supongamos que hay 36 personas en una clase que toman una prueba de lenguaje C y una puntuación de matriz unidimensional[36] es Se utiliza para almacenar los resultados de las pruebas. Se ha proporcionado una parte del programa y se ha mejorado el siguiente programa, permitiéndole contar y generar el número de estudiantes reprobados y su porcentaje. /p>
void main (void)
{ int i;
float scoer[36], precent;
int count=0;
for (i=0; ilt; 36; i)
{
scanf(“f”, amp; puntuación);
}
3. Mejore el siguiente programa para permitir la entrada arbitraria de una cadena de caracteres desde el teclado y contarlos: el número de letras mayúsculas iA, el número de letras minúsculas ia y el número de otros caracteres. yotro.
#include
#include
void main (void)
{
char str [80] ;
int i, iA=0, ia=0, iother=0;
}
4. Mejore el siguiente programa para lograr la suma de los elementos diagonales principales y auxiliares de una matriz cuadrada y su matriz transpuesta. Deje que la matriz cuadrada esté representada por una matriz bidimensional, la matriz transpuesta esté representada por t, sl y s2. diagonales principales y auxiliares. La suma de elementos lineales.
#include
void main(void)
{
int a[3] [3]={1, 3, 5, 7, 9, 11, 13, 15, 11};
int i, j, s1, s2;
int t[3] [3];
printf("d, d,\n", s1, s2);
for(i=0; ilt; 3; i)
for(j= 0; jlt; 3; j )
printf(“3d”, t [j]);
}
5. Dada la matriz de caracteres str[80], escriba una subfunción que devuelva un puntero para encontrar la posición donde aparece por primera vez el carácter ch.
#include
#include
#include
char *lstrchar(char*, char);
void main(void)
{
char c, *p, str[80];
obtiene (str);
scanf(“c”, amp; c);
p=lstrchar(str, c);
if(p==NULL) printf(“char c no encontrado\ n"c);
else printf("La posición es d", p-str);
char "lstrchar()
{ } p>
Preguntas y respuestas reales en lenguaje C para el Examen Nacional de Computación Nivel 2 a lo largo de los años
/UploadFiles/20064222324839.rar