Основные арифметические операции — КиберПедия 

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Основные арифметические операции

2020-04-01 121
Основные арифметические операции 0.00 из 5.00 0 оценок
Заказать работу

Что напечатает следующая программа?

#include <stdio.h>

main()

{

int x;

x= -3 + 4 * 5 - 6; printf("%d\n",x);

x= 3 + 4 % 5 - 6; printf("%d\n",x);

x= -3 * 4 % - 6 / 5; printf("%d\n",x);

x= (7 + 6) % 5 / 2; printf("%d\n",x);

return 0;

}

Операции присваивания.

Что напечатает следующая программа?

#include <stdio.h>

#define PRINTX  printf("%d\n",x)

main()

{

int x=2,y,z;

x *= 3 + 2;  PRINTX;

x *= y = z =4;  PRINTX;

x = y == z;  PRINTX;

x == (y = z); PRINTX;

return 0;

}


Логические операции и операции инкремента.

Что напечатает следующая программа?

#include <stdio.h>

#define PRINT(int)  printf("%d\n",int)

main()

{

int x,y,z;

 

x=2; y=1; z=0;

x = x && y || z; PRINT(x);

PRINT(x ||! y && z);

x=y=1;

z = x ++ - 1;  PRINT(x);

PRINT(z);

 

z += - x ++ + ++ y; PRINT(x);

PRINT(z);

 

z = x / ++ x;  PRINT(z);

return 0;

}

Поразрядные операции.

Что напечатает следующая программа?

#include <stdio.h>

#define PRINT(int)  printf("%d\n",int)

 

main()

{

int x,y,z;

x=03; y=02; z=01;

PRINT(x | y & z);

PRINT(x | y & ~z);

PRINT(x ^ y & ~z);

PRINT(x & y && z);

 

x=1; y=-1;

PRINT(! x | x);

PRINT(~ x | x);

PRINT(x ^ x);

 

x <<= 3; PRINT(x);

y <<= 3; PRINT(y);

y >>= 3; PRINT(y);

 

return 0;

}

Отношения и условия

Что напечатает следующая программа?

#include <stdio.h>

#define PRINT(int)  printf("%d\n",int)

main()

{

int x=1,y=1,z=1;

x += y += z;

PRINT(x < y? y: x);

PRINT(x < y? x ++: y ++);

PRINT(x);

PRINT(y);

PRINT(z += x < y? x ++: y ++);

PRINT(y);

PRINT(z);

 

x=3; y=z=4;

PRINT((z >= y >= x)? 1: 0);

PRINT(z >= y && y >=x);

 

return 0;

}

Выполнение операций и их приоритеты

  Что напечатает следующая программа?

#include <stdio.h>

#define PRINT(x,y,z)  printf("x=%d\t y=%d\t z=%d\n",x,y,z)

main()

{

int x,y,z;

 

x=y=z=1;

++ x || ++ y && ++ z; PRINT(x,y,z);

 

x=y=z=1;

++ x && ++ y || ++ z; PRINT(x,y,z);

 

x=y=z=1;

++ x && ++ y && ++ z; PRINT(x,y,z);

 

x=y=z=-1;

++ x && ++ y || ++ z; PRINT(x,y,z);

x=y=z=-1;

++ x || ++ y && ++ z; PRINT(x,y,z);

 

x=y=z=-1;

++ x && ++ y && ++ z; PRINT(x,y,z);

return 0;

}

Основные типы данных

Что напечатает следующая программа?

#include <stdio.h>

#define PRINTd(x) printf("%d\n",x);//десятичное число со знаком

#define PRINTc(x) printf("%c\n",x);//символ с ascii-кодом x

#define PRINTo(x) printf("%o\n",x);//восьмеричное число со знаком

#define PRINTs(x) printf("%s\n",x);//строковая константа

int  integer =5;

char character='5';

char* string  ="5";

main()

{

PRINTd(string);

PRINTd(character);

PRINTd(integer);

PRINTs(string);

PRINTc(character);

PRINTc(integer=53);

PRINTd('5'>5);

{

int sx=-8;

unsigned ux=-8;

PRINTo(sx); PRINTo(ux);

PRINTo(sx>>3); PRINTo(ux>>3);

PRINTd(sx>>3); PRINTd(ux>>3);

}

return 0;

}

