Главная /
Программирование на языке C в Microsoft Visual Studio 2010
Программирование на языке C в Microsoft Visual Studio 2010 - ответы на тесты Интуит
Курс посвящен программированию на языке С в инструментальной среде Microsoft Visual Studio 2010.
Список вопросов:
- # Какие переменные являются фактическими параметрами функции sq()? int sq(int a, int x) { int i, res = 1; for (i=0; i<x; i++) res*= a; return res; } int main(void) { int n=4, b = 3, p; p = sq(n,b); printf("%d^%d = %d\n", n, b, p); return 0; }
- # Какие переменные являются формальными параметрами функции sq()? int sq(int a, int x) { int i, res = 1; for (i=0; i<x; i++) res*= a; return res; } int main(void) { int n=4, b = 3, p; p = sq(n,b); printf("%d^%d = %d\n", n, b, p); return 0; }
- # Какие переменные являются формальными параметрами функции sum()? int sum(int a, int b) { return a+b; } int main(void) { int n=4, m=3, s; s = sum(n,m); printf("%d + %d = %d\n", n, m, s); return 0; }
- # Что обозначает тот факт, что формальные параметры функции локализованы в ней?
- # Какие утверждения являются верными?
- # Какое утверждение является неверным?
- # Какой фрагмент кода содержит ошибку?
- # Какой фрагмент кода не содержит ошибку?
- # Какая ошибка допущена в приведенном фрагменте кода? double max(double a, b) { if (a>b) return a; return b; } int main(void) { double x=-5.00, y=5.12; printf("max = %.2f\n", max(x,y)); return 0; }
- # Функция is_in определяет, входит ли символ c в строку s: int is_in(char *s, char c) (1) { while(*s) (2) if(*s==c) return 1; (3) else s++; (4) return 0; (5) } Что произойдет при вызове функции is_in("Lection 10", 'i')?
- # Функция is_in определяет, входит ли символ c в строку s: int is_in(char *s, char c) (1) { while(*s) (2) if(*s==c) return 1; (3) else s++; (4) return 0; (5) } При выполнении какой строки произойдет выход из фукнции при ее вызове is_in("Lection 10", 'i')?
- # Функция is_in определяет, входит ли символ c в строку s: int is_in(char *s, char c) (1) { while(*s) (2) if(*s==c) return 1; (3) else s++; (4) return 0; (5) } Чему будет равно значение переменной i в результате вызова int i = is_in("Lection 10", 'a')?
- # В каких программах используются прототипы функций?
- # В какой строке объявлен прототип функции search()? #include <stdio.h> #include <string.h> int search(char *p[], char *name); (1) char *names[] = { "Сергей", "Юрий", "Ольга", "Игорь", NULL}; int main(void) { if(search(names, "Ольга") != -1) (2) printf("Ольга есть в списке.\n"); return 0; } int search(char *p[], char *name) (3) { int t; for(t=0; p[t]; ++t) if(!strcmp(p[t], name)) return t; return -1; }
- # В каких программах не используются прототипы функций?
- # Чему будет равно значение переменной x в результате выполнения приведенной программы? #include <stdio.h> #include <stdarg.h> int average(int first, ... ); int main( void ) { int x = average(2, 3, 4, -1); return 0; } int average( int first, ... ) { int count = 0, sum = 0, i = first; va_list marker; va_start(marker, first); while( i != -1 ) { sum += i; count++; i = va_arg(marker, int); } va_end(marker); return( sum ? (sum / count) : 0 ); }
- # Функция average вычисляет среднее арифметическое заданных аргументов: #include <stdio.h> #include <stdarg.h> int average(int first, ... ); int main( void ) { int x; <Вызов фукнции average()>; return 0; } int average( int first, ... ) { int count = 0, sum = 0, i = first; va_list marker; va_start(marker, first); while( i != -1 ) { sum += i; count++; i = va_arg(marker, int); } va_end(marker); return( sum ? (sum / count) : 0 ); } В результете какого вызова функции average значение переменной x будет равно 2?
- # Функция average вычисляет среднее арифметическое заданных аргументов: #include <stdio.h> #include <stdarg.h> int average(int first, ... ); int main( void ) { int x; <Вызов фукнции average()>; return 0; } int average( int first, ... ) { int count = 0, sum = 0, i = first; va_list marker; va_start(marker, first); while( i != -1 ) { sum += i; count++; i = va_arg(marker, int); } va_end(marker); return( sum ? (sum / count) : 0 ); } В результете какого вызова функции average значение переменной x будет равно 3?
- # Какое значение n должен задать пользователь для того, чтобы в результате выполнения приведенной программы на экран было выведено сообщение Ошибка! Сообщение 1 Сообщение 2? #include <stdio.h> #include <conio.h> #include <stdarg.h> void error(int severity, ... ); int main( void ) { char err[][30] = {"Сообщение 1", "Сообщение 2"}; int n = -1; printf("Введите степень критичности ошибки (целое число): "); scanf("%d", &n); switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0; } void error(int severity, ... ) { va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n"); }
- # Программа формирует сообщение об ошибке из отдельных строк в зависимости от степени критичности ошибки: #include <stdio.h> #include <conio.h> #include <stdarg.h> void error(int severity, ... ); int main( void ) { char err[][30] = {"Сообщение 1", "Сообщение 2"}; int n = -1; printf("Введите степень критичности ошибки (целое число): "); scanf("%d", &n); switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0; } void error(int severity, ... ) { va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n"); } Какое сообщение будет выведено на экран, если пользователь задаст значение n равным 0?
- # Программа формирует сообщение об ошибке из отдельных строк в зависимости от степени критичности ошибки: #include <stdio.h> #include <conio.h> #include <stdarg.h> void error(int severity, ... ); int main( void ) { char err[][30] = {"Сообщение 1", "Сообщение 2"}; int n = -1; printf("Введите степень критичности ошибки (целое число): "); scanf("%d", &n); switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0; } void error(int severity, ... ) { va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n"); } Какое сообщение будет выведено на экран, если пользователь задаст значение n равным 10?
- # Необходимо написать функцию sum, которая будет вычислять сумму всех элементов массива. В данную функцию должно передаваться два параметра - массив и размер массива. В какой программе функция sum объявлена верно?
- # Необходимо написать функцию sum, которая будет вычислять сумму всех элементов массива. В данную функцию должно передаваться два параметра - массив и размер массива. В какой программе функция sum объявлена неверно?
- # Необходимо написать функцию sum, которая будет вычислять сумму всех элементов массива. В данную функцию должно передаваться два параметра - массив и размер массива. В какой программе функция sum объявлена верно?
- # Что произойдет после выполнения приведенной программы? #include <stdio.h> #define n 10 void fun(int *mas, int k); int main( void ) { int arr[n] = {3,4,5,4,4}; int i; fun(arr, n); return 0; } void fun(int *mas, int k) { int i, s = 0; for (i=0; i<k; i++) ++mas[i]; }
- # Что произойдет после выполнения приведенной программы? #include <stdio.h> #define n 10 void fun(int *mas, int k); int main( void ) { int arr[n] = {3,4,5,4,4}; int i; fun(arr, n); for (i=0; i<n; i++) printf("arr[%d] = %d\n", i, arr[i]); return 0; } void fun(int *mas, int k) { int i, s = 0; for (i=0; i<k; i++) mas[i] *= 2; }
- # Чему будет равно значение переменной s в результате выполнения приведенной программы? #include <stdio.h> #define n 5 void fun(int *mas, int k); int sum(int *mas, int k); int main( void ) { int arr[n] = {3,4,1,2}; int i, s; fun(arr, n); s = sum(arr, n); return 0; } void fun(int *mas, int k) { int i, s = 0; for (i=0; i<k; i++) ++mas[i]; } int sum(int *mas, int k) { int i, s = 0; for (i=0; i<k; i++) s += mas[i]; return s; }
- # Чему будет равно значение переменной s в результате выполнения приведенной программы? #include <stdio.h> #include <stdlib.h> #define n 2 #define m 3 int sum(int *a, int x, int y); int main( void ) { int i, s; int a[n][m] = {{1,2,3}, {4,5,6}}; s = sum(*a, n, m); printf("Сумма элементов а: %d\n", s); return 0; } int sum(int *a, int x, int y) { int i, j, s = 0; for (i=0; i<x; i++) for (j=0; j<y; j++) s += a[i*y+j]; return s; }
- # Необходимо написать функцию, которая будет вычислять сумму всех элементов двухмерного массива. В какой программе вызов функции sum выполняется верно?
- # Необходимо написать функцию, которая будет вычислять сумму всех элементов двухмерного массива. В какой программе вызов функции sum выполняется неверно?
- # В какой функции содержится ошибка?
- # Какая ошибка содержится в приведенной функции? int* fun() { int a = 10; return &a; }
- # В какой функции содержится ошибка?
- # В какой программе используются функции (как стандартные, так и пользовательские) с переменным числом аргументов?
- # В какой программе не используются функции (как стандартные, так и пользовательские) с переменным числом аргументов?
- # В какой программе количество вызовов функций (как стандартных, так и пользовательских) с переменным числом аргументов наибольшее?
- # Функция swap() имеет два аргумента-указателя и выполняет обмен значений элементов: void swap(int *pa, int *pb) { int temp; temp = *pa; *pa = *pb; *pb = temp; } В каком случае вызов функции swap() осуществляется верно?
- # Функция swap() имеет два аргумента-указателя и выполняет обмен значений элементов: void swap(int *pa, int *pb) { int temp; temp = *pa; *pa = *pb; *pb = temp; } В каком случае вызов функции swap() осуществляется неверно?
- # В результате выполнения какой программы изначальные значения переменных a и b изменятся?
- # Что произойдет после выполнения приведенной программы? #include <stdio.h> #define n 10 void fun(int *mas, int k); int main( void ) { int arr[n] = {3,4,5,4,4}; int i; fun(arr, n); return 0; } void fun(int *mas, int k) { int i, s = 0; for (i=0; i<k; i++) ++mas[i]; }
- # Что произойдет после выполнения приведенной программы? #include <stdio.h> #define n 10 void fun(int *mas, int k); int main( void ) { int arr[n] = {3,4,5,4,4}; int i; fun(arr, n); for (i=0; i<n; i++) printf("arr[%d] = %d\n", i, arr[i]); return 0; } void fun(int *mas, int k) { int i, s = 0; for (i=0; i<k; i++) mas[i] *= 2; }
- # Чему будет равно значение переменной s в результате выполнения приведенной программы? #include <stdio.h> #define n 5 void fun(int *mas, int k); int sum(int *mas, int k); int main( void ) { int arr[n] = {3,4,1,2}; int i, s; fun(arr, n); s = sum(arr, n); return 0; } void fun(int *mas, int k) { int i, s = 0; for (i=0; i<k; i++) ++mas[i]; } int sum(int *mas, int k) { int i, s = 0; for (i=0; i<k; i++) s += mas[i]; return s; }
- # Чему будет равно значение переменной s в результате выполнения приведенной программы? #include <stdio.h> #include <stdlib.h> #define n 2 #define m 3 int sum(int *a, int x, int y); int main( void ) { int i, s; int a[n][m] = {{1,2,3}, {4,5,6}}; s = sum(a, n, m); printf("Сумма элементов а: %d\n", s); return 0; } int sum(int *a, int x, int y) { int i, j, s = 0; for (i=0; i<x; i++) for (j=0; j<y; j++) s += a[i*y+j]; return s; }
- # Необходимо написать функцию, которая будет вычислять сумму всех элементов двухмерного массива. В какой программе вызов функции sum выполняется верно?
- # Необходимо написать функцию, которая будет вычислять сумму всех элементов двухмерного массива. В какой программе вызов функции sum выполняется неверно?
- # Какая функция возвращает указатель?
- # Какая функция не возвращает указатель?
- # Задана функция xgets(): char *xgets(char *s) { char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; default: s[t] = ch; } } s[79] = '\0'; return p; } Какие утвержедения являются верными?
- # В результате выполнения какой программы значением переменной s будет строка в верхнем регистре?
- # В результате выполнения какой программы изначальное значение переменной s не будет изменено?
- # В результате выполнения какой программы изначальное значение переменной s будет изменено?
- # Функция sum выполняет сложение двух одномерных массивов и возвращает результат через указатель: int *sum(int A[], int B[], int n) { int i; int *ptr = (int *)calloc(n, sizeof(int)); for (i = 0; i < n; i++) ptr[i] = A[i] + B[i]; return ptr; } В какой программе вызов функции sum выполняется верно?
- # Функция sum выполняет сложение двух одномерных массивов и возвращает результат через указатель: int *sum(int A[], int B[], int n) { int i; int *ptr = (int *)calloc(n, sizeof(int)); for (i = 0; i < n; i++) ptr[i] = A[i] + B[i]; return ptr; } В какой программе вызов функции sum выполняется неверно?
- # Функция sum выполняет сложение двух одномерных массивов и возвращает результат через указатель: int *sum(int A[], int B[], int n) { int i; int *ptr = (int *)calloc(n, sizeof(int)); for (i = 0; i < n; i++) ptr[i] = A[i] + B[i]; return ptr; } Как вызвать функцию sum?
- # Какая программа реализует сортировку "методом пузырька" по возрастанию с помощью функции, использующей вызов по ссылке?
- # Какая программа реализует сортировку "методом пузырька" по убыванию с помощью функции, использующей вызов по ссылке?
- # Какая программа реализует сортировку методом прямого выбора по убыванию с помощью функции, использующей вызов по ссылке?
- # В приведенной программе используются указатели на функции, которые выполняют сортировку целочисленного массива "методом пузырька": void PuzSortInc (int*, int ); void PuzSortDec (int*, int); int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; <Объявление указателя pFun на функции> n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: (*pFun[0])(A, n); break; case 2: (*pFun[1])(A, n); break; default: printf("ERROR! Такого алгоритма не определено!"); } printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); return 0; } void PuzSortInc (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } void PuzSortDec (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } Функция PuzSortInc() выполняет сортировку по возрастанию, функция PuzSortDec() - по убыванию. Каким образом должен быть объявлен указатель на функции для его использования в приведенной программе?
- # В приведенной программе используется указатель на функции, которые выполняют сортировку целочисленного массива "методом пузырька": void PuzSortInc (int*, int ); void PuzSortDec (int*, int); int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; <Объявление указателя pFun на функции> n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: pFun = PuzSortInc; break; case 2: pFun = PuzSortDec; break; default: printf("ERROR! Такого алгоритма не определено!"); } if (pFun) { pFun(A,n); printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); }; return 0; } void PuzSortInc (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } void PuzSortDec (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } Функция PuzSortInc() выполняет сортировку по возрастанию, функция PuzSortDec() - по убыванию. Каким образом должен быть объявлен указатель на функции для его использования в приведенной программе?
- # В приведенной программе используется указатель на функции, которые выполняют сортировку целочисленного массива "методом пузырька": void PuzSortInc (int*, int ); void PuzSortDec (int*, int); int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; <Объявление указателя pFun на функции> n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: pFun = PuzSortInc; break; case 2: pFun = PuzSortDec; break; default: printf("ERROR! Такого алгоритма не определено!"); } if (pFun) { pFun(A,n); printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); }; return 0; } void PuzSortInc (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } void PuzSortDec (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } Функция PuzSortInc() выполняет сортировку по возрастанию, функция PuzSortDec() - по убыванию. Какой способ объявления указателя pFun является неверным для приведенной программы?
- # Приведенная программа использует указатель на функции, которые выполняют различные действия: вычисление квадратного корня, вычисление синуса, вычисление тангенса: int main (void) { double (*pFunc) (double); int c = 1; double y; while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; break; case 2: pFunc = sin; break; case 3: pFunc = tan; break; case 0: return; default: continue; } y = pFunc(1.1); printf("f(1.1) = %.2f\n", y); } return 0; } Какое вычисление будет выполнено в том случае, если пользователь в запросе выбора функции задаст число 3?
- # Приведенная программа использует указатель на функции, которые выполняют различные действия: вычисление квадратного корня, вычисление синуса, вычисление тангенса: int main (void) { double (*pFunc) (double); int c = 1; double y; while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sin; break; case 2: pFunc = sqrt; break; case 3: pFunc = tan; break; case 0: return; default: continue; } y = pFunc(1.1); printf("f(1.1) = %.2f\n", y); } return 0; } Какое вычисление будет выполнено в том случае, если пользователь в запросе выбора функции задаст число 2?
- # Приведенная программа использует указатель на функции, которые выполняют различные действия: вычисление квадратного корня, вычисление синуса, вычисление тангенса: int main (void) { double (*pFunc) (double); int c = 1; double y; while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sin; break; case 2: pFunc = sqrt; break; case 3: pFunc = tan; break; case 0: return; default: continue; } y = pFunc(1.1); printf("f(1.1) = %.2f\n", y); } return 0; } Какое вычисление будет выполнено в том случае, если пользователь в запросе выбора функции задаст число 1?
- # Требуется написать программу, в которой будет использоваться указатель на функции, которые выполняют сортировку целочисленного массива "методом пузырька": функция PuzSortInc() выполняет сортировку по возрастанию, функция PuzSortDec() - по убыванию. В какой программе предусмотрено корректное завершение работы программы, независимо от номера алгоритма, который задаст пользователь?
- # Что произойдет при выполнении приведенной программы, если пользователь задаст номер алгоритма 9? void PuzSortInc (int*, int ); void PuzSortDec (int*, int); int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; void (*pFun) (int*, int) = NULL; n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: pFun = PuzSortInc; break; case 2: pFun = PuzSortDec; break; default: printf("ERROR! Такого алгоритма не определено!"); } pFun(A,n); printf("\nОтсортированный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); return 0; } void PuzSortInc (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } void PuzSortDec (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } }
- # Что произойдет при выполнении приведенной программы, если пользователь задаст номер алгоритма 9? void PuzSortInc (int*, int ); void PuzSortDec (int*, int); int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; void (*pFun) (int*, int) = NULL; n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: pFun = PuzSortInc; break; case 2: pFun = PuzSortDec; break; default: printf("ERROR! Такого алгоритма не определено!"); } if (pFun) { pFun(A,n); printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); }; return 0; } void PuzSortInc (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } void PuzSortDec (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } }
- # Задан указатель на функции int (*pFun) (int, int). Какие утверждения являются верными?
- # Какая переменная pFun способна указывать только на функцию, которая возвращает целое число и требует два целых числа в качестве параметра?
- # Какая переменная pFun способна указывать только на функцию, которая возвращает целое число и требует целое число в качестве параметра?
- # Функция xgets() в упрощенном виде демонстрирует работу стандартной функции gets(): char *xgets(char *s) { char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; default: s[t] = ch; } } s[79] = '\0'; return p; } Каким образом можно вызвать эту функцию?
- # Функция xgets() в упрощенном виде демонстрирует работу стандартной функции gets(): char *xgets(char *s) { char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; default: s[t] = ch; } } s[79] = '\0'; return p; } Какие вызовы функции являются неверными?
- # Функция xgets() в упрощенном виде демонстрирует работу стандартной функции gets(): char *xgets(char *s) { char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; default: s[t] = ch; } } s[79] = '\0'; return p; } Каким образом можно вызвать эту функцию?
- # Что такое файл?
- # Что такое текстовый поток?
- # Что такое двоичный поток?
- # Какие объекты рассматриваются в языке С как файлы?
- # В каком случае файлы не закрываются?
- # В каком случае файлы автоматически закрываются?
- # Файл g:\test.txt содержит две строки: [Большая Картинка] Чему будет равно значение переменной i в результате выполнения приведенного фрагмента кода? char str[30], i; FILE *fp; if((fp = fopen("g:\\test.txt", "r"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } fgets(str, 30, fp); i = strlen(str); fclose(fp);
- # Файл g:\test.txt содержит две строки: [Большая Картинка] Чему будет равен символ str[10] в результате выполнения приведенного фрагмента кода? char str[30], i; FILE *fp; if((fp = fopen("g:\\test.txt", "r"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } fgets(str, 30, fp); i = strlen(str); fclose(fp);
- # Файл g:\test.txt содержит две строки: [Большая Картинка] Чему будет равен символ str[11] в результате выполнения приведенного фрагмента кода? char str[30], i; FILE *fp; if((fp = fopen("g:\\test.txt", "r"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } fgets(str, 30, fp); i = strlen(str); fclose(fp);
- # Какие действия выполняет приведенная программа? #include <stdio.h> int main( void ) { FILE *stream; char list[30]; int i, numread, numwritten; if( (stream = fopen("g:\\fread.out", "w+t")) != NULL ) { for ( i = 0; i < 26; i++ ) list[i] = (char)('z' - i); numwritten = fwrite( list, sizeof( char ), 26, stream ); printf( "Wrote %d items\n", numwritten ); fclose( stream ); } else printf( "Problem opening the file\n" ); if( (stream = fopen("g:\\fread.out", "r+t" )) != NULL ) { numread = fread( list, sizeof( char ), 26, stream ); printf( "Number of items read = %d\n", numread ); printf( "Contents of buffer = %.26s\n", list ); fclose( stream ); } else printf( "File could not be opened\n" ); }
- # Какой файл будет получен в результате выполнения приведенной программы? #include <stdio.h> int main( void ) { FILE *stream; char list[30]; int i, numread, numwritten; if( (stream = fopen("g:\\fread.out", "w+t")) != NULL ) { for ( i = 0; i < 26; i++ ) list[i] = (char)('z' - i); numwritten = fwrite( list, sizeof( char ), 26, stream ); printf( "Wrote %d items\n", numwritten ); fclose( stream ); } else printf( "Problem opening the file\n" ); if( (stream = fopen("g:\\fread.out", "r+t" )) != NULL ) { numread = fread( list, sizeof( char ), 26, stream ); printf( "Number of items read = %d\n", numread ); printf( "Contents of buffer = %.26s\n", list ); fclose( stream ); } else printf( "File could not be opened\n" ); }
- # В результате выполнения какой программы будет получен приведенный файл? [Большая Картинка]
- # В каком случае выполняется пакетная запись массива в файл?
- # В каком случае выполняется посимвольная запись массива в файл?
- # Приведенная программа выводит заданную строку в файл: int main( void ) { int i, j, k, buf; FILE *stream; char str[11] = "Lection 11"; if( (stream = fopen("g:\\fread.txt", "w+t")) == NULL ) printf( "Problem opening the file\n" ); else { k = fwrite(str,sizeof(char), sizeof(str)/sizeof(char), stream); printf("k = %d\n", k); fclose(stream); } return 0; } Какие утверждения являются верными?
- # В каком случае при самом первом запуске программы в файл будет записан лог работы программы, содержащий описание всех выполненных в программе действий?
- # В каком случае при первом запуске программы файл лога работы программы, содержащий описание всех выполненных в программе действий, не будет записан?
- # В каком случае при первом запуске программы в файл будет записан лог работы программы, содержащий описание всех выполненных в программе действий?
- # Каким образом необходимо выполнить открытие файла для того, чтобы для каждого запуска программы сохранялся отдельный файл лога, содержащий описание всех действий, выполненных в программе (при условии, что программа запускается не более одного раза в минуту)? #include <stdio.h> #include <math.h> #include <time.h> #include <string.h> void AddToLog(FILE*, char*); char* GenerateFileName(); int main (void) { FILE *fp; char *strFile, strFn[30] = ""; double (*pFunc) (double); int c = 1; double y; strFile = GenerateFileName(); strcpy(strFn, strFile); <Открытие файла> while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; AddToLog(fp, "Пользователь выбрал функцию 1 (вычисление квадратного корня)\n"); break; case 2: pFunc = sin; AddToLog(fp, "Пользователь выбрал функцию 2 (вычисление синуса)\n"); break; case 3: pFunc = tan; AddToLog(fp, "Пользователь выбрал функцию 3 (вычисление тангенса)\n"); break; case 0: AddToLog(fp, "Пользователь завершил выбор функции\n\n"); printf("Лог сохранен в файл %s\n", strFn); return; default: AddToLog(fp, "Пользователь задал неверный номер функции\n\n"); continue; } y = pFunc(1.1); AddToLog(fp, "Вычислено значение выбранной функции\n"); printf("f(1.1) = %.2f\n", y); AddToLog(fp, "Результат вычисления выведен на экран\n"); } if (fp != NULL) fclose(fp); return 0; } void AddToLog(FILE *fp, char *str) { if (fp != NULL) fputs(str, fp); } char* GenerateFileName() { char strTime[10] = ""; char strDate[10] = ""; char strFile[30] = "g:\\log_"; char *token; _strdate(strDate); _strtime(strTime); token = strtok(strDate, "/"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,"_",1); token = strtok(strTime, ":"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,".txt",4); }
- # При каком способе открытия файла файл лога, содержащий описание всех действий, выполненных в программе не будет создан(при условии, что программа запускается не более одного раза в минуту)? #include <stdio.h> #include <math.h> #include <time.h> #include <string.h> void AddToLog(FILE*, char*); char* GenerateFileName(); int main (void) { FILE *fp; char *strFile, strFn[30] = ""; double (*pFunc) (double); int c = 1; double y; strFile = GenerateFileName(); strcpy(strFn, strFile); <Открытие файла> while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; AddToLog(fp, "Пользователь выбрал функцию 1 (вычисление квадратного корня)\n"); break; case 2: pFunc = sin; AddToLog(fp, "Пользователь выбрал функцию 2 (вычисление синуса)\n"); break; case 3: pFunc = tan; AddToLog(fp, "Пользователь выбрал функцию 3 (вычисление тангенса)\n"); break; case 0: AddToLog(fp, "Пользователь завершил выбор функции\n\n"); printf("Лог сохранен в файл %s\n", strFn); return; default: AddToLog(fp, "Пользователь задал неверный номер функции\n\n"); continue; } y = pFunc(1.1); AddToLog(fp, "Вычислено значение выбранной функции\n"); printf("f(1.1) = %.2f\n", y); AddToLog(fp, "Результат вычисления выведен на экран\n"); } if (fp != NULL) fclose(fp); return 0; } void AddToLog(FILE *fp, char *str) { if (fp != NULL) fputs(str, fp); } char* GenerateFileName() { char strTime[10] = ""; char strDate[10] = ""; char strFile[30] = "g:\\log_"; char *token; _strdate(strDate); _strtime(strTime); token = strtok(strDate, "/"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,"_",1); token = strtok(strTime, ":"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,".txt",4); }
- # Что произойдет при двух запусках программы в течение одной минуты? #include <stdio.h> #include <math.h> #include <time.h> #include <string.h> void AddToLog(FILE*, char*); char* GenerateFileName(); int main (void) { FILE *fp; char *strFile, strFn[30] = ""; double (*pFunc) (double); int c = 1; double y; strFile = GenerateFileName(); strcpy(strFn, strFile); if( (fp = fopen(strFn, "a+")) == NULL ) printf( "Problem opening the file\n" ); while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; AddToLog(fp, "Пользователь выбрал функцию 1 (вычисление квадратного корня)\n"); break; case 2: pFunc = sin; AddToLog(fp, "Пользователь выбрал функцию 2 (вычисление синуса)\n"); break; case 3: pFunc = tan; AddToLog(fp, "Пользователь выбрал функцию 3 (вычисление тангенса)\n"); break; case 0: AddToLog(fp, "Пользователь завершил выбор функции\n\n"); printf("Лог сохранен в файл %s\n", strFn); return; default: AddToLog(fp, "Пользователь задал неверный номер функции\n\n"); continue; } y = pFunc(1.1); AddToLog(fp, "Вычислено значение выбранной функции\n"); printf("f(1.1) = %.2f\n", y); AddToLog(fp, "Результат вычисления выведен на экран\n"); } if (fp != NULL) fclose(fp); return 0; } void AddToLog(FILE *fp, char *str) { if (fp != NULL) fputs(str, fp); } char* GenerateFileName() { char strTime[10] = ""; char strDate[10] = ""; char strFile[30] = "g:\\log_"; char *token; _strdate(strDate); _strtime(strTime); token = strtok(strDate, "/"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,"_",1); token = strtok(strTime, ":"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,".txt",4); }
- # Каким будет значение переменной line в результате выполнения приведенной программы? int main( void ) { FILE *stream; char line[81]; int result; if ( fopen_s( &stream, "g:\\fseek.out", "w+" ) != 0 ) { printf( "The file fseek.out was not opened\n" ); return -1; } fprintf( stream, "Ivanov - 09.06.1980 \n" "Petrov - 10.03.1986 \n" "Sidorov - 08.11.1985\n"); result = fseek( stream, -22L, SEEK_END); if( result ) perror( "Fseek failed" ); else { printf( "File pointer is set to middle of first line.\n" ); fgets( line, 80, stream ); printf( "%s", line ); } fclose( stream ); }
- # Каким будет значение переменной line в результате выполнения приведенной программы? int main( void ) { FILE *stream; char line[81]; int result; if ( fopen_s( &stream, "g:\\fseek.out", "w+" ) != 0 ) { printf( "The file fseek.out was not opened\n" ); return -1; } fprintf( stream, "Ivanov - 09.06.1980 " "Petrov - 10.03.1986 \n" "Sidorov - 08.11.1985\n"); result = fseek( stream, 20L, SEEK_SET); if( result ) perror( "Fseek failed" ); else { fgets( line, 80, stream ); printf( "%s", line ); } fclose( stream ); return 0; }
- # Каким будет значение переменной line в результате выполнения приведенной программы? int main( void ) { FILE *stream; char line[81]; int result; if ( fopen_s( &stream, "g:\\fseek.out", "w+" ) != 0 ) { printf( "The file fseek.out was not opened\n" ); return -1; } fprintf( stream, "Ivanov - 09.06.1980 \n" "Petrov - 10.03.1986 \n" "Sidorov - 08.11.1985\n"); result = fseek( stream, 0L, SEEK_SET); if( result ) perror( "Fseek failed" ); else { fgets( line, 80, stream ); printf( "%s", line ); } fclose( stream ); return 0; }
- # Задан файл, содержащий список названий и стоимости мониторов: [Большая Картинка]В результате выполнения какой программы на экран будет выведена информация о пункте (2) из списка?
- # Задан файл, содержащий список названий и стоимости мониторов: [Большая Картинка]В результате выполнения какой программы на экран будет выведено только название и стоимость монитора, указанного в последнем пункте?
- # Задан файл, содержащий список названий и стоимости мониторов: [Большая Картинка]Чему будет равно значение переменной str в результате выполнения приведенной программы? int main( void ) { FILE *stream; char str[81]; int result; if ( fopen_s( &stream, "g:\\list.txt", "r+" ) != 0 ) { printf( "The file list.txt was not opened\n" ); return -1; } result = fseek( stream, -24L, SEEK_END); if( result ) perror( "Fseek failed" ); else { fgets( str, 80, stream ); printf( "%s", str ); } fclose( stream ); return 0; }
- # Сколько символов будет прочитано из файла функцией fread() в результате выполнения приведенной программы? int main(void) { FILE *fp; char str[30] = "Lection 11"; if((fp=fopen("g:\\test.txt", "wt+"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } fwrite(str, sizeof(char), strlen(str)-3, fp); rewind(fp); fread(str, sizeof(char), sizeof(str)/sizeof(char), fp); fclose(fp); return 0; }
- # Чему будет равно значение переменной m в результате выполнения приведенной программы? int main(void) { FILE *fp; char str[30] = "Lection 11"; int k, l, m; if((fp=fopen("g:\\test.txt", "wt+"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } k = fwrite(str, sizeof(char), strlen(str)-3, fp); rewind(fp); l = fread(str, sizeof(char), sizeof(str)/sizeof(char), fp); m= k+l; fclose(fp); return 0; }
- # Чему будет равно значение переменной m в результате выполнения приведенной программы? int main(void) { FILE *fp; char str[30] = "Lection 11"; int k, l, m; if((fp=fopen("g:\\test.txt", "wt+"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } k = fwrite(str, sizeof(char), strlen(str)-3, fp); rewind(fp); l = fread(str, sizeof(char), sizeof(str)/sizeof(char), fp); m= l - k; fclose(fp); return 0; }
- # Задан файл, содержащий список названий и стоимости мониторов: [Большая Картинка]Какой файл будет получен в результате выполнения приведенной программы? int main( void ) { FILE *stream; char str[81]; int result; if ( fopen_s( &stream, "g:\\list.txt", "r+" ) != 0 ) { printf( "The file list.txt was not opened\n" ); return -1; } result = fseek( stream, -27L, SEEK_END); if( result ) perror( "Fseek failed" ); else { fputs( "5. NEC MultiSync EX231W - 10490 rub.", stream ); printf( "%s", str ); } fclose( stream ); return 0; }
- # Задан файл, содержащий список названий и стоимости мониторов: [Большая Картинка]Какой файл будет получен в результате выполнения приведенной программы? int main( void ) { FILE *stream; char str[81]; int result; if ( fopen_s( &stream, "g:\\list.txt", "r+" ) != 0 ) { printf( "The file list.txt was not opened\n" ); return -1; } result = fseek( stream, 0L, SEEK_END); if( result ) perror( "Fseek failed" ); else { fputs( "5. NEC MultiSync EX231W - 10490 rub.", stream ); printf( "%s", str ); } fclose( stream ); return 0; }
- # Задан файл, содержащий список названий и стоимости мониторов: [Большая Картинка]Какой файл будет получен в результате выполнения приведенной программы? int main( void ) { FILE *stream; char str[81]; int result; if ( fopen_s( &stream, "g:\\list.txt", "r+" ) != 0 ) { printf( "The file list.txt was not opened\n" ); return -1; } result = fseek( stream, 0L, SEEK_END); if( result ) perror( "Fseek failed" ); else { fputs( "\n5. NEC MultiSync EX231W - 10490 rub.", stream ); printf( "%s", str ); } fclose( stream ); return 0; }
- # Какая программа выводит на экран все строки из файла?
- # В результате выполнения какой программы на экран ничего не будет выведено?
- # Какая программа выводит на экран все строки из файла?
- # Что такое структура?
- # В чем отличие структуры от массива?
- # Описан шаблон структуры: struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip; }; Какие утверждения в данном случае являются верными?
- # Что в приведенном описании структуры является ее тегом? struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip; } addr_info, binfo;
- # Какие переменные, имеющие тип заданной структуры, объявлены в приведенном описании? struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip; } addr_info, binfo;
- # Какие поля имеет приведенная структура? struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip; } addr_info, binfo;
- # Объявление какой структуры содержит ошибку?
- # Какое объявление структур(-ы) не содержит ошибку?
- # Определите, содержит ли приведенное объявление структур ошибки? Если содержит, то укажите, какие именно? struct A {int a; double x; }; struct B {A a; B b; double x; };
- # Объявлена структура: struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip; }; Каким образом данная структура хранится в памяти?
- # Объявлена структура: struct Worker { char fio[30]; int date, code; }; Каким образом данная структура хранится в памяти?
- # Объявлена структура: struct Account { int account; char name[30]; int balance; }; Каким образом данная структура хранится в памяти?
- # Какая программа содержит ошибку?
- # Какая программа не содержит ошибок?
- # Какая программа не содержит ошибок?
- # Каким образом должна быть объявлена структура Account и переменные acc1 и acc2 для корректного выполнения приведенной программы? void PrintStruct(char*, int, int); int main (void) { <Объявление структуры Account и переменных acc1, acc2> acc2 = &acc1; acc1.account = 346578; acc1.name = "Ivanov"; acc1.balance = 30000; PrintStruct(acc1.name, acc1.account, acc1.balance); acc2->account = 90005; acc2->name = "Pertov"; acc2->balance = 46000; PrintStruct(acc2->name, acc2->account, acc2->balance); return 0; } void PrintStruct(char *str, int a, int b) { printf("Name: %s\n", str); printf("Account: %d\n", a); printf("Balance: %d\n\n", b); }
- # Какие варианты объявления структуры Account и переменных acc1 и acc2 являются неверными для приведенной программы? void PrintStruct(char*, int, int); int main (void) { <Объявление структуры Account и переменных acc1, acc2> acc2 = &acc1; acc1.account = 346578; acc1.name = "Ivanov"; acc1.balance = 30000; PrintStruct(acc1.name, acc1.account, acc1.balance); acc2->account = 90005; acc2->name = "Pertov"; acc2->balance = 46000; PrintStruct(acc2->name, acc2->account, acc2->balance); return 0; } void PrintStruct(char *str, int a, int b) { printf("Name: %s\n", str); printf("Account: %d\n", a); printf("Balance: %d\n\n", b); }
- # Какие варианты объявления структуры Account и переменных acc1 и acc2 являются верными для приведенной программы? void PrintStruct(char*, int, int); int main (void) { <Объявление структуры Account и переменных acc1, acc2> acc2 = &acc1; acc1.account = 346578; strcpy(acc1.name, "Ivanov"); acc1.balance = 30000; PrintStruct(acc1.name, acc1.account, acc1.balance); acc2->account = 90005; strcpy(acc2->name, "Pertov"); acc2->balance = 46000; PrintStruct(acc2->name, acc2->account, acc2->balance); return 0; } void PrintStruct(char *str, int a, int b) { printf("Name: %s\n", str); printf("Account: %d\n", a); printf("Balance: %d\n\n", b); }
- # Чему будет равно значение переменной s в результате выполнения приведенной программы? int main (void) { struct A { int number; int count; } a1[2], a2[2]; int s; a1[0].number = 1; a1[0].count = 12; a1[1].number = 1; a1[1].count = 12; a2[0] = a1[0]; s = a1[0].count + a2[0].count; return 0; }
- # Какое сообщение будет выведено на экран в результате выполненния приведенной программы? int main (void) { struct student { char *name; char *birthday; int group; } s1, s2; int s; s1.name = "Ivanov"; s1.birthday = "10.03.1985"; s1.group = 1014; s2.name = "Petrov"; s2.birthday = "08.04.1985"; s2.group = 1309; s2 = s1; if (s2.group == s1.group) printf("Students %s and %s are studying in the same group\n", s1.name, s2.name); else printf("Students %s and %s are not studying in the same group\n", s1.name, s2.name); return 0; }
- # Какое сообщение будет выведено на экран в результате выполненния приведенной программы? int main (void) { struct student { char *name; char *birthday; int group; } s1, s2; int s; s1.name = "Ivanov"; s1.birthday = "10.03.1985"; s1.group = 1014; s2.name = "Petrov"; s2.birthday = "08.04.1985"; s2.group = 1309; s2.group = s1.group; if (s2.group == s1.group) printf("Students %s and %s are studying in the same group\n", s1.name, s2.name); else printf("Students %s and %s are not studying in the same group\n", s1.name, s2.name); return 0; }
- # Каким образом должна быть объявлена структура group и переменная g для корреткной работы программы? int main (void) { struct stud { char *name; char *surname; int age; double av_mark; }; <Объявление структуры group и переменной gr> gr.number = 3; gr.quantity = 21; gr.student.name = "Ivan"; gr.student.surname = "Ivanov"; gr.student.age = 20; gr.student.av_mark = 4.25; printf("Group Number: %d\nThe number of students in the group: %d\n", gr.number, gr.quantity); printf("%s %s - %1.2f", gr.student.surname, gr.student.name, gr.student.av_mark); return 0; }
- # В каком случае структура group и переменная g объявлены неверно для приведенной программы? int main (void) { struct stud { char *name; char *surname; int age; double av_mark; }; <Объявление структуры group и переменной gr> gr.number = 3; gr.quantity = 21; gr.student.name = "Ivan"; gr.student.surname = "Ivanov"; gr.student.age = 20; gr.student.av_mark = 4.25; printf("Group Number: %d\nThe number of students in the group: %d\n", gr.number, gr.quantity); printf("%s %s - %1.2f", gr.student.surname, gr.student.name, gr.student.av_mark); return 0; }
- # Какая программа содержит ошибку?
- # В какой программе используются вложенные структуры?
- # В какой программе не используются вложенные структуры?
- # Какой файл будет создан в результате выполнения приведенной программы? int main (void) { struct student { char *name; char *surname; int group; int ses[5]; double av; struct student *p; } st; FILE *fp; int i, sum = 0; st.name = "Ivan"; st.surname = "Ivanov"; st.group = 1024; st.ses[0] = 5; st.ses[1] = 4; st.ses[2] = 5; st.ses[3] = 5; st.ses[4] = 5; for (i=0; i<5; i++) sum +=st.ses[i]; st.av = sum/5; if ((fp = fopen("g:\\marks.txt", "w+t")) == 0) printf("Open file error"); else { fprintf(fp, "Name: %s %s\n", st.surname, st.name); fprintf(fp, "Group: %d\n", st.group); fprintf(fp, "Average mark: %.2f\n\n", st.av); fclose(fp); }; return 0; }
- # Необходимо написать программу, которая позволит ввести с клавиатуры данные о поездах. Также в программе должен быть предусмотрен поиск по номеру поезда. Какая программа выполняет поставленную задачу?
- # Необходимо написать программу, которая позволит ввести с клавиатуры данные о поездах. Также в программе должен быть предусмотрен поиск по пункту назначения поезда. Какая программа выполняет поставленную задачу?
- # Необходимо написать программу, которая позволит ввести с клавиатуры данные о поездах. Также в программе должен быть предусмотрен поиск по пункту назначения поезда. Какая программа не выполняет поставленную задачу?
- # В каком случае структура верно определена с использованием ключевого слова typedef?
- # В каком случае структура определена с использованием ключевого слова typedef неверно?
- # В каком случае структура верно определена с использованием ключевого слова typedef?
- # Какая ошибка содержится в приведенной программе? int main (void) { struct train_info { char nazn[40]; int numb; char time[10]; }; typedef struct train_info train; train tr[3]; int i = 0, sum = 0, ch=0; char str[10], search[10]; while(ch!=121) { printf("\nEnter information about train (Q - quit): \n"); printf("Enter destination of the train: "); gets(tr[i].nazn); printf("Enter number of the train: "); gets(str); tr[i].numb = atoi(str); printf("Enter time of scheduled departure: "); gets(tr[i].time); ++i; printf("Quit? (y/n): "); ch = _getche(); }; printf("\n\nEnter train destination: "); gets(search); for (i=0; i<3; i++) { if (strcmp(tr[i].nazn,search)==0) { printf("\n\tTrain number: %d", tr[i].numb); printf("\n\tTime: %s", tr[i].time); } } if (i>=3) printf("There is no train to this destination"); return 0; }
- # Какая ошибка содержится в приведенной программе? int main (void) { typedef struct { char nazn[40]; int numb; char time[10]; } train; train tr[3]; int i = 0, sum = 0, ch=0; char str[10], search[10]; while(ch!=121) { printf("\nEnter information about train (Q - quit): \n"); printf("Enter destination of the train: "); gets(tr[i].nazn); printf("Enter number of the train: "); gets(str); tr[i].numb = atoi(str); printf("Enter time of scheduled departure: "); gets(tr[i].time); ++i; printf("Quit? (y/n): "); ch = _getche(); }; printf("\n\nEnter train destination: "); gets(search); for (i=0; i<3; i++) { if (strcmp(tr[i].nazn,search)==0) { printf("\n\tTrain number: %d", tr[i].numb); printf("\n\tTime: %s", tr[i].time); } } if (i>=3) printf("There is no train to this destination"); return 0; }
- # Какая ошибка содержится в приведенной программе? int main (void) { typedef struct { char nazn[40]; int numb; char time[10]; } train, train_info; train_info ti[3]; train tr[3]; int i = 0, sum = 0, ch=0; char str[10], search[10]; while(ch!=121) { printf("\nEnter information about train (Q - quit): \n"); printf("Enter destination of the train: "); gets(tr[i].nazn); printf("Enter number of the train: "); gets(str); tr[i].numb = atoi(str); printf("Enter time of scheduled departure: "); gets(tr[i].time); ++i; printf("Quit? (y/n): "); ch = _getche(); }; printf("\n\nEnter train destination: "); gets(search); for (i=0; i<3; i++) { if (strcmp(tr[i].nazn,search)==0) { printf("\n\tTrain number: %d", tr[i].numb); printf("\n\tTime: %s", tr[i].time); } } if (i>=3) printf("There is no train to this destination"); return 0; }
- # Что такое объединение (union) в контексте языка С?
- # Частным случаем какого типа данных являются объединения (union)?
- # Значения каких типов может содержать приведенное объединение? union hold { int digit; double bigf; char letter; };
- # Что такое перечисление (enum) в контексте языка С?
- # В чем заключается назначение перечислений (enum)?
- # В чем заключается назначение объединений (union)?
- # Задано перечисление numbers: enum numbers {two=2, tree, four, ten=10, eleven, last=ten+40}; Какое значение будет присвоено константе last?
- # Какие утверждения являются верными?
- # Какие утверждения являются неверными?
- # Сколько памяти будет выделено для хранения приведенного объединения? union hold { int digit; double bigf; char letter; };
- # Сколько памяти будет выделено для хранения приведенного объединения? union payment { char card[25]; int sum; double date; };
- # Сколько памяти будет выделено для хранения приведенного объединения? union payment { char card[10]; int sum; double date; };
- # Чему будет равно значение переменной str после выполнения приведенной программы? union test { char ch1[5]; char ch2[2]; char ch3[1]; }; int main(void) { union test t; char *str; strcpy(t.ch1, "test"); strcpy(t.ch2, "be"); t.ch3[0] = 'w'; str = t.ch1; return 0; }
- # Чему будет равно значение переменной str после выполнения приведенной программы? union test { char ch1[5]; char ch2[2]; char ch3[1]; }; int main(void) { union test t; char *str; strcpy(t.ch1, "test"); t.ch2[0] = 'b'; t.ch3[0] = 'w'; str = t.ch1; return 0; }
- # Чему будет равно значение переменной str после выполнения приведенной программы? union test { char ch1[5]; char ch2[2]; char ch3[1]; }; int main(void) { union test t; char *str; t.ch3[0] = 'w'; strcpy(t.ch2, "be"); strcpy(t.ch1, "test"); t.ch1[2] = '\0'; str = t.ch2; return 0; }
- # В какой программе выполняется верное обращение к полям объединения?
- # В какой программе выполняется неверное обращение к полям объединения?
- # В какой программе выполняется верное обращение к полям объединения?
- # Какая программа не содержит ошибок?
- # Определите, есть ли в приведенной программе ошибки? Если есть, укажите, какие? typedef union pw_union { short int i; char ch[2]; } pw; int putw(short int num, FILE *fp); int main(void) { FILE *fp; fp = fopen("g:\\test.tmp", "wb+"); if(fp == NULL) { printf("Файл не открыт.\n"); exit(1); } putw(1025, fp); fclose(fp); return 0; } int putw(short int num, FILE *fp) { pw_union word; word.i = num; putc(word.ch[0], fp); return putc(word.ch[1], fp); }
- # Определите, есть ли в приведенной программе ошибки? Если есть, укажите, какие? typedef union pw_union { short int i; char ch[2]; } pw; int putw(short int num, FILE *fp); int main(void) { FILE *fp; fp = fopen("g:\\test.tmp", "wb+"); if(fp == NULL) { printf("Файл не открыт.\n"); exit(1); } putw(1025, fp); fclose(fp); return 0; } int putw(short int num, FILE *fp) { union pw word; word.i = num; putc(word.ch[0], fp); return putc(word.ch[1], fp); }
- # Что будет выведено на экран в результате выполнения приведенной программы? int main(void) { union pw { int i; double d; char ch[2]; } pw = {121}; printf("pw.ch = %s", pw.ch); return 0; }
- # Что будет выведено на экран в результате выполнения приведенной программы? int main(void) { union pw { int i; double d; char ch[2]; } pw = {"y"}; printf("pw.i = %d", pw.i); return 0; }
- # Что будет выведено на экран в результате выполнения приведенной программы? int main(void) { union pw { int i; double d; char ch[2]; } pw = {"y"}; printf("pw.d = %.2f", pw.d); return 0; }
- # Что будет выведено на экран в результате выполнения приведенной программы? int main(void) { enum coin { penny, nickel, dime, quarter=100, half_dollar, dollar}; enum coin money; printf("%d ", penny); printf("%d ", nickel); printf("%d ", dime); printf("%d ", quarter); printf("%d ", half_dollar); printf("%d ", dollar); return 0; }
- # В результате выполнения какой программы на экран будет выведена строка 0 1 2 100 101 102?
- # В результате выполнения какой программы на экран будет выведена строка penny nickel dime quarter=100 half_dollar dollar?
- # Какая программа содержит ошибку?
- # Определите, возникнут ли ошибки при выполнении приведенной программы? Если возникнут, объясните, почему? int main(void) { enum coin { penny, nickel, dime, quarter, half_dollar, dollar}; enum coin money; char name[][12]={ "penny", "nickel", "dime", "quarter", "half_dollar", "dollar" }; money = half_dollar; printf("%s", name[money]); return 0; }
- # Определите, возникнут ли ошибки при выполнении приведенной программы? Если возникнут, объясните, почему? int main(void) { enum coin { penny, nickel, dime, quarter=100, half_dollar, dollar}; enum coin money; char name[][12]={ "penny", "nickel", "dime", "quarter", "half_dollar", "dollar" }; money = half_dollar; printf("%s", name[money]); return 0; }
- # При каких значениях переменной error в результате выполнения приведенной программы на экран будет выведено сообщение Возникла ошибка чтения (ERR_READ)? int main(void) { typedef enum { ERR_READ, ERR_WRITE, ERR_CONVERT} Err; Err error; switch (error) { case ERR_READ: printf("Возникла ошибка чтения (ERR_READ)\n"); break; case ERR_WRITE: printf("Возникла ошибка записи (ERR_WRITE)\n"); break; case ERR_CONVERT: printf("Возникла ошибка преобразования (ERR_CONVERT)\n"); break; default: printf("Возникла неизвестная ошибка\n"); break; }; return 0; }
- # При каких значениях переменной error в результате выполнения приведенной программы на экран будет выведено сообщение Возникла ошибка записи (ERR_WRITE)? int main(void) { typedef enum { ERR_READ, ERR_WRITE, ERR_CONVERT} Err; Err error; switch (error) { case ERR_READ: printf("Возникла ошибка чтения (ERR_READ)\n"); break; case ERR_WRITE: printf("Возникла ошибка записи (ERR_WRITE)\n"); break; case ERR_CONVERT: printf("Возникла ошибка преобразования (ERR_CONVERT)\n"); break; default: printf("Возникла неизвестная ошибка\n"); break; }; return 0; }
- # При каких значениях переменной error в результате выполнения приведенной программы на экран будет выведено сообщение Возникла ошибка преобразования (ERR_CONVERT)? int main(void) { typedef enum { ERR_READ, ERR_WRITE, ERR_CONVERT} Err; Err error; switch (error) { case ERR_READ: printf("Возникла ошибка чтения (ERR_READ)\n"); break; case ERR_WRITE: printf("Возникла ошибка записи (ERR_WRITE)\n"); break; case ERR_CONVERT: printf("Возникла ошибка преобразования (ERR_CONVERT)\n"); break; default: printf("Возникла неизвестная ошибка\n"); break; }; return 0; }
- # Какая ошибка допущена в приведенной программе? int main (void) { enum month {january = 1, february, march, april, may, june,july, august, september, october, november, december } aMonth; int days; printf("\n Enter the number of the month (1 - 12): "); scanf_s("%d", &aMonth); switch (aMonth) { case january: case march: case may: case july: case august: case october: case december: days = 31; break; case april: case june: case september: case november: days = 30; break; case february: days = 28; break; default: printf("\n\t Wrong number of the month\n"); days = 0; break; } if (days) printf("\n The number of days of the month: %d\n", days); if (aMonth == "february") printf("\n ... or 29 if it is a leap year\n"); return 0; }
- # Какая ошибка допущена в приведенной программе? int main (void) { enum month {january = 1, february, march, april, may, june,july, august, september, october, november, december } aMonth; int days; printf("\n Enter the number of the month (1 - 12): "); scanf_s("%d", &aMonth); switch (aMonth) { case january: case march: case may: case july: case august: case october: case december: days = 31; break; case april: case june: case september: case november: days = 30; break; case february: days = 28; break; default: printf("\n\t Wrong number of the month\n"); days = 0; break; } if (days) printf("\n The number of days of the month: %d\n", days); if (aMonth == 2) printf("\n ... or 29 if it is a leap year\n"); return 0; }
- # Что будет выведено на экран в результате выполнения приведенной программы, если в запросе ввода номера месяца пользователь задаст число 2? int main (void) { enum month {january, february, march, april, may, june,july, august, september, october, november, december } aMonth; int days; printf("\n Enter the number of the month (1 - 12): "); scanf_s("%d", &aMonth); switch (aMonth) { case january: case march: case may: case july: case august: case october: case december: days = 31; break; case april: case june: case september: case november: days = 30; break; case february: days = 28; break; default: printf("\n\t Wrong number of the month\n"); days = 0; break; } if (days) printf("\n The number of days of the month: %d\n", days); if (aMonth == 2) printf("\n ... or 29 if it is a leap year\n"); return 0; }
- # Какие из перечисленных операций разрешено выполнять над структурами?
- # Задана структура: struct fred { char x; int y; float z; char str[10]; } mike; В каком случае функции func() передается адрес отдельного члена структуры?
- # Задана структура: struct fred { char x; int y; float z; char str[10]; } mike; Каким образом члены структуры могут быть переданы в функцию?
- # В каком случае в функцию fun() передается указатель на структуру?
- # Какая программа содержит ошибку?
- # В какой программе в качестве параметра используется структура?
- # Какие утверждения являются верными для приведенной программы? #define MAX 20 double sum(double, double); int main (void) { struct test { char A[MAX+1]; double ax; char B[MAX+1]; double by; }; struct test AB; printf("\nEnter 1st name: "); gets_s(AB.A, MAX); printf("\nEnter the first real number: "); scanf_s("%lf", &AB.ax); _flushall(); printf("\nEnter 2nd name: "); gets_s(AB.B, MAX); printf("\nEnter the second real number: "); scanf_s("%lf", &AB.by); printf("\n\nThe sum of two numbers %1.2f and %1.2f, %s and %s: %1.2f\n", AB.ax, AB.by, AB.A, AB.B, sum(AB.ax, AB.by)); return 0; } double sum(double x, double y) { return (x + y); }
- # Какие утверждения являются неверными для приведенной программы? #define MAX 20 double sum(double, double); int main (void) { struct test { char A[MAX+1]; double ax; char B[MAX+1]; double by; }; struct test AB; printf("\nEnter 1st name: "); gets_s(AB.A, MAX); printf("\nEnter the first real number: "); scanf_s("%lf", &AB.ax); _flushall(); printf("\nEnter 2nd name: "); gets_s(AB.B, MAX); printf("\nEnter the second real number: "); scanf_s("%lf", &AB.by); printf("\n\nThe sum of two numbers %1.2f and %1.2f, %s and %s: %1.2f\n", AB.ax, AB.by, AB.A, AB.B, sum(AB.ax, AB.by)); return 0; } double sum(double x, double y) { return (x + y); }
- # Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно? #define MAX 20 double sum(double, double); int main (void) { struct test { char A[MAX+1]; double ax; char B[MAX+1]; double by; }; struct test AB; printf("\nEnter 1st name: "); gets_s(AB.A, MAX); printf("\nEnter the first real number: "); scanf_s("%lf", &AB.ax); _flushall(); printf("\nEnter 2nd name: "); gets_s(AB.B, MAX); printf("\nEnter the second real number: "); scanf_s("%lf", &AB.by); printf("\n\nThe sum of two numbers %1.2f and %1.2f, %s and %s: %1.2f\n", AB.ax, AB.by, AB.A, AB.B, sum(ax, by)); return 0; } double sum(double x, double y) { return (x + y); }
- # Функция f1() выводит на экран переданное ей значение. Каким образом должна быть описана данная функция для корректного выполнения приведенной программы? struct struct_type { int a, b; char ch; } ; int main(void) { struct struct_type arg; arg.a = 1000; f1(arg); return 0; }
- # Функция f1() выводит на экран переданное ей значение. Каким образом должна быть описана данная функция для корректного выполнения приведенной программы? struct struct_type { int a, b; char ch; } ; int main(void) { struct struct_type arg; arg.a = 1000; f1(&arg); return 0; }
- # Функция f1() выводит на экран переданное ей значение. Каким образом должна быть описана данная функция для корректного выполнения приведенной программы? typedef struct { int a, b; char ch; } struct_type; int main(void) { struct_type arg; arg.a = 1000; f1(&arg); return 0; }
- # Какая программа не содержит ошибок?
- # Какая программа содержит ошибку?
- # Содержит ли приведенная программа ошибки? Если содержит, укажите, какие? struct struct_type { int a, b; char ch; } ; struct struct_type2 { int a, b; char ch; } ; void f1(struct struct_type2 parm); int main(void) { struct struct_type arg; arg.a = 1000; f1(arg); return 0; } void f1(struct struct_type2 parm) { printf("%d", parm.a); }
- # Чему будут равны значения полей структурной переменной s после выполнения приведенной программы? typedef struct { char fio[30]; int group; float average; } student; void Init(student*); int main(void) { student s, *st; int i; st = &s; Init(st); return 0; } void Init(student *st) { printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average); }
- # Задана программа, позволяющая пользователю задать данные о студенте с клавиатуры: typedef struct { char fio[30]; int group; float average; } student; void Init(student*); int main(void) { student s, *st; int i; st = &s; Init(st); <Вывод данных на экран> return 0; } void Init(student *st) { printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average); } Необходимо дополнить программу функцией вывода заданных о студенте данных на экран и вызовом этой функции в программе. Какой вариант описания и вызова функции выполняет поставленную задачу?
- # Задана программа, позволяющая пользователю задать данные о студенте с клавиатуры: typedef struct { char fio[30]; int group; float average; } student; void Init(student*); int main(void) { student s, *st; int i; st = &s; Init(st); <Вывод данных на экран> return 0; } void Init(student *st) { printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average); } Необходимо дополнить программу функцией вывода заданных о студенте данных на экран и вызовом этой функции в программе. Какой вариант описания и вызова функции не выполняет поставленную задачу?
- # Какую ошибку содержит приведенная программа? void Init(struct student*); void Print(struct student*); int main(void) { struct student { char fio[30]; int group; float average; }; struct student s, *st; int i; st = &s; Init(st); Print(st); return 0; } void Init(struct student *st) { printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average); } void Print(struct student *st) { printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f", st->average); }
- # Что необходимо сделать для того, чтобы исправить содержащуюся в программе ошибку? void Init(struct student*); void Print(struct student*); int main(void) { struct student { char fio[30]; int group; float average; }; struct student s, *st; int i; st = &s; Init(st); Print(st); return 0; } void Init(struct student *st) { printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average); } void Print(struct student *st) { printf("\nName: %s", st.fio); printf("\nGrouproup: %d", st.group); printf("\nAverage mark: %.2f", st.average); }
- # Что необходимо сделать для того, чтобы исправить содержащуюся в программе ошибку? void Init(struct student*); void Print(struct student*); int main(void) { struct student { char fio[30]; int group; float average; }; struct student s, *st; int i; st = &s; Init(&st); Print(st); return 0; } void Init(struct student *st) { printf("\nEnter name: "); scanf("%s", st.fio); printf("\nEnter group: "); scanf("%d", &st.group); printf("\nEnter average mark: "); scanf("%f", &st.average); } void Print(struct student *st) { printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f", st->average); }
- # Каким образом должна быть объявлена функция Init для корректной работы приведенной программы? struct student { char fio[30]; int group; float average; }; <Прототи функции Init> void Print(struct student*); int main(void) { struct student s, *st; int i; s = Init("Ivanov I.", 3801, 5.00); st = &s; Print(st); return 0; } struct student Init(char* n, int i, float f) { struct student s, *st; st = &s; strcpy(st->fio, n); st->group = i; st->average = f; return s; } void Print(struct student *st) { printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f\n", st->average); }
- # В приведенной программе происходит инициализация структуры данных о студенте и последующий вывод этих данных: struct student { char fio[30]; int group; float average; }; struct student Init(char*, int, float); void Print(struct student*); int main(void) { struct student s, *st; int i; st = Init("Ivanov I.", 3801, 5.00); Print(st); return 0; } struct student Init(char* n, int i, float f) { struct student s, *st; st = &s; strcpy(st->fio, n); st->group = i; st->average = f; return s; } void Print(struct student *st) { printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f\n", st->average); } Какие утверждения являются верными для приведенной программы?
- # Что будет выведено на экран в результате выполнения приведенной программы? struct student { char fio[30]; int group; float average; }; struct student Init(char*, int, float); void Print(struct student*); int main(void) { struct student s1, s2, s3, *st; int i; s1 = Init("Ivanov I.", 3801, 5.00); s2 = Init(s1.fio, 4209, 4.50); s3 = Init("Petrov P", s1.group, s2.average); st = &s3; Print(st); return 0; } struct student Init(char* n, int i, float f) { struct student s, *st; st = &s; strcpy(st->fio, n); st->group = i; st->average = f; return s; } void Print(struct student *st) { printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f\n", st->average); }
- # Необходимо написать программу, в которой будут три функции: Init - функция инициализации структуры, Print - функция вывода структуры на экран, Modify - функция изменения полей структуры. Определите, удовлетворяет ли приведенная программа поставленной задаче? Если не удовлетворяет, укажите, почему? typedef struct { char fio[30]; char phone[20]; int age; } note; note Init(char*, char*, int); void Print(note*); void Modify(note); int main(void) { note n[3], *pn; char *strName[3] = {"Ivanov I.", "Pertov P.", "Sidorov S."}; char *strPhone[3] = {"12-34-56", "78-90-12", "34-56-78"}; int i, age = 25; for (i=0; i<3; i++) { n[i] = Init(strName[i], strPhone[i], age+i); pn = &n[i]; Print(pn); } Modify(n[0]); pn = &n[0]; Print(pn); return 0; } note Init(char* f, char* p, int a) { note n, *pn; pn = &n; strcpy(pn->fio, f); strcpy(pn->phone, p); pn->age = a; return n; } void Print(note *pn) { printf("\nName: %s", pn->fio); printf("\nPhone: %s", pn->phone); printf("\nAge: %d\n", pn->age); } void Modify(note n) { strcpy(n.fio, "Vasiliev V."); strcpy(n.phone, "89-01-23"); n.age = 30; }
- # Задана программа, в которой реализовано три функции: Init - функция инициализации структуры, Print - функция вывода структуры на экран, Modify - функция изменения полей структуры: typedef struct { char fio[30]; char phone[20]; int age; } note; note Init(char*, char*, int); void Print(note*); void Modify(note); int main(void) { note n[3], *pn; char *strName[3] = {"Ivanov I.", "Pertov P.", "Sidorov S."}; char *strPhone[3] = {"12-34-56", "78-90-12", "34-56-78"}; int i, age = 25; for (i=0; i<3; i++) { n[i] = Init(strName[i], strPhone[i], age+i); pn = &n[i]; Print(pn); } Modify(n[0]); pn = &n[0]; Print(pn); return 0; } note Init(char* f, char* p, int a) { note n, *pn; pn = &n; strcpy(pn->fio, f); strcpy(pn->phone, p); pn->age = a; return n; } void Print(note *pn) { printf("\nName: %s", pn->fio); printf("\nPhone: %s", pn->phone); printf("\nAge: %d\n", pn->age); } void Modify(note n) { strcpy(n.fio, "Vasiliev V."); strcpy(n.phone, "89-01-23"); n.age = 30; } Какая функция не соответсвует поставленной задаче?
- # Задана программа, в которой реализовано три функции: Init - функция инициализации структуры, Print - функция вывода структуры на экран, Modify - функция изменения полей структуры: typedef struct { char fio[30]; char phone[20]; int age; } note; note Init(char*, char*, int); void Print(note*); void Modify(note); int main(void) { note n[3], *pn; char *strName[3] = {"Ivanov I.", "Pertov P.", "Sidorov S."}; char *strPhone[3] = {"12-34-56", "78-90-12", "34-56-78"}; int i, age = 25; for (i=0; i<3; i++) { n[i] = Init(strName[i], strPhone[i], age+i); pn = &n[i]; Print(pn); } Modify(n[0]); pn = &n[0]; Print(pn); return 0; } note Init(char* f, char* p, int a) { note n, *pn; pn = &n; strcpy(pn->fio, f); strcpy(pn->phone, p); pn->age = a; return n; } void Print(note *pn) { printf("\nName: %s", pn->fio); printf("\nPhone: %s", pn->phone); printf("\nAge: %d\n", pn->age); } void Modify(note n) { strcpy(n.fio, "Vasiliev V."); strcpy(n.phone, "89-01-23"); n.age = 30; } Какие функции соответсвуют поставленной задаче?
- # В приведенной программе функция Copy выполняет копирование одной структуры типа sale в другую и возвращает структуру этого же типа: typedef struct sale_struct { char *title; int price; } sale; sale Copy(sale); int main(void) { sale s1,s2; struct sale_struct s3, s4; s1.title = "Book"; s1.price = 200; s3.title = "Cake"; s3.price = 60; return 0; } sale Copy(sale s) { sale s1; s1 = s; return s1; } Какие из перечисленных вызов функции Copy являются верными?
- # В приведенной программе функция Copy выполняет копирование одной структуры типа sale в другую и возвращает структуру этого же типа: typedef struct sale_struct { char *title; int price; } sale; sale Copy(sale); int main(void) { sale s1,s2; struct sale_struct s3, s4; s1.title = "Book"; s1.price = 200; s3.title = "Cake"; s3.price = 60; return 0; } sale Copy(sale s) { sale s1; s1 = s; return s1; } Какие из перечисленных вызов функции Copy являются неверными?
- # В приведенной программе функция Copy выполняет копирование одной структуры типа sale в другую и возвращает структуру этого же типа: typedef struct sale_struct { char *title; int price; } sale; sale Copy(sale); int main(void) { sale s1,s2; struct sale_struct s3, s4; s1.title = "Book"; s1.price = 200; s3.title = "Cake"; s3.price = 60; return 0; } sale Copy(sale s) { sale s1; s1 = s; return s1; } Какие из перечисленных вызов функции Copy являются верными?
- # Необходимо написать функцию копирования значений всех полей одной структуры заданного типа в другую: typedef struct sale_struct { char *title; int price; } sale; Какая функция выполняет поставленную задачу?
- # Необходимо написать функцию копирования значений всех полей одной структуры заданного типа в другую: typedef struct sale_struct { char *title; int price; } sale; Какая функция не выполняет поставленную задачу?
- # Необходимо написать функцию копирования значений всех полей одной структуры заданного типа в другую: typedef struct sale_struct { char *title; int price; } sale; Для выполнения поставленной задачи была создана функция: sale Copy(char* t, int p) { sale s1; s1.title = t; s1.price = p; return s1; } Какие утверждения являются верными?
- # Каким образом выполняется передача функции члена структуры?
- # Какое утверждение является верным?
- # Какие утверждения являются неверными?
- # Какой разряд байта является младшим? [Большая Картинка]
- # Какой разряд байта является старшим? [Большая Картинка]
- # Каким образом нумерются разряды байта?
- # Какое утверждение является верным?
- # Какие утверждения являются верными?
- # Какие утверждения являются неверными?
- # Сколько возможных значений может принимать байт?
- # Сколько возможных значений может принимать бит?
- # Какие значения может принимать байт?
- # Какое из перечисленных шестнадцатиричных чисел является наибольшим?
- # Какое из перечисленных шестнадцатиричных чисел является наименьшим?
- # Чему будет равно шестнадцатиричное число D6F в десятичной системе счисления?
- # Что такое битовое поле?
- # Каково преимущество использования битовых полей?
- # Каковы недостатки использования битовых полей?
- # Какая программа содержит ошибку?
- # Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно? int main(void) { struct test { unsigned int : 3; unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; unsigned int type : 8; unsigned int index : 18; }; int a : 4, b; struct test t; t.type = 3439; b = a + t.type; //printf("t.type = %d\n", t.type); return 0; }
- # Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно? int main(void) { struct test { unsigned int : 3; unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; unsigned int type : 8; unsigned int index : 18; }; int b; struct test t, *pt; pt = &t; pt->f1 = 11; t.type = 3439; b = t.f1 + t.type; printf("b = %d\n", b); return 0; }
- # Чему будет равно значение переменной b в результате выполнения приведенной программы? int main(void) { struct Options { unsigned int centerX : 1; unsigned int centerY : 1; unsigned int shadow : 2; unsigned int palette : 4; }; int b; struct Options t, *pt; t.shadow = 10; t.palette = 10; b = t.shadow + t.palette; printf("b = %d\n", b); return 0; }
- # Чему будет равно значение переменной b в результате выполнения приведенной программы? int main(void) { struct Options { unsigned int centerX : 1; unsigned int centerY : 1; unsigned int shadow : 2; unsigned int palette : 4; }; int b; struct Options t, *pt; t.shadow = 12; t.palette = 10; b = t.shadow + t.palette; printf("b = %d\n", b); return 0; }
- # Чему будет равно значение переменной b в результате выполнения приведенной программы? int main(void) { struct Options { unsigned int centerX : 1; unsigned int centerY : 1; unsigned int shadow : 2; unsigned int palette : 4; }; int b; struct Options t, *pt; t.shadow = 10; t.palette = 12; b = t.shadow + t.palette; printf("b = %d\n", b); return 0; }
- # Определите, что делает приведенная программа? void printBits(unsigned int var); int main (void) { unsigned int number, mask; printf("The program on demonstration digit-by-digit operation And ( & )\n"); printf("Enter a whole number of unsigned: "); scanf_s("%u", &number); printf("Enter the number of unsigned-mask: "); scanf_s("%u", &mask); printf("Binary representation of the starting number(%u) and\n", number); printf("Binary representation of the number-masks (%u):\n", mask); printBits(number); printBits(mask); printBits(number & mask); return 0; } void printBits(unsigned int var) { unsigned int b; unsigned int mask = 1 << 15; printf("\n%10u = ", var); for (b = 1; b <= 16; ++b) { printf("%c", var & mask ? '1' : '0'); var <<= 1; if (b % 8 == 0) putchar(' '); } }
- # Определите, что делает приведенная программа? void printBits(unsigned int var); int main (void) { unsigned int number1, number2; printf("\n The program on demonstration digit-by-digit operator OR ( | ):\n"); printf("\n\t Enter the unsigned number of N1: "); scanf_s("%u", &number1); printf("\t Enter the unsigned number of N2: "); scanf_s("%u", &number2); printf("\n\t Binary representation of the number of N1 (%u) and\n", number1); printf("\t Binary representation of the number of N2 (%u):\n", number2); printBits(number1); printBits(number2); printBits(number1 | number2); printf("\n\n Press any key: "); _getch(); return 0; } void printBits(unsigned int var) { unsigned int b; unsigned int num = 1 << 31; printf("\n\t %10u = ", var); for (b = 1; b <= 32; ++b) { printf("%c", var & num ? '1' : '0'); var <<= 1; if (b % 8 == 0) putchar(' '); } }
- # Какая программа выполняет поразрядную операцию И над двумя целыми числами, представленными в двоичной системе счисления для 16-разрядного компьютера?
- # Чему будет равно значение переменной t.a после выполнения приведенной программы? int main(void) { struct test { unsigned int a : 2; unsigned int b : 8; }; int c; struct test t; t.b = 255; t.a = t.b & 3; printf("t.a = %d\n", t.a); return 0; }
- # Чему будет равно значение переменной c после выполнения приведенной программы? int main(void) { struct test { unsigned int a : 2; unsigned int b : 8; }; int c; struct test t; t.b = 255; t.a = 3; c = t.b ^ t.a; printf("c = %d\n", c); return 0; }
- # Чему будет равно значение переменной c после выполнения приведенной программы? int main(void) { struct test { unsigned int a : 2; unsigned int b : 8; }; int c; struct test t; t.b = 255; t.a = 3; c = t.b | t.a; printf("c = %d\n", c); return 0; }
- # В каком случае приведено верное описание выполнения операции побитового отрицания ~ для числа 0х92С4?
- # В каком случае выполняется операция побитового исключающего ИЛИ (^)?
- # В каком случае выполняется операция побитового включающего ИЛИ (|)?
- # Значения каких переменных будут четными? a = 6 & 5; b = 6 | 5; c = 6 ^ 5;
- # Значения каких переменных будут нечетными? a = 6 & 5; b = 6 | 5; c = 6 ^ 5;
- # Значение какой переменной будет наибольшим? a = 6 & 5; b = 6 | 5; c = 6 ^ 5;
- # Какое действие выполняет приведенная программа? int main(void) { int date; int year = 26; int month = 12; int day = 31; year = year << 9; month = month << 5; date = day; date = date | month; date = date | year; return 0; }
- # Чему будет равно значение переменной year в результате выполнения приведенного фрагмента кода? int year = 26; year = year << 9;
- # Чему будет равно значение переменной d в результате выполнения приведенного фрагмента кода? int d; int a = 10; int b = 15; a >>= 1; b <<= 1; d = a + b;
- # Какие функции могут использоваться функциями из других файлов? extern int x, y; extern char ch; static void func1(void) { y = 100; } int func2(int a) { int b; b = a; return b; } extern void func2(void) { x = y/10; ch = 'R'; }
- # Какие функции не могут использоваться функциями из других файлов? extern int x, y; extern char ch; static void func1(void) { y = 100; } int func2(int a) { int b; b = a; retun b; } extern void func2(void) { x = y/10; ch = 'R'; }
- # Какие функции могут использоваться функциями из других файлов? int func1(int a); static void func2(void); extern void func3(void);
- # При какой продолжительности хранения память распределяется в начале выполнения программы и остается занятой на протяжении всего выполнения?
- # При какой продолжительности хранения память под переменную выделяется в момент, когда выполнение программы входит в блок, в котором эта переменная определена, и освобождается, когда выполнение программы покидает этот блок?
- # Каким образом выделяется память при статической продолжительности хранения?
- # Какое связывание имеет переменная с областью видимости в пределах блока?
- # В каком случае переменная может быть использована в файле, содержащем ее определение?
- # В каком случае переменная может быть использована в других файлах?
- # В каких функциях видна переменная t? int c = 9; int sum(int a, int b) { return a+b; } int t = 8; int main(void) { int n=4, m=3, s1, s2; s1 = sum(n,m); s2 = mul(n,m); return 0; } int mul(int a, int b) { return a*b; }
- # Какие из перечисленных переменных видны в функции main()? int c = 9; int sum(int a, int b) { return a+b; } int t = 8; int main(void) { int n=4, m=3, s1, s2; s1 = sum(n,m); s2 = mul(n,m); return 0; } int k = 6; int mul(int a, int b) { return a*b; }
- # Какие из перечисленных переменных видны в функции sum()? int c = 9; int sum(int a, int b) { return a+b; } int t = 8; int main(void) { int n=4, m=3, s1, s2; s1 = sum(n,m); s2 = mul(n,m); return 0; } int k = 6; int mul(int a, int b) { return a*b; }
- # В каком случае переменные a и b видны в функции main()?
- # В каком случае переменные a и b будут невидны в функции main()?
- # Как можно решить проблему невидимости переменных a и b в функции main() для приведенного фрагмента кода? int main (void) { printf("a = %d; b = %d\n", a, b); printf("Press any key: "); _getch(); return 0; } int a = 33, b = 34;
- # Чему будет равно значение переменной s после выполнения приведенного фрагмента кода? int test(); int a = 1; int main (void) { int b, s; extern int x; static int c; int a; a = 2; s = test(); return 0; } int test() { int t = a; return t; }
- # Для какой локальной переменной, заданной в приведенном фрагменте кода, память выделяется при входе в блок и освобождается при выходе из него? int test(); int a = 1; int main (void) { int b, s; extern int x; static int c; s = test(); return 0; } int test() { int t = a; return t; } int x = 4;
- # Какая локальная переменная, заданная в приведенном фрагменте кода, располагается в сегменте данных и существует все время, пока работает программа? int test(); int a = 1; int main (void) { int b, s; extern int x; static int c; s = test(); return 0; } int test() { int t = a; return t; } int x = 4;
- # Какая ошибка содержится в приведеном фрагменте кода? int min(int, int); int t; int main(void) { register int x=-5, y=5, m; int *p; p = &x; m = min(x,y); printf("min = %d\n", m); return 0; } int min(register int a, register int b) { int m = (a<b) ? a : b; return m; }
- # Для каких переменных разрешено применение спецификатора register? int min(int, int); int t; int main(void) { int x=-5, y=5, m; m = min(x,y); printf("min = %d\n", m); return 0; } int min(int a, int b) { int m = (a<b) ? a : b; return m; }
- # Для каких переменных не допускается применение спецификатора register? int min(int, int); int t; int main(void) { int x=-5, y=5, m; m = min(x,y); printf("min = %d\n", m); return 0; } int min(int a, int b) { int m = (a<b) ? a : b; return m; }
- # Какие статические переменные видны в функции main()? int f(); static int d = 5, e = 8; int main(void) { int n = 1, m = 1; int s; s = f(); return 0; } int f() { int p; static int c = 0; p = c; printf("d = %d",d); return p; }
- # Какие статические переменные будут не видны в функции main()? int f(); static int d = 5, e = 8; int main(void) { int n = 1, m = 1; int s; s = f(); return 0; } int f() { int p; static int c = 0; p = c; printf("d = %d",d); return p; }
- # Какие статические переменные будут видны в функции f()? int f(); static int d = 5, e = 8; int main(void) { int n = 1, m = 1; int s; s = f(); return 0; } int f() { int p; static int c = 0; p = c; printf("d = %d",d); return p; }
- # Какой спецификатор используется для создания переменных, доступных во всех модулях программы, в которых они объявлены?
- # Какой период хранения имеют локальные переменные функции без явно определенного спецификатора?
- # Какой спецификатор используется для создания переменных, значение которых сохраняется в регистре центрального процессора, а не в памяти?
- # Что обозначает подключение #include "..\..\some.h"?
- # Что обозначает подключение #include "..\some.h"?
- # Каким образом должен быть подключен файл some.h, находящийся на два уровня выше, чем главный файл?
- # Для чего используется класс статической памяти?
- # Какое утверждение является верным?
- # Какие утверждения являются неверными?
- # Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций: extern int x, y; extern char ch; void func22(void) { y = 100; } void func23(void) { x = y/10; ch = 'R'; } В каком случае выполняется неверное подключение файла second.h в другом файле?
- # Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций: extern int x, y; extern char ch; void func22(void) { y = 100; } void func23(void) { x = y/10; ch = 'R'; } В каком случае подключение файла second.h в другом файле выполняется верно?
- # Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций: extern int x, y; extern char ch; void func22(void) { y = 100; } void func23(void) { x = y/10; ch = 'R'; } Каким образом файл second.h должен быть подключен для возможности использования описанных в нем переменных и функций в другом файле?
- # Какая рекурсия называется прямой?
- # Какие утверждения являются верными?
- # Какие утверждения являются неверными?
- # Какое достоинство имеет использование рекурсии?
- # Какие достоинства имеет использование рекурсии?
- # Какие утверждения являются верными?
- # В каком случае вычисление факториала выполняется с помощью рекурсивной функции?
- # В каком случае для вычисления факториала не используется рекурсия?
- # Задана функция вычисления факториала: long fact(long n) { if (n==0 || n==1) return 1; return (n * fact(n-1)); } Какое утверждение является верным?
- # Задана функция вычисления факториала: long fact(long n) { return (n>1) ? n * fact(n-1) : 1; } Когда завершится рекурсивный процесс?
- # Задана функция вычисления факториала: long fact(long n) { return (n>1) ? n * fact(n-1) : 1; } При каком значении завершится рекурсивный процесс?
- # Задана функция вычисления факториала: long fact(long n) { return (n>1) ? n * fact(n-1) : 1; } Какое утверждение является неверным?
- # Что такое глубина рекурсии?
- # Что такое текущий уровень рекурсии?
- # Что такое базовый уровень рекурсии?
- # В какой программе используется косвенная рекурсия?
- # В какой программе используется прямая рекурсия?
- # Какие утверждения являются верными для приведенной программы? void fillOnly(int); void free_n(int); void fill_n(int); int main (void) { int n = 1; int in = 1; printf("\n Enter a length of string (naturel number): "); in = scanf_s("%i", &n); if (in != 1 || n < 1 || n > 15) { printf("\n Error input. Press any key to exit: "); _getch(); exit(0); } puts("\n\tResult:"); fill_n(n); printf("\n\n Press any key to exit: "); _getch(); return 0; } void fillOnly(int n) { if (n == 1) printf("\t%+3d\n", 1); else { fillOnly(n-1); printf("\t%+3d\n", n); free_n(n-1); } } void free_n(int n) { if (n == 1) printf("\t%+3d\n", -1); else { fillOnly(n-1); printf("\t%+3d\n", -n); free_n(n-1); } } void fill_n(int n) { if (n == 1) printf("\t%+3d\n", 1); else { if (n == 2) printf("\t%+3d\n\t%+3d\n", 1, 2); else { fillOnly(n-1); printf("\t%+3d\n", n); fill_n(n-2); } } }
- # Необходимо решить задачу поиска пути между двумя городами. Карта дорог представлена в виде графа: [Большая Картинка]Процесс поиска представлен как последовательность шагов. На каждом шаге с использованием некоторого критерия выбирается точка, в котороую можно попасть из текущей. Если очередная выбранная точка совпала с заданной конечной точкой, то маршрут найден. Если не совпала - выполняется еще один шаг. Поскольку текущая точка может быть соединена с несколькими другими, то сначала выбирается точка с наименьшим номером. Для решения задачи задана программа (для появснения в программе приведены комментарии): #define N 8 void step(int, int, int); int map[N][N]; // карта: map[i,j]!=0, если точки i и j соединены int road[N]; // маршрут - номера точек карты int incl[N]; // incl[i]==1, если точка с номером i включена в road int start; // начальная точка маршрута int finish; // конечная точка маршрута int i, j; int main (void) { // инициализация массивов for (i=1; i<=N; i++) road[i] = 0; for (i=1; i<=N; i++) incl[i] = 0; for (i=1; i<=N; i++) for (j=1; j<=N; j++) map[i][j] = 0; // ввод значений элементов карты map[1][2] = 1; map[2][1] = 1; map[1][3] = 1; map[3][1] = 1; map[1][4] = 1; map[4][1] = 1; map[3][4] = 1; map[4][3] = 1; map[3][7] = 1; map[7][3] = 1; map[4][6] = 1; map[6][4] = 1; map[5][6] = 1; map[6][5] = 1; map[5][7] = 1; map[7][5] = 1; map[6][7] = 1; map[7][6] = 1; printf("Введите через пробел номер начальной и конечной точек: "); scanf("%d %d", &start, &finish); road[1] = start; // внести точку в маршрут incl[1] = 1; // пометить точку как включенную step(start, finish, 2); return 0; } void step(int s, int f, int p) { int c; // номер точки, в которую делается очередной шаг int i; if (s==f) { printf("Путь: "); for (i=1; i<=p-1; i++) printf("%d ", road[i]); printf("\n"); } else { // выбор очередной точки for (c=1; c<=N; c++) // проверка всех вершин if (map[s][c]!=0 && incl[c]==0) { // точка соединена с текущей и не включена в маршрут <Рекурсивный вызов - вариант 1> road[p] = c; // добавление вершины в путь incl[c] = 1; // пометка вершины как включенной <Рекурсивный вызов - вариант 2> incl[c] = 0; road[p] = 0; <Рекурсивный вызов - вариант 3> } } } В каком из отмеченных мест программы необходимо выполнить рекурсивный вызов функции step(c, f, p+1);?
- # Необходимо решить задачу поиска пути между двумя городами. Карта дорог представлена в виде графа: [Большая Картинка]Процесс поиска представлен как последовательность шагов. На каждом шаге с использованием некоторого критерия выбирается точка, в котороую можно попасть из текущей. Если очередная выбранная точка совпала с заданной конечной точкой, то маршрут найден. Если не совпала - выполняется еще один шаг. Поскольку текущая точка может быть соединена с несколькими другими, то сначала выбирается точка с наименьшим номером. Определите, выполняет ли приведенная программа поставленную задачу (для появснения в программе приведены комментарии): #define N 7 void step(int, int, int); int map[N][N]; // карта: map[i,j]!=0, если точки i и j соединены int road[N]; // маршрут - номера точек карты int incl[N]; // incl[i]==1, если точка с номером i включена в road int start; // начальная точка маршрута int finish; // конечная точка маршрута int i, j; int main (void) { // инициализация массивов for (i=0; i<N; i++) road[i] = 0; for (i=0; i<N; i++) incl[i] = 0; for (i=0; i<N; i++) for (j=0; j<N; j++) map[i][j] = 0; // ввод значений элементов карты map[0][1] = 1; map[1][0] = 1; map[0][2] = 1; map[2][0] = 1; map[0][3] = 1; map[3][0] = 1; map[2][3] = 1; map[3][2] = 1; map[2][6] = 1; map[6][2] = 1; map[3][5] = 1; map[5][3] = 1; map[4][5] = 1; map[5][4] = 1; map[4][6] = 1; map[6][4] = 1; map[5][6] = 1; map[6][5] = 1; printf("Введите через пробел номер начальной и конечной точек: "); scanf("%d %d", &start, &finish); road[0] = start; // внести точку в маршрут incl[0] = 1; // пометить точку как включенную step(start, finish, 2); return 0; } void step(int s, int f, int p) { int c; // номер точки, в которую делается очередной шаг int i; if (s==f) { printf("Путь: "); for (i=0; i<p-1; i++) printf("%d ", road[i]); printf("\n"); } else { // выбор очередной точки for (c=0; c<N; c++) // проверка всех вершин if (map[s][c]!=0 && incl[c]==0) { // точка соединена с текущей и не включена в маршрут road[p] = c; // добавление вершины в путь incl[c] = 1; // пометка вершины как включенной step(c, f, p+1); incl[c] = 0; road[p] = 0; } } }
- # Необходимо решить задачу поиска пути между двумя городами. Карта дорог представлена в виде графа: [Большая Картинка]Процесс поиска представлен как последовательность шагов. На каждом шаге с использованием некоторого критерия выбирается точка, в котороую можно попасть из текущей. Если очередная выбранная точка совпала с заданной конечной точкой, то маршрут найден. Если не совпала - выполняется еще один шаг. Поскольку текущая точка может быть соединена с несколькими другими, то сначала выбирается точка с наименьшим номером. Для решения данной задачи задана программа (для появснения в программе приведены комментарии): #define N 8 void step(int, int, int); int map[N][N]; // карта: map[i,j]!=0, если точки i и j соединены int road[N]; // маршрут - номера точек карты int incl[N]; // incl[i]==1, если точка с номером i включена в road int start; // начальная точка маршрута int finish; // конечная точка маршрута int i, j; int main (void) { // инициализация массивов for (i=0; i<N; i++) road[i] = 0; for (i=0; i<N; i++) incl[i] = 0; for (i=0; i<N; i++) for (j=0; j<N; j++) map[i][j] = 0; // ввод значений элементов карты map[1][2] = 1; map[2][1] = 1; map[1][3] = 1; map[3][1] = 1; map[1][4] = 1; map[4][1] = 1; map[3][4] = 1; map[4][3] = 1; map[3][7] = 1; map[7][3] = 1; map[4][6] = 1; map[6][4] = 1; map[5][6] = 1; map[6][5] = 1; map[5][7] = 1; map[7][5] = 1; map[6][7] = 1; map[7][6] = 1; printf("Введите через пробел номер начальной и конечной точек: "); scanf("%d %d", &start, &finish); road[1] = start; // внести точку в маршрут incl[1] = 1; // пометить точку как включенную step(start, finish, 2); return 0; } void step(int s, int f, int p) { int c; // номер точки, в которую делается очередной шаг int i; if (s==f) { printf("Путь: "); for (i=1; i<=p-1; i++) printf("%d ", road[i]); printf("\n"); } else { // выбор очередной точки for (c=1; c<=N; c++) // проверка всех вершин if (map[s][c]!=0 && incl[c]==0) { // точка соединена с текущей и не включена в маршрут road[p] = c; // добавление вершины в путь incl[c] = 1; // пометка вершины как включенной step(c, f, p+1); incl[c] = 0; road[p] = 0; } } } Какие утверждения являются неверными для приведенной программы?
- # Необходимо написать программу, которая будет определять, является ли заданная строка палиндромом (палиндром - это слово, которое читается одинаково слева направо и справа налево). Решение данной задачи основывается на просмотре строки одновременно слева направо и справа налево и сравнении соответствующих символов. Если в какой-то момент символы не совпадают, делается вывод о том, что строка не является палиндромом, если же удается достичь середины строки и при этом все соответствующие символы совпали, то строка является палиндромом. Какая программа выполняет поставленную задачу?
- # Приведенная программа должна определять, является ли заданная строка палиндромом (палиндром - это слово, которое читается одинаково слева направо и справа налево). В программе выполняется просмотр строки одновременно слева направо и справа налево и сравнение соответствующих символов. Если в какой-то момент символы не совпадают, делается вывод о том, что строка не является палиндромом, если же удается достичь середины строки и при этом все соответствующие символы совпали, то строка является палиндромом: char s[100]; int pal(char s[100]); int main() { printf("\nВведите строку: "); gets(s); if (pal(s)) printf("Строка является палиндромом"); else printf("Строка не является палиндромом"); return 0; } int pal(char s[100]) { int l; char s1[100]; if (strlen(s) = 1) return 1; else { l=s[0]==s[strlen(s)-1]; strncpy(s1, s+1, strlen(s)-2); s1[strlen(s)-2]='\0'; return l&&pal(s1); } } Выполняет ли программа поставленную задачу?
- # Приведенная программа должна определять, является ли заданная строка палиндромом (палиндром - это слово, которое читается одинаково слева направо и справа налево). В программе выполняется просмотр строки одновременно слева направо и справа налево и сравнение соответствующих символов. Если в какой-то момент символы не совпадают, делается вывод о том, что строка не является палиндромом, если же удается достичь середины строки и при этом все соответствующие символы совпали, то строка является палиндромом: char s[100]; int pal(char s[100]); int main() { printf("\nВведите строку: "); gets(s); if (pal(s)) printf("Строка является палиндромом"); else printf("Строка не является палиндромом"); return 0; } int pal(char s[100]) { int l; char s1[100]; if (strlen(s)<1) return 1; else { l=s[0]==s[strlen(s)-1]; strncpy(s1, s+1, strlen(s)-2); s1[strlen(s)-2]='\0'; return l&&pal(s1); } } Какое граничное условие имеет реализованная в программе рекурсия?
- # Какая программа верно вычисляет сумму элементов массива с помощью рекурсии?
- # Что произойдет при выполнении программы? int summa(int N, int a[6]); int main() { int i,n; int a[6] = {8, 65, 10, 2, 4, 1}; n = sizeof(a)/sizeof(a[0]); printf("Сумма: %d", summa(n-1, a)); } int summa(int N, int a[6]) { return a[N]+summa(N-1, a); }
- # Что произойдет при выполнении программы? int summa(int N, int a[6]); int main() { int i,n; int a[6] = {8, 65, 10, 2, 4, 1}; n = sizeof(a)/sizeof(a[0]); printf("Сумма: %d", summa(n-1, a)); } int summa(int N, int a[6]) { if (N==0) return a[0]; else return a[N]+summa(N-1, a); }
- # Какие новые объекты создаются при рекурсивном вызове функции?
- # Какое утверждение являотся верным?
- # Какие утверждения являются неверными?
- # Задана функция вычисления факториала: long fact (int n){ if ( n<1 ) return 1; else return n*fact(n-1); } Какой будет последовательность вызов, если в функции main задать long result=fact(3)?
- # Задана функция вычисления факториала: long fact (int n){ if ( n<1 ) return 1; else return n*fact(n-1); } Какая последовательность вызовов будет неверной, если в функции main задать long result=fact(3)?
- # В функции [Большая Картинка]Каким образом должна выглядеть функция fact()?
- # Какие из перечисленных задач могут быть решены с помощью рекурсии?
- # В арифметической прогрессии каждый следующий член равен предыдущему, увеличенному на разность прогрессии: a{i} = a{i-1} + d. Приведенная программа содержит рекурсивную функцию для вычисления заданного члена арифметической прогрессии: int Sum(int x, int step, int n) { if (n==1) return(x); else return(Sum(x, step, n-1)+step); } int main() { int x, s, n; int pr; printf("Введите первый член, число элементов и разность прогрессии:"); scanf("%d %d %d", &x, &n, &s); <Вызов функции sum()> printf("pr = %d", pr); return 0; } Пользователь вводит данные для вычисления через пробел в следующей последовательности: первый член арифметической прогрессии, разность прогрессии, количестов элементов. В какой последовательности эти параметры должны быть заданы при вызове рекурсивной функии sum()?
- # В арифметической прогрессии каждый следующий член равен предыдущему, увеличенному на разность прогрессии: a{i} = a{i-1} + d. Приведенная программа содержит рекурсивную функцию для вычисления заданного члена арифметической прогрессии: int Sum(int x, int step, int n) { if (n==1) return(x); else return(Sum(x, step, n-1)+step); } int main() { int x, s, n; int pr; printf("Введите первый член, число элементов и разность прогрессии:"); scanf("%d %d %d", &x, &n, &s); <Вызов функции sum()> printf("pr = %d", pr); return 0; } Пользователь вводит данные для вычисления через пробел в следующей последовательности: первый член арифметической прогрессии, разность прогрессии, количестов элементов. Какая последовательность задания этих параметров является неверной для вызова рекурсивной функии sum()?
- # Что такое директива препроцессора?
- # Что такое препроцессор?
- # Какие действия выполняет препроцессор языка С?
- # Какая строка является недопустимой?
- # Какая строка является недопустимой?
- # Каким образом несколько директив могут быть объявлены в одной строке?
- # Почему при использовании макросов с формальными параметрами увеличивается скорость выполнения кода?
- # Засчет чего достигается увеличение скорости выполнения кода при использовании макроса с формальными параметрами очень большого размера?
- # Какое влияние на скорость выполнения кода оказывает использование макросов с формальными параметрами?
- # Чему будет равно значение переменной x в результате выполнения приведенной программы? #include <stdio.h> #define SQR(x) (x*x) int main() { int x, y=2; x = SQR(y+1); printf("x = %d", x); return 0; }
- # Чему будет равно значение переменной x в результате выполнения приведенной программы? #include <stdio.h> #define SQR(x) (x*x) int main() { int x, y=2; x = SQR(y+1); printf("x = %d", x); return 0; }
- # Чему будет равно значение переменной z в результате выполнения приведенной программы? #include <stdio.h> #define DIV(x, y) (x/y) int main() { float x=2.0, y=2.0; float z; z = DIV(x+1, y+1); printf("x = %.1f", x); return 0; }
- # В программе задан макрос #define MAX(x, y) ((x)>(y) ? (x) : (y)). В какой из приведенных программ он может быть использован?
- # В программе задан макрос #define MAX(x, y) ((x)>(y) ? (x) : (y)). Для каких переменных он может быть использован?
- # Каким образом должен быть задан макрос MAX, чтобы приведенная программа корректно работала? int main() { char a, b; printf("Введите два символа (через пробел): "); scanf("%c %c", &a, &b); printf("Наибольшим числом является %c", MAX(a, b)); return 0; }
- # Приведенная программа выводит на экран сочетания имён и фамилий, которые хранятся в подключаемом файле arr.txt: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> #ifndef ARR #define ARR #include "..\arr.txt" #endif int main (void) { int i = 0 , j = 0, n; setlocale (LC_ALL, "rus"); printf("Введите количество человек (от 1 до 3): "); scanf("%d", &n); if (n<1 || n>3) { printf("Ошибка ввода данных. Нажмите любую клавишу: "); _getch(); exit(1); } #ifdef ARR for (i=0; i<n; i++) printf("%d. %s %s\n", i+1, names[i], surnames[i]); #endif return 0; } Содержание файла arr.txt: char *names[] = {"Иван", "Пётр", "Илья"}; char *surnames[] = {"Иванов", "Пётров", "Ильин"}; Где должен храниться подключаемый файл?
- # Необходимо написать программу, которая выводит на экран сочетания имён и фамилий, которые хранятся в подключаемом файле arr.txt. Содержание файла arr.txt: char *names[] = {"Иван", "Пётр", "Илья"}; char *surnames[] = {"Иванов", "Пётров", "Ильин"}; Файл arr.txt хранится с исполняемым файлом в одном каталоге. Какая программа выполняется поставленную задачу?
- # Что произойдет при выполнении приведенной программы: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> #ifndef ARR #define ARR #include <arr.txt> #endif int main (void) { int i = 0 , j = 0, n; setlocale (LC_ALL, "rus"); printf("Введите количество человек (от 1 до 3): "); scanf("%d", &n); if (n<1 || n>3) { printf("Ошибка ввода данных. Нажмите любую клавишу: "); _getch(); exit(1); } #ifdef ARR for (i=0; i<n; i++) printf("%d. %s %s\n", i+1, names[i], surnames[i]); #endif return 0; } Содержание подключаемого файла arr.txt: char *names[] = {"Иван", "Пётр", "Илья"}; char *surnames[] = {"Иванов", "Пётров", "Ильин"};
- # Что обозначает подключение #include "..\..\some.h"?
- # Что обозначает подключение #include "..\some.h"?
- # Каким образом должен быть подключен файл some.h, находящийся на два уровня выше, чем главный файл?
- # Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций: extern int x, y; extern char ch; void func22(void) { y = 100; } void func23(void) { x = y/10; ch = 'R'; } В каком случае выполняется неверное подключение файла second.h в другом файле?
- # Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций: extern int x, y; extern char ch; void func22(void) { y = 100; } void func23(void) { x = y/10; ch = 'R'; } В каком случае подключение файла second.h в другом файле выполняется верно?
- # Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций: extern int x, y; extern char ch; void func22(void) { y = 100; } void func23(void) { x = y/10; ch = 'R'; } Каким образом файл second.h должен быть подключен для возможности использования описанных в нем переменных и функций в другом файле?
- # Для чего применяются директивы условной компиляции (#if, #ifdef, #ifndef)?
- # Какие директивы относятся к директивам условной компиляции?
- # Ниже приведен фрагмент условного включения различных версий заголовочного файла: #if VERSION == 1 #define INCFILE "vers1.h" #elseif VERSION == 2 #define INCFILE "vers1.h" #else #define INCFILE "versN.h" #endif #include INCFILE Какие из используемых в заданном фрагменте директив относятся к директивам условной компиляции?
- # В каком случае директива #define определяет макрос?
- # В каком случае директива #define определяет символическую константу?
- # В каком случае директива #define определяет символы, управляющие условной компиляцией?
- # Какое действие выполняется при использовании заданного набора директив? #ifndef HEADER_INCLUDED #include "arr.h" #define HEADER_INCLUDED #enif
- # В каком случае будет подключен файл arr.h? #ifndef ARR #define ARR #include "arr.txt" #endif
- # Для чего используется приведенный фрагмент кода? #ifndef HEADER_INCLUDED #include "arr.h" #define HEADER_INCLUDED #enif
- # В каком случае на экран будут выведены сочетания имен и фамилий, заданных в файле arr.h? Содержание файла arr.h: char *names[] = {"Иван", "Пётр", "Илья"}; char *surnames[] = {"Иванов", "Пётров", "Ильин"};
- # В каком случае сочетания имен и фамилий, заданных в файле arr.h, не будут выведены на экран? Содержание файла arr.h: char *names[] = {"Иван", "Пётр", "Илья"}; char *surnames[] = {"Иванов", "Пётров", "Ильин"};
- # Задана программа, в которой выполняется подключение файла arr.h: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> #ifndef ARR #define ARR #include "arr.txt" #endif int main (void) { int i = 0 , j = 0, n; setlocale (LC_ALL, "rus"); printf("Введите количество человек (от 1 до 3): "); scanf("%d", &n); if (n<1 || n>3) { printf("Ошибка ввода данных. Нажмите любую клавишу: "); _getch(); exit(1); } #undef ARR #ifdef ARR for (i=0; i<n; i++) printf("%d. %s %s\n", i+1, names[i], surnames[i]); #endif return 0; } Содержание файла arr.h: char *names[] = {"Иван", "Пётр", "Илья"}; char *surnames[] = {"Иванов", "Пётров", "Ильин"}; Определите, будут ли выведены на экран сочетания имён и фамилий из файла arr.h при выполнении приведенной программы? Если не будут, то почему?
- # Что является достоинством языка С?
- # Что является недостатком языка С?
- # По какой причине использование языка С предъявляет высокие требования к квалификации использующего его программиста?
- # Почему язык С относится к языку среднего уровня?
- # Какое утверждение является верным?
- # Какая папка предназначена для хранения файлов с исходным кодом в проекте, созданном в среде Microsoft Visual Studio 2010? [Большая Картинка]
- # Для чего предназначена папка External Dependencies в проекте, созданном в среде Microsoft Visual Studio 2010? [Большая Картинка]
- # Для чего предназначена папка Resource Files в проекте, созданном в среде Microsoft Visual Studio 2010? [Большая Картинка]
- # Какой файл проекта, созданного в Microsoft Visual Studio 2010, содержит настройки среды Visual Studio (информацию об открытых окнах, их расположении и прочих пользовательских параметрах)? [Большая Картинка]
- # Какую информацию содержит файл Example.sln проекта, созданного в Microsoft Visual Studio 2010? [Большая Картинка]
- # Какую информацию содержит файл Example.suo проекта, созданного в Microsoft Visual Studio 2010? [Большая Картинка]
- # Переменные x и y объявлены следующим образом: int x; short y; Какие утверждения являются верными при выполнении арифметического выражения x + y?
- # Какой тип будет иметь переменная ch после выполнения приведения типов для вычисления значения d? char ch = 'a'; int a; float b; double c = 4.5; double d; printf("Enter a:"); scanf("%d", &a); printf("Enter b:"); scanf("%lf", &b); d = (double)ch + a + b + c;
- # Заданы переменные: char ch = 'a'; int a; float b; double c = 4.5; Какой тип получит арифметическое выражение ch + a + b + c?
- # В программе объявлены переменные: int x = 15, y = 2; float z; z = x/y; printf("z = %f\n", z); В результате выполнения какой операции будет выведено значение z = 7?
- # В программе объявлены переменные: int x = 15, y = 2; float z; z = x/y; printf("z = %f\n", z); В результате выполнения каких операций будет выведено значение z = 7.5?
- # Каким будет значение переменной d после выполнения заданных операций и почему? int a = 15, b = 2; float c = 1.0F; float d; d = c*(a/b);
- # Какой фрагмент кода не содержит ошибок?
- # Какой фрагмент кода содержит не более одной ошибки?
- # Какой фрагмент кода содержит ошибки?
- # Чем отличаются функции printf() и puts() при консольном выводе информации?
- # Какие утверждения являются верными?
- # Какие утверждения являются неверными?
- # Каким будет значение переменной FirstName после выполнения приведенного фрагмента кода, если в запросе программы пользователь введет данные о себе в виде Иван Иванов,30? char FirstName[100], LastName[100]; int Age; printf("Введите Ваши имя, фамилию и возраст: \n"); scanf("%[^,]s %s %d", FirstName, LastName, &Age);
- # Каким образом пользователь должен ввести данные о себе, чтобы в результате выполнения приведенного фрагмента кода программа вывела приветствие Приятно познакомиться, Иван Иванов!? char FirstName[100], LastName[100]; int Age; printf("Введите Ваши имя, фамилию и возраст: \n"); scanf("%s %[^,]s %d", FirstName, LastName, &Age); printf("Приятно познакомиться, %s %s!\n", FirstName, LastName);
- # В результате выполнения какого программного кода после ввода пользователем Иван Иванов, 30 будет выведено сообщениеПриятно познакомиться, Иван Иванов!?
- # Что будет выведено на экран в результате выполнения приведенного фрагмента кода на 32-битной платформе? printf("\n Maximum integer: %d\n ", INT_MAX);
- # Какой дипазон значений имеет тип unsigned int на 32-разрядных платформах?
- # Какой дипазон значений имеет тип int на 32-разрядных платформах?
- # Размер (в байтах) объектов каких типов данных не зависит от разрядности процессора?
- # Размер (в байтах) объектов каких типов данных зависит от разрядности процессора?
- # Какие утверждения являются верными?
- # Чему будет равен результат вычисления a + b, если переменные имеют заданные значения? int a = INT_MIN; int b = INT_MAX;
- # Чему будет равен результат вычисления a + b, если переменные имеют заданные значения? int a = SCHAR_MIN; int b = SCHAR_MAX;
- # Чему будет равен результат вычисления b - a, если переменные имеют заданные значения? int a = 2*SCHAR_MAX; int b = UCHAR_MAX;
- # Как формально можно определить прототип функции main() с параметрами?
- # Какое формальное определение прототипа функции main() с параметрами является неверным?
- # Какое формальное определение прототипа функции main() с параметрами является верным?
- # Программа запускается с одним аргументом командной строки. Аргументом является строка. Каким образом необходимо задать аргументы командной строки для корректной его обработки при работе программы?
- # Программа запускается с одним аргументом, задающим имя и фамилию, которые в результате выполнения программы выводятся в файл. Каким образом необходимо задать аргумент командной строки, чтобы имя и фамилия были выведены в файл в формате Имя Фамилия?
- # Программа запускается с одним аргументом, задающим имя и фамилию. В каком случае в файл будет выведено только имя?
- # С каким количеством аргументов командной строки запускается программа (считается, что аргумент в заданном виде обрабатывается корректно? [Большая Картинка]
- # С каким количеством аргументов командной строки запускается программа (считается, что аргумент в заданном виде обрабатывается корректно? [Большая Картинка]
- # С каким количеством аргументов командной строки запускается программа (считается, что аргумент в заданном виде обрабатывается корректно? [Большая Картинка]
- # Приведенная программа выводит в файл значения аргументов командной строки: int main(int argc, char* argv[]) { char name[30]; FILE *f; f = fopen("g:\\test.txt", "w+"); fprintf(f, "%s\n%s", argv[0], argv[1]); return 0; } Запуск программы выполняется из командной строки с помощью команды Example.exe arg1 arg2. Чему будет равно значение argv[0]?
- # Приведенная программа выводит в файл значения аргументов командной строки: int main(int argc, char* argv[]) { char name[30]; FILE *f; f = fopen("g:\\test.txt", "w+"); fprintf(f, "%s\n%s", argv[0], argv[1]); return 0; } Запуск программы выполняется из командной строки с помощью команды Example.exe arg1 arg2. На какую строку указывает argv[1]?
- # Приведенная программа выводит в файл значения аргументов командной строки: int main(int argc, char* argv[]) { char name[30]; FILE *f; f = fopen("g:\\test.txt", "w+"); fprintf(f, "%s\n%s", argv[0], argv[1]); return 0; } Запуск программы выполняется из командной строки с помощью команды Example.exe arg1 arg2. На какую строку указывает argv[2]?
- # Приведенная программа формирует сообщение об ошибке из отдельных строк в зависимости от значения аргумента командной строки, который задает степень критичности ошибки: #include <stdio.h> #include <conio.h> #include <stdarg.h> #include <stdlib.h> #include <locale.h> void error(int severity, ... ); int main(int argc, char* argv[]) { char err[][30] = {"Сообщение1", "Сообщение2"}; int n; setlocale (LC_ALL, "rus"); n = argv[1]; switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0; } void error(int severity, ... ) { va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n"); } Программа запускается из командной строки командой Example.exe 0. Какое сообщение будет выведено на экран?
- # Приведенная программа формирует сообщение об ошибке из отдельных строк в зависимости от значения аргумента командной строки, который задает степень критичности ошибки: #include <stdio.h> #include <conio.h> #include <stdarg.h> #include <stdlib.h> #include <locale.h> void error(int severity, ... ); int main(int argc, char* argv[]) { char err[][30] = {"Сообщение1", "Сообщение2"}; int n; setlocale (LC_ALL, "rus"); n = argv[1]; switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0; } void error(int severity, ... ) { va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n"); } Программа запускается из командной строки командой Example.exe 0. При этом вместо сообщения Ошибка! на экран выводится сообщение Ошибка! Сообщение1 Сообщение2. С чем это связано?
- # Приведенная программа формирует сообщение об ошибке из отдельных строк в зависимости от значения аргумента командной строки, который задает степень критичности ошибки: #include <stdio.h> #include <conio.h> #include <stdarg.h> #include <stdlib.h> #include <locale.h> void error(int severity, ... ); int main(int argc, char* argv[]) { char err[][30] = {"Сообщение1", "Сообщение2"}; int n; setlocale (LC_ALL, "rus"); n = atoi(argv[1]); switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0; } void error(int severity, ... ) { va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n"); } Программа запускается из командной строки командой Example.exe 0. Какое сообщение будет выведено на экран?
- # Необходимо написать программу, которая имеет два аргумента командной строки и вычислиет их сумму. Какая программа выполняет поставленную задачу?
- # Необходимо написать программу, которая имеет два аргумента командной строки и вычислиет их сумму. Какие из приведенных программ не выполняют поставленную задачу?
- # Необходимо написать программу, которая имеет два аргумента командной строки и вычислиет их разность. Какая программа выполняет поставленную задачу?
- # Задана программа, исполняемый файл которой имеет имя Example.exe: int main(int argc, char* argv[]) { int n1, n2, m, sum; m = argc; n1 = atoi(argv[1]); n2 = atoi(argv[2]); sum = n1 + n2; printf("sum = %d\n", sum); return 0; } Программа запускается из командной строки командой Example.exe 2 3 5. Чему будет равно значение переменной m?
- # Задана программа, исполняемый файл которой имеет имя Example.exe: int main(int argc, char* argv[]) { int n1, n2, m, sum; m = argc; n1 = atoi(argv[1]); n2 = atoi(argv[2]); sum = n1 + n2; printf("sum = %d\n", sum); return 0; } Программа запускается из командной строки командой Example.exe 2 3 5. Чему будет равно значение переменной sum?
- # Задана программа, исполняемый файл которой имеет имя Example.exe: int main(int argc, char* argv[]) { int n1, n2, n3, m, sum; m = argc; n1 = atoi(argv[1]); n2 = atoi(argv[2]); n3 = atoi(argv[3]); sum = n1 + n2 + n3 + m; printf("sum = %d\n", sum); return 0; } Программа запускается из командной строки командой Example.exe 2 3 5. Чему будет равно значение переменной sum?
- # Приведенная программа считает в обратном порядке, начиная с какого-либо значения (указанного в командной строке): int main(int argc, char *argv[]) { int disp, count; setlocale (LC_ALL, "rus"); if(argc<2) { printf("В командной строке на задано число\n"); exit(1); } if(argc==3 && !strcmp(argv[2], "display")) disp = 1; else disp = 0; for(count=atoi(argv[1]); count; --count) if(disp) printf("%d ", count); putchar('\a'); printf("Счет закончен"); return 0; } Что будет выведено на экран в результате выполнения приведенной программы, если ее запуск выполняется из командной строки командой Example.exe 5?
- # Приведенная программа считает в обратном порядке, начиная с какого-либо значения (указанного в командной строке): int main(int argc, char *argv[]) { int disp, count; setlocale (LC_ALL, "rus"); if(argc<2) { printf("В командной строке на задано число\n"); exit(1); } if(argc==3 && !strcmp(argv[2], "display")) disp = 1; else disp = 0; for(count=atoi(argv[1]); count; --count) if(disp) printf("%d ", count); putchar('\a'); printf("Счет закончен"); return 0; } Что будет выведено на экран в результате выполнения приведенной программы, если ее запуск выполняется из командной строки командой Example.exe?
- # Приведенная программа считает в обратном порядке, начиная с какого-либо значения (указанного в командной строке): int main(int argc, char *argv[]) { int disp, count; setlocale (LC_ALL, "rus"); if(argc<2) { printf("В командной строке на задано число\n"); exit(1); } if(argc==3 && !strcmp(argv[2], "display")) disp = 1; else disp = 0; for(count=atoi(argv[1]); count; --count) if(disp) printf("%d ", count); putchar('\a'); printf("Счет закончен"); return 0; } Что будет выведено на экран в результате выполнения приведенной программы, если ее запуск выполняется из командной строки командой Example.exe 5 display?
- # Какая программа посимвольно выводит все аргументы, с которыми ее вызвали?
- # Что делает приведенная программа? int main(int argc, char *argv[]) { int t, i; for(t=0; t<argc-1; ++t) { i = 0; while(argv[t][i]) { putchar(argv[t][i]); ++i; } printf("\n"); } return 0; }
- # Что делает приведенная программа? int main(int argc, char *argv[]) { int t, i; for(t=0; t<argc; ++t) { i = 0; while(argv[t][i]) { putchar(argv[t][i]); ++i; } printf("\n"); } return 0; }
- # При каком условии запуска программы из командной строки значение argc будет равно 0? int main(int argc, char *argv[]) { int t; for(t=0; t<argc; ++t) printf("%s\n", argv[t]); return 0; }
- # При каком условии запуска программы из командной строки значение argc будет равно 1? int main(int argc, char *argv[]) { int t; for(t=0; t<argc; ++t) printf("%s\n", argv[t]); return 0; }
- # При какой команде запуска заданной программы из командной строки значение argc будет равно 1? int main(int argc, char *argv[]) { int t; for(t=0; t<argc; ++t) printf("%s\n", argv[t]); return 0; }
- # Каким образом будет предствален аргумент argv при запуске программы через командную строку echo Hello, world!?
- # При каком запуске программы [Большая Картинка]
- # При каком запуске программы [Большая Картинка]
- # Какое утверждение является верным?
- # Какие утверждения являются неверными?
- # Какие утверждения являются верными?
- # Какой цикл реализует приведенную структурную схему? [Большая Картинка]
- # Какой цикл реализует приведенную структурную схему? [Большая Картинка]
- # Какой цикл является циклом с предусловием?
- # В каком случае при выполнении приведенного кода возникнет зацикливание?
- # В каком случае при выполнении приведенного кода не возникнет зацикливания?
- # В каком случае при выполнении приведенного кода возникнет зацикливание?
- # Чему будет равно значение переменной y в результате выполнения приведенного фрагмента кода? int x = 5, y; for(y=1; y<=x; ++y) printf("%d ", y); y = x*2;
- # В результате выполнения какого фрагмента кода значение переменной y будет равно 10?
- # В результате выполнения какого фрагмента кода значение переменной y будет равно 11?
- # Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). В каком случае цикл будет выполнен хотя бы один раз для переменной num = 3?
- # Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). Пользователь ввел значение переменной num = 3. В каком случае значение переменной div не изменится?
- # Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). Пользователь ввел значение переменной num = 3. В каком случае цикл не выполнится ни одного раза?
- # Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?
- # Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?
- # Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?
- # Какое утверждение является верным для приведенного фрагмента кода? int x; printf("Угадайте число:\n"); for (x=0; x!=123; ) scanf("%d", &x);
- # Сколько раз будет выполнен цикл for? int x; printf("Угадайте число:\n"); for (x=0; x!=123; ) scanf("%d", &x);
- # Сколько раз будет выполнен цикл for? int x=123; printf("Угадайте число:\n"); for (x=0; x==123; ) scanf("%d", &x);
- # В результате выполнения какого фрагмента кода на экран будут выведены 5 строк по 5 звездочек?
- # В результате выполнения какого фрагмента кода на экран будут выведены 5 строк, в каждой из которых будет на 1 звездочку меньше, чем в предыдущей?
- # В результате выполнения какого фрагмента кода на экран будут выведены 5 строк, в каждой из которых будут содержаться звездочки, причем в каждой последующей строки будет на одну звездочку больше, чем в предыдущей?
- # Как организовать бесконечный цикл while?
- # В каком случае цикл for будет выполняться бесконечно?
- # В каком случае цикл for не будет бесконечным?
- # Что будет выводиться на экран во время выполнения приведенного фрагмента кода? int x, n = 1; while (n<=10) { x = n*n; printf("%d %d\n", n, x); }
- # В результате выполнения какого фрагмента кода на экран будет выведена таблица чисел от 1 до 10 и их квадратов?
- # В результате выполнения какого фрагмента кода на экран будет выведена таблица чисел от 1 до 9 и их квадратов?
- # Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Главный цикл игры реализован следующим образом: int c = 0, n = 100, m; do { printf("Ваш вариант: "); scanf("%d", &m); c++; } while <Условие> c - число попыток, n - задуманное число. Каким должно быть условие завершения игры?
- # Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Какой фрагмент кода правильным образом реализует эту игру, если c - число попыток, n - задуманное число?
- # Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Какой фрагмент кода реализует эту игру неверно, если c - число попыток, n - задуманное число?
- # Какое назначение может иметь в программе приведенный цикл без тела? for(t=0; t<SOME_VALUE; t++) ;
- # При вводе каких значений выполнение цикла завершится? int num; do { scanf("%d", &num); } while (num > 100);
- # При вводе каких значений выполнение цикла не будет завершено? int num; do { scanf("%d", &num); } while (num > 100);
- # Какие утверждения являются верными?
- # Какие утверждения являются неверными?
- # Какой оператор цикла обычно используется в случаях, когда цикл требуется обязательно выполнить хотя бы один раз?
- # Какая схема является структурной схемой условного оператора?
- # Структурная схема какого оператора представлена ниже? [Большая Картинка]
- # Структурная схема какого оператора представлена ниже? [Большая Картинка]
- # Какой оператор используется для прерывания программного цикла при некотором условии?
- # Какой оператор используется для выхода из функции при выполнении некоторых условий?
- # Какой оператор используется для продолжения итераций цикла при выполнении некоторых условий?
- # При каких значениях переменной A значение переменной cond будет равно 1? int cond; int A = 1; cond = (A >= 100) && (A <= 150);
- # При каких значениях переменной A значение переменной cond будет равно 0? int cond; int A = 1; cond = (A >= 100) && (A <= 150);
- # При каких значениях переменной A значение переменной cond будет равно 0? int cond,; cond = (A==5) || ((A>10) && (A<1));
- # В результате выполнения какого фрагмента кода на экран будут выведены числа от 0 до 10?
- # В результате выполнения какого фрагмента кода значение переменной t будет кратно 10?
- # В результате выполнения какого фрагмента кода значение переменной t будет равно 10?
- # В результате выполнения какого фрагмента кода значение переменной m будет равно 8?
- # Почему применение оператора goto не является хорошим стилем программирования?
- # Что делает приведенный фрагмент кода? int x = 0; loop1: x++; if (x<=5) { printf("%d \n", x); goto loop1; }
- # Какой фрагмент кода полностью аналогичен заданному? int x = 10, y; if(x>9) y = 100; else y = 200;
- # Какой фрагмент кода определяет максимальное из двух чисел?
- # Какой фрагмент кода определяет минимальное из двух чисел?
- # Дана программа определения дня недели: int x; printf("Введите число от 1 до 7: "); scanf_s("%d", &x); switch (x<=5 ? 1 : x==6 ? 2 : 3) { case 1: printf("Сегодня рабочий день"); break; case 2: printf("Сегодня суббота"); break; case 3: printf("Сегодня воскресенье"); break; default: printf("Ошибка! Вы ввели неверное число"); break; } Какое сообщение будет выведено на экран, если в запросе ввода пользователь задаст число 8?
- # При выполнении какого варианта программы определения дня недели при вводе числа 8 на экране будет выведено сообщение Ошибка! Вы ввели неверное число?
- # Дана программа определения дня недели: int x; printf("Введите число от 1 до 7: "); scanf_s("%d", &x); switch (x<=5 ? 1 : x==6 ? 2 : 3) { case 1: printf("Сегодня рабочий день"); break; case 2: printf("Сегодня суббота"); break; case 3: printf("Сегодня воскресенье"); break; default: printf("Ошибка! Вы ввели неверное число"); break; } Какое число нужно ввести, чтобы на экран было выведено сообщение Ошибка! Вы ввели неверное число?
- # Что будет выведено на экран в результате выполнения приведенных инструкций при попытке пользователя вычислить значение 5^6? int a, b, res = 0; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf("Неизвестная операция\n"); f = 0; } if (f) printf ("Результат: %d", res);
- # Чему будет равно значение переменной f при попытке пользователя вычислить значение 5^6? int a, b, res = 0; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf("Неизвестная операция\n"); f = 0; } f = f*2; if (f) printf ("Результат: %d", res);
- # Чему будет равен результат вычисления значения 5+6 в результате выполнения приведенного фрагмента кода? int a, b, res; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf("Неизвестная операция"); f = 0; } if (f) printf ("Результат: %d", res);
- # Каким будет результат выполнения приведенного фрагмента кода, если пользователь введет число 6? int num, half, div; printf("Введите число: "); scanf_s("%d", &num); half = num / 2; div = 2; do { if (!(num % div)) printf("%d ", div); div++; } while (div <= half);
- # В какой программе будет корректно обработана ситуация деления на нуль?
- # В какой программе ситуация деления на нуль обрабатывается некорректно?
- # Что будет выведено на экран в результате выполнения приведенного фрагмента кода? int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; return; printf("%d\n", n); n++; }
- # В результате выполнения какого фрагмента кода на экран будет выведено одно число?
- # В результате выполнения какого фрагмента кода на экран будет выведено больше одного числа?
- # В каком случае, если пользователь введет число -4, на экран будет выведено сообщение -4 в квадрате = -16?
- # В каком случае, если пользователь введет число 4, на экран будет выведено сообщение 4 в квадрате = -16?
- # Для каких значений переменной i в результате выполнения приведенного фрагмента кода знак квадрата числа будет противоположен знаку самого числа? int isqrd = 0, i; printf("Введите число: "); scanf("%d", &i); isqrd = (!(i%2) && i>0) ? i*i : -(i*i); printf("%d в квадрате %d", i, isqrd);
- # Задан цикл, который выводит все числа от 1 до 10: int n = 1; (1) while (n<=10) (2) { if (n%2) (3) printf("%d\n", n); (4) n++; (5) printf("%d\n", n); (6) n++; (7) } Как изменить приведенный цикл, чтобы на экран выводились только нечетные числа от 1 до 10?
- # В каком случае на экран будут выведены только нечетные числа от 1 до 10?
- # В каком случае на экран будут выведены только четные числа от 1 до 10?
- # Нужно посчитать количество продукции, выпущенной каждым заводом и количество продукции каждого наименования, выпущенной всеми заводами. Вычисленные и исходные данные объединены в таблицу: [Большая Картинка]Какой тип массива необходимо использовать для решения поставленной задачи?
- # Почему доступ к элементам многомерного массива происходит значительно медленнее, чем к элементам одномерного?
- # Какие утверждения являются верными?
- # Каким образом хранится в памяти массив a, начинающийся по адресу 1000 и объявленный как int a[7]?
- # Какие утверждения являются верными?
- # Каким образом выделяется память под двумерный массив int a[3][2]?
- # По какой формуле вычисляется общий размер одномерного массива в байтах?
- # По какой формуле вычисляется общий размер двумерного массива в байтах?
- # По какой формуле вычисляется общий размер многомерного массива в байтах?
- # При инициализации какого массива возникнет ошибка?
- # При инициализации какого массива не возникнет ошибок?
- # Почему при инициализации массива int arr2[][2] = {{1,2,3}, {4,5,6}}; возникнет ошибка компиляции?
- # В каком случае сумма всех элементов массива будет подсчитана правильно?
- # Чему будет равно значение переменной sum в результате выполнения приведенной программы? #include <stdio.h> #define N 10 int main() { int i, sum; int arr[N] = {3, 4, 5, 4, 4}; for (i = 1, sum = 0; i<N; i++) sum += arr[i]; printf("Сумма элементов: %d\n", sum); return 0; }
- # Какая программа вычисляет сумму только четных элементов массива?
- # Чему будет равно значение переменной i в результате выполнения приведенной программы? #include <stdio.h> #define N 10 #define M 5 int main() { int i; int arr1[N] = {3, 4, 5, 4}; int arr2[M] = {1, 6, 3, 7, 9}; i = sizeof(arr1)/sizeof(arr1[0]) + sizeof(arr2)/sizeof(arr2[0]); printf("i = %d\n", i); return 0; }
- # Какая программа позволяет определить размерность массива arr (для определения размерности массива используется переменная size)?
- # Какая программа позволяет определить общий размер массива arr в байтах (для определения размерности массива используется переменная size)?
- # Какая программа реализует сортировку массива целых чисел по возрастанию методом "пузырька" (методом прямого обмена)?
- # Какая программа реализует сортировку массива целых чисел по убыванию методом "пузырька" (методом прямого обмена)?
- # Какая программа реализует сортировку массива целых чисел по убыванию методом прямого выбора?
- # Что делает приведенная программа? #include <stdio.h> #define N 5 int main() { int m, i; int arr[N] = {3, 2, 4, 5, 1}; m = 1; for (i=1; i<N; i++) if (arr[i]<arr[m]) m = i; printf("a[m] = %d", arr[m]); return 0; }
- # Что делает приведенная программа? #include <stdio.h> #define N 5 int main() { int m, i; int arr[N] = {3, 2, 4, 5, 1}; m = 1; for (i=1; i<N; i++) if (arr[i]>arr[m]) m = i; printf("a[m] = %d", arr[m]); return 0; }
- # Какая программа выполняет поиск максимального элемента в массиве?
- # В результате выполнения какой программы на экран будут выведены числа от 1 до 10 и для каждого числа его квадрат?
- # При выполнении какой программы возникнет ошибка, связанная с выходом за границы массива?
- # Какое утверждение является верным для приведенной программы? #include <stdio.h> #define N 11 int main() { int i; int arr[N][2]; for (i=1; i<N; i++) { arr[i][1] = i; arr[i][2] = i*i; } for (i=1; i<N; i++) printf("%d,%d\n", arr[i][1], arr[i][2]); return 0; }
- # Какая программа вычисляет сумму четных элементов двумерного массива?
- # Чему будет равно значение переменной sum после выполнения приведенной программы? #include <stdio.h> #define N 5 #define M 2 int main() { int i, j, sum=0; int arr[N][2] = {0,1,2,3,4,5,6,7,8,9}; for (i=0; i<N; i++) { for (j=0; j<M; j++) if (!(arr[i][j]%2)) sum+=arr[i][j]; } printf("sum = %d\n", sum); return 0; }
- # Что делает приведенная программы? #include <stdio.h> #define N 5 #define M 2 int main() { int i, j, sum=0; int arr[N][2] = {0,1,2,3,4,5,6,7,8,9}; for (i=0; i<N; i++) { for (j=0; j<M; j++) if (!(arr[i][j]%2)) sum+=arr[i][j]; } printf("sum = %d\n", sum); return 0; }
- # Чему будет равно значение переменной size в результате выполнения приведенного фрагмента кода? int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size = sizeof(arr)/sizeof(arr[0]);
- # Чему будет равно значение переменной size в результате выполнения приведенного фрагмента кода? int i, j, size; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size = sizeof(arr)/sizeof(arr[0][0]);
- # Какое утверждение будет истинным после выполнения приведенного фрагмента кода? int size1, size2, size3; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size1 = sizeof(arr)/sizeof(arr[0][0]); size2 = sizeof(arr)/sizeof(arr[0]); size3 = sizeof(arr);
- # Какая переменная после выполнения приведенного фрагмента кода определяет общий размер массива в байтах? int size1, size2, size3; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size1 = sizeof(arr)/sizeof(arr[0][0]); size2 = sizeof(arr)/sizeof(arr[0]); size3 = sizeof(arr);
- # Какой смысл приобретает переменная size1 после выполнения приведенного фрагмента кода? int size1, size2, size3; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size1 = sizeof(arr)/sizeof(arr[0][0]); size2 = sizeof(arr)/sizeof(arr[0]); size3 = sizeof(arr);
- # Какой смысл приобретает переменная size2 после выполнения приведенного фрагмента кода? int size1, size2, size3; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size1 = sizeof(arr)/sizeof(arr[0][0]); size2 = sizeof(arr)/sizeof(arr[0]); size3 = sizeof(arr);
- # Каким образом хранится в памяти массив a, начинающийся по адресу 1000 и объявленный как char a[7]?
- # Почему доступ к элементам многомерного символьного массива происходит значительно медленнее, чем к элементам одномерного?
- # Какие утверждения являются верными?
- # При выводе какой строки возникнут проблемы и почему? char str1[10] = "Course"; char str2[] = "Lection"; char str3[7] = "Example";
- # Строка инициализирована следующим образом: char str1[10] = "Course". Какое утверждение является верным?
- # Чему будет равно значение переменной n после выполнения приведенного фрагмента кода? int n = 0; char str2[10] = "Lection\0"; n = strlen(str2);
- # В результате выполнения какого фграгмента программного кода значение переменной n будет больше 7?
- # Чему будет равно значение переменной n после выполнения приведенного фрагмента кода? int n=0, num=10; char str1[10]="", str2[10]="Lection"; _itoa(num, str1, 10); strcat(str2, str1); n = strlen(str2);
- # Заданы две строки: char str1[10] = "Lection"; char str2[10] = "Lection\0"; Какое утверждение является верным?
- # Заданы две строки: char str1[10] = "Lection"; char str2[10] = "lection"; Какое утверждение является верным?
- # Заданы две строки: char str1[10] = "Lection"; char str2[10] = "lection"; Какое утверждение является верным и почему?
- # Ниже приведено несколько вариантов программы для преобразования строчных букв в прописные. Преобразование выполняется на основе таблицы кодов ASCII и основано на том, что для всех букв латинского алфавита код прописной буквы больше кода строчной буквы на 32. В результате выполнения какой программы заданная пользователем строка из строчных букв будет выведена на экран прописными буквами?
- # Каким будет результат выполнения приведенной программы? #include <stdio.h> #include <string.h> #define N 10 int main() { char ch, strLow[N] = "test"; int i = 0; ch= strLow[0]; while (ch!='\0') { putchar(strLow[i] - 32); i++; ch= strLow[i]; } printf("\n"); return 0; }
- # Каким будет результат выполнения приведенной программы? #include <stdio.h> #include <string.h> #define N 10 int main() { char strLow[N]; int i; printf("Enter string in low register (%d symbols): \n", N); scanf("%s", strLow); for (i=0; i<strlen(strLow); i++) putchar(strLow[i] - 32); printf("\n"); return 0; }
- # Какая программа реализует такое же преобразование, как функция strcpy(str2, str1);?
- # Аналогию какой функции представляет собой приведенная программа? #include <stdio.h> #include <string.h> #define N 10 int main() { int i = 0; char ch; char str1[N] = "test"; char str2[N] = ""; ch= str1[0]; while (ch!='\0') { str2[i] = str1[i]; i++; ch= str1[i]; } return 0; }
- # Какие утверждения будут верными после выполнения приведенной программы? #include <stdio.h> #include <string.h> #define N 10 int main() { int i = 0; char ch; char str1[N] = "test"; char str2[N]; ch= str1[0]; while (ch!='\0') { str2[i] = str1[i]; i++; ch= str1[i]; } return 0; }
- # Приведенный фрагмент кода должен запрашивать пароль не более трех раз: char s[5], psw[] = "password"; int i, k= 0; for (i=0; !k && i<3; i++) { printf("Введите пароль: \n"), gets(s); if (!(strcmp(s, psw))) k = 1; } if (k) printf("Добро пожаловать! TRUE"); else printf("Ошибка: Неверный пароль! FALSE"); Проверьте правильность этого кода для выполнения поставленной задачи и определите, сколько раз будет выполнен цикл for, если пользователь сразу введет верный пароль password?
- # Приведенный фрагмент кода должен запрашивать пароль не более трех раз: char s[5], psw[] = "password"; int i, k= 0; for (i=0; !k && i<3; i++) { printf("Введите пароль: \n"), gets(s); if (strcmp(s, psw)) k = 1; } if (k) printf("Добро пожаловать! TRUE"); else printf("Ошибка: Неверный пароль! FALSE"); Проверьте правильность этого кода для выполнения поставленной задачи и определите, сколько раз будет выполнен цикл for, если пользователь сразу введет верный пароль password?
- # Приведенный фрагмент кода должен запрашивать пароль не более трех раз: char s[5], psw[] = "password"; int i, k= 0; for (i=0; !k && i<3; i++) { printf("Введите пароль: \n"), gets(s); if (strcmp(s, psw)) k = 1; } if (k) printf("Добро пожаловать! TRUE"); else printf("Ошибка: Неверный пароль! FALSE"); Проверьте правильность этого кода для выполнения поставленной задачи и определите, сколько раз будет выполнен цикл for, если пользователь не знает верного пароля?
- # Каким будет результат выполнения приведенного программного кода? char t1 = 196; int i = 0; for (i=0; i<10; i++) printf("%c", t1);
- # В каком случае на экран в цикле будет выведен символ, код которого равен 196?
- # Используя таблицу кодировки символов ASCII, определите, что будет выведено на экран в результате выполнения приведенного фрагмента кода? int i = 0; char t1 = 218; char tr = 191; char b1 = 192; char br = 217; char g = 196; char v = 179; printf("%c", t1); for (i=0; i<32; i++) printf("%c",g); printf("%c\n", tr); printf("%c", v); for (i=0; i<32; i++) printf("%c",' '); printf("%c\n", v); printf("%c", b1); for (i=0; i<32; i++) printf("%c",g); printf("%c\n", br);
- # Аналогом какой стандартной функции является приведенный фрагмент кода? int i = 0; char str[10] = "Test"; while (str[i]!='\0') i++;
- # Аналогом какой стандартной функции является приведенный фрагмент кода? int i = 0; char str1[10] = "Test"; char str2[10] = ""; while (str1[i]!='\0') { str2[i] = str1[i]; i++; }
- # Аналогом какой стандартной функции является приведенный фрагмент кода? int i = 0, k = 0; char str1[10] = "Test"; char str2[10] = "Test1"; if (strlen(str1)>(strlen(str2))) k = 1; if (strlen(str1)<(strlen(str2))) k = -1; if (strlen(str1)==(strlen(str2))) while (str1[i]!='\0') { if (str2[i]!=str1[i]) { k = -1; break; } i++; }
- # Какая программа реализует сортировку массива целых чисел по возрастанию методом "пузырька" (методом прямого обмена)?
- # Используя таблицу кодов ASCII, определите, что будет выведено на экран в результате выполнения приведенной программы? #include <stdio.h> #define N 7 int main() { int i, j, k, buf; char arr[N] = "Lection"; for (i=0; i<N; i++) for (j=0; j<N-1; j++) { if (arr[j] > arr[j+1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } }; for (k=0; k<N; k++) printf("%c ", arr[k]); return 0; }
- # Используя таблицу кодов ASCII, определите, что будет выведено на экран в результате выполнения приведенной программы? #include <stdio.h> #define N 7 int main() { int i, j, k, buf; char arr[N] = "Lection"; for (i=0; i<N; i++) for (j=0; j<N-1; j++) { if (arr[j] < arr[j+1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } }; for (k=0; k<N; k++) printf("%c ", arr[k]); return 0; }
- # Какая программа реализует посимвольный ввод строки до тех пор, пока не будет нажата клавиша Enter, и последующий вывод введенной строки?
- # В каком случае окончанием ввода строки будет служить нажатие клавиши Enter?
- # Необходимо написать программу, в которой формирование строки будет выполняться через посимвольный ввод до тех пор, пока пользователь не нажмет клавишу Enter. После завершния ввода пользователя введенная строка должна быть выведена на экран. Определите, удовлетворяет ли приведенная программа поставленной задаче? Если не удовлетворяет, объясните, почему? #include <stdio.h> #include <conio.h> #define N 10 int main() { int i=0; char arr[N] = ""; printf("Last Name: "); while (i<N) { arr[i] = _getche(); if (arr[i]==13) break; i++; }; printf("\nYou have entered Last Name: %s", arr); return 0; }
- # Что делает приведенная программа? #include <stdio.h> #include <conio.h> int main() { int n=0, i=0; char ch, str[30]=""; printf("Введите строку: "); scanf("%s", str); printf("Введите символ: "); ch = _getche(); while(str[i]!='\0') { if(str[i]==ch) n++; i++; } return 0; }
- # Что делает приведенная программа? #include <stdio.h> #include <conio.h> int main() { int n=0, i=0, j=0; char ch, str[30]=""; printf("Введите строку: "); scanf("%s", str); printf("Введите символ: "); ch = _getche(); for(i=0; i<strlen(str); i++) { for (j=0; j<strlen(str); j++) { if(str[j]==str[i]) n++; } printf("\n%c - %d", str[i], n); n = 0; } printf("\n"); return 0; }
- # Какая программа определяет количество вхождений каждого символа в строку?
- # Какие элементы могут быть операндами оператора адресации &?
- # Какие элементы не могут быть операндами оператора адресации &?
- # Что такое указатель?
- # Какие утверждения будут верными после выполнения приведенного фрагмента кода? int x = 99; int *p1, *p2; p1 = &x; p2 = p1;
- # Чему будет равно значение переменной z после выполнения приведенного фрагмента кода? int x = 99, y = 100, z; int *p1, *p2, *p3; p1 = &x; p2 = &y; p3 = p2; x = y; z = *p1 + *p2 + *p3;
- # В каком случае значение переменной z будет равно изначальному значению переменной x?
- # Чему будут равны значения переменных a, b и c после выполнения приведенного фрагмента кода? char a='A', b='B', c='C'; char *pc; pc = &a; c = *pc; *pc = 'C'; b = a;
- # Чему будут равны значения переменных a, b и c после выполнения приведенного фрагмента кода? int a=10, b=20, c=30; int *ptr; ptr = &a; c = *ptr; *ptr = 30; b = a;
- # Чему будут равны значения переменных a, b и c после выполнения приведенного фрагмента кода? char a='A', b='B', c='C'; char *pc1, *pc2; pc1 = &c; pc2 = pc1; c = b; *pc2 = a;
- # Что делает приведенная программа? #include <stdio.h> #include <conio.h> int main() { int n=0, i=0, j=0; char ch, str[30]=""; char *ptr1, *ptr2; printf("Введите строку: "); scanf("%s", str); printf("Введите символ: "); ch = _getche(); ptr1 = str; while(*ptr1!='\0') { ptr2 = str; while (*ptr2!='\0') { if(*ptr1==*ptr2) n++; ++ptr2; } printf("\n%c - %d", *ptr1, n); n = 0; ++ptr1; } printf("\n"); return 0; }
- # Какая программа определяет количество вхождений каждого символа в строку?
- # Какая программа определяет количество вхождений каждого символа в строку?
- # В результате выполнения какого фрагмента кода значение разности p1 - p2 будет не больше 2?
- # В результате выполнения какого фрагмента кода значение разности p1 - p2 будет больше 2?
- # Чему будет равно значение переменной i после выполнения приведенного фрагмента кода? int i; char str[10] = "Test", *p1, *p2; p1 = str; p2 = p1; p2--; p1++; i = 2 * (p1 - p2);
- # Какая запись с использованием указателя эквивалента заданной записи инкремента? int x = 20; x++;
- # Какое выражение выполняет операцию инкремента значения, на которое ссылается указатель?
- # Какое действие будет выполнено первым при выполнении оператора *p++ = 10?
- # Какие операции допустимы для заданных переменных? int n = 123, t; void *p; int *pn; pn = &n;
- # Какие операции недопустимы для заданных переменных? int n = 123, t; void *p; int *pn; pn = &n;
- # При компиляции какого фрагмента кода возникнет ошибка?
- # Требуется написать программу, которая будет копировать одну строку в другую с помощью указателей. Какая программа выполняет поставленную задачу?
- # Требуется написать программу, которая будет копировать одну строку в другую с помощью указателей. Определите, выполняет ли приведенная программа поставленную задачу? Если не выполняет, объясните, почему? #include <stdio.h> #include <conio.h> int main() { char str1[10] = "", str2[10] = ""; char *ptr1, *ptr2; printf("Введите строку: %s", str1); scanf("%s", str1); ptr1 = str1; ptr2 = str2; while (*ptr1!='\0') { if (*ptr1=='\0') { *ptr2 = '\0'; break; } *ptr2 = *ptr1; ptr1++; } printf("str2 = %s\n", str2); return 0; }
- # Что делает приведенная программа? #include <stdio.h> #include <conio.h> int main() { char str1[10] = "", str2[10] = ""; char *ptr1, *ptr2; printf("Введите строку: %s", str1); scanf("%s", str1); ptr1 = str1; ptr2 = str2; while (*ptr1!='\0') { if (*ptr1=='\0') { *ptr2 = '\0'; break; } *ptr2 = *ptr1; ptr1++; ptr2++; } printf("str2 = %s\n", str2); return 0; }
- # Требуется написать программу, которая копирует введенную пользователем строку str1 в строку str2 в обратном порядке. Например, если пользователь ввел строку string, то str2 в результате выполнения данной программы должна быть равна gnirts. Какая программа выполняет поставленную задачу?
- # В результате выполнения какой программы в строку str2 будет скопирована не только инвертированная строка str1, но и лишний "мусор"?
- # Чему будет равно значение переменной str2 после выполнения приведенной программы? #include <stdio.h> #include <conio.h> int main() { char str1[10] = "", str2[10] = ""; char *ptr1, *ptr2; printf("Введите строку: %s", str1); scanf("%s", str1); ptr1 = str1; ptr2 = str2; while (ptr1>=str1) { if (ptr1<str1) *ptr2 = '\0'; *ptr2 = *ptr1; ptr1--; ptr2++; } printf("str2 = %s\n", str2); return 0; }
- # В программе объявлен указатель void *p. Какое утверждение является верным?
- # В программе объявлен указатель void *p. Какие утверждения являются неверными?
- # Почему к указателю типа void* неприменима операция разыменования?
- # В приведенном фрагменте кода используется константный указатель: int lec = 7, qst = 11; int *const plec = &lec; int *pqst; pqst = &qst; (*plec)++; printf("Number of the next lection is %d\n", lec ); Какая ошибка содержится в данном коде?
- # В каком фрагменте кода при использовании константного указателя допущена ошибка?
- # Какой фрагмент кода не содержит ошибок в использовании константного указателя?
- # Какое выражение нужно вставить в обозначенное место приведенного кода для того, чтобы значение переменной z было равно 40? int x = 10, y = 20, z; int *p1, *p2; p1 = &x; p2 = p1; <Выражение> z = (x==y) ? (x+y) : (y-x);
- # Какое выражение нужно вставить в обозначенное место приведенного кода для того, чтобы значение переменной z было равно 10? int x = 10, y = 20, z; int *p1, *p2; p1 = &x; p2 = p1; <Выражение> z = (x==y) ? (x+y) : (y-x);
- # Какое выражение нужно вставить в обозначенное место приведенного кода для того, чтобы значение переменной z было равно 0? int x = 10, y = 20, z; int *p1, *p2; p1 = &x; p2 = p1; <Выражение> z = (x==y) ? (x+y) : (y-x);
- # Какие преимущества имеет использование указателей для массивов?
- # Какой недостаток имеет использование указателей для массивов?
- # При использовании какого метода обращения к элементам массива производительность будет выше?
- # Приведенная программа копирует строку а в строку b и выводит обе строки на экран: #include <stdio.h> #include <conio.h> int main() { int i; char a[10] = "Test", b[10] = ""; char *pa = a; char *pb = b; for (i=0; i<strlen(a); i++) *pb++ = *pa++; printf("a = %s\n", a); printf("b = %s\n", b); return 0; } Какая программа аналогична приведенной?
- # Необходимо написать программу, которая копирует одну строку в другую. Какая программа выполняет поставленную задачу?
- # Необходимо написать программу, которая копирует одну строку в другую. Какие программы не выполняют поставленную задачу?
- # Какая программа реализует сортировку массива целых чисел по возрастанию методом "пузырька" (методом прямого обмена)?
- # Какая программа реализует сортировку массива целых чисел по убыванию методом "пузырька" (методом прямого обмена)?
- # Какая программа реализует сортировку массива целых чисел по возрастанию методом прямого выбора?
- # Требуется написать программу, которая копирует введенную пользователем строку str1 в строку str2 в обратном порядке. Например, если пользователь ввел строку string, то str2 в результате выполнения данной программы должна быть равна gnirts. Какая программа выполняет поставленную задачу?
- # В результате выполнения какой программы в строку str2 будет скопирована не только инвертированная строка str1, но и лишний "мусор"?
- # Чему будет равно значение переменной str2 после выполнения приведенной программы? #include <stdio.h> #include <conio.h> int main() { char str1[10] = "", str2[10] = ""; char *ptr1, *ptr2; printf("Введите строку: %s", str1); scanf("%s", str1); ptr1 = str1; ptr2 = str2; while (ptr1>=str1) { if (ptr1<str1) *ptr2 = '\0'; *ptr2 = *ptr1; ptr1--; ptr2++; } printf("str2 = %s\n", str2); return 0; }
- # Какая схема соответсвует заданному фрагменту кода? int x = 88, *ptr1, **ptr2; ptr1 = &x; ptr2 = &ptr1;
- # Какой фрагмент кода соответствует заданной схеме? [Большая Картинка]
- # Какой фрагмент кода соответствует заданной схеме? [Большая Картинка]
- # Какой фрагмент кода выполняет вычисление суммы всех элементов массива arr?
- # В результате выполнения приведенного фрагмента кода на экран выводится значение переменной sum, равное 15: int i, N, sum = 0; int arr[] = {3, 2, 4, 5, 1}; int *ptr; N = sizeof(arr)/sizeof(arr[0]); ptr = arr; for (i=0; i<N; i++) sum += *ptr; Какое действие выполняет данный код?
- # Чему будет равно значение переменной sum после выполнения приведенного фрагмента кода? int i, N, sum = 0; int arr[] = {3, 2, 4, 5, 1}; int *ptr; N = sizeof(arr)/sizeof(arr[0]); ptr = &arr[1]; for (i=0; i<N-1; i++) { sum += *ptr; ptr++; }
- # Какая программа правильно определяет и выводит на экран время года по дате рождения, заданной пользователем?
- # Необходимо написать программу, которая определяет и выводит на экран время года по дате рождения, заданной пользователем. Какую ошибку содержит приведенный фрагмент кода? int m; char month[3], s[8] = ""; char *season[] = { "winter", "spring", "summer", "autumn" }; printf("Enter day of your birthday (MM.DD): "); scanf("%[^.]s", month); m = atoi(month); if ((m==12) || (m<3)) strcpy(s, &season[0]); else if ((m>2) && (m<6)) strcpy(s, &season[1]); else if ((m>6) && (m<9)) strcpy(s, &season[2]); else strcpy(s, &season[3]); printf("Your birthday is in %s\n", s);
- # Необходимо написать программу, которая определяет и выводит на экран время года по дате рождения, заданной пользователем. Какую ошибку содержит приведенный фрагмент кода? int m; char month[3], s[8] = ""; char *season[] = { "winter", "spring", "summer", "autumn" }; printf("Enter day of your birthday (MM.DD): "); scanf("%[^.]s", month); m = atoi(month); if ((m==12) || (m<3)) strcpy(s, season[0]); else if ((m>2) && (m<6)) strcpy(s, season[1]); else if ((m>6) && (m<9)) strcpy(s, season[2]); else strcpy(s, season[3]); printf("Your birthday is in %s\n", s);
- # Указатель p инициализирован строковой константой: char *p = "тестовая строка". Что в данном случае хранится в указателе p?
- # Указатель p инициализирован строковой константой: char *p = "тестовая строка". Где в данном случае хранится заданная строка?
- # Указатель p инициализирован строковой константой: char *p = "тестовая строка". Какое утверждение является верным в данном случае?
- # Чему будет равно значение переменной sum после выполнения прииведенного фрагмента кода? int m[][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; int *ptr; int i, j, n, k, sum = 0; n = sizeof(m)/sizeof(m[0]); k = sizeof(m[0])/sizeof(m[0][0]); ptr = m;} sum += *(ptr+i); } printf("n = %d\n", n); printf("k = %d\n", k); for (i=0; i<(n*k); i++) { if (!(*(ptr+i)%2)) sum += *(ptr+i);
- # Какая программа вычисляет сумму всех четных элементов за исключением элементов первой строки?
- # Какая программа вычисляет сумму всех нечетных элементов за исключением элементов первой строки?
- # В каком случае используется многоуровневая адресация?
- # Что такое многоуровневая адресация?
- # Какие утверждения являются верными для приведенного фрагмента кода? int x = 100, *ptr1, **ptr2; ptr1 = &x; ptr2 = &ptr1;
- # Задан фрагмент кода: int m[][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; int *ptr; int i, j, n, k, el; n = sizeof(m)/sizeof(m[0]); k = sizeof(m[0])/sizeof(m[0][0]); ptr = &m[0][0]; На какой элемент массива m будет указывать указатель ptr+3?
- # Задан фрагмент кода: int m[][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; int *ptr; int i, j, n, k, el; n = sizeof(m)/sizeof(m[0]); k = sizeof(m[0])/sizeof(m[0][0]); ptr = &m[1][1]; На какой элемент массива m будет указывать указатель ptr+3?
- # Задан фрагмент кода: int m[][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; int *ptr; int i, j, n, k, el; n = sizeof(m)/sizeof(m[0]); k = sizeof(m[0])/sizeof(m[0][0]); ptr = &m[0][0]; Чему будет равно значение элемента массива m, на который будет указывать указатель ptr+3?
- # Какие утверждения являются верными?
- # Какие утверждения являются неверными?
- # Каковы недостатки многоуровневой адресации?
- # Что такое динамическая память?
- # Какое утверждение является верным для динамически распределяемой памяти?
- # Какие утверждения являются верными для статически распределяемой памяти?
- # Какие утверждения являются верными?
- # Какие утверждения являются неверными?
- # Какие утверждения о размере динамически распределяемой области памяти являются верными?
- # В каком случае память выделяется динамически? int arr1[10] = {1,2,3,4,5}; (1) int *arr2 = (int *)calloc(10, sizeof(int)); (2) int *arr3 = (int *)malloc(10*sizeof(int)); (3)
- # В каком случае память выделяется динамически? int arr1[10] = {1,2,3,4,5}; (1) int *arr2 = (int *)calloc(10, sizeof(int)); (2) int *arr3 = (int *)malloc(10*sizeof(int)); (3) int arr4[][3] = {{1,2,3}, {4,5,6}}; (4)
- # В каком случае память выделяется статически? int arr1[10] = {1,2,3,4,5}; (1) int *arr2 = (int *)calloc(10, sizeof(int)); (2) int *arr3 = (int *)malloc(10*sizeof(int)); (3) int arr4[][3] = {{1,2,3}, {4,5,6}}; (4)
- # В каком случае будет выделен наибольшой размер памяти?
- # В каком случае будет выделен наименьший размер памяти?
- # Какой объем памяти будет выделен для хранения массива int arr[12] = {1,2,3,4,5};?
- # Задан фрагмент кода: int n, m; char *ptr; printf(&\nEnter a dimention of character array: &); scanf_s(&%d&, &n); _flushall(); ptr = (char *)malloc((n+1)*sizeof(char)); if (!ptr) { printf(&\nERROR! Out of memmory (error in malloc() function). Press any key...&); _getch(); exit(1); } printf(&Enter a character array (not more than %d characters): &, n); gets_s(ptr, n+1); m = strlen(ptr); printf(&\nStart line: %s&, ptr); ptr = (char *)realloc(ptr, (m+2)*sizeof(char)); if (!ptr) { printf(&\nERROR! Out of memmory (error in realloc() function). Press any key...&); _getch(); exit(1); } strcat_s(ptr, m+2, &!&); printf(&\nStart line and character \&%c\&: %s&, '!', ptr); free (ptr); В запросе размерности массива пользователь задал 80. В запросе ввода строки пользователь ввел строку "Lection 9". Для чего в данном случае будет использована функция realloc()?
- # При каких значениях размерности n символьного массива и строки, на которую указывает указатель ptr, в результате выполнения приведенной программы возникнет ошибка? #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> int main(void) { int n, m; char *ptr; printf("\nEnter a dimention of character array: "); scanf_s("%d", &n); _flushall(); ptr = (char *)malloc((n+1)*sizeof(char)); if (!ptr) { printf("\nERROR! Out of memmory (error in malloc() function). Press any key..."); _getch(); exit(1); } printf("Enter a character array (not more than %d characters): ", n); gets_s(ptr, n+1); m = strlen(ptr); strcat_s(ptr, m+2, "!"); printf("\nStart line and character \"%c\": %s", '!', ptr); free (ptr); printf("\n\nPress any key: "); _getch(); return 0; }
- # Необходимо написать программу заполнения одномерного символьного массива заданным числом (вводимым с клавиатуры) символов с добавлением символа восклицательного знака "!" в конце массива символов. При выполнении какой программы не возникнет ошибки в случае, если пользователь задаст размерность n символьного массива равной 4 и строку "test"?
- # В каком случае при возникновении ошибки при выделении памяти эта ошибка будет корректно обработана?
- # В каком случае при возникновении ошибки при выделении памяти эта ошибка не будет корректно обработана?
- # В каком случае при возникновении ошибки при выделении памяти эта ошибка будет корректно обработана?
- # В каком случае в процессе выполнения программы выполняется перераспределение выделенной памяти с целью ее уменьшения?
- # В каком случае в процессе выполнения программы выполняется перераспределение выделенной памяти с целью ее увеличения?
- # В процессе выполнения приведенной программы возникает ошибка: #include <stdio.h> #include <stdlib.h> #define N 10 int main(void) { int i; int *arr; arr = (int *)calloc(N, sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in calloc() function. Press any key: "); _getch(); exit(1); }; for (i=0; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0; } Каким образом можно изменить программу для ее корреткной работы?
- # После выполнения какой программы будет выполняться условие size2 < size3?
- # После выполнения какой программы будет выполняться условие size2 > size3?
- # Какое утверждение будет верным после выполнения приведенной программы? #include <stdio.h> #include <stdlib.h> #define N 10 int main(void) { int size1, size2, size3, i, n = 0; int arr1[N] = {1,2,3,4,5}, *arr; size1 = sizeof(arr1); arr = (int *)calloc(N, sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in calloc() function. Press any key: "); _getch(); exit(1); }; for (i=0; i<N; i++) { arr[i] = i+1; n++; printf("arr[%d] = %d\n", i, arr[i]); } size2 = N*sizeof(int); arr = (int *)realloc(arr, (N+2)*sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in realloc() function. Press any key: "); _getch(); exit(1); }; for (i=N; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } for (i=0, n=0; i<N+2; i++) n++; size3 = n*sizeof(int); free(arr); return 0; }
- # В приведенной программе выполняется перераспределение памяти для увеличения размерности массива: #include <stdio.h> #include <stdlib.h> #define N 10 int main(void) { int i; int *arr; for (i=0; i<N; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } arr = (int *)realloc(arr, (N+2)*sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in realloc() function. Press any key: "); _getch(); exit(1); }; for (i=N; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0; } Определите, есть ли в этой программе ошибки?
- # В приведенной программе выполняется перераспределение памяти для увеличения размерности массива: #include <stdio.h> #include <stdlib.h> #define N 10 int main(void) { int i; int *arr; arr = (int *)realloc(arr, (N+2)*sizeof(int)); for (i=0; i<N; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } if (!arr) { printf("\nERROR! Out of memory in realloc() function. Press any key: "); _getch(); exit(1); }; for (i=N; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0; } Какие изменения нужно внести в программу для ее корректной работы?
- # В приведенной программе выполняется перераспределение памяти для увеличения размерности массива: #include <stdio.h> #include <stdlib.h> #define N 10 int main(void) { int i; int *arr = (int *)malloc(N*sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in calloc() function. Press any key: "); _getch(); exit(1); }; for (i=0; i<N; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } arr = (int *)realloc(arr, (N+2)*sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in realloc() function. Press any key: "); _getch(); exit(1); }; for (i=N; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0; } Какие изменения необходимо внести в программу для ее корректной работы?
- # Задан указатель double **m на массив указателей: int i; double **m; m = (double **)calloc(10,sizeof(double *)); for (i=0; i<10; i++) m[i] = (double *)calloc(5,sizeof(double)); Как в данном случае освободить выделенную память?
- # Задан указатель int **m на массив указателей: int i; int **m; m = (int **)calloc(5,sizeof(int *)); for (i=0; i<5; i++) m[i] = (int *)calloc(3,sizeof(int)); Как в данном случае освободить выделенную память?
- # При какой инициализации указателя int **m на массив указателей необходимо выполнить освобождение памяти приведенным способом? for (i=0; i<5; i++) free(m[i]); free(m);
- # В каком случае будет выделена память под двухмерный массив размером 4х10?
- # В каком случае будет выделена память под двухмерный массив размером 10х4?
- # Под какой массив выделяется память в приведенном фрагменте кода? int (*p)[10]; p = malloc(40*sizeof(int));
- # Каким может быть время жизни динамических переменных?
- # Какие утверждения являются верными?
- # Какое утверждение является неверным?