Red de conocimiento informático - Computadora portátil - C Pregunta de opción múltiple: ¿Cuál de los siguientes puede ser el valor de retorno de i i ( ): A int B doble C nuevo D más largo

C Pregunta de opción múltiple: ¿Cuál de los siguientes puede ser el valor de retorno de i i ( ): A int B doble C nuevo D más largo

I: Preguntas de opción múltiple

1. Las funciones de las siguientes funciones son: ( )

int fun(char *x)

{

char *y=x;

mientras(*y ){}

devuelve y-x-1; > a. Encuentre la longitud de la cuerda

b. Encuentre la ubicación de almacenamiento de la cuerda

c. Compare los tamaños de las dos cuerdas

d. Después de que la cadena x se concatene con la cadena y

2. Si se dan la siguiente descripción y declaración, y 0lt;ilt;10 entonces ( ) es una referencia incorrecta a un elemento de matriz.

int a[ ]=, *p, i;

p=a

*(a i)

b. . a[p-a]

c. p i

d. *(amp; a[i])

3. La salida del siguiente programa es: ( )

#include lt; stdio.hgt;

void main()

{

int a[10]=, *p =a;

printf("d", *(p 2));

}

3

b.4

c. 1

d.2

4. Si existen las siguientes definiciones y declaraciones, y 0lt; la dirección del elemento es correcta El método de representación es: ( )

int a[ ]=, *p, i

p=a

a.amp; ; (a 1)

b. a

c. Conocido: int a, x=1; entonces la siguiente declaración de asignación es correcta: ( )

a=(a[1] a[2])/2; > b. a. =(a[1] a[2])/2;

c.a=x 2;

d. 6. Conocido: int a[]=, *p=a; El valor de la siguiente expresión es 5: ( )

a.p =3;

b.p; =5 ;*p;

c.p =4; * p;

d.p =4;

>7. y 0lt ;=klt;6, entonces la declaración correcta para representar la dirección del elemento de la matriz es ( )

int x[]=, *ptr=x, k=1;

a.x

b.amp;ptr

c.amp;ptr[k]

d.amp.(x 1)

8. Si existe tal declaración: int i, j=7, *p; p=amp i; entonces la declaración equivalente a i=j es ( )

a.i=*p;

b.*p=*amp;

c.i=j

d.i=**p; 9. Supongamos que p1 y p2 son variables de puntero que apuntan a la misma matriz unidimensional de tipo int y k es una variable de tipo int, entonces la declaración que no se puede ejecutar correctamente es ( )

a.k= *p1 *p2;

b.p2=k;

c.p1=p2;

d.k=*p1*(*p2); p>

10 Dada la siguiente definición de función, el valor devuelto por la función es ( )

int * fun(int a)

{

int *t, n;

n=a; t=amp;

devolver

}

a; Valor de dirección de unidad de almacenamiento no disponible

> b. Valores de dirección de unidad de memoria disponibles

p1=2;

d.k=*p1*(*p2) ;

11 .Valores de dirección de unidad de memoria disponibles

c. Valor en formato n

d.

Valor en el parámetro a

II: Complete los espacios en blanco

1. La salida del siguiente programa es

#includelt;

void principal()

{

int *v, b;

v=b=100; ;

printf("d\n", b);

}

2. El significado de la declaración especificada "int (* p)() ;" es

3. La declaración de descripción de la función conocida es: void * fun(); entonces su significado es

4. Conocida: int i; char *s="a\ 045 045\'b "; Luego de ejecutar la sentencia "fot(i=0; *s; i ", el resultado de la variable i es

5. El siguiente programa calcula la suma de dos números enteros y lo pasa a través de parámetros formales. Devuelve resultados.

int add(intx, int y, z)

6. El resultado de salida del siguiente programa es

void fun(int *x)

main()

{

int a=25

diversión(amp; a);

7. El resultado de ejecutar el siguiente programa es

#include lt; stdio.hgt

void main()

{

int a[ ]=;

int x, y, *p

p=a[0]; p> x=*(p 2);

y=*(p 4);

printf("*p=d, x=d, y=d\n" , *p, x, y);

return;

}

8. Dé los resultados de ejecutar el siguiente programa

# incluir lt;iostream.hgt;

void callbyval(int a, int b, int c)

{

a=3; c =1;

}

void callbypointer(int* a, int* b, int* c)

{

* a =3; *b=2; *c=1;

}

llamada nula por referencia(intamp; a, intamp; b, intamp; c)

{

a=1; b=2; c=3;

}

void principal()

{

int a=1, b=2, c=3

intamp; a1=a

b1=a; > intamp; b1=a;

intamp;

callbyval(a, b, c); ; blt;lt;clt;lt;endl;

callbypointer(amp;a,amp;b,amp;c);

coutlt;lt;alt;lt;blt; lt ;clt;lt;endl;

callbyreference(a1,b1,c1);

coutlt;lt;alt;lt;lt;blt;lt;lt;clt;lt ; endl;

}

9. Da los resultados de ejecutar el siguiente programa

#includelt.hgt;

void ast(int x, int y, int *cp, int *dp)

{

*cp=x*y

* dp= xy;

}

void principal()

{

int a, b, c, d

a=2; b=3;

ast(a, b, amp; c, amp; d

coutlt;lt;clt;lt;dlt); ;lt ;endl;

}

1

0. Proporcione los resultados de ejecutar el siguiente programa

#include lt; stdio.hgt

void main()

{

int a=10, b=0, *pa, *pb;

pa=a; pb=a; " , a, b);

printf("d, d\n", *pa, *pb);

a=20; b=30;

*pa=a; *pb=b;

printf("d, d\n", a, b

printf("d, d\n); " , *pa, *pb);

(*pa);

(*pb);

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

printf("d, d\n", *pa, *pb);

}

3.

1: Preguntas de respuesta corta y preguntas de programación

1. Determinar el valor de ab después de ejecutar la siguiente declaración

int *var, ab;

ab=100;

var=amp;

ab=*var 10

2. En la siguiente figura, ¿cuál es el valor de la expresión *--p? (Aquí, a[0], a[1], a[2]... solo se usan como códigos para unidades de almacenamiento consecutivas, a[0] está ubicado en la dirección baja y a[1] está ubicado en la dirección baja. dirección alta).

3. Hay una definición: double var; entonces,

a) ¿Cuál es la declaración de definición que permite que el puntero p apunte a una variable de tipo doble?

b) ¿Cuál es la instrucción de asignación para hacer que el puntero p apunte a la variable var?

c) ¿Cuál es la instrucción de llamada a la función scanf para leer datos en la variable var a través del puntero p?

