Рубрики

Выход программы C | Комплект 29

Вопрос 1
Сколько раз будет вызываться main ()?

main()
{

   printf("\n main Called Again");

   main();

}

Ответ: бесконечный цикл
Описание: в main () нет условия для остановки рекурсивного вызова main (), поэтому он будет вызываться бесконечно много раз.


вопрос 2
Угадай вывод следующей программы:

#include<stdio.h>

int main()

{

  int x = 10;

  float y = 10.0;

  if (x == y)

    printf("x and y are equal");

  else

    printf("x and y are not equal");

}

Ответ: х и у равны
Описание: если (x == y) здесь мы сравниваем if (10 == 10.0), следовательно, это условие выполняется. Потому что мы не можем сравнить Int
и float, так что int преобразуется в float, а затем сравнивается. Следовательно, он печатает «х и у равны».


Вопрос 3
какой будет вывод следующего кода?

#include<string.h>
main()
{

    char *str1 = "abcd";

    char str2[] = "abcd";

    printf("%d %d %d", sizeof(str1), 

          sizeof(str2), sizeof("abcd"));

}

Ответ: 8 5 5
Описание :
Первый размер символьного указателя печатается на машине, на которой запускается эта программа. Затем печатается размер строки str2, размер которой равен 5 (включая символ завершения '/ 0'). Третий похож на второй.


Вопрос 4
Каким будет вывод следующей c программы?

#include "stdio.h"

int main()

{

    int _ = 18;

    int __ = 38;

    int ___;

    ___ = _ + __;

    printf ("%i", ___);

    return 0;

}

Ответ: 56
Описание: Имя переменной может иметь только подчеркивание.


Вопрос 5
Что будет напечатано в результате операции ниже:

main()
{

    int x = 41, y = 43;

    x = y++ + x++;

    y = ++y + ++x;

    printf ("%d %d", x , y);

}

Ответ: 86 130
Описание: На самом деле это зависит от компилятора. После того, как x = y ++ + x ++, значение x станет 85, а y станет 44, а y = ++ y + ++ x будет вычислено как y = (44) + (86). После вычисления у становится 130.


Вопрос 6
Что будет напечатано в результате операции ниже:

main()
{

    int x = 7;

    printf ("%d, %d, %d", x, 

                 x<<5, x>>5);

}

Ответ: 7, 224, 0
Описание: Поскольку x = 7, поэтому первый% d дает 7, второй% d примет значение x после его сдвига влево пять раз, и сдвиг будет выполнен после преобразования значений в двоичное, двоичное значение 7 (000111) будет сдвинуто влево дважды, чтобы сделать его двоичным 224 (11100000), поэтому x << 5 равно 224, и, поскольку смещение влево не влияет на исходное значение x, его все еще 5, так что третий% d также покажет 0.


Вопрос 7
Какой будет выход?

main()
{

  if (1, 0)

    printf ("True");

  else

    printf ("False");

}

Ответ: Ложь
Описание: оператор запятой (,) возвращает значение, которое в правой части , и, следовательно, оператор if становится if (0).


Вопрос 8
Какой выход?

#include<stdio.h>

int main()

{

  printf ("%d", printf("%d", 12345678));

  return 0;

}

Ответ: 123456788
Описание: Обратите внимание на дополнительные 8 в конце. printf () возвращает количество символов, успешно напечатанных на экране.


Вопрос 9
Какой выход?

void main()

{

  printf ("2 + 3 = %d", 2+3);

}

Ответ: 2 + 3 = 5
Описание: поскольку спецификатор формата% d и оба являются целыми числами (2, 3), он добавит и выведет целочисленное значение.


Вопрос 10
Какой выход?

#include<stdio.h>
main()
{

    int i = 0;

    if (i = 55, 0, 10, 0)

        printf ("Test Skills %d", i);

    else

        printf ("C Programing %d", i);

}

Ответ: C Программирование 55
Описание: i = 55 оценивается первым, а его значение отбрасывается. 0 тогда оценивали и отбрасывали. 10 оценили тогда и выбросили. После этого вычисляется самый правый 0, и он будет значением всего выражения (но не значением подвыражений) в условии if и сделает условие ложным.


Вопрос 11
какой вывод?

#include<stdio.h>

int main()

{

    char arr[5] = "World is beautiful";

    printf ("%s", arr);

    return 0;

}

Ответ: Мир
Также выводится предупреждение «4:19: предупреждение: строка инициализатора для массива символов слишком длинная [включена по умолчанию]»
Описание: Размер любого массива символов не может быть меньше количества символов в любой строке, которую он назначил. Размер массива может быть равен (исключая нулевой символ) или больше, но никогда не меньше.


Вопрос 12
Каков вывод следующей программы?

#include<stdio.h>

void main()

{

    int a = 2;

    switch (a)

    {

        case 4: printf ("A");

        break;

        case 3: printf ("B");

        default : printf("C");

        case 1 : printf ("D");

        break;

        case 5 : printf ("E");

    }

}

Ответ: CD
Описание: в операторе switch по умолчанию должно быть упомянуто после всех случаев переключения. В этом случае он выполняется в промежутке, а все случаи после выполнения по умолчанию выполняются перед оператором break.


Вопрос 13
Какой выход?

#include<stdio.h>

int main()

{

    int x = 100, y = 200;

    if ( ++x || ++y)

        printf ("x = %d, y = %d", x, y);

    else

        printf ("condition failed");

    return 0;

}

Ответ: х = 101, у = 200
Описание: в первом случае выполняется условие if (т.е. ++ x), здесь значение x становится 101.


Вопрос 14
Рассмотрим следующую программу:

#include<stdio.h>
main()
{

    int i, j;

    for( i = 0, j = 5; j>0, i<10 ; i++, j--)

    printf ("\GeeksforGeeks.org");

}

Сколько раз будет напечатан «GeeksforGeeks.org»?

Ответ: 10
Описание: Условная часть цикла for (j> 0, i <10) разделена запятыми, что означает, что компилятор будет использовать значение, которое находится справа от запятой, т.е. i <10, поэтому цикл будет выполняться
пока значение i не станет меньше 10.


Вопрос 15
Какой выход?

#include<stdio.h>
#define SQR( x ) ( x * x )

int main()

    int b = 5;

    int a = SQR(b+2);

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

    return 0;

}

Ответ: 17
Описание: Как мы знаем, макросы будут заменять вслепую, не рассчитывать. Сначала он подставит значение, а затем вычислит позже. Итак, после подстановки макрос станет SQR (x + 2) = (x + 2 * x + 2), в этом случае значение x равно 5. Итак, окончательная подстановка будет SQR (5 + 2) = (5 + 2 * 5 + 2). так как «*» имеет больший приоритет, чем «+», он станет (5 + 10 + 2). Значение a будет 17 в этом случае

Эта статья предоставлена Харишем Кумаром . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

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

Выход программы C | Комплект 29

0.00 (0%) 0 votes