База ответов ИНТУИТ

Программирование на языке C в Microsoft Visual Studio 2010 - ответы

Количество вопросов - 681

В каком случае при возникновении ошибки при выделении памяти эта ошибка будет корректно обработана?

Определите, есть ли в приведенной программе ошибки? Если есть, укажите, какие?
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); }

Строка инициализирована следующим образом: char str1[10] = "Course". Какое утверждение является верным?

Функция 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?

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

Какая программа реализует сортировку массива целых чисел по убыванию методом "пузырька" (методом прямого обмена)?

Что произойдет при двух запусках программы в течение одной минуты?
#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);}

Что является недостатком языка С?

Засчет чего достигается увеличение скорости выполнения кода при использовании макроса с формальными параметрами очень большого размера?

Какие утверждения являются верными?

Для чего применяются директивы условной компиляции (#if, #ifdef, #ifndef)?

Какую ошибку содержит приведенная программа?
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);}

Какие утверждения являются верными?

В каком случае на экран в цикле будет выведен символ, код которого равен 196?

Какие поля имеет приведенная структура?
struct addr {  char name[30];  char street[40];  char city[20];  char state[3];  unsigned long int zip;} addr_info, binfo;

В чем заключается назначение перечислений (enum)?

Что такое структура?

Какие утверждения являются неверными?

Какие элементы не могут быть операндами оператора адресации &?

Какой период хранения имеют локальные переменные функции без явно определенного спецификатора?

При каком запуске программы echo через командную строку аргумент argv будет представлен заданным образом?

Каким образом хранится в памяти массив a, начинающийся по адресу 1000 и объявленный как char a[7]?

Какие переменные являются формальными параметрами функции 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;}

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

В каком случае на экран будут выведены сочетания имен и фамилий, заданных в файле arr.h?Содержание файла arr.h:
char *names[] = {"Иван", "Пётр", "Илья"};char *surnames[] = {"Иванов", "Пётров", "Ильин"};

Какие функции могут использоваться функциями из других файлов?
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';}

Какая программа реализует сортировку массива целых чисел по возрастанию методом "пузырька" (методом прямого обмена)?

Что делает приведенный фрагмент кода?
	int x = 0;loop1:	x++;	if (x<=5) {		printf("%d \n", x);		goto loop1;	}

Чему будет равно значение переменной y в результате выполнения приведенного фрагмента кода?
			int x = 5, y;	for(y=1; y<=x; ++y)  		printf("%d ", y);		y = x*2;	

В программе объявлены переменные:
	int x = 15, y = 2;	float z;	z = x/y;	printf("z = %f\n", z);
В результате выполнения каких операций будет выведено значение z = 7.5?

Что является достоинством языка С?

Почему язык С относится к языку среднего уровня?

Для чего предназначена папка Resource Files в проекте, созданном в среде Microsoft Visual Studio 2010?

Какой файл проекта, созданного в Microsoft Visual Studio 2010, содержит настройки среды Visual Studio (информацию об открытых окнах, их расположении и прочих пользовательских параметрах)?

Какой тип будет иметь переменная 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;

Какой фрагмент кода содержит ошибки?

Какие утверждения являются неверными?

В результате выполнения какого программного кода после ввода пользователем Иван Иванов, 30 будет выведено сообщениеПриятно познакомиться, Иван Иванов!?

Что будет выведено на экран в результате выполнения приведенного фрагмента кода на 32-битной платформе?
			printf("\n  Maximum integer: %d\n ", INT_MAX);

Размер (в байтах) объектов каких типов данных не зависит от разрядности процессора?

Чему будет равен результат вычисления a + b, если переменные имеют заданные значения?
	int a = INT_MIN;	int b = INT_MAX;

Какой цикл реализует приведенную структурную схему?

В каком случае при выполнении приведенного кода возникнет зацикливание?

В результате выполнения какого фрагмента кода значение переменной y будет равно 10?

Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). В каком случае цикл будет выполнен хотя бы один раз для переменной num = 3?

Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?

Какое утверждение является верным для приведенного фрагмента кода?
			int x;	printf("Угадайте число:\n");	for (x=0; x!=123; ) 		scanf("%d", &x);

В результате выполнения какого фрагмента кода на экран будут выведены 5 строк, в каждой из которых будет на 1 звездочку меньше, чем в предыдущей?

В каком случае цикл for не будет бесконечным?

В результате выполнения какого фрагмента кода на экран будет выведена таблица чисел от 1 до 9 и их квадратов?

Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Главный цикл игры реализован следующим образом:
	int c = 0, n = 100, m;	do {		printf("Ваш вариант: ");		scanf("%d", &m);		c++;	} while <Условие>
c - число попыток, n - задуманное число. Каким должно быть условие завершения игры?

При вводе каких значений выполнение цикла не будет завершено?
	int num; 	do {		scanf("%d", &num);	} while (num > 100);	

Какие утверждения являются неверными?

Какая схема является структурной схемой условного оператора?

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

При каких значениях переменной A значение переменной cond будет равно 0?
	int cond,;	cond = (A==5) || ((A>10) && (A<1));

В результате выполнения какого фрагмента кода значение переменной t будет кратно 10?

Какой фрагмент кода полностью аналогичен заданному?
	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?

Чему будет равно значение переменной 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);

В какой программе ситуация деления на нуль обрабатывается некорректно?

Что будет выведено на экран в результате выполнения приведенного фрагмента кода?
  int n = 1;  while (n<=10)  {	  if (n%2) 		  printf("%d\n", n);		  n++;		  return;	  printf("%d\n", n);	  n++;  }

Для каких значений переменной 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 a[3][2]?

По какой формуле вычисляется общий размер многомерного массива в байтах?

Почему при инициализации массива int arr2[][2] = {{1,2,3}, {4,5,6}}; возникнет ошибка компиляции?

Какая программа вычисляет сумму только четных элементов массива?

Чему будет равно значение переменной i в результате выполнения приведенной программы?
#include <stdio.h>#define N 10#define M 5int 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;		}

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

Что делает приведенная программа?
#include <stdio.h>#define N 5int 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 5#define M 2int 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;}

Какое утверждение будет истинным после выполнения приведенного фрагмента кода?
	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);	

Какие утверждения являются верными?

Чему будет равно значение переменной n после выполнения приведенного фрагмента кода?
	int n = 0;	char str2[10] = "Lection\0";	n = strlen(str2);

Заданы две строки:
	char str1[10] = "Lection";	char str2[10] = "Lection\0";
Какое утверждение является верным?

Ниже приведено несколько вариантов программы для преобразования строчных букв в прописные. Преобразование выполняется на основе таблицы кодов ASCII и основано на том, что для всех букв латинского алфавита код прописной буквы больше кода строчной буквы на 32. В результате выполнения какой программы заданная пользователем строка из строчных букв будет выведена на экран прописными буквами?

Какие утверждения будут верными после выполнения приведенной программы?
#include <stdio.h>#include <string.h>#define N 10int 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?

