1. Назовите директиву препроцессора для определения констант

A) #include B) #define C) typedef D) union E) extern

2. Выберите спецификатор преобразования для вывода значений с плавающей точкой

A) %f B) %d C) %x D) %o E) %u

3. Выберите правильный вариант фрагмента для решения задачи

A) ;

B) ;

C) ;

D) ;

E) ;

4. Выберите правильный вариант фрагмента для решения задачи .

A) if (x>-2 & x<5) f=5pow(x,2)+6 else if (x>=5) f=pow(x,3)+7;

B) if (x>-2 && x<5) f=5*pow(x,2)+6; else if (x>=5) f=pow(x,3)+7;

C) if (x>-2 || x<5) f=5*sqr(x)+6; else if (x>=5) f=pow(3,x)+7;

D) if (x>-2 ! x<5) f=5*pow(x,2)+6 else if (x>=5) f=pow(3,x)+7;

E) if (x>-2) && (x<5) f=5*sqr(x)+6; else if (x>=5) f=pow(x,3)+7;

5. Выберите правильное описание условного оператора для решения задачи: даны x и y, если отрицательно одно из них, то числа увеличить на 0,5

A) if ( x<0 & y<0) {x+=0.5; y+=0.5;}

B) if ( x<0 || y<0) {x+=0.5; y+=0.5;}

C) if ( x<0 && y<0) {x+=0.5; y+=0.5;}

D) if ( x<0 ! y<0) {x+=0.5; y+=0.5;}

E) if ( x<0 || y<0) x+=0.5; y+=0.5;

6. Выберите правильное описание цикла WHILE для решения задачи:

A) k=p=f=1;

while (k<=n)

{ f*=k;

p*=(1+sin(k*x)/f);

k--;}

B) k=p=f=1;

while k<=n

{ f*=k;

p*=(1+sin(k*x)/f);

k++;}

C) k=p=f=1;

while (k<=n)

{ f*=k;

p*=(1+sin(k*x)/f);

k++;}

D) k=p=f=1;

while (k<=n)

f*=k;

p*=(1+sin(k*x)/f);

k++;

E) k=p=f=1;

while (k<=n)

{ f*=k;

p*=(1+sin(k*x)/f*k);}

k++;

7. Какой из вариантов использования оператора DO WHILE является правильным?

НЕ нашли? Не то? Что вы ищете?

A) k=15; x=1;

do

{ x*=5;

printf(“%d”,x);}

while (k-->=7);

B) k=15; x=1;

do

{ x*=5;

printf(“%d”,x);}

while (k--<=7);

C) k=15; x=1;

do

{ x*=5;

printf(“%d”,x);}

while (k>=7);

D) k=15; x=1;

do

x*=5;

printf(“%d”,x);

while (k-->=7);

E) k=15; x=1;

do

{ x*=5;

printf(“%d”,x);}

while (k++>7);

8. Что будет напечатано в результате выполнения следующей программы

main()

{int i=5,p=1;

while (--i>1) p*=i;

printf("i=%d, p=%d\n", i, p);}

A) i=1, p=120 B) i=1, p=24 C) i=0, p=24 D) i=24, p=1 E) i=0, p=120

9. Что будет напечатано в результате выполнения следующей программы

main()

{int a=20,b=3,c=4,x, y,z;

x=a++;

y=!(++b<c);

z=x--+y;

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

A) x=20, y=1, z=22 B) x=19, y=1, z=21 C) x=19, y=0, z=20

D) x=19, y=1, z=20 E) x=20, y=0, z=20

10. Что будет напечатано программой с использованием указателей массивов (где 65410 и 65426 - начальные адреса массивов a[2] и b[2])

main()

{int i, a[2],*pa;

short b[2],*pb;

pa=a; pb=b;

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

printf("указатели+%d: %u %u\n",i, pa+i, pb+i);}

A) указатели+0: 65410 65426

указатели+1: 65412 65434

B) указатели+0: 65410 65426

указатели+1: 65412 65428

C) указатели+0: 65410 65426

указатели+1: 65411 65428

D) указатели+0: 65410 65426

указатели+1: 65411 65427

E) указатели+0: 65410 65426

указатели+1: 65414 65430

11. Выберите правильный фрагмент программы для решения следующей задачи: даны целые числа x1, x2, x3, x4; вычислить x1x4+x2x3+x3x2+x4x1

A) p=x; s=0;

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

s+=*(p+i)**(p+3);

B) p=x; s=1;

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

s*=*(p+i)**(p+3-i);

C) p=x; s=0;

for(i=1;i<=4;i++)

s+=*(p+i)**(p+3-i);

D) p=x; s=0;

for(i=1;i<=4;i++)

s+=*(p+i)**(p+3+i);

E) p=x; s=0;

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

s+=*(p+i)**(p+3-i);

12. Выберите правильный фрагмент программы для решения следующей задачи: даны целые числа a1,…,a10; вычислить min(a1+a6, a2+a7, a3+a8, a4+a9, a5+a10)

