Lakukan tugas rumah & ujian kamu dengan baik sekarang menggunakan Quizwiz!

Укажите функцию, которая является точкой входа в любую программу на языке С:

main ()

Укажите ключевые слова языка C:

printf struct

Укажите фрагменты кода, в которых осуществляется инициализация строки str:

char *str = "Hi ho"; char str[] = "Hi ho"; char str[] = {'H', 'i', ' ', 'h', 'o', '\0'};

Укажите объявление массива из указателей на символы:

char *t[7];

Укажите код, содержащий ошибку:

char v[9]; v = "a string";

Для возврата значения функции в точку вызова используется оператор:

return

Укажите управляющую последовательность, используемую для перевода на новую строку:

\n

Перечислите допустимые идентификаторы переменных в С:

_return Return

Укажите значения переменных после выполнения следующего фрагмента кода: int a = 10, b = 3, c = 5; a -= (b = 2 - c++) + 1;

a = 12, b = -3, c = 6

Укажите значения переменных после выполнения следующего фрагмента кода: int a = 10, b = 3, c = 5; a = --b % c++;

a = 2, b = 2, c = 6

Укажите значения переменных после выполнения следующего фрагмента кода: int a = 10, b = 3, c = 5; a += b += c *= b;

a = 28, b = 18, c = 15

Укажите значение переменных после выполнения следующего фрагмента кода: int a = 10, b = 3, c = 5; a = b++ == 3 ? --c : b - c;

a = 4, b = 4, c = 4

Даны числа в десятичной системе a = 5 и b = 7. Укажите значения a и b после вычисления следующего выражения: a ^= b ^= a ^= b.

a = 7, b = 5

Укажите код, которым можно заменить постфиксный инкремент в строке 1: int a = 1; int b = 2; int *array[] = {&a, &b}; int **pp = array; (*++pp)++; /* 1 */

array[1] += 1;

Если задан двумерный массив int b[3][2]; то обращаться к адресу нулевого элемента i-ой строки можно следующими способами:

b[i] *(b+i)

Укажите ключевые слова, используемые для задания целых типов данных:

char int

Укажите бесконечные циклы:

while (1) {...} for ( ; ; );

Укажите допустимые литералы:

"1" 0x1 01

Укажите верные записи режима открытия тестового файла для добавления информации в конец файла:

"a+" "a+t"

Строковой константой является

"flags"

Укажите правильное определение макроса-функции, который определяет наименьшее из двух значений:

#define Min(x, y) x < y ? x : y

Укажите правильное задание макроса, который создает именованную константу со значением 25:

#define X 25

Укажите верные случаи использования директивы #include:

#include <stdio.h> #include "mylibrary.h"

Укажите операции, которые могут быть как унарными, так и бинарными:

& +

Укажите символ, который является признаком конца строки при определении строкового типа данных:

'\0'

Какой из приведенных символов функция gets () заменяет символом конца строки?

'\n'

Укажите значение переменной c2 после выполнения следующего фрагмента кода: сhar c1[] = "abcd"; char *p = c1; char c2 = *p;

'a'

Укажите все символьные константы:

'a' '\t' '\0'

Если задан двумерный массив int b[3][2]; то обращаться к адресу элемента b[i][j] можно следующими способами:

*(b+i)+j b[i]+j

Укажите оператор языка C, который представляет собой оператор последовательного вычисления:

, (запятая)

Укажите, какое значение будет выведено на экран в результате выполнения следующего фрагмента кода: struct { int a:1; } value; value.a = 1; printf ("%d", value.a);

-1

Укажите значение переменной a, описанной как static int a;

0

Укажите результат выполнения следующего фрагмента кода: int x = 0; for (int i = 0; i < 4; ++i) { switch (i) { case 0: printf ("0"); case 1: printf ("1"); continue; case 2: printf ("2"); break; default: printf ("M"); break; } printf (".") }

0112.M.

Укажите строчки кода, в которых содержатся ошибки: #include <stdio.h> #define printf (s) puts (s) void test() { printf ("%s", "A"); /* 1 */ printf ("B"); /* 2 */ puts ("C"); /* 3 */ }

1

Укажите строки, в которых содержатся ошибки: /*1*/ const char *s1 = "foo" + "bar"; /*2*/ char s2[] = "foo" "bar"; /*3*/ static const char *s3 = "foo" "bar"; /*4*/ char *s4 = "foo" - "bar"; /*5*/ char s5 = "foo"[3];

1 4

