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
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)
{
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) p>
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()
{ p >
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) p>
{
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;