A) px=x; min=*px+*(px+5);

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

if (*(px+i)+*(px+5+i)<min) min=*(px+i)+*(px+5+i);

B) px=*x; min=*px+*(px+5);

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

if (*(px+i)+*(px+5+i)<min) min=*(px+i)+*(px+5+i);

C) px=x; min=*px+*(px+5);

for(i=1;i<10;i+=2)

if (*(px+i)+*(px+5+i)<min) min=*(px+i)+*(px+5+i);

D) px=x; min=*px+*(px+5);

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

if (*(px+i)+*(px+5-i)<min) min=*(px+i)+*(px+5-i);

E) px=x; min=*px+*(px+5);

for(i=1;i<5;i+=2)

if (*(px+i)+*(px+5-i)<min) min=*(px+i)+*(px+5-i);

13. Что будет напечатано следующей программой

int a[10]={2,4,5,7,8,6,3,12,19,9};

main()

{ int i, max=2;

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

if (a[i]>max) max=a[i];

printf(“%d”, max); }

A) 12 B) 19 C) 9 D) 8 E) 6

14. Что будет напечатано в результате выполнения следующей программы

main()

{int a[8]={5,-3,4,7,6,-2,9,12},i, k,s;

i=k=s=0;

while (a[i]%3!=0)

{s+=a[i]; k++; i++; }

printf("s=%d, k=%d",s, k); }

A) 14, 4 B) s=14, k=4 C) 5, 1 D) s=24, k=4 E)s=5,k=1

15. Укажите тип данных для описания данных целого типа без знака

A) long B) short C) char D) unsigned int E) double

16. Выберите правильный фрагмент ввода строковых данных str1, str2

A) scanf(“%s%s“, str1, str2); B) scanf(“%s%c“, &str1, &str2);

C) scanf(“%s%c“, str1, str2); D) scanf(“%c%c“, str1, str2);

E) scanf(“%u%u“, str1, str2);

17. Укажите из приведенных ниже операций операцию с наименьшим приоритетом

A) && B) !! C) <= D) = = E) !

18. Выберите операцию доступа к элементу структуры при помощи указателя

A) >> B) -> C) << D) & E) *

19. Что будет напечатано следующей программой

main()

{ static int a[4][4]={{2,3,4,5};

{7,5,9,8};

{1,0,6,7};

{-2,4,5,3}; };

int i, k=0;

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

if (a[i][3-i]>0) k++;

printf(“%d”, k); }

A) 4 B) 2 C) 1 D) 3 E) 0

20. Выберите правильный результат выполнения следующей программы

main()

{ static char L[ ] = “Сведения о результатах сессии”;

puts(L);

flen(L,8);

puts(L); }

flen(char *stroka, int size)

{ if (strlen(stroka)>size )

*(stroka+size) = ‘\o’; }

A) Сведения о результатах сессии

Сведения

B) Сведения о результатах сессии

Сведения о

C) Сведения о результатах сессии

Сведения о рез

D) Сведения о результатах сессии

Сведения о результ

E) Сведения о результатах сессии

Сведения о результатах

21. Выберите правильный фрагмент программы для вывода сведений о студентах специальности АСУ. (Сведения о студентах хранятся в массиве структур)

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

if (strcmp(mas[i].gruppa, “АСУ”)!=0)

printf(“%s %d”,mas[i].fam, mas[i].god_r);

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

if (strcmp(mas[i].gruppa, “АСУ”)==0)

printf(“%s %d”,mas[i].fam, mas[i].god_r);

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

if strcmp(mas[i].gruppa, “АСУ”)=0

printf(“%s %d”,mas[i].fam, mas[i].god_r);

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

if (strcpy(mas[i].gruppa, “АСУ”)==0)

printf(“%d %s”,mas[i].fam, mas[i].god_r);

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

if (strcpy(mas[i].gruppa, “АСУ”)=0)

printf(“%s %d”,mas[i].fam, mas[i].god_r);

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

A) f=fopen("f1.txt", "w+");

fputc(&s, f);

B) f=fopen("f1.txt", "r");

fgets(s,10,f);

C) f=fopen("f1.txt", "w+");

fputs(s, f);

D) f=fopen("f1.txt", "w+");

fputc(*s, f);

E) f=fopen("f1.txt", "r+");

fputs(s, f);

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

A) f=fopen("f1.txt", "r");

fscanf(f,"%c",s);

printf("%c\n",s);

B) f=fopen("f1.txt", "r");

fscanf(f,"%s",s);

printf("%s\n",s);

C) f=fopen("f1.txt", "r");

scanf(f,"%c",s);

printf("%c\n",s);

D) f=fopen("f1.txt", "w");

fprintf(f,"%s",s);

printf("%s\n",s);

E) f=fopen("f1.txt", "r");

scanf(f,"%s",&s);

fprintf("%s\n",s);

24. Функция feof

