Главная / Интернет-технологии /
Введение в CGI / Тест 4
Введение в CGI - тест 4
Упражнение 1:
Номер 1
Какую дополнительную операцию необходимо выполнять при написании скриптов на C, которая не требуется при программировании и исполнении скриптов на Perl?
Ответ:
 (1) настройку среды программирования 
 (2) компиляцию 
 (3) порядок программирования и исполнения скриптов для обоих языков одинаковый 
Номер 2
Какие из аргументов главной процедуры используются при программировании CGI-скриптов?
Ответ:
 (1) argc
 
 (2) argv
 
 (3) env
 
Номер 3
Будет ли работать следующий скрипт?
#include <stdio.h>
main()
{
printf("Content-type:text/html\n\n");
printf("<h1>C и CGI</h1>");
}
Ответ:
 (1) не будет, из-за неправильной структуры HTML-документа 
 (2) не будет, из-за неправильной структуры HTTP-отклика 
 (3) будет 
Упражнение 2:
Номер 1
Как определить конец списка переменных окружения в С?
Ответ:
 (1) этого сделать нельзя 
 (2) по значению одного из аргументов главной процедуры 
 (3) при обращении к очередному элементу массива переменных окружения его нельзя будет использовать, например while(env[i])
 
Номер 2
Как получить значение первого аргумента командной строки?
Ответ:
 (1) argv[0]
 
 (2) argv[1]
 
 (3) argv[2]
 
 (4) env[0]
 
Номер 3
Можно ли в С считывать стандартный ввод посимвольно?
Ответ:
 (1) можно, при помощи функции getc()
 
 (2) нельзя 
 (3) можно, при помощи функции read()
 
Упражнение 3:
Номер 1
Есть ли в С оператор redo
?
Ответ:
 (1) есть, в Perl он попал именно отсюда 
 (2) нет 
 (3) в некоторых версиях 
Номер 2
Можно ли организовать в С-CGI-скрипте отложенное выполнение команд?
Ответ:
 (1) можно, это же CGI-скрипт 
 (2) нельзя, очень маленький стек 
 (3) нельзя, скрипты на С компилируются, а не интерпретируются 
Номер 3
В чем отличие между перебором аргументов командной строки CGI-скрипта, написанного на С, и перебором переменных окружения этого же скрипта?
Ответ:
 (1) число аргументов командной строки известно (argc
), а число переменных окружения - нет 
 (2) переменные окружения и аргументы командной строки относятся к разным типам данных, поэтому их перебор организован по-разному 
 (3) отличий нет 
Упражнение 4:
Номер 1
Необходим ли дополнительный оператор printf
для формирования правильной структуры HTTP-сообщения?
Ответ:
 (1) необходим, только так можно отделить заголовок от тела сообщения 
 (2) нет, можно воспользоваться последовательностью "\n\n
" 
 (3) сообщение формируется не скриптом, а сервером 
Номер 2
Укажите правильное обращение в С к переменной окружения по имени:
Ответ:
 (1) $CONTENT_LENGTH
 
 (2) getenv("CONTENT_LENGTH");
 
 (3) getenv(CONTENT_LENGTH);
 
Номер 3
Что передается в качестве первого аргумента командной строки скрипта, написанного на С?
Ответ:
 (1) имя исполняемого файла 
 (2) значение первого аргумента командной строки 
 (3) число аргументов командной строки 
Упражнение 5:
Номер 1
Укажите правильный способ чтения данных из стандартного ввода С-CGI-скриптом при обращении к нему по методу POST
:
Ответ:
 (1) Length=atoi(getenv("CONTENT_LENGTH"));
for(i=0;i<Length;i++){query[i]=getc();} 
 (2) Length=atoi(getenv("CONTENT_LENGTH"));
fread(query,Length,1,STDIN); 
 (3) read(query) 
Номер 2
Нужно ли перекодировать строку запроса в C-CGI-скрипте из шестнадцатеричных чисел в символьные коды?
Ответ:
 (1) нет, это происходит автоматически 
 (2) нужно, в тех же случаях, когда это требуется спецификацией CGI 
 (3) все зависит от настроек сервера 
Номер 3
Можно ли прочитать данные, посланные методом PUT
?
Ответ:
 (1) можно 
 (2) нельзя 
 (3) нет такого метода 
Упражнение 6:
Номер 1
Имеет ли особенности обработка переменных окружения скриптом на C при запуске его сервером или пользователем из командной строки?
Ответ:
 (1) имеет, т.к. список переменных окружения будет разный 
 (2) не имеет, если заранее позаботиться о списке и значениях переменных окружения скрипта 
 (3) не имеет, если скрипт не использует данных, передаваемых от пользователя 
Номер 2
Можно ли использовать CGI скрипт на C в качестве SSI?
Ответ:
 (1) нельзя, скрипт сам формирует HTTP заголовок 
 (2) можно, если только не формировать HTTP заголовок 
 (3) можно если формировать http заголовок 
Упражнение 7:
Номер 1
Можно ли использовать CGI скрипт на C в качестве загружаемого модуля Apache?
Ответ:
 (1) можно, ведь Apache тоже написан на C 
 (2) нельзя, скрипты и модули – это совершенно разные вещи 
 (3) можно, если есть соответствующий модуль Apache 
Номер 2
Как узнать размер списка переменных окружения CGI скрипта на C?
Ответ:
 (1) по аргументу argc
функции main
 
 (2) по аргументу env
функции main
 
 (3) по неопределенному указателю списка env
функции main