Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к срезу по КП и ЯП_июнь.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.15 Mб
Скачать

Задачи к срезу по дисциплине «Конструирование программ и языки программирования»:

  1. Привести типы файлов, используемых в программах на С.

Описать структуру программы на С.

Составить программу решения задачи: Вычислить значение функции . Значения x, y ввести с клавиатуры, результат вывести на экран.

Файлы, содержащие текст программы на С/С++ должны иметь расширение .с(.cpp) (файл проекта (программы)); откомпилированная программа имеет расширение .exe и является исполняемой; заголовочные файлы библиотек имеют расширение .h.

Структура программы

Простейшая структура программы такова:

Синтаксис подключения заголовочных файлов:

#include <имя заголовочного файла.h> - подключение библиотек

main() Функция, означающая начало программы – точку входа

{ Здесь начинается функция

.....;

.....;Здесь помещаются инструкции, которые должен выполнить компьютер

.....;

} Здесь функция заканчивается

Последовательность инструкций, составляющих функцию, часто называют телом функции.

  1. Целый и вещественный типы данных.

Приведите формы записи этих типов на языке С.

Составить программу решения задачи: Вычислить значение функции . Значения x, y ввести с клавиатуры, результат вывести на экран.

Основные типы:

Целочисленные: не имеют дробной части: 25, -15

  • char - символьный

  • short - короткий целый

  • int - целый

  • long – длинный целый

Вещественные: -5.6, 31.28, -1.09e+4

  • float – занимает в памяти 32 бита

  • double – двойной точности (занимает в памяти 64 бита)

Объявление переменных:

int a; - целочисленной а; а=25

float x; - вещественной х; х=31.28

  1. Понятие константы и переменной.

Объяснить правила приоритета в языке С.

Составить программу решения задачи: Вычислить значение функции . Значения x, y ввести с клавиатуры, результат вывести на экран.

Константы в С предназначены для хранения данных, которые специально или случайно нельзя изменить. Суть констант заключается в том, что их можно использовать в вычислениях, при выводе данных, но саму константу перезаписать как переменную нельзя. Пример объявления констант: const double pi=3.14;

Примеры различных форм записи целых констант:

Десятичная – 10

Восьмеричная – 012

Шестнадцатеричная - 0xa или 0XA

Константы с плавающей точкой: 15.75 1.575E1

Символьная константа: 'D', ' '.'

Переменная – это именованная область памяти. В переменную можно записывать данные и считывать. Данные, записанные в переменной, называются значением переменной. Для того, чтобы использовать переменную, ее сначала нужно объявить:

   int a; // объявляем переменную a типа int    a = 5; // записываем в переменную a число 5

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

Выражения строятся в соответствии с приоритетами операций.

В языке программирования Си, определен порядок выполнения арифметических операций.

  1. Операции в скобках

  2. Функции (типа sqrt, cos и другие)

  3. Умножение, деление, остаток от деления (слева направо, как в обычной жизни)

  4. Сложение вычитание (слева направо, как в обычной жизни)

#include <iostream.h>

#include <math.h>

#include <conio.h>

main()

{

int x,y;

double b;

cout << "x,y:";

cin >> x >> y;

b=pow(y,3)/(2+pow(cos(pow(x,2)),2));

cout<<"b="<<b;

getch();

}

  1. Стандартные функции управления форматированным вводом-выводом в ANSI C.

Объяснить формат записи функций управления форматированным вводом-выводом.

Составить программу решения задачи: Вычислить значение функции . С использованием функций форматированного ввода-вывода значения x, y ввести с клавиатуры, результат вывести на экран.

Стандартные функции управления форматированным вводом-выводом в ANSI C – в файле <stdio.h>.

Функция printf() выводит форматированные данные в стандартный поток (экран)

Каждый элемент формата состоит из нескольких полей:

%[флаг][ширина][точность][модификатор_типа] тип_формата

Тип формата:

d – значением аргумента является десятичное целое число

s – значением аргумента является строка символов

f – значением аргумента является вещественное десятичное число с плавающей точкой

  • Ширина – в данном поле устанавливается минимальная ширина поля в символах. Если число подлежащих выводу символов меньше, чем указано в этом поле, то слева и справа добавляются пробелы для достижения указанного значения. Если перед числом стоит нуль, то вместо пробелов добавляются нули.

  • Точность – задает число подлежащих выводу десятичных знаков и должно начинаться точкой. Действие поля зависит от типа данных.

Флаг:

-

