Хелпикс

Главная

Контакты

Случайная статья





Контрольная работа№. Задание 1



Контрольная работа№

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

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

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

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

Последние два номера зачетнои книжки

Варианты заданий контрольной работы

 
  Задание 1 Задание 2 Задание 3  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Задание 1

Дайте исчерпывающий ответ на вопрос. Приведите примеры.

Вариант Тема
Функции. Определение функции. Обращение к функции.
Функции. Формальные и фактические параметры. Правила соответствия.
Функции. Тип функции. Тип возвращаемого значения. Возврат значений из функций.
Функции. Прототип функции. Назначение. Описание.
Функции. Передача значений из функций через глобальные переменные.
Классы памяти. Назначение. Характеристика. Примеры использования.
Правила инициализации переменных разных классов.
Функции. Передача значений по адресу.
Функции. Передача одномерных массивов в функцию.
Функции. Рекурсивные функции. Понятие рекурсивной задачи.
Функции. Рекурсивные функции. Условия выполнения.
Структуры. Понятие. Назначение.
Структуры. Описание. Инициализация.
Структуры. Обращение к полям структуры. Уточненное имя.
Структуры. Обращение к полям структуры. Операция доступа к элементу структуры.
Структуры. Массивы структур. Опсание. Инициализация. Доступ к данным.
Объединения. Понятие. Назначение.
Объединения. Описание. Инициализация.
Структуры и объединения. Распределение в памяти.
Файлы. Понятие потока.
Файлы. Структура файла в Си.
Файлы. Стандартные потоки. Назначение.
Файлы. Последовательность действий при работе с файлами.
Файлы. Указатель на поток. Описание.
Файлы. Открытие файла. Функция fopen.
Файлы. Режимы открытия файлов.
Файлы. Виды файлов. Отличия.
Файлы. Чтение и запись символов. Функции putc, getc.
Файлы. Чтение и запись целых чисел. Функции putw, getw.
Файлы. Чтение и запись строк. Функции fputs, fgets.
Файлы. Запись и чтение блоков данных. Функции fwrite, fread.
Файлы. Форматный обмен с файлами. Функции fprintf, fscanf.

 

Задание 2

Найти и подробно пояснить результат выполнения программы

Вариант 1.

Что напечатает следующая программа?

#include <stdio.h>

int main()

{

int a [] = { 0, 1, 2, 3, 4 };

int i, *p;

for ( i=0; i<=4; i++ ) printf("%d\t", a[i]);

printf("\n");

for ( p=&a[0]; p<=&a[4]; p++ ) printf("%d\t", *p);

printf("\n");

return 0;

}

Вариант 2.

#include <stdio.h>

int main()

{

int a [] = { 0, 1, 2, 3, 4 };

int i, *p;

for ( p=&a[0], i=1; i<=5; i++ ) printf("%d\t", p[i]);

printf("\n");

for ( p=a, i=0; p+i<=a+4; p++, i++ ) printf("%d\t", *(p+i));

printf("\n");

return 0;

}

Вариант 3.

#include <stdio.h>

int main()

{

int a [] = { 0, 1, 2, 3, 4 };

int i, *p;

for ( p=a+4; p>=a; p-- ) printf("%d\t", *p);

printf("\n");

for ( p=a+4, i=0; i<=4; i++ ) printf("%d\t", p[-i]);

printf("\n");

return 0;

}

Вариант 4.

#include <stdio.h>

int main()

{

int a [] = { 0, 1, 2, 3, 4 };

int i, *p;

for ( p=a+4, i=0; i<=4; i++ ) printf("%d\t", p[-i]);

printf("\n");

for ( p=a+4; p>=a; p-- ) printf("%d\t", a[p-a]);

printf("\n");

return 0;

}

Вариант 5.

#include <stdio.h>

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

printf("%d\t\n",a);

printf("%d\t\n",*a);

printf("%d\t\n",p);

printf("%d\t\n",*p);

printf("%d\t\n",**p);

return 0;

}

Вариант 6.

#include <stdio.h>

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

printf("%d\t",pp);

printf("%d\t",*pp);

printf("%d\t\n",**pp);

return 0;

}

Вариант 7.

#include <stdio.h>

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

       pp++;

printf("%d\t",pp-p);

printf("%d\t",*pp-a);

printf("%d\t\n",**pp);

return 0;

}

 Вариант 8.

#include <stdio.h>

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

       *pp++;

printf("%d\t",pp-p);

printf("%d\t",*pp-a);

printf("%d\t\n",**pp);

return 0;

}

Вариант 9.

#include <stdio.h>

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

*++pp;

printf("%d\t",pp-p);

printf("%d\t",*pp-a);

printf("%d\t\n",**pp);

return 0;

}

