Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Егорова ЕВ. Программирование на языке высокого уровня

.pdf
Скачиваний:
119
Добавлен:
26.03.2016
Размер:
1.47 Mб
Скачать

#include <stdio.h> main()

{char ch;

char str[20]="0101"; int i, num0=0, num1=0; for(i=0;ch=str[i];i++)

switch(ch) {

case '0': num0++; case '1': num1++;

}

printf("Всего цифр %d\n",num0+num1);

}

Варианты ответов

1.Всего цифр 0.

2.Всего цифр 3.

3.Всего цифр 4.

4.Всего цифр 5.

5.Всего цифр 6. Правильный ответ: 5

6 Пример теста по модулю 6 "Функции"

Вопрос Сколько раз будет напечатано слово "Привет" во время работы приведенной ниже

программы ?

#include <stdio.h> void hello(void); main()

{int i; for(i=0;i<3;i++)

hello();

}

void hello() {int i=0;

while(i++<2) printf("Привет\n");

}

Варианты ответов

1.2 раза.

2.3 раза.

3.4 раза.

4.5 раз.

5.6 раз.

Правильный ответ: 5

7 Пример теста по модулю 7 "Определения и описания - общая форма"

Вопрос Сколько классов памяти выделено в языке Си?

Варианты ответов

1.2 класса.

2.3 класса.

3.4 класса.

4.5 классов.

161

5. В языке Си можно работать с любым количеством классов памяти. Правильный ответ: 4

8 Пример теста по модулю 8 "Файлы"

Вопрос Есть ли ошибки в приведенном ниже фрагменте программы для работы с файлом ?

M

FILE *ved;

M

ved = fopen("ved.dat", "r"); if (ved = NULL)

{ printf ("/n Ошибка при открытии файла ved.dat"); exit(1); /* Завершение программы с кодом 1 */

}

<обработка файла> fclose(ved);

M

Варианты ответов

1.Данный фрагмент программы не содержит ошибок.

2.Есть ошибка при определении потокового указателя. Вместо оператора

"FILE *ved;" следует писать "file *ved;".

3.Есть ошибка при открытии файла. Вместо оператора "ved=fopen("ved.dat","r");"

следует писать "*ved = fopen("ved.dat", "r");".

4.Есть ошибка при открытии файла. Вместо оператора "ved=fopen("ved.dat","r");"

следует писать "ved = fopen('ved.dat', 'r');".

5.Есть ошибка при закрытии файла. Вместо оператора "fclose(ved);" следует писать "fclose(*ved);".

Правильный ответ: 1

162

Содержание

 

Введение ........................................................................................................................................

3

1 ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ СИ............................................................

4

1.1 НАЧАЛЬНЫЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ СИ..........................

6

1.1.1 Алфавит..........................................................................................................................

6

1.1.2 Идентификаторы..........................................................................................................

6

1.1.3 Функции. Структура программы на языке Си...........................................................

6

1.1.4 Описание переменных....................................................................................................

7

1.1.5 Определение констант .................................................................................................

8

1.1.6 Операторы.....................................................................................................................

8

1.1.7 Точка с запятой .............................................................................................................

8

1.1.8 Комментарии.................................................................................................................

8

1.1.9 Препроцессор языка Си.................................................................................................

8

1.1.10 Основные математические подпрограммы Турбо-Си ............................................

9

1.2 КОНСТАНТЫ.....................................................................................................................

10

1.2.1 Целочисленные константы........................................................................................

10

1.2.2 Символьные константы .............................................................................................

11

1.2.3 Константы с плавающей точкой..............................................................................

12

1.2.4 Константы перечисляемого типа.............................................................................

13

1.2.5 Строковые константы...............................................................................................

13

1.3 ТИПЫ И ПЕРЕМЕННЫЕ..................................................................................................

14

1.3.1 Знаки..............................................................................................................................

14

1.3.2 Целые переменные.......................................................................................................

14

1.3.3 Плавающая точка........................................................................................................

15

1.3.4 Перечисляемые типы..................................................................................................

15

1.3.5 Тип void (пустой) .........................................................................................................

16

1.3.6 Логические значения....................................................................................................

16

1.4 ПРЕОБРАЗОВАНИЕ ТИПОВ...........................................................................................

17

1.4.1 Неявные преобразования типов.................................................................................

17

1.4.2 Арифметические преобразования..............................................................................

17

1.4.3 Явные преобразования типов.....................................................................................

17

1.5 ВВОД И ВЫВОД В СИ.....................................................................................................

18

1.5.1 Стандартные потоки ввода/вывода.........................................................................