4. Escriba una función para encontrar la longitud de una cadena, ingrese la cadena en la función principal y genere su longitud.

5. Implementación de la programación: ingrese cualquier cadena desde el teclado y luego ingrese los caracteres que desea encontrar. Si el carácter existe, se devuelve la posición de su primera aparición en la cadena; de lo contrario, se muestra "¡No se encuentra en la cadena!". .Al implementar la misma cadena, puede ingresar continuamente los caracteres que desea encontrar.

6. Programación: Eliminar subcadenas en cadenas. Ingrese una cadena desde el teclado y luego ingrese la subcadena que desea eliminar. Finalmente, genere la nueva cadena después de eliminar la subcadena.

1.200

2.p es un puntero a una función y su valor de retorno es un número entero

3. El valor de retorno de la función fun es un valor general puntero

p>

4.A #includelt; string.hgt;

#includelt; iostream.hgt;

char* strstr_rep(char *fuente, char *antiguo)

{

int i, j, k, loc =-1

for(i=0; fuente[i]amp; amp; ; (loc== -1);i)

for(j=i,k=0;fuente[j]==antiguo[k];j,k)

if(!old[ k 1])

loc=i

if(loc!=-1)

{

for(k=0 ;antiguo[k];k);

for(j=loc,i=lock k;fuente[i];j,i)

fuente[ j]=fuente[ i];

fuente[i]=NULL

}

retorno(fuente

}

void main()

{

char a[50];

coutlt; "Ingrese una cadena:" ;

cingt ;gt;a;

char b[30];

coutlt;lt; "Ingrese una subcadena de la cadena anterior:";

cingt; b;

coutlt; lt; strstr_rep(a, b)lt;