Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. Акушерские операции.
  2. Арендные операции.
  3. Банки, их виды и основные операции.
  4. В соответствии с российским законодательством банк -это ... организация, которая выполняет депозитные, расчетные и ссудные операции.
  5. Забалансовые операции.
  6. Комиссионные операции.
  7. Лекция 1. Битовые операции.
  8. Место руководителя при управлении подразделением в ходе проведения специальной операции.
  9. Подготовительные операции.

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

#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

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


Дата добавления: 2014-12-15; просмотров: 13 | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2019 год. (0.025 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав