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

Теоретичсекий зачет по операторам цикла

  1. Определение оператора цикла

  2. Виды циклов в Си

  3. Циклы с предусловием

  4. Цикл с постусловием

  1. Пример бесконечного и пустого циклов

Определить, что будет выведено на экран в результате выполнения программы:

# include <stdio.h>

# include <conio.h>

main()

{

int i,b=5,c=0;

clrscr();

for (i=0;i<=b;i++)

c=i;

printf("c= %d", c);

}

# include <stdio.h>

# include <conio.h>

main()

{

int i,b=6,c=0;

clrscr();

for (i=0;i<=b;i+=2)

c+=i;

printf("c= %d", c);

}

# include <stdio.h>

# include <conio.h>

main()

{

int b=2,c=0;

float i;

clrscr();

for (i=0;i<b;i+=0.5)

c=i;

printf("c= %d", c);

}

# include <stdio.h>

# include <conio.h>

main()

{

int i=-2,b=2,c=0;

clrscr();

while(i<b)

{i++;

C++;}

printf("c= %d", c);

}

# include <stdio.h>

# include <conio.h>

main()

{

int i=0,b=10,c=0;

clrscr();

while(i<=b)

{if (i%2 ==0) c++;}

printf("c= %d", c);

}

# include <stdio.h>

# include <conio.h>

main()

{

int i=0,b=5,c=0;

clrscr();

do

{ i++;

c+=2;

}

While (i<b);

printf("c= %d", c);

}

Найдите ошибки в программе:

# includ <stdio.h>

# includ <conio.h>

main()ж

{

int i=-2,b=2.5,c=0;

clrscr;

while i<b do

{i+2;

C++}

print("c= %с", c);

}

# include stdio.h

# include conio.h

main

{int i,b,c=0;

clrscr();

for (i=0,b=5,i<=b;i+2)

c=i

printf("c= %d", c);

}

}

include <stdio.h>

include <conio.h>

main()

{

int i=8.5,b=5,c=0;

do

{ If c<>0 i++ else

c+=2;

}

while i<b;

printf(‘c= %d’, &c);

}

Найдите бесконечный и пустой цикл

# include <stdio.h>

# include <conio.h>

main()

{

int i=0,b=2,c=0;

clrscr();

while(i<b)

{printf(“%d”,i);

c+=i;

}

printf("c= %d", c);

}

# include <stdio.h>

# include <conio.h>

main()

{

int b=2,c=0;

float i;

clrscr();

for (i=0;i<b;i+=5);

c=i;

printf("c= %d", c);

}

# include <stdio.h>

# include <conio.h>

main()

{

int i=10,b=5,c=0;

clrscr();

while (i>=b)

{ i++;

c+=2;

printf("c= %d", c);

}

}

Массивы.

Массив - это последовательная группа ячеек памяти, имеющих одинаковое имя и одинаковый тип. Индексы массивы в Си начинаются с 0.

Объявление массива:

int c[12];

Память может быть зарезервирована для нескольких массивов с помощью одного объявления

int b[100],x[15];

Пример использования массива

#include <stdio.h>

#include <conio.h>

main()

{

int a[10],nul,pr,sum,i;

for (i=0;i<10;i++)

scanf("%d",&a[i]);

for (i=0;i<10;i++)

printf("\n%d",a[i]);

nul = 0; pr = 1; sum = 0;

for (i=0;i<10;i++)

{

if(a[i]>0) sum += a[i];

if(a[i]==0) nul++;

if(a[i]<0) pr *= a[i];

}

printf("Сумма положительных = %d\n\

Количество нулевых = %d\n\

Произведение отрицательных = %d\n",\

sum,nul,pr);

getch();

}

Элементам массива можно присвоить начальные значения:

int n[5]={0};

int n[3]={32,25,0,-5,1};

Если размер массива не указан, в объявлении со списком инициализации, то количество элементов массива будет равно количеству элементов в списке начальных значений. Например

int n[]={1,2,3};

#include <stdio.h>

#include <conio.h>

#include <time.h>

#include <stdlib.h>

void main()

{

int mas[10];

int i,min,j,k;

randomize();

for(k=0;k<10;k++)

mas[k]=random(101);

min=mas[1];

for(i=0;i<10;i++)

if(mas[i]<min)min=mas[i];

for(j=0;j<10;j++)

printf("\n %d ",mas[j]);

printf("Минимальное число этого массива %d",min);

getch();}

Многомерные массивы

Описание двухмерного массива выглядит примерно так: int а[3] [5] , трехмерного ? int b[2] [3] [5]. Доступ к элементам массива производится обычным образом ? а [ i ] [<SPAN lang=EN-US style="mso-ansi-language: EN-US"> j ]  и a[i][j][k].</SPAN>

