Переменные, каких типов можно использовать для хранения чисел

Страницы работы

Содержание работы

Лабораторная работа № 2.

Тема: Базовые типы данных.

Цель: Ознакомиться с базовыми типами данных.

Отчет по самостоятельному заданию.

1. Переменные, каких типов можно использовать для хранения чисел:

v  –129  - signed short /*так как данное число попадает в диапазон signed short */

v  1.1 – float /*так как данное число попадает в диапазон float*/

v  129 – unsigned short  /*так как данное число попадает в диапазон unsigned short */

v  32768 - unsigned short  /*так как данное число попадает в диапазон unsigned short */

v  –3000000 - signed long /*так как данное число попадает в диапазон signed long */

v  40000 - signed short  /*так как данное число попадает в диапазон signed short */

v  25E2 - float /*так как данное число попадает в диапазон float*/

 2.Найти ошибку:

v  enum tag1  /*идет объявление скалярной переменной  перечисляемого типа */

/*tag1 – тег или идентификатор */

{

const_1,

const_2=18,                   /*список переменных */

const_8,      

const_0

}    name1;

name1= const_3; /*данная запись не правильна, так как переменная const_3 не была                                                     описана в списке переменных, , следовательно, к ней обратиться нельзя */

v  enum tag1 name2;        /*далее должен следовать список переменных, но он отсутствует, а находится только переменная перечисляемого типа name2, следовательно, это ошибка, так как зарезервированное слово enum задает перечисляемый тип */

3. Чему равно значение константы перечисления const_0 из примера II.1.

Значение  константы перечисления const_0  равно 20, так как значение const_2 равно 18, а по правилам значение последующих констант, не имеющих определенного константного выражения, увеличивается на 1. 

4.Изобразить схематично, как будут размещены элементы массива list в памяти,

  начиная с адреса O2BE.

Short list [3] [2] [4];

02BE                  02C0               02C2            02C4            02C6         02C8             02CA              02CC

01  000

001

00 002

00 003

01 010

011

01  012

01   013

02CE                 02D0             02D2            02D4             02D6             02D8             02DA           02DC

10  100

10  101

10  102

11  103

11  110

11  111

1     112

11  113

02DE                 02E0             02E2              02E4             02E6             02E8             02EA             02EC

20  200

21  201

20  202

20   203

21  210

21  211

21  212

21  213

5. Определить трехмерный массив элементов целого короткого типа размерностью 5x8x10. Присвоить элементу, находиться во 2-ом слое, 5 строке, 2-ом столбце число 10.

Short int   Mas [5] [8] [10]; /*определяется трехмерный массив целого короткого типа */

Mas [2] [5] [2] = 10;              /*присваиваем элементу с индексами 2, 5, 2 значение 10*/

6. Выполнить предыдущее задание 4 с использованием указателя.

Short int   Mas [5] [8] [10], *Pa; /*определяется трехмерный массив целого короткого типа и      указатель на массив */

Pa=Mas;

*(Pa [2] [5] + 2*1) = 10;

*(Pa [2] + 10*5 + 2*1) = 10;  

*(Pa + 2*8*5 + 10*5 + 2) = 0;    

/*эквивалентные операции присваивания некоторому элементу массива при помощи указателя и адресной арифметики определенного значения */

7. Какого типа будет результат вычисления следующих выражений:

·  unsigned int  i=0 ; /*тип - без знаковый по умолчанию */

double j=1.1;          /*тип - плавающий двойной точности */

(i*j)/0.5                   /*результат - double */

·  short  i, j;                 /*знаковый короткий */

i*j                              /*результат – int */

·  char c;                       /*знаковый символьный */

long e;                      /*знаковый длинный */ 

(c/e)*7.5;                  /*результат – long */

·  float a,b;                   /*плавающий одинарной точности */

a – b                          /*результат – double */

8. Выполнить на ПЭВМ 2-е программы.

А) Массив задается обычным способом.

# include <stdio.h>            /*подключение файла*/

# define KO  3                     /*объявление макроопределения КО 3*/

main()                                   /*главная функция*/

{

int mas [KO],I:                      /*описание целочисленного массива КО и переменной I=3*/ 

mas [0]=123;                         /*присваивание элементам массива значения */

mas [1]=456;

mas [2]=2000;

Printf(“\nАдреса переменных :”);

Printf(“%5p %5p %5p”,& mas[0], & mas [1],& mas [2]); /*печать адресов переменных */

Printf(“\nЗначения переменных :”);

Printf(“%5d %5d %5d”,mas[0],  mas [1], mas [2]);   /*печать значений переменных */

}

Ответы: Адреса переменных:       FFF0  FFF2   FFF4

Значения переменных:   123     456     2000

Б) Массив  изменяется.

# include <stdio.h>   /*подключение файлов*/

# include <conio.h>

# include <alloc.h>

# define KO  3            /*объявление макроопределения КО 3*/

main()                         /*главная функция*/

{

int *u,I;   /*выделение памяти для трех элементов, с помощью функции calloc ()*/

u*=(int) calloc (KO, sizeof(int));

u*=123;

*(u+1)=456;

*(u+2)=2000;

Printf(“\nАдреса переменных :”);             /*печать адресов переменных */

Printf(“%5p %5p %5p”,u,(u+1),(u+2));

Printf(“\nЗначения переменных :”);         /*печать значений переменных*/

Printf(“%5d %5d %5d”,*u, (u+1), *(u+2));

}

Ответы: Адреса переменных:       0374  0376   0378

Значения переменных:   123     456     2000

ВЫВОД: я ознакомился с базовыми типами данных, демонстрируя свои умения на лабораторной работе.

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Задания на лабораторные работы
Размер файла:
59 Kb
Скачали:
0