Аналогом какой стандартной функции является приведенный фрагмент кода?
	int i = 0;	char str1[10] = "Test";	char str2[10] = "";	while (str1[i]!='\0') {		str2[i] = str1[i];		i++;	}

Используя таблицу кодов ASCII, определите, что будет выведено на экран в результате выполнения приведенной программы?
#include <stdio.h>#define N 7int 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, и последующий вывод введенной строки?

Что делает приведенная программа?
#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;		}

Какие элементы могут быть операндами оператора адресации &?

В каком случае значение переменной z будет равно изначальному значению переменной x?

Чему будут равны значения переменных a, b и c после выполнения приведенного фрагмента кода?
	int a=10, b=20, c=30;	int *ptr;	ptr = &a;	c = *ptr;	*ptr = 30;	b = 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?

Какая запись с использованием указателя эквивалента заданной записи инкремента?
	int x = 20;	x++;

Какие операции допустимы для заданных переменных?
	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++;		ptr2++;	}	printf("str2 = %s\n", str2);	return 0;		}

В результате выполнения какой программы в строку str2 будет скопирована не только инвертированная строка str1, но и лишний "мусор"?

В программе объявлен указатель void *p. Какое утверждение является верным?

В каком фрагменте кода при использовании константного указателя допущена ошибка?

Какое выражение нужно вставить в обозначенное место приведенного кода для того, чтобы значение переменной z было равно 0?
  int x = 10, y = 20, z;  int *p1, *p2;  p1 = &x;  p2 = p1;  <Выражение>  z = (x==y) ? (x+y) : (y-x);	

Какие преимущества имеет использование указателей для массивов?

Необходимо написать программу, которая копирует одну строку в другую. Какие программы не выполняют поставленную задачу?

Какая программа реализует сортировку массива целых чисел по убыванию методом "пузырька" (методом прямого обмена)?

Требуется написать программу, которая копирует введенную пользователем строку str1 в строку str2 в обратном порядке. Например, если пользователь ввел строку string, то str2 в результате выполнения данной программы должна быть равна gnirts. Какая программа выполняет поставленную задачу?

Какая схема соответсвует заданному фрагменту кода?
	int  x = 88, *ptr1,  **ptr2;	ptr1 = &x;	ptr2 = &ptr1;	

Чему будет равно значение переменной 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++;	}

Какая программа правильно определяет и выводит на экран время года по дате рождения, заданной пользователем?

Указатель 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 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 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)

В каком случае будет выделен наибольшой размер памяти?

Необходимо написать программу заполнения одномерного символьного массива заданным числом (вводимым с клавиатуры) символов с добавлением символа восклицательного знака "!" в конце массива символов. При выполнении какой программы не возникнет ошибки в случае, если пользователь задаст размерность n символьного массива равной 4 и строку "test"?

В каком случае в процессе выполнения программы выполняется перераспределение выделенной памяти с целью ее увеличения?

Какое утверждение будет верным после выполнения приведенной программы?
		#include <stdio.h>#include <stdlib.h>#define N 10int 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 10int 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;}
Определите, есть ли в этой программе ошибки?

Задан указатель 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));
Как в данном случае освободить выделенную память?

В каком случае будет выделена память под двухмерный массив размером 4х10?

Какое утверждение является неверным?

Какие переменные являются фактическими параметрами функции 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;}

Что обозначает тот факт, что формальные параметры функции локализованы в ней?

Какая ошибка допущена в приведенном фрагменте кода?
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)	}
Чему будет равно значение переменной i в результате вызова int i = is_in("Lection 10", 'a')?

В каких программах не используются прототипы функций?

Чему будет равно значение переменной 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 );}

Какое значение 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");}

Необходимо написать функцию sum, которая будет вычислять сумму всех элементов массива. В данную функцию должно передаваться два параметра - массив и размер массива. В какой программе функция sum объявлена верно?

Что произойдет после выполнения приведенной программы?
#include <stdio.h>#define n 10void 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];}

Чему будет равно значение переменной s в результате выполнения приведенной программы?
#include <stdio.h>#include <stdlib.h>#define n 2#define m 3int 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;}

В какой функции содержится ошибка?

В какой программе количество вызовов функций (как стандартных, так и пользовательских) с переменным числом аргументов наибольшее?

В результате выполнения какой программы изначальные значения переменных a и b изменятся?

Чему будет равно значение переменной s в результате выполнения приведенной программы?
#include <stdio.h>#define n 5void 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;}

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

Какая функция не возвращает указатель?

В результате выполнения какой программы значением переменной 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 выполняется верно?

Какая программа реализует сортировку методом прямого выбора по убыванию с помощью функции, использующей вызов по ссылке?

В приведенной программе используется указатель на функции, которые выполняют сортировку целочисленного массива "методом пузырька":
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 = 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() - по убыванию. В какой программе предусмотрено корректное завершение работы программы, независимо от номера алгоритма, который задаст пользователь?

Какая переменная 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;}
Какие вызовы функции являются неверными?

Что такое текстовый поток?

В каком случае файлы не закрываются?

Файл 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);

Какой файл будет получен в результате выполнения приведенной программы?
#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" );}

В каком случае выполняется пакетная запись массива в файл?

В каком случае при первом запуске программы в файл будет записан лог работы программы, содержащий описание всех выполненных в программе действий?

Каким будет значение переменной 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) из списка?

Чему будет равно значение переменной 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;}

Какая программа выводит на экран все строки из файла?

В чем отличие структуры от массива?

Определите, содержит ли приведенное объявление структур ошибки? Если содержит, то укажите, какие именно?
struct A {int a; double x; };struct B {A a; B b; double x; }; 

Объявлена структура:
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;	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);}

Какое сообщение будет выведено на экран в результате выполненния приведенной программы?
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; }

Какая программа содержит ошибку?

В какой программе не используются вложенные структуры?

Необходимо написать программу, которая позволит ввести с клавиатуры данные о поездах. Также в программе должен быть предусмотрен поиск по пункту назначения поезда. Какая программа не выполняет поставленную задачу?

В каком случае структура верно определена с использованием ключевого слова typedef?

Какая ошибка содержится в приведенной программе?
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; }

Значения каких типов может содержать приведенное объединение?
union hold {	int digit;	double bigf;	char letter;};

Задано перечисление numbers:
enum numbers {two=2, tree, four, ten=10, eleven, last=ten+40};
Какое значение будет присвоено константе last?

Сколько памяти будет выделено для хранения приведенного объединения?
union hold {	int digit;	double bigf;	char letter;};

Чему будет равно значение переменной 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;}

В какой программе выполняется верное обращение к полям объединения?

Определите, есть ли в приведенной программе ошибки? Если есть, укажите, какие?
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;}

В результате выполнения какой программы на экран будет выведена строка 0 1 2 100 101 102?

Определите, возникнут ли ошибки при выполнении приведенной программы? Если возникнут, объясните, почему?
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;}

При каких значениях переменной 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;}

Что будет выведено на экран в результате выполнения приведенной программы, если в запросе ввода номера месяца пользователь задаст число 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() передается адрес отдельного члена структуры?