Вариант 10.

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

++*pp;

printf("%d\t",pp-p);

printf("%d\t",*pp-a);

printf("%d\t\n",**pp);

return 0;

}

 Вариант 11.

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

pp=p;

printf("%d\t",pp-p);

printf("%d\t",*pp-a);

printf("%d\t\n",**pp);

return 0;

}

 

Вариант 12.

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

       **pp++;

printf("%d\t",pp-p);

printf("%d\t",*pp-a);

printf("%d\t\n",**pp);

return 0;

}

 Вариант 13.

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

       *++*pp;

printf("%d\t",pp-p);

printf("%d\t",*pp-a);

printf("%d\t\n",**pp);

return 0;

}

 Вариант 14.

int main()

{int a[] = { 0,1,2,3,4 };

int *p[] = { a,a+1,a+2,a+3,a+4 };

int **pp=p;

 

       ++**pp;

printf("%d\t",pp+p);

printf("%d\t",*pp-a);

printf("%d\t\n",**pp);

return 0;

}

Вариант 15.

#include <stdio.h>

 

int main()

{

int a[3][3] = {

{ 1,2,3 },

{ 4,5,6 },

{ 7,8,9 }

};

int *pa[3] = {

a[0],a[1],a[2]

};

int *p = a[0];

 

 

int i;

 

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

printf("%d\t", a[i][2-i]);

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

printf("%d\t\n",*(*(a+i)+i));

}

 

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

printf("%d\t",*pa[i]);

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

}

 

return 0;

}

Вариант 16.

#include <stdio.h>

 

int main()

{

int a[3][3] = {

{ 111,7,3 },

{ 4,15,16 },

{ 7,81,9 }

};

int *pa[3] = {

a[0],a[1],a[2]

};

int *p = a[0];

 

 

int i;

 

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

printf("%d\t", a[i][2-i]);

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

printf("%d\t\n",*(*(a+i)+i));

}

 

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

printf("%d\t",*pa[i]);

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

}

 

return 0;

}

Вариант 17.

#include <stdio.h>

int main()

{

char *c[] = {

"ENTER",

"NEW",

"POINT",

"FIRST"

};

char **cp[] = { c+3, c+2, c+1, c };

char ***cpp = cp;

printf("%s", **++cpp);

  return 0;

}

 

Вариант 18.

#include <stdio.h>

int main()

{

char *c[] = {

"ENTER",

"NEW",

"POINT",

"FIRST"

};

char **cp[] = { c+3, c+2, c+1, c };

char ***cpp = cp;

printf("%s ", *--*++cpp+3);

  return 0;

}

Вариант 19.

#include <stdio.h>

int main()

{

char *c[] = {

"ENTER",

"NEW",

"POINT",

"FIRST"

};

char **cp[] = { c+3, c+2, c+1, c };

char ***cpp = cp;

printf("%s", *cpp[-2]+3);

return 0;

}

Вариант 20.

#include <stdio.h>

int main()

{

char *c[] = {

"ENTER",

"NEW",

"POINT",

"FIRST"

};

char **cp[] = { c+3, c+2, c+1, c };

char ***cpp = cp;

printf("%s\n", cpp[-1][-1]+1);

return 0;

}

 

 

Вариант 21.

#include <stdio.h>void main() { int x; x = - 3 + 4 * 5 - 6; printf("%d\n",x);   x = 3 + 4 % 5 - 6; printf("%d\n",x);    x = - 3 * 4 % - 6 / 5; printf("%d\n",x);   x = ( 7 + 6 ) % 5 / 2; printf("%d\n",x);

}

Вариант 22.

#include <stdio.h>

void main()

{

int x=2,y,z;

 

x *= 3 + 2; printf("%d\n",x);    

x *= y = z = 4; printf("%d\n",x); 

x = y == z; printf("%d\n",x);    

x == ( y = z ); printf("%d\n",x);

}

Вариант 23.

#include <stdio.h>void main() { int x,y,z; x = 2; y = 1; z = 0; x = x && y || z; printf("%d\n",x);           printf("%d\n",(x || y && z));                }

Вариант 24.

#include <stdio.h>void main() { int x,y,z; x = 03; y = 02; z = 01;   printf("int = %d\n",( x | y & z ));   printf("int = %d\n",( x | y & ~ z ));   printf("int = %d\n",( x ^ y & ~ z ));   printf("int = %d\n",( x & y && z )); x = 1; y = -1;   printf("int = %d\n",( ! x | x ));   printf("int = %d\n",( ~ x | x ));  printf("int = %d\n",( x ^ x ));     x <<= 3; printf("int = %d\n",x);   y <<= 3; printf("int = %d\n",y);   y >>= 3; printf("int = %d\n",y);  

}

Вариант 25.

