Рубрики

Вывод программ на C | Набор 4

Прогнозировать выход следующих программ

Вопрос 1

#include‹stdio.h›

int main()

{

    struct site

    {

        char name[] = "GeeksforGeeks";

        int no_of_pages = 200;

    };

    struct site *ptr;

    printf("%d",ptr->no_of_pages);

    printf("%s",ptr->name); 

    getchar();

    return 0;

}

Выход:
Ошибка компилятора

Объяснение:
Обратите внимание на разницу между объявлением структуры / объединения и объявлением переменной. Когда вы объявляете структуру, вы фактически объявляете новый тип данных, подходящий для ваших целей. Таким образом, вы не можете инициализировать значения, так как это не объявление переменной, а объявление типа данных.

Ссылка:
http://www.lix.polytechnique.fr/~liberti/public/computing/prog/c/C/SYNTAX/struct.html

вопрос 2

int main()

{

    char a[2][3][3] = {'g','e','e','k','s','f','o',

                           'r','g','e','e','k','s'};

    printf("%s ", **a);

    getchar();

    return 0;

}

Выход:
geeksforgeeks

Объяснение:
Мы создали трехмерный массив, который должен иметь 2 * 3 * 3 (= 18) элементов, но мы инициализируем только 13 из них. В C, когда мы инициализируем меньше элементов в массиве, все неинициализированные элементы становятся '/ 0' в случае char и 0 в случае целых чисел.

Вопрос 3

int main()

{

   char str[]= "geeks\nforgeeks";

   char *ptr1, *ptr2;

       

   ptr1 = &str[3];

   ptr2 = str + 5;

   printf("%c", ++*str - --*ptr1 + *ptr2 + 2); 

   printf("%s", str); 

   

   getchar();

   return 0;

}

Выход:
heejs
forgeeks

Объяснение:
Первоначально ptr1 указывает на «k», а ptr2 указывает на «/ n» в «geeks / nforgeeks». В операторе print значение в str увеличивается на 1, а значение в ptr1 уменьшается на 1. Таким образом, строка становится «heejs / nforgeeks».

Первое печатное заявление становится
printf («% c», «h» — «j» + «n» + 2)

'h' — 'j' + '/ n' + 2 = -2 + '/ n' + 2 = '/ n'

Первые печатные операторы символа новой строки. и следующее печатное заявление печатает «heejs / nforgeeks».

Вопрос 4

   
#include <stdio.h>

int fun(int n)

{

    int i, j, sum = 0;

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

        for(j=i;j<=i;j++)

            sum=sum+j;

    return(sum);

}

  

int main()

{

    printf("%d", fun(15));

    getchar();

    return 0;

}

Выход: 120
Объяснение: fun (n) вычисляет сумму первых n целых чисел или, можно сказать, возвращает n (n + 1) / 2.

Вопрос 5

#include <stdio.h> 

int main()

{

    int c = 5, no = 1000;

    do {

        no /= c;

    } while(c--);

 

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

    return 0;

}

Вывод: исключение — делить на ноль

Объяснение: В вышеуказанной программе есть ошибка. Он также входит в цикл do-while для c = 0. Будьте осторожны, когда используете цикл do-while!

Рекомендуемые посты:

Вывод программ на C | Набор 4

0.00 (0%) 0 votes