В какой программе в качестве параметра используется структура?

Какие утверждения являются верными для приведенной программы?
#define MAX 20double 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);}

Функция f1() выводит на экран переданное ей значение. Каким образом должна быть описана данная функция для корректного выполнения приведенной программы?
typedef struct {	int a, b;	char ch;} struct_type;int main(void){	struct_type arg;	arg.a = 1000;	f1(&arg);	return 0;}

Какая программа не содержит ошибок?

Задана программа, позволяющая пользователю задать данные о студенте с клавиатуры:
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);}

В приведенной программе происходит инициализация структуры данных о студенте и последующий вывод этих данных:
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);}
Какие утверждения являются верными для приведенной программы?

Задана программа, в которой реализовано три функции: 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 являются верными?

Необходимо написать функцию копирования значений всех полей одной структуры заданного типа в другую:
typedef struct sale_struct {	char *title;	int price;} sale;
Какая функция выполняет поставленную задачу?

Какое утверждение является верным?

Каким образом нумерются разряды байта?

Какие утверждения являются верными?

Сколько возможных значений может принимать байт?

Чему будет равно шестнадцатиричное число D6F в десятичной системе счисления?

Что такое битовое поле?

Какая программа содержит ошибку?

Чему будет равно значение переменной 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;}	

Какая программа выполняет поразрядную операцию И над двумя целыми числами, представленными в двоичной системе счисления для 16-разрядного компьютера?

Чему будет равно значение переменной 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;}	

В каком случае выполняется операция побитового исключающего ИЛИ (^)?

Значения каких переменных будут четными?
	a = 6 & 5;	b = 6 | 5;	c = 6 ^ 5;

Чему будет равно значение переменной d в результате выполнения приведенного фрагмента кода?
		int d;	int a = 10;	int b = 15;		a >>= 1;	b <<= 1;	d = a + b;

Какие функции могут использоваться функциями из других файлов?
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;}

В каком случае переменные a и b видны в функции main()?

Какая локальная переменная, заданная в приведенном фрагменте кода, располагается в сегменте данных и существует все время, пока работает программа?
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;}

Какие статические переменные будут не видны в функции 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;}

Что обозначает подключение #include "..\..\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 в другом файле?

Какая рекурсия называется прямой?

Какие утверждения являются верными?

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

Задана функция вычисления факториала:
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 8void 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;			}	}}
Какие утверждения являются неверными для приведенной программы?

Необходимо написать программу, которая будет определять, является ли заданная строка палиндромом (палиндром - это слово, которое читается одинаково слева направо и справа налево). Решение данной задачи основывается на просмотре строки одновременно слева направо и справа налево и сравнении соответствующих символов. Если в какой-то момент символы не совпадают, делается вывод о том, что строка не является палиндромом, если же удается достичь середины строки и при этом все соответствующие символы совпали, то строка является палиндромом. Какая программа выполняет поставленную задачу?

Что произойдет при выполнении программы?
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);}

Какие новые объекты создаются при рекурсивном вызове функции?

В функции main выполняется вызов рекурсивной функции fact(): 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()?

Что такое препроцессор?

Каким образом несколько директив могут быть объявлены в одной строке?

Какое влияние на скорость выполнения кода оказывает использование макросов с формальными параметрами?

Чему будет равно значение переменной 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;} 

В программе задан макрос #define MAX(x, y) ((x)>(y) ? (x) : (y)). Для каких переменных он может быть использован?

Необходимо написать программу, которая выводит на экран сочетания имён и фамилий, которые хранятся в подключаемом файле arr.txt. Содержание файла arr.txt:
char *names[] = {"Иван", "Пётр", "Илья"};char *surnames[] = {"Иванов", "Пётров", "Ильин"};
Файл arr.txt хранится с исполняемым файлом в одном каталоге. Какая программа выполняется поставленную задачу?

Каким образом должен быть подключен файл 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 должен быть подключен для возможности использования описанных в нем переменных и функций в другом файле?

Ниже приведен фрагмент условного включения различных версий заголовочного файла:
#if VERSION == 1	#define	INCFILE	"vers1.h"#elseif VERSION == 2	#define	INCFILE	"vers1.h"#else	#define	INCFILE	"versN.h"#endif#include INCFILE
Какие из используемых в заданном фрагменте директив относятся к директивам условной компиляции?

В каком случае директива #define определяет символы, управляющие условной компиляцией?

Какое действие выполняется при использовании заданного набора директив?
#ifndef HEADER_INCLUDED#include "arr.h"#define HEADER_INCLUDED#enif

Какое формальное определение прототипа функции 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[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. Какое сообщение будет выведено на экран?

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

Задана программа, исполняемый файл которой имеет имя 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 display?

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

При каком условии запуска программы из командной строки значение argc будет равно 0?
int main(int argc, char *argv[]){	int t;	for(t=0; t<argc; ++t)		printf("%s\n", argv[t]);	return 0;}

Какое утверждение является верным?

Как организовать бесконечный цикл while?

В приведенной программе выполняется перераспределение памяти для увеличения размерности массива:
		#include <stdio.h>#include <stdlib.h>#define N 10int 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;}
Какие изменения необходимо внести в программу для ее корректной работы?

Аналогом какой стандартной функции является приведенный фрагмент кода?
	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++;		}

Какие утверждения являются верными для статически распределяемой памяти?

Какие утверждения являются верными?

Приведенная программа должна определять, является ли заданная строка палиндромом (палиндром - это слово, которое читается одинаково слева направо и справа налево). В программе выполняется просмотр строки одновременно слева направо и справа налево и сравнение соответствующих символов. Если в какой-то момент символы не совпадают, делается вывод о том, что строка не является палиндромом, если же удается достичь середины строки и при этом все соответствующие символы совпали, то строка является палиндромом:
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);	}}
Какое граничное условие имеет реализованная в программе рекурсия?

Чему будет равно значение переменной 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;} 

Что произойдет после выполнения приведенной программы?
#include <stdio.h>#define n 10void 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];}

Какая программа не содержит ошибок?

Каким образом будет предствален аргумент argv при запуске программы через командную строку echo Hello, world!?

Что будет выведено на экран в результате выполнения приведенной программы?
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;}

Какие объекты рассматриваются в языке С как файлы?

Сколько раз будет выполнен цикл for?
			int x=123;	printf("Угадайте число:\n");	for (x=0; x==123; ) 		scanf("%d", &x);

Чему будет равен результат вычисления a + b, если переменные имеют заданные значения?
	int a = SCHAR_MIN;	int b = SCHAR_MAX;

Какие из перечисленных операций разрешено выполнять над структурами?

В результате выполнения какого фрагмента кода на экран будет выведено больше одного числа?

Какой фрагмент кода не содержит ошибку?

Задана функция вычисления факториала:
long fact(long n) {	return (n>1) ? n * fact(n-1) : 1;}
Когда завершится рекурсивный процесс?

Что такое глубина рекурсии?

Что такое объединение (union) в контексте языка С?

Какое из перечисленных шестнадцатиричных чисел является наибольшим?