#include <stdio.h>void main() { int x,y,z; x = y = 1; z = x ++ - 1; printf("%d\n",x); printf("%d\n",z);    z+=-x++ + ++y; printf("%d\n",x); printf("%d\n",z);    z=x/++x; printf("%d\n",z);             

}

Вариант 26.

#include <stdio.h>void main() { int x=1, y=1, z=1; x = 3; y = z = 4; printf("int = %d\n",( ( z >= y >= x )? 1 : 0 )); printf("int = %d\n",( z >= y && y >=x ));       

}

 

Вариант 27.

 

#include <stdio.h>void main() { int x, y, z; x = y = z = 1; ++x && ++y && ++z; printf("x=%d\ty=%d\tz=%d\t\n", x, y, z); x = y = z = -1; ++x && ++y || ++z; printf("x=%d\ty=%d\tz=%d\t\n", x, y, z);}

Вариант 28.

#include <stdio.h>void main() { int x, y, z; x = y = z = -1; ++x || ++y && ++z; printf("x=%d\ty=%d\tz=%d\t\n", x, y, z); x = y = z = -1; ++x && ++y && ++z; printf("x=%d\ty=%d\tz=%d\t\n", x, y, z);

}

Вариант 29.

#include <stdio.h>void main() { int x, y, z; x = y = z = 1; ++x || y && --z; printf("x=%d\ty=%d\tz=%d\t\n", x, y, z);      x = y = z = 1; x && ++y || ++z; printf("x=%d\ty=%d\tz=%d\t\n", x, y, z); }

Вариант 30.

#include <stdio.h> int integer = 5;char character = '5';char *string = "5"; main() { printf("string = %d\n", string); printf("character = %d\n", character); printf("integer = %d\n", integer); printf("string = %s\n", string); }

 

Вариант 31.

#include <stdio.h> int integer = 5;char character = '5';char *string = "5"; main() {    printf("character = %c \n", character); printf("(integer=53) = % c \n", integer=53); printf("x = % d\n",( '5'>5 ));     

}

Вариант 32.

 

#include <stdio.h> int integer = 5;char character = '5';char *string = "5"; main() { printf("character = %d\n", ++character); printf("integer = %d\n", --integer); printf("string = %s\n", string); printf("character = %c \n", character); }

Задание 3

3.1 Разработать блок-схему алгоритма программы в соответствии с ГОСТ 19.701-90 «Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения»

3.2 Разработать программу на языке программирования Си.

3.3 Разработать 2-3 теста (для тестирования разработанной программы).

3.4 Выполнить тестирование разработанной программы.

 

Вариант 1. Разработать программу перестановки элементов матрицы блоками. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размером n×n:

а) крест-накрест;

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

 

