игра брюс 2048
Главная / Программирование / Программирование на языке C в Microsoft Visual Studio 2010 / Тест 21

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

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

Ответ:

 (1) int main (int argc, char argv); 

 (2) int main (int argc, char *argv[]); 

 (3) int main (int argc, char **argv); 


Номер 2
Какое формальное определение прототипа функции main() с параметрами является неверным?

Ответ:

 (1) int main (int argc, char argv); 

 (2) int main (int argc, char *argv[]); 

 (3) int main (int argc, char **argv); 


Номер 3
Какое формальное определение прототипа функции main() с параметрами является верным?

Ответ:

 (1) int main (int argc, char *argv[]); 

 (2) int main (int argc, char *argv); 

 (3) int main (int argc, char argv); 


Упражнение 2:
Номер 1
Программа запускается с одним аргументом командной строки. Аргументом является строка. Каким образом необходимо задать аргументы командной строки для корректной его обработки при работе программы?

Ответ:

 (1) files 

 (2) files 

 (3) files 


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

Ответ:

 (1) files 

 (2) files 

 (3) files 


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

Ответ:

 (1) files 

 (2) files 

 (3) files 


Упражнение 3:
Номер 1
С каким количеством аргументов командной строки запускается программа (считается, что аргумент в заданном виде обрабатывается корректно?files

Ответ:

 (1)

 (2)

 (3)


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

Ответ:

 (1)

 (2)

 (3)


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

Ответ:

 (1)

 (2)

 (3)


Упражнение 4:
Номер 1
Приведенная программа выводит в файл значения аргументов командной строки:

int main(int argc, char* argv[])
{
	char name[30];
	FILE *f;
	f = fopen("g:\\test.txt", "w+");

	fprintf(f, "%s\n%s", argv[0], argv[1]);
	
	return 0;
}
		
Запуск программы выполняется из командной строки с помощью команды Example.exe arg1 arg2. Чему будет равно значение argv[0]?

Ответ:

 (1) arg1 

 (2) arg2 

 (3) Example.exe 


Номер 2
Приведенная программа выводит в файл значения аргументов командной строки:

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]?

Ответ:

 (1) arg1 

 (2) arg2 

 (3) Example.exe 


Номер 3
Приведенная программа выводит в файл значения аргументов командной строки:

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]?

Ответ:

 (1) arg1 

 (2) arg2 

 (3) Example.exe 

 (4) NULL, так как элементы массива нумеруются с 0, то argv[2] должен указывать на 3-ий элемент, но этот элемент не задан 


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

#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) Ошибка! Сообщение1 

 (3) Ошибка! Сообщение1 Сообщение2 


Номер 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. При этом вместо сообщения Ошибка! на экран выводится сообщение Ошибка! Сообщение1 Сообщение2. С чем это связано?		
		

Ответ:

 (1) переменной n необходимо присвоить значение argv[0] 

 (2) с переменной переменной n необходимо выполнить дополнительные вычисления 

 (3) argv[1] указывает на строку 


Номер 3
Приведенная программа формирует сообщение об ошибке из отдельных строк в зависимости от значения аргумента командной строки, который задает степень критичности ошибки:

#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. Какое сообщение будет выведено на экран?		
		

Ответ:

 (1) Ошибка! 

 (2) Ошибка! Сообщение1 

 (3) Ошибка! Сообщение1 Сообщение2 


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

Ответ:

 (1) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = atoi(argv[0]); n2 = atoi(argv[1]); sum = n1 + n2; printf("sum = %d\n", sum); return 0; }  

 (2) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = argv[0]; n2 = argv[1]; sum = n1 + n2; printf("sum = %d\n", sum); return 0; }  

 (3) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = atoi(argv[1]); n2 = atoi(argv[2]); sum = n1 + n2; printf("sum = %d\n", sum); return 0; }  

 (4) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = argv[1]; n2 = argv[2]; sum = n1 + n2; printf("sum = %d\n", sum); return 0; }  


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

Ответ:

 (1) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = atoi(argv[0]); n2 = atoi(argv[1]); sum = n1 + n2; printf("sum = %d\n", sum); return 0; }  

 (2) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = argv[0]; n2 = argv[1]; sum = n1 + n2; printf("sum = %d\n", sum); return 0; }  

 (3) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = atoi(argv[1]); n2 = atoi(argv[2]); sum = n1 + n2; printf("sum = %d\n", sum); return 0; }  

 (4) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = argv[1]; n2 = argv[2]; sum = n1 + n2; printf("sum = %d\n", sum); return 0; }  


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

Ответ:

 (1) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = atoi(argv[0]); n2 = atoi(argv[1]); sum = n1 - n2; printf("sum = %d\n", sum); return 0; }  

 (2) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = argv[0]; n2 = argv[1]; sum = n1 - n2; printf("sum = %d\n", sum); return 0; }  

 (3) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = argv[1]; n2 = argv[2]; sum = n1 - n2; printf("sum = %d\n", sum); return 0; }  

 (4) int main(int argc, char* argv[]) { int n1, n2,sum; n1 = atoi(argv[1]); n2 = atoi(argv[2]); sum = n1 - n2; printf("sum = %d\n", sum); return 0; }  