Файл 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 в другом файле?

Какая ошибка допущена в приведенной программе?
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; }

Функция swap() имеет два аргумента-указателя и выполняет обмен значений элементов:
void swap(int *pa, int *pb){	int temp;	temp = *pa;	*pa = *pb;	*pb = temp;}
В каком случае вызов функции swap() осуществляется верно?

Что такое двоичный поток?

В результате выполнения какой программы изначальное значение переменной s будет изменено?

Какое утверждение является верным?

Требуется написать программу, которая будет копировать одну строку в другую с помощью указателей. Какая программа выполняет поставленную задачу?

Приведенная программа выводит заданную строку в файл:
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;	}
Какие утверждения являются верными?

Приведенный фрагмент кода должен запрашивать пароль не более трех раз:
	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?

По какой причине использование языка С предъявляет высокие требования к квалификации использующего его программиста?

Для чего предназначена папка External Dependencies в проекте, созданном в среде Microsoft Visual Studio 2010?

Переменные x и y объявлены следующим образом:
	int x;	short y;
Какие утверждения являются верными при выполнении арифметического выражения x + y?

Каким будет значение переменной d после выполнения заданных операций и почему?
	int a = 15, b = 2;	float c = 1.0F;	float d;	d = c*(a/b);

Каким будет значение переменной FirstName после выполнения приведенного фрагмента кода, если в запросе программы пользователь введет данные о себе в виде Иван Иванов,30?
	char FirstName[100], LastName[100];	int Age;	printf("Введите Ваши имя, фамилию и возраст: \n");	scanf("%[^,]s %s %d", FirstName, LastName, &Age);

Какой дипазон значений имеет тип unsigned int на 32-разрядных платформах?

Размер (в байтах) объектов каких типов данных зависит от разрядности процессора?

Какой цикл реализует приведенную структурную схему?

В результате выполнения какого фрагмента кода значение переменной y будет равно 11?

Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). Пользователь ввел значение переменной num = 3. В каком случае цикл не выполнится ни одного раза?

В результате выполнения какого фрагмента кода на экран будет выведена таблица чисел от 1 до 10 и их квадратов?

Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Какой фрагмент кода реализует эту игру неверно, если c - число попыток, n - задуманное число?

Какой оператор цикла обычно используется в случаях, когда цикл требуется обязательно выполнить хотя бы один раз?

Структурная схема какого оператора представлена ниже?

Какой оператор используется для продолжения итераций цикла при выполнении некоторых условий?

В результате выполнения какого фрагмента кода на экран будут выведены числа от 0 до 10?

Почему применение оператора goto не является хорошим стилем программирования?

Какой фрагмент кода определяет максимальное из двух чисел?

Дана программа определения дня недели:
	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;  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);

В каком случае, если пользователь введет число -4, на экран будет выведено сообщение -4 в квадрате = -16?

Почему доступ к элементам многомерного массива происходит значительно медленнее, чем к элементам одномерного?

Каким образом хранится в памяти массив a, начинающийся по адресу 1000 и объявленный как int a[7]?

По какой формуле вычисляется общий размер одномерного массива в байтах?

При инициализации какого массива возникнет ошибка?

Чему будет равно значение переменной sum в результате выполнения приведенной программы?
#include <stdio.h>#define N 10int 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;		}

Какая программа позволяет определить размерность массива arr (для определения размерности массива используется переменная size)?

Какая программа выполняет поиск максимального элемента в массиве?

Чему будет равно значение переменной sum после выполнения приведенной программы?
#include <stdio.h>#define N 5#define M 2int 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;}

Чему будет равно значение переменной 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";
Какое утверждение является верным и почему?

Каким будет результат выполнения приведенной программы?
#include <stdio.h>#include <string.h>#define N 10int 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;}

Аналогию какой функции представляет собой приведенная программа?
#include <stdio.h>#include <string.h>#define N 10int 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;}

Используя таблицу кодировки символов 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);

В каком случае окончанием ввода строки будет служить нажатие клавиши Enter?

Какая программа определяет количество вхождений каждого символа в строку?

Какие утверждения будут верными после выполнения приведенного фрагмента кода?
	int x = 99;	int *p1, *p2;	p1 = &x;	p2 = p1;

Чему будут равны значения переменных a, b и c после выполнения приведенного фрагмента кода?
	char a='A', b='B', c='C';	char *pc;	pc = &a;	c = *pc;	*pc = 'C';	b = a;

Какая программа определяет количество вхождений каждого символа в строку?

В результате выполнения какого фрагмента кода значение разности p1 - p2 будет не больше 2?

При компиляции какого фрагмента кода возникнет ошибка?

Требуется написать программу, которая будет копировать одну строку в другую с помощью указателей. Определите, выполняет ли приведенная программа поставленную задачу? Если не выполняет, объясните, почему?
		#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;		}	

Чему будет равно значение переменной 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* неприменима операция разыменования?

Какое выражение нужно вставить в обозначенное место приведенного кода для того, чтобы значение переменной z было равно 40?
  int x = 10, y = 20, z;  int *p1, *p2;  p1 = &x;  p2 = p1;  <Выражение>  z = (x==y) ? (x+y) : (y-x);	

Необходимо написать программу, которая копирует одну строку в другую. Какая программа выполняет поставленную задачу?

Какой фрагмент кода соответствует заданной схеме?

В результате выполнения приведенного фрагмента кода на экран выводится значение переменной 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;
Какое действие выполняет данный код?

Необходимо написать программу, которая определяет и выводит на экран время года по дате рождения, заданной пользователем. Какую ошибку содержит приведенный фрагмент кода?
	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 = "тестовая строка". Какое утверждение является верным в данном случае?

Какая программа вычисляет сумму всех четных элементов за исключением элементов первой строки?

В каком случае используется многоуровневая адресация?

Какие утверждения являются верными?

В каком случае память выделяется статически?
			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};?

Задан указатель 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));
Как в данном случае освободить выделенную память?

В каком случае будет выделена память под двухмерный массив размером 10х4?

Какие утверждения являются верными?

Какие переменные являются формальными параметрами функции 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;}

Какие утверждения являются верными?

Какой фрагмент кода содержит ошибку?

Функция 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')?

В какой строке объявлен прототип функции 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;}

Необходимо написать функцию sum, которая будет вычислять сумму всех элементов массива. В данную функцию должно передаваться два параметра - массив и размер массива. В какой программе функция sum объявлена верно?

Что произойдет после выполнения приведенной программы?
#include <stdio.h>#define n 10void 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;}

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

В какой функции содержится ошибка?

Чему будет равно значение переменной s в результате выполнения приведенной программы?
#include <stdio.h>#include <stdlib.h>#define n 2#define m 3int 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 выполняет сложение двух одномерных массивов и возвращает результат через указатель:
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 = 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() - по убыванию. Каким образом должен быть объявлен указатель на функции для его использования в приведенной программе?

Что произойдет при выполнении приведенной программы, если пользователь задаст номер алгоритма 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;			}						}	}}

В каком случае файлы автоматически закрываются?