Укажите строчки кода, в которых содержатся ошибки: struct A { char a[]; /*1*/ }; struct B { char a; char b[]; /*2*/ }; struct C { char a[]; /*3*/ char b; }; int main () { char a[]; /*4*/ return 0; } void test (char a[]) /*5*/ { }

1 4 3

Укажите значения **ptr и **(ptr + 1) в следующем случае: int (*ptr)[2], fort[2][2] = { {12}, {14, 16} }; ptr = fort;

12, 14

Укажите значения *ptr и *(ptr + 2) в следующем случае: int *ptr, forr[2][2] = { {12}, {14, 16} }; ptr = forr[0];

12, 14

Укажите значения **ptr и **(ptr + 1) в следующем случае: int (*ptr)[2], torf[2][2] = {12, 14, 16}; ptr = torf;

12, 16

Укажите значения *ptr и *(ptr + 2) в следующем случае: int *ptr, torf[2][2] = {12, 14, 16}; ptr = torf[0];

12, 16

Укажите строки, в которых содержатся ошибки: const int * * a; a = 0; / * 1 * / * a = 1; / * 2 * / * * a = 2; / * 3 * /

2 3

Укажите строки, в которых содержатся ошибки: void Test (const int **a) { / * 1 */ a = 0; / * 2 * / * a = 0; / * 3 * / * * a = 0; }

3

Укажите результат выполнения фрагмента кода: int a; double b = 2; a = 2 * (b * 5 / 2) / (5 / 2); printf ("%d", a);

5

Укажите значение переменной result после выполнения следующего фрагмента кода: int array[10]; int *a = array; int *b = &array[9]; int result = b - a;

9

Укажите верные утверждения относительно вектора A:

A + i является адресом элемента A[i] A является указателем на нулевой элемент вектора A *(A + j) является значением j-го элемента вектора A

Укажите верные утверждения относительно двумерного массива A:

A является указателем на нулевую строку массива A *(A + i) + j является адресом элемента A[i][j] A + i является указателем на i-ю строку массива A

Укажите правильные способы обращения к i-му элементу одномерного массива A:

A[i] *(A + i)

Укажите правильные способы обращения к элементу с индексами i, j двумерного массива A:

A[i][j] *(A[i] + j) * ( * (A + i) + j)

Укажите оператор, с помощью которого можно найти остаток от деления на 4:

d = a & 0x03;

Укажите класс памяти, который создает переменные, которые можно использовать в нескольких файлах:

extern

Укажите функции, которые позволяют получить текущее положение указателя файла:

fgetpos () ftell ()

Укажите функцию, которая считывает не более 20 элементов типа char из стандартного потока ввода в строку str, описанную как char str[20];

fgets (str, 20, stdin)

Укажите фрагмент кода, в котором осуществляется выделение памяти под 10 элементов типа float:

float * p = (float * ) calloc (10, sizeof (float));

Укажите объявление функции, возвращающей указатель на вещественное значение:

float *g ()

Укажите код, не содержащий ошибок:

float a; scanf ("%f", &a);

Укажите корректные объявления двумерного массива:

float a[][2] = { {1, 2}, {2, 4}, {5, 6} }; int c[2][3];

Укажите функцию, которая позволяет очистить все буферы, связанные с открытыми потоками:

flushall ()

Укажите код, вычисляющий значение 5!

for (int i = 1, n = 1; i <= 5; i++) n *= i;

Укажите функцию, которая осуществляет чтение массива array, состоящего из 10 элементов типа float, из поток f:

fread (array, sizeof (float), 10, f)

Укажите функции форматированного ввода/вывода из потока:

fscanf (), fprintf ();

Прототип функции имеет следующий вид: void function (int *array); Как правильно передать в эту функцию массив, описанный как int a[25];

function (a)

Укажите функцию, которая осуществляет запись массива array, состоящего из 10 элементов типа float, в поток f:

fwrite (array, sizeof (float), 10, f)

Укажите функции, которые возвращают код очередного символа из стандартного потока ввода:

getc (stdin) getchar () fgetc (stdin)

Укажите функцию, которую можно использовать для ввода строки text = "Be the best that you can bе":

gets (text);

Укажите ключевые слова, которые входят в конструкцию оператора условного перехода:

if else

Укажите оператор условного перехода, записанный в полной форме:

if (x < 3) y = 10 * x; else y = -6 * x;

Укажите объявление указателя на функцию:

int (*g) ();

Укажите объявление переменной a, являющейся указателем на константный указатель типа int:

int * const * a;

Укажите описание указателя-константы на переменную целого типа:

int * const p = 0x0012ff48;