A) открывает файл и связывает его с потоком

B) измеряет длину файла

C) закрывает все открытые файлы

D) закрывает поток

E) выполняет проверку на конец потока

25. Укажите операцию увеличения префиксной формы

A) +++I B) i++ C) i-- D) ++I E) &i

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

1 – B

10 – B

19 – B

2 – A

11 – E

20 – A

3 – E

12 – A

21 – B

4 – B

13 – B

22 – C

5 – B

14 – E

23 – B

6 – C

15 – D

24 – E

7 – A

16 – A

25 - D

8 – B

17 – B

9 – B

18 – B

Перечень экзаменационных вопросов по пройденному курсу

1.  Пять основных типов данных. Локальные, формальные и глобальные параметры. Привести фрагмент программы.

2.  Операторы препроцессора # и ##. Общий вид программы на языке С. (Структура программы на языке С).

3.  Арифметика в С. Операции равенства и отношения.

4.  Директивы #include и #define.

5.  Структура выбора if, if-else и switch. Привести фрагмент программы.

6.  Операторы сравнения и логические операторы. Привести пример.

7.  Варианты цикла for. Бесконечный и пустой цикл for. Привести пример.

8.  Отличие операторов while, do-while и for. Привести фрагменты программы.

9.  Операторы перехода return, goto, break и continue. Привести фрагменты программы.

10.  Ввод и вывод одномерного массива.

11.  Ввод и вывод двухмерного массива.

12.  Три способа инициализаций элементов массива.

13.  Сортировка массива.

14.  Поиск в массивах.

15.  Действия над массивами.

16.  Способы вызова функций: вызов по значению и вызов по ссылке.

17.  Определение функций. Аргументы функции.

18.  Передача массива в функцию.

19.  Возврат управления из функции. Функции типа Void.

20.  Спецификаторы класса памяти.

21.  Автоматический и статический период хранения. Их отличие.

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

23.  Выражения и арифметические операции с указателями.

24.  Указатели на функции.

25.  Указатели и массивы. Связь между указателями и массивами.

26.  Сведения о строках и символах. Функции преобразования строк.

27.  Функции ввода-вывода, предназначенных для операций с символьными и строковыми данными.

28.  Операции над строками. Привести пример.

29.  Функции сравнения строк strcmp и strncmp. Привести пример.

30.  Приведите несколько функции поиска строк, например, strchr, strstr, strprbk и др.

31.  Описания структур. Инициализация структур. Привести пример.

32.  Массивы структур.

33.  Использование указателей на структуры.

34.  Использование структур с функциями.

35.  Структуры, ссылающиеся на себя.

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

37.  Связанные списки. Стеки. Очереди. Деревья.

38.  Структура типа FILE.

39.  Создание, открытие и закрытие файла. Привести пример.

40.  Запись и чтение символа в файл. Применение функций fopen(), fclose().

41.  Удаление файла. Операции ввода-вывода с файлами fprintf и fscanf.

42.  Графические контексты и графические объекты.

43.  Управление цветом. Управление шрифтами.

44.  Рисование линий, прямоугольников и овалов.

45.  Рисование дуг, многоугольников и ломаных линий.

46.  Инициализация графического режима.

47.  Суперклассы и субклассы.

48.  Связь между объектами суперкласса и объектами субкласса.

49.  Разработка программного обеспечения с использованием наследования

50.  Абстрактные суперклассы и конкретные классы.

Глоссарий

·  ASCII – стандартная таблица кодов символов.

·  Алгоритм – последовательность элементарных действий, ведущих к выполнению поставленной задачи.

·  Блок-схема – графическое представление алгоритма.

·  Директива – команда препроцессора.

·  Запись – тип данных, для которого характерно наличие нескольких полей-переменных.

·  Компилятор – программа, преобразующая исходный текст программы в машинные коды.

·  Массив – совокупность однотипных данных.

·  Модуль – автономная, независимая библиотека подпрограмм.

·  Объект – программная единица, содержащая как переменные, так и методы их обработки.

·  Объектно-ориентированное программирование (ООП) – технология программирования, основанная на использовании объектов.

·  Операнд – объект, над которым выполняется действие.

·  Оператор – команда языка, выполняющая некоторые действия над операндом.

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

·  Программа – набор команд, реализующих заданный алгоритм на языке понятном компьютеру.

·  Процедура – подпрограмма, выполняющая некоторое действие, и не возвращающая значение в основную программу.

·  Рекурсия – метод программирования, при котором осуществляется вызов программы из самой этой подпрограммы.

·  Транслятор – программа, осуществляющая построчное выполнение исходного текста программы.

·  Указатель – переменная, содержащая адрес переменной.

·  Файл – именованная часть памяти.

·  Функция – подпрограмма, возвращающая значение в основную программу.

·  Цикл – метод программирования, используемый для выполнения ряда сходных по назначению операций.

·  Язык программирования – набор правил и слов, необходимых для составления программы.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27