Файл 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);

Каким будет значение переменной 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;}

Задан файл, содержащий список названий и стоимости мониторов: Чему будет равно значение переменной 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;}

Чему будет равно значение переменной 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;}

Что в приведенном описании структуры является ее тегом?
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;};
Каким образом данная структура хранится в памяти?

Какая программа содержит ошибку?

Каким образом должна быть объявлена структура 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);}

Какое сообщение будет выведено на экран в результате выполненния приведенной программы?
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 *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 неверно?

Какая ошибка содержится в приведенной программе?
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; }

Какие утверждения являются неверными?

Чему будет равно значение переменной 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;}

В какой программе выполняется верное обращение к полям объединения?

Что будет выведено на экран в результате выполнения приведенной программы?
int main(void){	union pw {	  int i;	  double d;	  char ch[2];	} pw = {"y"};		printf("pw.d = %.2f", pw.d);		return 0;}

В результате выполнения какой программы на экран будет выведена строка penny nickel dime quarter=100 half_dollar dollar?

Определите, возникнут ли ошибки при выполнении приведенной программы? Если возникнут, объясните, почему?
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;}

Задана структура:
struct fred {	char x;	int y;	float z;	char str[10]; } mike;
Каким образом члены структуры могут быть переданы в функцию?

Какая программа содержит ошибку?

Какие утверждения являются неверными для приведенной программы?
#define MAX 20double 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);}

Функция f1() выводит на экран переданное ей значение. Каким образом должна быть описана данная функция для корректного выполнения приведенной программы?
struct struct_type {	int a, b;	char ch;} ;int main(void){	struct struct_type arg;	arg.a = 1000;	f1(arg);	return 0;}

Чему будут равны значения полей структурной переменной 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);}

Что необходимо сделать для того, чтобы исправить содержащуюся в программе ошибку?
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);}

В приведенной программе функция 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;
Для выполнения поставленной задачи была создана функция:
sale Copy(char* t, int p) {	sale s1;	s1.title = t;	s1.price = p;	return s1;}
Какие утверждения являются верными?

Какой разряд байта является младшим?

Сколько возможных значений может принимать бит?

Какое из перечисленных шестнадцатиричных чисел является наименьшим?

Каково преимущество использования битовых полей?

Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно?
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 = 12;	b = t.shadow + t.palette;	printf("b = %d\n", b);	return 0;}	

Определите, что делает приведенная программа?
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(' ');	} } 

Чему будет равно значение переменной 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;

Какое действие выполняет приведенная программа?
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;}	

Какие функции не могут использоваться функциями из других файлов?
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';}

Какие из перечисленных переменных видны в функции 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;}

В каком случае переменные a и b будут невидны в функции main()?

Чему будет равно значение переменной 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;}

Для каких переменных разрешено применение спецификатора 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;}

Каким образом должен быть подключен файл 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 должен быть подключен для возможности использования описанных в нем переменных и функций в другом файле?

Какие утверждения являются неверными?

Какие достоинства имеет использование рекурсии?

В каком случае вычисление факториала выполняется с помощью рекурсивной функции?

В какой программе используется косвенная рекурсия?

Необходимо решить задачу поиска пути между двумя городами. Карта дорог представлена в виде графа: Процесс поиска представлен как последовательность шагов. На каждом шаге с использованием некоторого критерия выбирается точка, в котороую можно попасть из текущей. Если очередная выбранная точка совпала с заданной конечной точкой, то маршрут найден. Если не совпала - выполняется еще один шаг. Поскольку текущая точка может быть соединена с несколькими другими, то сначала выбирается точка с наименьшим номером. Определите, выполняет ли приведенная программа поставленную задачу (для появснения в программе приведены комментарии):
#define N 7void 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;			}	}}

Приведенная программа должна определять, является ли заданная строка палиндромом (палиндром - это слово, которое читается одинаково слева направо и справа налево). В программе выполняется просмотр строки одновременно слева направо и справа налево и сравнение соответствующих символов. Если в какой-то момент символы не совпадают, делается вывод о том, что строка не является палиндромом, если же удается достичь середины строки и при этом все соответствующие символы совпали, то строка является палиндромом:
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);	}}
Выполняет ли программа поставленную задачу?

Какая программа верно вычисляет сумму элементов массива с помощью рекурсии?

Задана функция вычисления факториала:
long fact (int n){    if ( n<1 ) return 1;    else return n*fact(n-1);} 
Какой будет последовательность вызов, если в функции main задать long result=fact(3)?

Какие из перечисленных задач могут быть решены с помощью рекурсии?

Какие действия выполняет препроцессор языка С?

Какая строка является недопустимой?

Приведенная программа выводит на экран сочетания имён и фамилий, которые хранятся в подключаемом файле 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"#endifint 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[] = {"Иванов", "Пётров", "Ильин"};
Где должен храниться подключаемый файл?

В каком случае директива #define определяет символическую константу?

В каком случае будет подключен файл arr.h?
#ifndef ARR#define ARR#include "arr.txt"#endif

Задана программа, в которой выполняется подключение файла 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"#endifint 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 при выполнении приведенной программы? Если не будут, то почему?

Какое формальное определение прототипа функции 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[1]?

Задана программа, исполняемый файл которой имеет имя 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?

Что делает приведенная программа?
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;}

При каком условии запуска программы из командной строки значение argc будет равно 1?
int main(int argc, char *argv[]){	int t;	for(t=0; t<argc; ++t)		printf("%s\n", argv[t]);	return 0;}

Какие утверждения являются верными?

Какой дипазон значений имеет тип int на 32-разрядных платформах?

Программа формирует сообщение об ошибке из отдельных строк в зависимости от степени критичности ошибки:
#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?

Что обозначает подключение #include "..\some.h"?

Сколько памяти будет выделено для хранения приведенного объединения?
union payment {	char card[10];	int sum;	double date;};

Функция f1() выводит на экран переданное ей значение. Каким образом должна быть описана данная функция для корректного выполнения приведенной программы?
struct struct_type {	int a, b;	char ch;} ;int main(void){	struct struct_type arg;	arg.a = 1000;	f1(&arg);	return 0;}

В результате выполнения какой программы на экран ничего не будет выведено?

Что произойдет при выполнении приведенной программы, если пользователь задаст номер алгоритма 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;			}						}	}}

Какая функция возвращает указатель?

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

При каких значениях размерности 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; }

При каком запуске программы echo через командную строку аргумент argv будет представлен заданным образом?

Какое утверждение является верным?

В приведенной программе используются указатели на функции, которые выполняют сортировку целочисленного массива "методом пузырька":
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() - по убыванию. Каким образом должен быть объявлен указатель на функции для его использования в приведенной программе?

Требуется написать программу, которая копирует введенную пользователем строку str1 в строку str2 в обратном порядке. Например, если пользователь ввел строку string, то str2 в результате выполнения данной программы должна быть равна gnirts. Какая программа выполняет поставленную задачу?