18

1.5.2 Вывод.............................................................................................................................

18

1.5.3 Ввод...............................................................................................................................

21

1.5.4 Очистка потока ..........................................................................................................

25

1.6 ЛАБОРАТОРНАЯ РАБОТА №1 "ЛИНЕЙНЫЙ ВЫЧИСЛИТЕЛЬНЫЙ ПРОЦЕСС"26

1.6.1 Линейный вычислительный процесс. Вычисление заданной величины...................

27

1.7 КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 1..............................................................

30

2 ОПЕРАЦИИ И ОПЕРАТОРЫ.................................................................................................

31

2.1 ОПЕРАЦИИ В СИ..............................................................................................................

31

2.1.1 Арифметические операции.........................................................................................

31

2.1.2 Увеличение и уменьшение............................................................................................

31

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

32

2.1.4 Логические операции и операции отношения...........................................................

33

2.1.5 Поразрядные (побитовые) операции.........................................................................

33

2.1.6 Операции: приоритет и порядок вычислений...........................................................

34

2.2 ОПЕРАТОРЫ УПРАВЛЕНИЯ.........................................................................................

35

2.2.1 Выражения и операторы............................................................................................

35

2.2.2 Построение условий ....................................................................................................

36

2.2.3 Разветвление................................................................................................................

36

2.2.4 Циклы............................................................................................................................

41

2.2.5 Оператор break............................................................................................................

45

2.2.6 Оператор continue ......................................................................................................

46

163

2.2.7 Оператор goto и метки операторов.........................................................................

46

2.3

ЛАБОРАТОРНАЯ РАБОТА №2 "ОПЕРАТОРЫ УПРАВЛЕНИЯ"...........................

47

2.3.1 Разветвляющийся вычислительный процесс. Неформализованные задачи..........

47

2.3.2 Циклический вычислительный процесс. Неформализованные задачи....................

51

2.4

КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 2..............................................................

54

3 ПРОИЗВОДНЫЕ ТИПЫ (МАССИВЫ, СТРУКТУРЫ, ОБЪЕДИНЕНИЯ) .......................

55

3.1

МАССИВЫ.........................................................................................................................

55

3.2

СТРУКТУРЫ......................................................................................................................

57

3.2.1 Определение структуры.............................................................................................

57

3.2.2 Доступ к компонентам структуры..........................................................................

58

3.2.3 Пример работы со структурой.................................................................................

59

3.4

ПЕРЕМЕННЫЕ СТРУКТУРЫ.........................................................................................

60

3.5

ИНИЦИАЛИЗАЦИЯ..........................................................................................................

61

3.6

ЛАБОРАТОРНАЯ РАБОТА №3 "МАССИВЫ И СТРУКТУРЫ".................................

62

3.6.1 Массивы........................................................................................................................

62

3.6.2 Массив структур.........................................................................................................

66

3.6.3 Массив переменных структур....................................................................................

70

3.7

КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 3..............................................................

73

4 УКАЗАТЕЛИ ............................................................................................................................

74

4.1

ПОНЯТИЕ УКАЗАТЕЛЯ..................................................................................................

74

4.2

АДРЕСНЫЕ ОПЕРАЦИИ.................................................................................................

74

4.3

АДРЕСНАЯ АРИФМЕТИКА ...........................................................................................

76

4.4

ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ.......................................................

76

4.4.1 Динамические переменные..........................................................................................

76

4.4.2 Создание динамических переменных .........................................................................

76

4.4.3 Доступ к динамическим переменным........................................................................

78

4.4.4 Освобождение выделенной памяти...........................................................................

79

4.5

УКАЗАНИЕ НА СТАТИЧЕСКИЕ ПЕРЕМЕННЫЕ.......................................................

79

4.6

УКАЗАНИЕ НА ПРОИЗВОЛЬНУЮ ЯЧЕЙКУ ПАМЯТИ............................................

79

4.7

УКАЗАТЕЛИ И СТРУКТУРЫ.........................................................................................

80

4.8

УКАЗАТЕЛЬ НА ПУСТОЙ ТИП void.............................................................................

80

4.9

ЛАБОРАТОРНАЯ РАБОТ №4 "ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ"

....................................................................................................................................................

 

81

4.9.1 Динамическое распределение памяти и указатели..................................................

82

4.10 КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 4............................................................

85

5 МАССИВЫ, СТРОКИ И УКАЗАТЕЛИ.................................................................................

86

5.1

СВЯЗЬ МЕЖУ УКАЗАТЕЛЯМИ И МАССИВАМИ......................................................

