C programa de lenguaje para leer el título

1. El siguiente programa

#include <stdio.h>
int diversión (int * x, int n)
{
si (n == 1)
de retorno x [1];
otro
retorno x [1] + diversión (x + 1, n-1);
}

principal(){

int array [] = {0,9,1,2}, res;

res = diversión (array, 3);

printf ( "% d", res);

}

Análisis: Por tema podemos conocer a grandes rasgos esta es una suma recursiva de los temas del programa, entonces tenemos que entender que la función de la diversión () en el extremo que está haciendo.

En primer lugar, la principal diversión () la función de matriz y que pasa a la matriz 3, la primera dirección de la matriz se le asigna a un puntero matriz x, n = 3 no es igual a 0 de modo diversión () devuelve x [1] + diversión (x + 1 , n-1);

x [1] es una matriz correspondiente a la matriz [1] = 9, entonces x [1] + diversión (x + 1, n-1) = 9 + diversión (x + 1,2).

A continuación vamos a encontrar la diversión (x + 1,2), y aquí la segunda vez que llama a la diversión función recursiva es así, entonces se pasa el parámetro es x + 1 y 2, porque la primera vez que lo haremos gama el segundo elemento se le asigna al puntero x, x + 1 de modo que el tercer elemento de la matriz a x y x + 1 es el array [2] = 1, n = 2 y porque no es igual a 0, por lo que volvemos es 9 + 1 + diversión (x + 2,1)

Finalmente, por lo que, n == 1, de modo que la matriz de retorno [3] = 2, por lo que el resultado final es 1 + 9 + 2 = 12

En resumen: un conocimiento que tenemos que entender es que cada uno de x + 1 array es en realidad la primera dirección después de un punto de pasar a la siguiente elemento.

2.有以下程序请输出程序运行结果
#include<stdio.h>
int disp(char *str){
    while(*str){//遇到'\0'结束
        putchar(*str++);//str依次往后移动
    }
    return *str;
    
}
int main() {
printf("%d",disp("NAME"));
} 

Visto desde la función DISP programa, mientras que () bucle se pasa secuencialmente a leer la función principal del personaje, cuando se enfrentan a '0 \' hasta el final y el retorno str,

Los últimos extremos de función que devuelve str * Que \ 0, pero la función del tipo de retorno es un tipo numérico, el resultado final será 0, y la cadena es \ 0 a marca de fin.

Así, el resultado final es NAME0, si la salida en la forma que es NOMBRE% c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ha publicado 196 artículos originales · ganado elogios 581 · vistas 470 000 +

Supongo que te gusta

Origin blog.csdn.net/wyf2017/article/details/105155526
Recomendado
Clasificación