Вариант 2.Разработать программу «Наибольший элемент». Дана действительная квадратная матрица порядка N (N – нечетное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

 

Вариант 3. Разработать проект «Методы сортировки». Проект позволяет сортировать заданный линейный массив целых чисел различными методами, например, методом линейной сортировки, пузырька, Шелла и др. Предусмотреть использование не менее трех методов.

 

Вариант 4.Разработать программу «Седловые точки». Для заданной матрицы размером (N×M) определить индексы всех ее седловых точек. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце.

 

Вариант 5. Составить программу «Магический квадрат». Программа проверяет, образуют ли элементы двумерного массива магический квадрат. В магическом квадрате – суммы чисел по всем вертикалям, всем горизонталям и двум диагоналям одинаковы.

 

Вариант 6. Разработать программу «Перестановка». Дана вещественная матрица размером (N×M). Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (или один из них) оказался в левом верхнем углу.

 

Вариант 7. Разработать проект «Арифметические операции над матрицами». Программа должна обеспечивать выполнение операций сложения, вычитания и умножения над матрицами целых чисел. Выбор выполняемой операции осуществляет пользователь.

 

Вариант 8. Разработать проект «Сортировка строкового массива», Программа должна сортировать строковый массив (например, содержащий компьютерные термины) по алфавиту. Обеспечить сортировку внутри группы строк, начинающихся на одну и ту же букву (например, строка, содержащая слово ПРИНТЕР должна предшествовать строке, содержащей слово ПРОГРАММА).

 

Вариант 9.Разработать программу «Удаление цепочки четных элементов массива». Из массива удалить самую длинную цепочку четных элементов.

Пример: из массива A: 4 1 4 2 1 2 4 6 должен получиться массив A: 4 1 4 2 1 (самая длинная цепочка четных чисел включает элементы с 6 по 8: 2 4 6).

 

Вариант 10.Разработать программу «Удаление повторяющихся элементов». Из массива A удалить те элементы, которые встречаются и в массиве A и в массиве B по крайней мере по 2 раза.

Пример:

массив A: 3 3 4 5 2 3 5 9;

массив B: 1 2 3 4 5 2 5.

По 2 раза в обоих массивах встречается только элемент, равный 5.

Массив A после удаления примет вид: A: 3 3 4 2 3 9.

 

Вариант 11. Разработать программу «Поиск». Программа должна осуществлять поиск заданных слов в текстовом файле. Слова последовательно вводятся с клавиатуры. Для каждого слова должно определяться количество вхождений и номера строк текста. Если указанное слово в файле отсутствует, то программа должна выводить соответствующее сообщение.

 

Вариант 12. Разработать программу «Сортировка по алфавиту». Дан текстовый файл. Переписать в алфавитном порядке все слова из заданного файла, имеющие длину n, в другой файл.

 

Вариант 13. Разработать программу «Подсчет слов». Дан файл, содержащий текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву, и выдать эти буквы с указанием соответствующего количества слов.

 

Вариант 14. Разработать программу «Список слов». Файл содержит текст на русском языке. Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов.

 

Вариант 15. Разработать программу «Общие слова». Дан файл, содержащий текст на русском языке. Найти слова, встречающиеся в каждом предложении, или сообщить, что таких слов нет.

 

Вариант 16. Разработать программу «Удаление повторяющихся слов». Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов записаны подряд. Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение.

Вариант 17.Написать программу «Шифр Цезаря». Программа позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря» сообщение, написанное на русском языке. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу.

 

Вариант 18.  Написать программу «Шифр перестановки». Программа позволяет зашифровывать и расшифровывать сообщение с помощью «шифра перестановки». Этот шифр меняет местами две соседние буквы.

 

Вариант 19.

Составить программу «Идентификаторы». Программа должна определять наличие неописанных идентификаторов в тексте программы на Паскале. Текст программы хранится в файле на диске.

 

Вариант 20. Разработать приложение «Тестирование». Программа должна обеспечивать проведение тестирования по одному из разделов курса «Программирование на языке Турбо Паскаль». Выбор правильного ответа осуществляется при помощи переключателя. За каждый правильный ответ начисляется один балл. В конце теста выводятся его результаты. Необходимо предусмотреть тренировочный режим работы, когда возможен вывод ответов на представленные вопросы. Доступ к тренировочному режиму работы предоставляется по паролю.

 

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

· ввод и корректировку информации о новых книгах;

· поиск информации о книгах определенного автора;

· поиск информации о книгах определенного жанра.

 

Вариант 22. Создать программу ведения базы данных личной видеотеки. Программа должна обеспечивать ввод и корректировку информации о новых дисках (своих и взятых на время у друзей), а также выдавать информацию по запросам:

·  имеется ли в наличии указанный диск, и если нет, то кому он отдан;

·  имеются ли диски, взятые у друзей и которые надо отдать на этой неделе;

· выдать список дисков с видеофильмами заданного жанра.

 

Вариант 23.

Разработать приложение «Телефонный справочник».

 

Вариант 24. Разработать приложение «Записная книжка». Программа должна обеспечивать ввод и корректировку информации, а по запросу поиск следующей информации:

·  номер телефона указанного лица и ФИО по номеру телефона;

· почтовый адрес и адрес электронной почты указанного лица;

· ФИО лиц, чьи даты рождения приходятся на указанный месяц (неделю).

 

Вариант 25. Разработать приложение «Склад». Программа должна обеспечивать ввод и корректировку информации и выдавать информацию по следующим запросам:

·  имеется ли в наличии указанный товар и в каком количестве;

· кому, на какую сумму и какой товар был отпущен в заданный день;

· какова суммарная стоимость товаров на складе в отчетный день.

 

Вариант 26. Разработать программу, моделирующую игру “Кости”. Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 (“бросает кубик”, на гранях которого цифры от 1 до 6). Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет места ни одна из описанных ситуаций. В начальный момент у играющего 100 очков. В программе должно присутствовать графическое изображение поверхности кубика при каждом ходе игрока.

 

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

 

Вариант 28.Разработать программу «Результаты сессии». Программа выводит на экран результаты экзаменационной сессии группы в виде:

а) гистограммы;

б) круговой диаграммы;

в) графика.

Выбор формы представления результатов сессии производится пользователем.

 

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

 

Вариант 30. Написать программу, позволяющую выполнять арифметические действия над двоичными, восьмеричными или шестнадцатеричными числами. Систему счисления выбирает пользователь.

 

Вариант 31. Написать программу, реализующую простой калькулятор.

Вариант 32. Написать программу перевода чисел из одной системы счисления в другую. Систему счисления (десятичная, двоичная, восьмеричная или шестнадцатеричная) для задания и перевода числа выбирает пользователь.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.