86

5.2

МАССИВЫ, СТРОКИ, УКАЗАТЕЛИ .............................................................................

88

5.2.9 Массивы указателей. Массивы символьных строк..................................................

99

5.3

МНОГОМЕРНЫЕ МАССИВЫ И УКАЗАТЕЛИ..........................................................

100

5.3.1 Одномерные массивы и указатели...........................................................................

100

5.3.2 Двумерные массивы и указатели .............................................................................

100

5.3.3 Многомерные массивы и указатели.........................................................................

101

5.4

ЛАБОРАТОРНАЯ РАБОТА № 5 "РАБОТА СО СТРОКАМИ"..................................

102

5.4.1 Обработка текстовой информации. Работа со строками.................................

102

5.5

КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 5............................................................

106

6 ФУНКЦИИ..............................................................................................................................

107

6.1

ОПРЕДЕЛЕНИЕ И ОПИСАНИЕ ФУНКЦИИ..............................................................

107

6.1.1 Определение функции................................................................................................

107

6.1.2 Описание функции......................................................................................................

108

6.2

УПРАВЛЕНИЕ ВИДИМОСТЬЮ ФУНКЦИЙ..............................................................

109

6.3

ВЫЗОВ ФУНКЦИЙ.........................................................................................................

110

6.4

ПЕРЕДАЧА ПАРАМЕТРОВ...........................................................................................

110

6.5

ПЕРЕДАЧА МАССИВОВ В КАЧЕСТВЕ ПАРАМЕТРОВ.........................................

111

164

6.6

УКАЗАТЕЛЬ НА ФУНКЦИЮ. ПЕРЕДАЧА ФУНКЦИЙ В КАЧЕСТВЕ

 

ПАРАМЕТРОВ.......................................................................................................................

115

6.7

СВЯЗЬ ФУНКЦИЙ ИЗ РАЗНЫХ ФАЙЛОВ.................................................................

117

6.8

ЛОКАЛЬНЫЕ И ГЛОБАЛЬНЫЕ ДАННЫЕ.................................................................

117

6.9

ЛАБОРАТОРНАЯ РАБОТА №6 "ПОДПРОГРАММЫ В СИ" ...................................

117

6.9.1 Организация функций................................................................................................

118

6.9.2 Передача массивов в качестве параметров...........................................................

121

6.10 КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 6..........................................................

125

7 ОПРЕДЕЛЕНИЯ И ОПИСАНИЯ - ОБЩАЯ ФОРМА........................................................

126

7.1

ТИПЫ ДАННЫХ.............................................................................................................

126

7.1.1 Тип unsigned char ......................................................................................................

126

7.1.2 Директива typedef ......................................................................................................

127

7.2

ОПИСАТЕЛИ В ОПРЕДЕЛЕНИЯХ И ОПИСАНИЯХ................................................

127

7.3

КЛАССЫ ПАМЯТИ ........................................................................................................

128

7.3.1 Автоматические переменные...................................................................................

129

7.3.2 Регистровые переменные .........................................................................................

129

7.3.3 Статические переменные (локальные) ...................................................................

130

7.3.4 Глобальные переменные............................................................................................

130

7.3.5 Выбор класса памяти................................................................................................

132

7.4

СИНТАКСИЧЕСКИЕ ОТЛИЧИЯ ОПРЕДЕЛЕНИЙ И ОПИСАНИЙ........................

133

7.5

ИНИЦИАЛИЗАТОРЫ.....................................................................................................

133

8 ФАЙЛЫ...................................................................................................................................

141

8.1

ПОТОКИ (stream).............................................................................................................

141

8.2

ОПРЕДЕЛЕНИЕ ПОТОКА.............................................................................................

142

8.3

СТАНДАРТНЫЕ ПОТОКИ............................................................................................

142

8.4

НЕСТАНДАРТНЫЕ ПОТОКИ.......................................................................................

143

8.4.1 Открытие файла (потока) ......................................................................................

143

8.4.2 Закрытие потока.......................................................................................................

146

8.4.3 Очистка потока ........................................................................................................

146

8.4.4 Обработка (чтение и запись) нестандартных текстовых файлов....................

146

8.5

ЛАБОРАТОРНАЯ РАБОТА №8 "ФАЙЛЫ" .................................................................

154

8.5.1 Файлы. Список заданий.............................................................................................

154

8.6

КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 8............................................................

157

Список использованных источников ......................................................................................

158

Приложение................................................................................................................................

159

Примеры тестов контроля знаний по модулям.......................................................................

159

165