Укажите корректные объявления одномерного массива:

int b[30]; int a[] ={2, 5};

Укажите фрагмент кода, в котором осуществляется выделение памяти размером 100 байт:

int * p = (int * ) malloc (100);

Укажите прототип функции, которая принимает два аргумента типа int и возвращает адрес значения наибольшего из этих аргументов:

int *function (int, int);

Укажите правильные варианты использования функции printf ():

int a = 8; printf ("%6d", a); int a = 8; printf ("%d", a);

Укажите код, в котором в каждой строке матрицы a меняются местами максимальный и первый элементы строки:

int a[3][3] = { {1, 3, 5}, {-2, 6, -7}, {3, 9, -2} }; int i, j, n = 3, max, j_max, r; for (i = 0; i < n; i++) { max = a[i][0]; j_max = 0; for (j = 0; j < n; j++) if (a[i][j] > max) { max = a[i][j]; j_max = j; } r = a[i][0]; a[i][j_max] = r; a[i][0] = max; }

Укажите код, в котором в каждом столбце матрицы меняются местами максимальный и минимальный элементы столбца:

int a[3][3] = { {1, 3, 5}, {-2, 6, -7}, {3, 9, -2} }; int i, j, n = 3, max, min, i_max, i_min, r; for (i = 0; i < n; i++) { max = a[0][i]; i_max = 0; min = a[0][i]; i_min = 0; for (j = 0; j < n; j++) { if (a[j][i] > max) { max = a[j][i]; i_max = j; } if (a[j][i] < min) { min = a[j][i]; i_min = j; } } r = a[i_max][i]; a[i_max][i] = a[i_min][i]; a[i_min][i] = r; }

Укажите код, в котором по исходной матрице a строится вектор b, состоящий из минимальных элементов столбцов матрицы a:

int a[3][3] = { {1, 3, 5}, {-2, 6, -7}, {3, 9, -2} }; int i, j, n = 3, min, b[3]; for (i = 0; i < n; i++) { min = a[0][i]; for (j = 0; j < n; j++) if (a[j][i] < min) min = a[j][i]; b[i] = min; }

Укажите код для нахождения суммы элементов, расположенных выше главной диагонали, которые при делении на 3 дают остаток 1:

int a[3][3] = { {1, 3, 5}, {-2, 6,- 7}, {3, 9, -2} }; int sum = 0, i, j, n = 3; for (i = 0; i < n; i++) for (j = i; j < n; j++) if (a[i][j] %3 == 1) sum += a[i][j];

Укажите код, в котором находится сумма положительных элементов на побочной диагонали матрицы:

int a[3][3] = { {1, 3, 5}, {2, 6, -7}, {3, 9, -2} }; int sum = 0, i, n = 3; for (i = 0; i < n; i++) if (a[i][n-i-1] > 0) sum += a[i][n-i-1];

Укажите код, в котором находится количество четных элементов вектора:

int a[5] = {1, 2, 4, 8, 7}, kol = 0, n = 5; for (int i = 0; i < n; i++) if (a[i] % 2 == 0) kol++;

Укажите код, в котором находится максимальный элемент вектора:

int a[5] = {4, 2, 6, 8, 7}, n = 5, max; max = a[0]; for (int i = 0; i < n; i++) if (a[i] > max) max = a[i];

Укажите прототип функции, которая принимает два аргумента - значение типа double и адрес переменной типа double и возвращает значение типа int:

int function (double, double *);

Укажите корректные конструкции:

int i = 0; while (i < 10) { i++; } while (i < 10); int i = 0; while (i < 10) { i++; } int i = 0; do { i++; } while (i < 10);

60 Укажите код, описывающий функцию нахождения минимального значения из двух элементов:

int min(int a, int b) { if (a < b) return a; else return b; }

Укажите фрагмент кода, в котором осуществляется перемещение текущей позиции указателя в файле, связанном с потоком f, на позицию off, начиная с начала файла:

int p = fseek (f, off, SEEK_SET);

Укажите прототип следующей функции: int sum (int a, int b) { return a + b; }

int sum (int, int);

Как в прототипе функции func () можно объявить параметр - одномерный целочисленный массив с именем x, чтобы следующий код скомпилировался? int main (void) { int i[10]; func (i); return 0; }

int x[10] int *x int x[]

Укажите объявления вещественных переменных:

long double b; float c; double h;

Укажите объявления переменных целого типа

long r; int i;

Укажите все функции, с помощью которых можно выделить память:

malloc () calloc ()