Упражнение 7:
Номер 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?

Ответ:

 (1)

 (2)

 (3)


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

Ответ:

 (1)

 (2)

 (3)

 (4) 10 


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

Ответ:

 (1)

 (2)

 (3)

 (4) 10 


Упражнение 8:
Номер 1
Приведенная программа считает в обратном порядке, начиная с какого-либо значения (указанного в командной строке):

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?		
		

Ответ:

 (1) 5 4 3 2 1 

 (2) 5 4 3 2 1 0 

 (3) ничего не будет выведено 


Номер 2
Приведенная программа считает в обратном порядке, начиная с какого-либо значения (указанного в командной строке):

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?		
		

Ответ:

 (1) 5 4 3 2 1 

 (2) 5 4 3 2 1 0 

 (3) В командной строке не задано число 

 (4) ничего не будет выведено 


Номер 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 5 display?		
		

Ответ:

 (1) 5 4 3 2 1 

 (2) 5 4 3 2 1 0 

 (3) ничего не будет выведено 


Упражнение 9:
Номер 1
Какая программа посимвольно выводит все аргументы, с которыми ее вызвали?

Ответ:

 (1) 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; }  

 (2) int main(int argc, char *argv[]) { int t; for(t=0; t<argc; ++t) printf("%s\n", argv[t]); return 0; }  

 (3) 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; }  


Номер 2
Что делает приведенная программа?

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;
}
		
		

Ответ:

 (1) посимвольно выводит все аргументы, с которыми ее вызвали 

 (2) построчно выводит все аргументы, с которыми ее вызвали 

 (3) посимвольно выводит все аргументы, кроме последнего, с которыми ее вызвали 

 (4) построчно выводит все аргументы, кроме последнего, с которыми ее вызвали 


Номер 3
Что делает приведенная программа?

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;
}
		
		

Ответ:

 (1) посимвольно выводит все аргументы, с которыми ее вызвали 

 (2) построчно выводит все аргументы, с которыми ее вызвали 

 (3) посимвольно выводит все аргументы, кроме последнего, с которыми ее вызвали 

 (4) построчно выводит все аргументы, кроме последнего, с которыми ее вызвали 


Упражнение 10:
Номер 1
При каком условии запуска программы из командной строки значение argc будет равно 0?

int main(int argc, char *argv[])
{
	int t;

	for(t=0; t<argc; ++t)
		printf("%s\n", argv[t]);

	return 0;
}
		
		

Ответ:

 (1) при запуске программы без параметров, то есть командой ProgramName.exe 

 (2) при запуске программы командой ProgramName.exe 0 

 (3) ни при каких условиях 

 (4) при запуске программы с любым количеством параметров 


Номер 2
При каком условии запуска программы из командной строки значение argc будет равно 1?

int main(int argc, char *argv[])
{
	int t;

	for(t=0; t<argc; ++t)
		printf("%s\n", argv[t]);

	return 0;
}
		
		

Ответ:

 (1) при запуске программы без параметров, то есть командой ProgramName.exe 

 (2) при запуске программы командой ProgramName.exe 0 

 (3) ни при каких условиях 

 (4) при запуске программы с любым количеством параметров 


Номер 3
При какой команде запуска заданной программы из командной строки значение argc будет равно 1?

int main(int argc, char *argv[])
{
	int t;

	for(t=0; t<argc; ++t)
		printf("%s\n", argv[t]);

	return 0;
}
		
		

Ответ:

 (1) ProgramName.exe 

 (2) ProgramName.exe 1 

 (3) ProgramName.exe 1 2 


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

Ответ:

 (1) files 

 (2) files 

 (3) files 


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

Ответ:

 (1) echo "Hello, world!" 

 (2) echo Hello, world! 

 (3) echo "Hello," "world!" 


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

Ответ:

 (1) echo "Hello, world!" 

 (2) echo Hello, world! 

 (3) echo "Hello," "world!" 


Упражнение 12:
Номер 1
Какое утверждение является верным?

Ответ:

 (1) если argc равно 1, то в командной строке после имени программы задан 1 аргумент 

 (2) в случае запуска программы echo Здравствуй, мир! количество аргументов argc равно 3 

 (3) аргумент argv представляет собой массив символьных строк, содержащих сами аргументы 


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

Ответ:

 (1) если argc равно 1, то в командной строке после имени программы задан 1 аргумент 

 (2) в случае запуска программы echo Здравствуй, мир! количество аргументов argc равно 3 

 (3) аргумент argv представляет собой массив символьных строк, содержащих сами аргументы 


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

Ответ:

 (1) в случае запуска программы echo Здравствуй, мир! количество аргументов argc равно 3 

 (2) аргумент argv представляет собой указатель на массив символьных строк, содержащих сами аргументы 

 (3) если argc равно 1, то в командной строке после имени программы задан 1 аргумент 




Главная / Программирование / Программирование на языке C в Microsoft Visual Studio 2010 / Тест 21