Приведение целых и вещественных типов

Что напечатает следующая программа?

#include <stdio.h>

#define  PRi(x)  printf("i=%.8g\t",(double)x)

#define  PRl(x)  printf("l=%.8g\t",(double)x)

#define  PRf(x)  printf("f=%.8g\t",(double)x)

#define  PRd(x)  printf("d=%.8g\t",(double)x)

#define  NL  putchar('\n')

#define  PRINT4(x1,x2,x3,x4) PRi(x1);PRl(x2);PRf(x3);PRd(x4);NL

main()

{

double d;

float f;

long l;

int i;

i=l=f=d= 100/3; PRINT4(i,l,f,d);

d=f=l=i= 100/3; PRINT4(i,l,f,d);

i=l=f=d= 100/3.;  PRINT4(i,l,f,d);

d=f=l=i= (double)100/3; PRINT4(i,l,f,d);

i=l=f=d= (double)(100000/3); PRINT4(i,l,f,d);

d=f=l=i= (double)100000/3; PRINT4(i,l,f,d); return 0;

}

Приведение целых и вещественных выражений

Что напечатает следующая программа?

#include <stdio.h>

#define  NL  putchar('\n')

#define  PR(x) printf("%g\t",(double)x)

#define  PRINT1(x1)  PR(x1);NL

#define  PRINT2(x1,x2) PR(x1);PR(x2);NL

main(){

double d=3.2,x; int  i=2,y;

x= (y= d/i) *2; PRINT2(x,y);

y= (x= d/i) *2; PRINT2(x,y);

y= d *(x= 2.5/d); PRINT1(y);

x= d *(y= ((int)2.9 + 1.1)/d);

PRINT2(x,y);

return 0;

}

Ответы к заданиям

 

1. 11 1 0 1

2.  10 40 1 1

3. 1  1  2  0  3 0 1

4. 3 3 1 1 1  -1 0 8  -8  -1

5. 3 2 3 3 4 4 4 0 1

6. x=2 y=1 z=1   x=2 y=2 z=1

    x=2 y=2 z=2

    x=0 y=-1 z=0

    x=0 y=0 z=-1

    x=0 y=-1 z=-1

7. 175 - младший байт адреса в десятичной форме 53 5 5 5 1

    sx= 177770

    ux= 177770

sx>>3 = 177777 знак переносится при сдвиге

ux>>3 = 17777  знак не переносится при сдвиге

    -1

    8191

8. i=33 l=33 f=33 d=33 i=33 l=33 f=33

 d=33

    i=33 l=33 f=33.333332 d=33.333333

    i=33 l=33 f=33 d=33

    i=-32203 l=33333 f=33333 d=33333

    i=-32203 l=-32203 f=-32203 d=-32203

 

9. x=2 y=1 x=1.6 y=3

    y=2

    x=0 y=0

 

Дополнительные задания

 

1. Напишите выражение для определения суммы 0-го и 3-го битов числа int x.

2. Напишите выражение для определения количества единиц в числе char х.

3. Установить в единицу 3-ий и 5-ый биты переменной int x. Сбросить в ноль 9-ый и 13-ый биты переменной int x.

4. Что напечатает фрагмент программы

int x=100, y=7, z;

z = (x / y) % 5 * 3;

printf(“%d”, z);

5. Что напечатает фрагмент программы

int x=10, y=-70, z;

z = x << 3 + y >> 2;

printf(“%d”, z);

6. Переменная int x содержит четырехзначное натуральное число abcd. С помощью операций / и % найдите цифры a, b, c, d.

7. Найдите с помощью операций «условие» максимальное из трех чисел. Использовать только один оператор в виде max = ……;

8. Запишите в виде одного логического выражения принадлежность точки (x, y) уpезанному единичному квадpату

 

 


Рис.1.


Библиографический список

 

1. Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си: Задачи по языку Си. М.: Финансы и статистика, 1985. – 192с.

2. Керниган Б., Ритчи Д. Язык программирования Си. М.: Финансы и статистика, 1992. - 272с.

3. Подбельский В.В., Фомин С.С. Программирование на языке Си. Учеб. пособие. М.: Финансы и статистика, 2004. 600 с.


Поделиться с друзьями:

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.018 с.