Вторник, 21.05.2024, 11:15
Приветствую Вас, Гость

БИЛЕТ 16.

1) Оператор-выражение: синтаксис, выполнение, примеры использования.

Синтаксис:     выражение;  

При выполнении оператора-выражения, выражение вычисляется в соответствии с правилами, приведенными в Главе "Выражения и присвоения".

В языке С присвоения являются выражениями. Значением выражения в этом случае будет присваиваемое значение (иногда называемое "правым значением").

Вызовы функций также считаются выражениями. В этом случае значением выражения будет возвращаемая функцией величина, если она имеется. Если функция возвращает значение, то оператор-выражение обычно содержит присвоение для записи возвращаемого значения при вызове функции. Возвращаемое функцией значение обычно используется в качестве операнда в другом выражении. Если значение будет использовано несколько раз, его можно присвоить другой переменной. Если значение не будет использовано в качестве операнда и не будет присвоено, то функция вызывается, а возвращаемое значение, если оно есть, не используется.

Пример 1  В данном примере x присваивается значение y+3.

x=(y+3);  

Пример 2  В данном примере увеличивается значение x.

x++;  

Пример 3  В данном примере показано выражение вызова функции. Значение выражения, которое включает в себя любую возвращаемую функцией величину, будет присвоено переменной z.

z=f(x)+3;  

 

2) Области видимости объектов

вне области, она может сохранять свое значение, но обращение к ней невозможно, по сути можно считать, что переменной вне области видимости не существует.

Есть несколько видов области видимости:

1) Публичная. Когда переменная видна в любой части исходного кода программы.

2) Локальная блочная. Переменная видна только в пределах блока, в котором она была определена.

2)Локальная функциональная. Переменная видна только в пределах функции в которой была определена. При этом в функциях, вызванных из функции, где определена переменная, переменная не видна.

З) Приватная область. Переменная видна в функции, где была определена и во всех функциях, вызванных из функции.

Отдельный вид переменных это статические переменные. Они всегда локальные, бывают функциональными и блочными. Основное отличие таких переменных в том что они всегда хранят своё значение и при этом они инициализируется один раз.


*************************************16 - 3

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


#include<conio.h>

#include<stdio.h>

const n=2;

int c[n][n]={{4,4},{4,4}};

int sum[n*2+2];

int i,j,m;

void main()

{

 clrscr();

 m=0;

      for (j=0;j<n;j++,m++)

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

                        sum[m] += c[i][j];

      for (j=0;j<n;j++,m++)

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

                        sum[m] += c[j][i];

      for (j=0,i=0;j<n;j++,i++)

                        sum[m] += c[j][i];

 m++;

      for (j=n-1,i=n-1;j>=0;j--,i--)

                        sum[m] += c[j][i];

 for (i=0;i<m;)

     {

      if (sum[i] != sum[i+1])

             {

              printf("No");

              break;

             }

      else

              i++;

     }

 if (i==m)

     printf ("Yes");

 getch();

}


*************************************16 - 4

Выдать на экран монитора битовое содержание заданной переменной типа float.


#include<conio.h>

#include<stdio.h>

void preds(unsigned char*b)

{

for(int i=7;i>=0;i--)

    printf("%d",(*b >> i) & 1);

    printf(" ");

}

void main()

{

int i;

float ch=123.5123421;

unsigned char*b;

clrscr();

printf("\n\nF l o a t  %f\n", ch);

b = (unsigned char*) & ch;

for(i=0; i<sizeof(float); i++)

    preds(b++);

getch();

}