Выравнивание влево выводимого числа в пределах выделенного поля. Если этот знак не указан, то по умолчанию производится выравнивание вправо.

+

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

И др.

Функция scanf() выполняет форматированный ввод данных из входного потока.

Ее синтаксис:

%[*][ширина][точность] тип_формата

% - символ начала спецификатора формата.

Если после % стоит *, то вводимое поле не присваивается ни одной из переменных, указанных в списке параметров.

Ширина – положительное десятичное число, которое определяет минимальную ширину поля в символах.

Точность – это поле задает точность для преобразуемых величин.

  1. Стандартные функции ввода-вывода символьной строки в ANSI C.

Объяснить формат записи функций управления форматированным вводом-выводом.

Составить программу решения задачи: Ввести с клавиатуры две произвольные строки, объединить их, вывести на экран полученную строку и ее длину. Использовать стандартные функции ввода-вывода символьной строки.

Для ввода и вывода строк в библиотеке stdio.h содержатся специализированные функции gets и puts.

Функция gets предназначена для ввода строк и имеет следующий заголовок:

Char * gets(char *buffer);

*buffer – указатель на строку

Функция puts предназначена для вывода строк и имеет следующий заголовок:

Int puts(const char *string);

*stringуказатель на строку

#include <stdio.h>

#include <conio.h>

#include <string.h>

main()

{

char s1[25];

char s2[25];

int d;

puts("Stroka 1:");

gets(s1);

puts("Stroka 2:");

gets(s2);

d=strlen(strcat(s1,s2));

printf("Stroka:%s; Dlina:%d",s1,d);

getch();

}

  1. Записать общий вид оператора условного перехода if.

Объяснить схему его выполнения.

Составить программу решения задачи: Вычислить значение функции . Значение x ввести с клавиатуры, результат вывести на экран.

Имеются две формы записи условного оператора:

  1. Сокращенная if (логическое условие) оператор1

  2. полная if (логическое условие) оператор1 else оператор2

В первом случае вычисляется логическое условие, стоящее в скобках и, если оно истинно, то выполняется оператор1. Иначе (условие ложно) – выполнения действий передается на директиву (оператор), следующий за оператором условного перехода

Во втором случае, если логическое условие – истинно, то выполняется оператор 1, если оно ложно – выполняется оператор 2, который находится после else.

Логическое условие м.б. составным (исходя из условия задачи), т.е. объединено логическими операциями: && (логическое «И»); || (логическое «ИЛИ»); == (равно); != (не равно).

Следует помнить, что:

По веткам «истина» и «ложь» всегда следует по 1 директиве (оператору) языка. Если необходимо реализация программы, где используется более 1-ой директивы, то используют составной оператор (операторные скобки): {…..}.

  1. Записать общий вид оператора выбора switch.

Объяснить схему его выполнения.

Составить программу решения задачи: Вычислить значение функции с использованием оператора switch:

. Значение k ввести с клавиатуры, результат вывести на экран.

Оператор-переключатель switch (переключатель), вызывает передачу управления к одному из нескольких операторов, в зависимости от значения выражения переключатель. Оператор имеет форму:

switch (выражение) {

case выражение: оператор1; break;

case выражение: оператор2; break;

……………………………..

case выражение: оператор n; break;

………………

default: оператор;}

Выражение, следующее за ключевым словом switch в круглых скобках, может быть любым выражением, допустимыми в языке С, значение которого должно быть целым типом.

Схема выполнения оператора switch следующая:

  1. Вычисляется выражение в круглых скобках;

  2. Вычисленные значения последовательно сравниваются с константными выражениями, следующими за ключевыми словами case;

  3. Если одно из константных выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;

  4. Если ни одно из константных выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после switch оператор.

Особенность использования оператора switch: конструкция со словом default может быть не последней в теле оператора switch. Ключевые слова case и default в теле оператора switch существенны только при начальной проверке, когда определяется начальная точка выполнения тела оператора switch. Все операторы, между начальным оператором и концом тела, выполняются вне зависимости от ключевых слов, если только какой-то из операторов не передаст управления из тела оператора switch. Таким образом, программист должен сам позаботится о выходе из case, если это необходимо. Чаще всего для этого используется оператор break.

  1. Записать общий вид оператора выбора for.

Объяснить схему его выполнения.

Составить программу решения задачи: Из чисел от 10 до 99 вывести те, сумма цифр которых равна n (0 < n < 18). Значение n ввести с клавиатуры, результат вывести на экран.