Задана программа, позволяющая пользователю задать данные о студенте с клавиатуры:
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);}
Необходимо дополнить программу функцией вывода заданных о студенте данных на экран и вызовом этой функции в программе. Какой вариант описания и вызова функции выполняет поставленную задачу?

В каком случае при выполнении приведенного кода не возникнет зацикливания?

Какие утверждения являются верными?

После выполнения какой программы будет выполняться условие size2 < size3?

В программе задан макрос #define MAX(x, y) ((x)>(y) ? (x) : (y)). В какой из приведенных программ он может быть использован?

Сколько памяти будет выделено для хранения приведенного объединения?
union payment {	char card[25];	int sum;	double date;};

В каком случае при возникновении ошибки при выделении памяти эта ошибка не будет корректно обработана?

Какие статические переменные будут видны в функции 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;}

В каком случае выполняется посимвольная запись массива в файл?

Какое утверждение является неверным?

В какой программе не используются функции (как стандартные, так и пользовательские) с переменным числом аргументов?

Чему будет равно значение переменной i после выполнения приведенного фрагмента кода?
	int i;	char str[10] = "Test", *p1, *p2;	p1 = str;	p2 = p1;	p2--;	p1++;	i = 2 * (p1 - p2);

Какую информацию содержит файл Example.suo проекта, созданного в Microsoft Visual Studio 2010?

Какой фрагмент кода не содержит ошибок?

Каким образом пользователь должен ввести данные о себе, чтобы в результате выполнения приведенного фрагмента кода программа вывела приветствие Приятно познакомиться, Иван Иванов!?
	char FirstName[100], LastName[100];	int Age;	printf("Введите Ваши имя, фамилию и возраст: \n");	scanf("%s %[^,]s %d", FirstName, LastName, &Age);	printf("Приятно познакомиться, %s %s!\n", FirstName, LastName);

В каком случае при выполнении приведенного кода возникнет зацикливание?

Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). Пользователь ввел значение переменной num = 3. В каком случае значение переменной div не изменится?

Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?

Что будет выводиться на экран во время выполнения приведенного фрагмента кода?
	int x, n = 1;	while (n<=10)	{		x = n*n;		printf("%d %d\n", n, x);	}

Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Какой фрагмент кода правильным образом реализует эту игру, если c - число попыток, n - задуманное число?

При вводе каких значений выполнение цикла завершится?
int num; do {	scanf("%d", &num);} while (num > 100);	

Структурная схема какого оператора представлена ниже?

При каких значениях переменной A значение переменной cond будет равно 0?
	int cond;	int A = 1;	cond = (A >= 100) && (A <= 150);

Какой фрагмент кода определяет минимальное из двух чисел?

Что будет выведено на экран в результате выполнения приведенных инструкций при попытке пользователя вычислить значение 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);

В какой программе будет корректно обработана ситуация деления на нуль?

Задан цикл, который выводит все числа от 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?

По какой формуле вычисляется общий размер двумерного массива в байтах?

Какая программа реализует сортировку массива целых чисел по возрастанию методом "пузырька" (методом прямого обмена)?

Что делает приведенная программа?
#include <stdio.h>#define N 5int 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;		}

При выполнении какой программы возникнет ошибка, связанная с выходом за границы массива?

Чему будет равно значение переменной 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]);

Приведенный фрагмент кода должен запрашивать пароль не более трех раз:
	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, если пользователь не знает верного пароля?

Используя таблицу кодов ASCII, определите, что будет выведено на экран в результате выполнения приведенной программы?
#include <stdio.h>#define N 7int 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;		}

Что делает приведенная программа?
#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;		}

Чему будут равны значения переменных a, b и c после выполнения приведенного фрагмента кода?
	char a='A', b='B', c='C';	char *pc1, *pc2;	pc1 = &c;	pc2 = pc1;	c = b;	*pc2 = a;

Какая программа определяет количество вхождений каждого символа в строку?

Какое выражение выполняет операцию инкремента значения, на которое ссылается указатель?

В программе объявлен указатель void *p. Какие утверждения являются неверными?

При использовании какого метода обращения к элементам массива производительность будет выше?

Приведенная программа копирует строку а в строку 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;}
Какая программа аналогична приведенной?

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

Чему будет равно значение переменной 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;		}		

Какой фрагмент кода соответствует заданной схеме?

Какой фрагмент кода выполняет вычисление суммы всех элементов массива arr?

Какие утверждения являются верными для приведенного фрагмента кода?
	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?

Каковы недостатки многоуровневой адресации?

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

В процессе выполнения приведенной программы возникает ошибка:
		#include <stdio.h>#include <stdlib.h>#define N 10int 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;}
Каким образом можно изменить программу для ее корреткной работы?

В приведенной программе выполняется перераспределение памяти для увеличения размерности массива:
		#include <stdio.h>#include <stdlib.h>#define N 10int 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;}
Какие изменения нужно внести в программу для ее корректной работы?

Каким может быть время жизни динамических переменных?

Функция 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')?

В каких программах используются прототипы функций?

Какая ошибка содержится в приведенной функции?
int* fun() {	int a = 10;	return &a;}

Функция swap() имеет два аргумента-указателя и выполняет обмен значений элементов:
void swap(int *pa, int *pb){	int temp;	temp = *pa;	*pa = *pb;	*pb = temp;}
В каком случае вызов функции swap() осуществляется неверно?

Что произойдет после выполнения приведенной программы?
#include <stdio.h>#define n 10void 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 не будет изменено?

Приведенная программа использует указатель на функции, которые выполняют различные действия: вычисление квадратного корня, вычисление синуса, вычисление тангенса:
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 (*pFun) (int, int). Какие утверждения являются верными?

Что такое файл?

В каком случае при самом первом запуске программы в файл будет записан лог работы программы, содержащий описание всех выполненных в программе действий?

При каком способе открытия файла файл лога, содержащий описание всех действий, выполненных в программе не будет создан(при условии, что программа запускается не более одного раза в минуту)?
#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);}

Какая программа выводит на экран все строки из файла?

Объявление какой структуры содержит ошибку?

Какая программа не содержит ошибок?

Какие варианты объявления структуры 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);}

Каким образом должна быть объявлена структура 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; }

Частным случаем какого типа данных являются объединения (union)?

Какие утверждения являются верными?

Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно?
#define MAX 20double 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);}

Содержит ли приведенная программа ошибки? Если содержит, укажите, какие?
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);}

Задана программа, в которой реализовано три функции: 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;}
Какие функции соответсвуют поставленной задаче?

Какие утверждения являются неверными?

Какие утверждения являются неверными?

Определите, что делает приведенная программа?
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(' ');	}} 	

Значения каких переменных будут нечетными?
	a = 6 & 5;	b = 6 | 5;	c = 6 ^ 5;

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

В каком случае переменная может быть использована в файле, содержащем ее определение?

Какие из перечисленных переменных видны в функции 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() для приведенного фрагмента кода?
int main (void) {		printf("a = %d; b = %d\n", a, b);	printf("Press any key: ");	_getch();	return 0;  }int a = 33, b = 34;

