Пример 1.3.
#include <stdio.h>
#include <windows.h>
#define N 30
void main (void)
{ int j, i,n; float B[30], C[30]; char text[40], str_format[40];
CharToOem("\n Введите значение n = ", text);
CharToOem("\n %d-йэлемент = %f ", str_format);
printf(text); scanf("%d",&n);
CharToOem("\nИсходныймассив: \n ", text); printf(text);
B[0]=2.5; i=0; printf(str_format,0,B[0]);
while (i<n-1)
{ B[i+1]=B[i]+(float)(i+1)/2;
printf(str_format,i+1,B[i+1]); i++;
}
for (j=0;j<n;j++) C[j]= B[n-1-j];
CharToOem("\n Инвертированный массив: ", text);
printf(text);
for(i=0; i<n; i++) printf(str_format,i,C[i]);
}
КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ
1. Какие этапы обработки проходит исходный текст программы с целью создания соответствующего исполнимого модуля?
2. Объясните назначение препроцессора на примере директивы
#include <имя заголовочного файла>.
3. Чем характеризуется переменная в соответствии с оператором ее объявления?
4. Почему тип переменной однозначно определяет границы диапазона, которому принадлежат значения этой переменной?
5. Имеет ли переменная значение после ее объявления?
6. Что происходит в момент выполнения оператора вызова функции scanf()?
7. Переменные a, b, d, e имеют следующие значения: a = 2, b = 3, d = 5, e = 1.
Как изменятся эти значения после выполнения оператора:
a * = b = ++с – ––d + e++ ;
8. Что будет на экране после выполнения операторов:
int k= -2, t=1, a ; t++; a*=k--+t;
printf ("\na = %d", a); printf ("\nk = %d", k++);
printf ("\nt = %d", t+ k);
9. В чем разница инициализации массива символов:
/*1 вариант*/ char ch[]={'t', 'o','d','a', 'y'};
/*2 вариант*/ char ch[]="today";
Что будет в каждом варианте на экране после выполнения оператора:
printf("%s",ch);
10. Как изменится значение i в зависимости от значения x?
if ((x-5)>0)||++i)
11. В чем разница выполнения циклов в следующих фрагментах программ?
Какие значения принимают переменные s и j в обоих фрагментах?
Фрагмент 1. Фрагмент 2.
j = – 1; s = 0; j = – 1; s = 0;
for (i=0; i < 2; i++, j=i) for (i=0; i < 2; i++)
{ s+=j;} { s+=j; j=i;}
12. Выбрать вариант правильного ответа. Фрагмент программы:
i=– 1; do i++; while (с[i]<0);
Выполнение операторов приводит к следующему:
– определяется элемент массива, равный 0;
– определяется элемент массива, меньший 0;
– определяется элемент массива, не меньший 0;
– такая последовательность операторов считается недопустимой.
13. Выбрать вариант правильного ответа. Фрагмент программы:
i = 6; for ( ; ; ) if (i++ > 13) break;
– увеличивает i до 15 ;
– пример бесконечного цикла;
– правильный вариант отсутствует.
ЛАБОРАТОРНАЯ РАБОТА 2
Целью лабораторной работы 2 является освоение основных правил работы с функциями.
ЗАДАНИЕ
Ниже приведены 25 заданий вида.
Дано k = 5; n=4; m=5. Определить значение , используя две функции, каждая из которых вычисляет значение одного слагаемого.
Задания различаются видом 1-го и 2-го слагаемого и значениями переменных n и m. Требуется описать две функции: первая функция fun1() вычисляет первое слагаемое, вторая функция fun2() вычисляет второе слагаемое. Каждая функция имеет не более 3-х параметров: переменные n и m.
Описать главную функцию, в которой
q с клавиатуры ввести k : k определяется в соответствии с условием конкретного задания (например, в задании 1 k = 5). k - количество значений переменной ;
q в цикле ,
§ с клавиатуры ввести ; = ;
§ вычислить по формуле, приведенной в задании, используя функции fun1() и fun2() ;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.