В памяти элементы многомерных массивов располагаются согласно правилу: быстрее всего меняется "старший" индекс. Для двухмерных массивов это означает, что в памяти они располагаются "по строкам". То есть элементы двухмерного массива а [ 3 ] [ 5 ] будут расположены в порядке

а[0][0],<SPAN lang=EN-US style="mso-ansi-language: EN-US"> a[0][l], a[0][2],</SPAN> а[0][3], а[0][4], а[1,0], а[1][1], а[1][2], ..., а[2][2], а[2][3], а[2][4].

  <SPAN lang=EN-US style="mso-ansi-language: EN-US">#include <stdio.h> void main(void) </SPAN> <SPAN lang=EN-US>{ int a[2][3]={{1,2,3},{4,5,6}},i,j;    </SPAN><SPAN lang=EN-US>int (*p) [3];     p</SPAN><SPAN lang=EN-US style="mso-ansi-language: EN-US">=a;     </SPAN><SPAN lang=EN-US>for (i=0;i<2,i++)       </SPAN>{<SPAN lang=EN-US style="mso-ansi-language: EN-US"> printf("\n")</SPAN> ;         <SPAN lang=EN-US style="mso-ansi-language: EN-US">for</SPAN> (j:=0;j<3;j++)<SPAN lang=EN-US style="mso-ansi-language: EN-US"> printf("%d=%d",*(*(p+i)+]),a[i][j]);       </SPAN><SPAN lang=EN-US>} }</SPAN>

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

int mfirst[5][5]={

{-2, 3, 5, 2,-8},

{ 3,-8, 3,10, 0},

{-5,15,8, 7,-7},

{-1, 8,10,13,-9},

{ 7, 8,13,18,-11}

};

int msecond[5][5];

int i,j;

clrscr();

for(i=0;i<5;i++)

for(j=0;j<5;j++)

if(i==j)msecond[i][j]=abs(mfirst[i][j]);

else msecond[i][j]=mfirst[i][j];

printf(" Исходная матрица Получившаяся матрица\n ");

for(i=0;i<5;i++)

{

printf("\n");

for(j=0;j<5;j++)

printf("%3d ",mfirst[i][j]);

printf(" ");

for(j=0;j<5;j++)

printf("%3d ",msecond[i][j]);

}

getch();

}

#include <stdio.h>

#include <conio.h>

void main()

{

int mfirst[5][5]={

{1,2,3,4,5},

{1,2,3,4,5},

{1,2,3,4,5},

{1,2,3,4,5},

{1,2,3,4,5}

};

int msecond[5][5];

int i,j,sum[5];

clrscr();

for(i=0;i<5;i++)

{

sum[i]=0;

for(j=0;j<5;j++)

msecond[i][j]=mfirst[i][j];

}

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

sum[i]+=mfirst[i][j];

}

for(i=0;i<5;i++)

msecond[i][i]=sum[i];

printf(" Исходная матрица Получившаяся матрица\n ");

for(i=0;i<5;i++)

{

printf("\n");

for(j=0;j<5;j++)

printf("%3d ",mfirst[i][j]);

printf(" ");

for(j=0;j<5;j++)

printf("%3d ",msecond[i][j]);

}

getch();

}

Домашнее задание 1 по теме "Массивы"

Домашнее задание 2 по теме "Массивы"

  1. Ввести массив из 10 целых чисел и вычислить сумму элементов этого массива

  2. ---------сумму положительных, произведение отрицательных и количество нулевых элементов массива

  3. --------сумму только четных чисел массива

  4. --------количество двухзначных

  5. --------сумму ненулевых элементов

  6. --------случайным образом выбрать элемент массива и вывести на экран его значение и его порядковый номер

  7. ----сумму первой и второй половины массива

  8. ---подсчитывать сумму до тех пор, пока не обнаружится ноль

  9. ---случайным образом выбрать элемент массива и выводить значения в строку до этого элемента

  10. ---подсчитывать сумму элементов с конца массива до элемента, номер которого выбран случайным образом

Введен массив masa[1..10] of integer;

  1. Найти максимальный элемент массива

  2. Найти сумму элементов массива, имеющий четный номер в массиве(вт0рой+четвертый+,,)

  3. Сформировать массивы B и C, в первый переписать только четные числа, во второй- нечетные

  4. “Сожмите” числовой массив, выбросив из него отрицательные числа

  5. Задано число. Определить на каком месте в масссиве находится это число

  6. Измените порядок чисел в массиве на обратный без использования втрого массива

  7. Определите, является ли массив упорядоченным

  8. Замените в массиве каждое число суммой предыдущих

  9. Отсортируйте массив по возрастанию и по убыванию!!!!

В массиве только 0, 1, и 2. Упорядочьте массив без использование алгоритма сортировки