Для какой локальной переменной, заданной в приведенном фрагменте кода, память выделяется при входе в блок и освобождается при выходе из него?
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;

Для каких переменных не допускается применение спецификатора 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;}

Какой спецификатор используется для создания переменных, значение которых сохраняется в регистре центрального процессора, а не в памяти?

Для чего используется класс статической памяти?

Задана функция вычисления факториала:
long fact(long n) {	return (n>1) ? n * fact(n-1) : 1;}
Какое утверждение является неверным?

Какое утверждение являотся верным?

Задана функция вычисления факториала:
long fact (int n){    if ( n<1 ) return 1;    else return n*fact(n-1);} 
Какая последовательность вызовов будет неверной, если в функции main задать long result=fact(3)?

В арифметической прогрессии каждый следующий член равен предыдущему, увеличенному на разность прогрессии: 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;} 

В каком случае директива #define определяет макрос?

Для чего используется приведенный фрагмент кода?
#ifndef HEADER_INCLUDED#include "arr.h"#define HEADER_INCLUDED#enif

Программа запускается с одним аргументом, задающим имя и фамилию, которые в результате выполнения программы выводятся в файл. Каким образом необходимо задать аргумент командной строки, чтобы имя и фамилия были выведены в файл в формате Имя Фамилия?

С каким количеством аргументов командной строки запускается программа (считается, что аргумент в заданном виде обрабатывается корректно?

Приведенная программа формирует сообщение об ошибке из отдельных строк в зависимости от значения аргумента командной строки, который задает степень критичности ошибки:
#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. Чему будет равно значение переменной 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?

Какие утверждения являются неверными?

При каких значениях переменной 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;}

Чем отличаются функции printf() и puts() при консольном выводе информации?

Какая программа позволяет определить общий размер массива arr в байтах (для определения размерности массива используется переменная size)?

Функция 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 выполняется неверно?

Необходимо написать программу, в которой формирование строки будет выполняться через посимвольный ввод до тех пор, пока пользователь не нажмет клавишу Enter. После завершния ввода пользователя введенная строка должна быть выведена на экран. Определите, удовлетворяет ли приведенная программа поставленной задаче? Если не удовлетворяет, объясните, почему?
#include <stdio.h>#include <conio.h>#define N 10int 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;		}

Какой фрагмент кода содержит не более одной ошибки?

В какой программе выполняется неверное обращение к полям объединения?

Какой фрагмент кода не содержит ошибок в использовании константного указателя?

В каком случае память выделяется динамически?
			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 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?

Чему будет равно значение переменной s в результате выполнения приведенной программы?
#include <stdio.h>#define n 5void 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;}

Какой цикл является циклом с предусловием?

В каком случае цикл for будет выполняться бесконечно?

Какое назначение может иметь в программе приведенный цикл без тела?
	for(t=0; t<SOME_VALUE; t++) ;

Какие утверждения являются верными?

При каких значениях переменной A значение переменной cond будет равно 1?
	int cond;	int A = 1;	cond = (A >= 100) && (A <= 150);

В результате выполнения какого фрагмента кода значение переменной m будет равно 8?

В каком случае на экран будут выведены только четные числа от 1 до 10?

Чему будет равно значение переменной size в результате выполнения приведенного фрагмента кода?
	int arr[5][2] = {0,1,2,3,4,5,6,7,8,9};	size = sizeof(arr)/sizeof(arr[0]);

При выводе какой строки возникнут проблемы и почему?
	char str1[10] = "Course";	char str2[] = "Lection";	char str3[7] = "Example";

Заданы две строки:
	char str1[10] = "Lection";	char str2[10] = "lection";
Какое утверждение является верным?

Какое действие будет выполнено первым при выполнении оператора *p++ = 10?

В результате выполнения какой программы в строку str2 будет скопирована не только инвертированная строка str1, но и лишний "мусор"?

Указатель p инициализирован строковой константой: char *p = "тестовая строка". Что в данном случае хранится в указателе p?

В каком случае будет выделен наименьший размер памяти?

При какой инициализации указателя int **m на массив указателей необходимо выполнить освобождение памяти приведенным способом?
			for (i=0; i<5; i++) free(m[i]);	free(m);

Под какой массив выделяется память в приведенном фрагменте кода?
			int (*p)[10]; 	p = malloc(40*sizeof(int));

Функция 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?

Программа формирует сообщение об ошибке из отдельных строк в зависимости от степени критичности ошибки:
#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?

В какой программе используются функции (как стандартные, так и пользовательские) с переменным числом аргументов?

Задана функция 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;}
Какие утвержедения являются верными?

Какая переменная 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;}
Каким образом можно вызвать эту функцию?

Каким образом необходимо выполнить открытие файла для того, чтобы для каждого запуска программы сохранялся отдельный файл лога, содержащий описание всех действий, выполненных в программе (при условии, что программа запускается не более одного раза в минуту)?
#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);}

Каким будет значение переменной 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 );}

Сколько символов будет прочитано из файла функцией 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;}

Задан файл, содержащий список названий и стоимости мониторов: Какой файл будет получен в результате выполнения приведенной программы?
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;} addr_info, binfo;

Какое объявление структур(-ы) не содержит ошибку?

Объявлена структура:
struct Worker{  char fio[30];  int date, code;};
Каким образом данная структура хранится в памяти?

В каком случае структура 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; }

В каком случае структура верно определена с использованием ключевого слова typedef?

Какая ошибка содержится в приведенной программе?
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)?

Чему будет равно значение переменной 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 struct sale_struct {	char *title;	int price;} sale;
Какая функция не выполняет поставленную задачу?

Какие значения может принимать байт?

Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно?
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;}		

В каком случае выполняется операция побитового включающего ИЛИ (|)?

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

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

Какие статические переменные видны в функции 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;}

Файл 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 в другом файле выполняется верно?

В какой программе используется прямая рекурсия?

Что произойдет при выполнении программы?
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);}

Каким образом должен быть задан макрос MAX, чтобы приведенная программа корректно работала?
int main(){     char a, b;	printf("Введите два символа (через пробел): ");	scanf("%c %c", &a, &b);	printf("Наибольшим числом является %c", MAX(a, b));	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 будет равно 1?
int main(int argc, char *argv[]){	int t;	for(t=0; t<argc; ++t)		printf("%s\n", argv[t]);	return 0;}

Файл 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);

Сколько раз будет выполнен цикл for?
			int x;	printf("Угадайте число:\n");	for (x=0; x!=123; ) 		scanf("%d", &x);

Приведенная программа выводит в файл значения аргументов командной строки:
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]?

Задана функция вычисления факториала:
long fact(long n) {	if (n==0 || n==1) return 1;	return (n * fact(n-1));}
Какое утверждение является верным?

Описан шаблон структуры:
struct addr{  char name[30];  char street[40];  char city[20];  char state[3];  unsigned long int zip;};
Какие утверждения в данном случае являются верными?

В результате выполнения какого фрагмента кода на экран будет выведено одно число?

Какая папка предназначена для хранения файлов с исходным кодом в проекте, созданном в среде Microsoft Visual Studio 2010?