Укажите спецификатор типа, который использует функция printf () для вывода на экран значения указателя (адреса, который хранит данный указатель):

p

Укажите операции, которые допустимы для указателей p1 и p2, объявленных как int * p1, * p2;

p1 - p2 * p1 + p2 * p1 * * p2

Укажите функции, которые можно использовать для вывода строки text = "Let it snow!":

printf ("%s", text); puts (text);

Укажите классы памяти, которые создают переменные, существующие с момента их описания до конца блока, в котором они описаны:

register auto

Имеются следующие объявления: float rootbeer[10], value = 2.2; Укажите среди приведенных ниже операторов допустимые:

rootbeer[2] = value;

Укажите правильные варианты применения функции scanf() к массиву, описанному как double mint[10];

scanf ("%lf", &mint[2]);

Укажите описание короткого целого типа данных:

short int

Укажите правильные описания переменных

short int z=3; int y(1); float f(3.0); int z=3;

Укажите правильные обращения к элементу b переменной st, объявленной следующим образом: struct Structure { int a; float b; } *st;

st->b (*st).b

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

static

Укажите функции библиотеки <string.h>, которые используются для копирования строк:

strcpy () strncpy ()

Укажите вызов функции strtok () для выделения второго и последующих слов в строке s (слова в s разделены пробелами):

strtok (NULL, " ");

Имеются следующие объявления: float root[10], things[10][5], *pf, value = 2.2; Укажите среди приведенных ниже операторов допустимые:

things[4][4] = root[3]; pf = root;

Укажите ключевое слово, используемое для объявления синонимов существующих типов данных:

typedef

Укажите типы следующих констант: 0XAA, 1066, 2.0e30

unsigned int, int, double

Какой тип указателя может указывать на любой тип данных?

void *p;

Выберите правильные объявления функции, у которой аргументом является массив, описанный как int Array[10][20];

void func (int argument[][20]); void func (int **argument);

Укажите описание, которое содержит ошибку при передачи двумерного массива в функцию:

void print_m (int mas[][], int dim1, int dim2);

Укажите код, с помощью которого можно циклически сдвинуть вправо на 1 позицию элементы вектора

x = A[n-1]; for (i = n - 1; i > 0; i--) A[i] = A[i-1]; A[0] = x;

Объекты объявлен как int *y; int a[10]; укажите, какие инструкции использовать нельзя:

y = &a; a++;

Выберите все правильные утверждения для следующих типов: /*1*/ const int * /*2*/ int const * /*3*/ int * const

второй тип идентичен первому первый тип означает указатель на константу типа int

Укажите результат выполнения следующего фрагмента кода: int x = 0; switch (x) { case 1: printf ("Один"); case 0: printf ("Нуль"); case 2: printf ("Два"); }

НульДва

В ASCII символ с кодом 0x43 представляет собой букву С английского алфавита. Укажите, что будет выведено на экран в результате выполнения следующего фрагмента кода: printf ("Программа на \0x43\n");

Программа на

Оператор break используется для:

завершения работы цикла

Укажите строчки кода, в которых содержатся ошибки:<>/p #include <stdio.h> int main() { if (0) /* 1 */ if (1) /* 2 */ for( ; ; ) /* 3 */ while (1); /* 4 */ else printf ("foo"); /* 5 */ else printf ("bar"); /* 6 */ return 0; }

ошибок нет

Оператор goto используется для:

перехода на оператор, помеченный меткой

Оператор continue используется для:

перехода на следующую итерацию цикла

Укажите способы передачи параметров в функцию в языке С:

по значению

Какую парадигму программирования представляет язык программирования C?

процедурное программирование

Укажите все верные утверждения относительно следующих перечислений: enum en1 {ELEM1_1, ELEM1_2, ELEM1_4}; enum en2 {ELEM2_1, ELEM2_2, ELEM2_3}; enum {ELEM3_1, ELEM3_2, ELEM3_4} en3; typedef enum {ELEM4_1 = 1, ELEM4_2, ELEM4_4} en4;

различие между en1 и en2 заключается только в их названиях и названиях их элементов ELEM4_2 = ELEM1_4 = ELEM2_3 = ELEM3_4

Укажите прототип функции, позволяющей присоединить к строке s1 строку s2:

сhar * strcat (char *s1, const char *s2);


Set pelajaran terkait

ten principles of economics practice

View Set

Chapter 08: Managing Change and Innovation

View Set

AP Euro Chapter 16: Enlightenment

View Set

#9 - Chapter 39: Urinary Elimination

View Set

True or false on driving regulations

View Set