В результате выполнения какого фрагмента кода на экран будут выведены 5 строк по 5 звездочек?

При выполнении какого варианта программы определения дня недели при вводе числа 8 на экране будет выведено сообщение Ошибка! Вы ввели неверное число?

Какие утверждения являются верными?

При инициализации какого массива не возникнет ошибок?

Какое утверждение является верным для приведенной программы?
#include <stdio.h>#define N 11int 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;		}

Какая переменная после выполнения приведенного фрагмента кода определяет общий размер массива в байтах?
	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);	

Почему доступ к элементам многомерного символьного массива происходит значительно медленнее, чем к элементам одномерного?

Что такое указатель?

Чему будет равно значение переменной z после выполнения приведенного фрагмента кода?
	int x = 99, y = 100, z;	int *p1, *p2, *p3;	p1 = &x;	p2 = &y;	p3 = p2;	x = y;	z = *p1 + *p2 + *p3;

В приведенном фрагменте кода используется константный указатель:
	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 было равно 10?
  int x = 10, y = 20, z;  int *p1, *p2;  p1 = &x;  p2 = p1;  <Выражение>  z = (x==y) ? (x+y) : (y-x);	

Задан фрагмент кода:
	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?

После выполнения какой программы будет выполняться условие size2 > size3?

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

Какая программа реализует сортировку "методом пузырька" по убыванию с помощью функции, использующей вызов по ссылке?

В каком случае при первом запуске программы файл лога работы программы, содержащий описание всех выполненных в программе действий, не будет записан?

В какой программе используются вложенные структуры?

Что такое перечисление (enum) в контексте языка С?

Какая программа содержит ошибку?

Какая ошибка допущена в приведенной программе?
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; }

Какой разряд байта является старшим?

Чему будет равно значение переменной 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;}	

Чему будет равно значение переменной 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;}	

Чему будет равно значение переменной year в результате выполнения приведенного фрагмента кода?
	int year = 26;	year = year << 9;	

Что обозначает подключение #include "..\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 в другом файле выполняется верно?

В каком случае сочетания имен и фамилий, заданных в файле arr.h, не будут выведены на экран?Содержание файла arr.h:
char *names[] = {"Иван", "Пётр", "Илья"};char *surnames[] = {"Иванов", "Пётров", "Ильин"};

Какое утверждение является верным для динамически распределяемой памяти?

Заданы переменные:
	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?

В результате выполнения какого фрагмента кода значение переменной t будет равно 10?

Какой смысл приобретает переменная 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);	

Каким будет результат выполнения приведенной программы?
#include <stdio.h>#include <string.h>#define N 10int 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;}

Какая программа реализует такое же преобразование, как функция strcpy(str2, str1);?

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

Какие действия выполняет приведенная программа?
#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" );}

Задан файл, содержащий список названий и стоимости мониторов: В результате выполнения какой программы на экран будет выведено только название и стоимость монитора, указанного в последнем пункте?

Чему будет равно значение переменной 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; }

Необходимо написать программу, которая позволит ввести с клавиатуры данные о поездах. Также в программе должен быть предусмотрен поиск по пункту назначения поезда. Какая программа выполняет поставленную задачу?

Что будет выведено на экран в результате выполнения приведенной программы?
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);}

В приведенной программе функция 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 являются верными?

Каким образом выполняется передача функции члена структуры?

Что такое текущий уровень рекурсии?

Что такое директива препроцессора?

Что обозначает подключение #include "..\..\some.h"?

Как формально можно определить прототип функции main() с параметрами?

Каким будет результат выполнения приведенного программного кода?
	char t1 = 196;	int i = 0;	for (i=0; i<10; i++)		printf("%c", t1);

Аналогом какой стандартной функции является приведенный фрагмент кода?
	int i = 0;	char str[10] = "Test";	while (str[i]!='\0')		i++;

Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?

В каком случае, если пользователь введет число 4, на экран будет выведено сообщение 4 в квадрате = -16?

Какой недостаток имеет использование указателей для массивов?

Необходимо написать программу, которая определяет и выводит на экран время года по дате рождения, заданной пользователем. Какую ошибку содержит приведенный фрагмент кода?
	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);

В каком случае при возникновении ошибки при выделении памяти эта ошибка будет корректно обработана?

В каком случае в функцию fun() передается указатель на структуру?

Приведенная программа формирует сообщение об ошибке из отдельных строк в зависимости от значения аргумента командной строки, который задает степень критичности ошибки:
#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. С чем это связано?

В результате выполнения какого фграгмента программного кода значение переменной n будет больше 7?

Какая программа вычисляет сумму всех нечетных элементов за исключением элементов первой строки?

Какую информацию содержит файл Example.sln проекта, созданного в Microsoft Visual Studio 2010?

Чему будет равен результат вычисления b - a, если переменные имеют заданные значения?
	int a = 2*SCHAR_MAX;	int b = UCHAR_MAX;

В результате выполнения какого фрагмента кода на экран будут выведены 5 строк, в каждой из которых будут содержаться звездочки, причем в каждой последующей строки будет на одну звездочку больше, чем в предыдущей?

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

Какая программа вычисляет сумму четных элементов двумерного массива?

Какая программа реализует сортировку массива целых чисел по возрастанию методом "пузырька" (методом прямого обмена)?

Какие операции недопустимы для заданных переменных?
	int n = 123, t;	void *p;	int *pn;	pn = &n;

Задан фрагмент кода:
			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()?

В каком случае в процессе выполнения программы выполняется перераспределение выделенной памяти с целью ее уменьшения?

Каким образом должна быть объявлена функция 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);}

В каком случае сумма всех элементов массива будет подсчитана правильно?

Функция 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;}
Каким образом можно вызвать эту функцию?

Задан файл, содержащий список названий и стоимости мониторов: Какой файл будет получен в результате выполнения приведенной программы?
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;}

Необходимо написать программу, в которой будут три функции: 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;}

Какой спецификатор используется для создания переменных, доступных во всех модулях программы, в которых они объявлены?

Необходимо решить задачу поиска пути между двумя городами. Карта дорог представлена в виде графа: Процесс поиска представлен как последовательность шагов. На каждом шаге с использованием некоторого критерия выбирается точка, в котороую можно попасть из текущей. Если очередная выбранная точка совпала с заданной конечной точкой, то маршрут найден. Если не совпала - выполняется еще один шаг. Поскольку текущая точка может быть соединена с несколькими другими, то сначала выбирается точка с наименьшим номером. Для решения задачи задана программа (для появснения в программе приведены комментарии):
#define N 8void 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);?

Необходимо написать функцию sum, которая будет вычислять сумму всех элементов массива. В данную функцию должно передаваться два параметра - массив и размер массива. В какой программе функция sum объявлена неверно?

Приведенная программа использует указатель на функции, которые выполняют различные действия: вычисление квадратного корня, вычисление синуса, вычисление тангенса:
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){	union pw {	  int i;	  double d;	  char ch[2];	} pw = {"y"};		printf("pw.i = %d", pw.i);		return 0;}