Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

отчет1

.docx
Скачиваний:
4
Добавлен:
18.02.2023
Размер:
49.04 Кб
Скачать

Министерство образования Республики Беларусь

УО «Полоцкий государственный университет»

Факультет информационных технологий

Кафедра технологий программирования

ОТЧЕТ

О прохождении курса по дисциплине

«Программирование для Интернет»

на тему «Основы Git»

Выполнил студент группы

Проверил

Полоцк

1. Система контроля версий позволяет:

  • Организовать совместную работу нескольких разработчиков

  • Фиксировать версию программы на различных этапах разработки, тем самым создавая историю.

  • Отслеживать изменения между разными версиями программы.

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

  • Слияния изменений и разрешения конфликтов в файлах исходных кодов.

  • Организации совместной работы нескольких программистов.

3. В централизованной системе контроля версий есть:

  • Только одна копия репозитория.

4. Минимальной "единицей" в git (исходя из предыдущего видео) является:

  • Коммит

5. Скопируйте содержимое файла /home/box/condition в /home/box/answer.

  • cp /home/box/condition /home/box/answer

6. Используя инструкцию из предыдущего шага скопируйте текст 

NDQxNzU3NWRlMzYwYzFlODk3ZDU1NzlmYjQ1MjM4YTZjNjJjZTcyZDEwYTY5ODE1Yjg2MmUZTMwM2MxYTgyZCAgLQo

в файл /home/box/answer

  • echo "NDQxNzU3NWRlMzYwYzFlODk3ZDU1NzlmYjQ1MjM4YTZjNjJjZTcyZDEwYTY5ODE1Yjg2MmUZTMwM2MxYTgyZCAgLQo" > /home/box/answer

7. Скопируйте содержимое файла /home/box/for_next_task из предыдущего задания в поле ниже.

  • mVQOaZMZmAuCQ9ng1RurSlVT1bBjDgarW5AULZeBNtU

8. Склонируйте репозиторий по адресу https://github.com/OSLL/git_course_example_repo в папку REPO, находящуюся в домашней директории текущего пользователя. В результате, содержимое репозитория должно находиться в REPO.

  • mkdir /home/box/REPO

  • git clone https://github.com/OSLL/git_course_example_repo /home/box/REPO

9. Репозиторий https://github.com/OSLL/git_course_example_repo  склонирован в папку $HOME/REPO . Настройте git так, чтобы имя git-пользователя было GitMegauser, а e-mail git_super@example.com

  • git config --global user.name "GitMegauser"

  • git config --global user.email git_super@example.com

10. Репозиторий https://github.com/OSLL/git_course_example_repo склонирован в папку $HOME/REPO. Настройте его локальную конфигурацию так, чтобы можно было выполнять команду push на сервер, не вводя логин и пароль github аккаунта.

  • cd ~/REPO

  • git remote set-url origin git@github.com:OSLL/git_course_example_repo.git

11. Воспроизведите ситуацию, показанную в конце видео, используя репозиторий  https://github.com/OSLL/git_course_example_repo, который склонирован в директорию /home/box/REPO:

  • добавьте файл newfile,

  • модифицируйте README.md,

  • добавьте newfile в индекс

  • cd ~/REPO

  • touch newfile

  • vim README.md

  • git add newfile README.md

12. Выберите команды, с помощью которых можно найти коммит, содержащий некоторый искомый файл.

A: git status

B: git status --long

C: git log --summary

D: git log --stat

  • Вариант C

  • Вариант D

13. Изначально в репозитории содержатся следующие файлы:

./man/spring/dock/flesh/zinc.file

./man/spring/word/popcorn.file

./man/stream.file

./flag.file

git status №0:

On branch master

nothing to commit, working directory clean

git status №1:

On branch master

nothing to commit, working directory clean

Выберите верный набор git команд, которые переводят git status №0 в git status №1:

A:

echo ww >> ./man/spring/word/popcorn.file

git checkout -- ./man/spring/word/popcorn.file

B:

echo ww >> ./man/spring/word/popcorn.file

git add ./man/spring/word/popcorn.file

C:

cp ./man/spring/word/popcorn.file ./tztfu

git mv ./man/spring/word/popcorn.file ./flag.file

  • Вариант A

14. Выберите верный ответ на команду git status для репозитория, к которому были применены команды ниже:

Изначальный статус репозитория (git status):

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file: jeans/aftermath/fowl/stream/school.file

new file: rabbits/coat.file

new file: rabbits/horses/wealth/beds.file

new file: rabbits/mouth/bells.file

Применённые команды:

echo ww >> ./rabbits/mouth/bells.file

git add ./rabbits/mouth/bells.file

git checkout -- ./rabbits/mouth/bells.file

cp ./rabbits/horses/wealth/beds.file ss

git mv ./rabbits/horses/wealth/beds.file ohubjfy

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

A:

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file: jeans/aftermath/fowl/stream/school.file

deleted: ohubjfy

new file: rabbits/coat.file

new file: rabbits/mouth/bells.file

Untracked files:

(use "git add ..." to include in what will be committed)

ss

B:

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file: jeans/aftermath/fowl/stream/school.file

modified: ohubjfy

new file: rabbits/coat.file

new file: rabbits/mouth/bells.file

Untracked files:

(use "git add ..." to include in what will be committed)

ss

C:

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file: jeans/aftermath/fowl/stream/school.file

new file: ohubjfy

new file: rabbits/coat.file

new file: rabbits/mouth/bells.file

Untracked files:

(use "git add ..." to include in what will be committed)

ss

  • Вариант C

15. Выберите верный набор git команд, которые переводят git status №0 в git status №1:

git status №0:

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file: jeans/aftermath/fowl/stream/school.file

new file: rabbits/coat.file

new file: rabbits/horses/wealth/beds.file

new file: rabbits/mouth/bells.file

git status №1:

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file: jeans/aftermath/fowl/stream/school.file

new file: ohubjfy

new file: rabbits/coat.file

new file: rabbits/mouth/bells.file

Untracked files:

(use "git add ..." to include in what will be committed)

ss

Какой набор команд был использован?

A:

echo ww >> ./rabbits/mouth/bells.file

git add ./rabbits/mouth/bells.file

git checkout -- ./rabbits/mouth/bells.file

cp ./rabbits/horses/wealth/beds.file ss

git mv ./rabbits/horses/wealth/beds.file ohubjfy

B:

cp ./rabbits/mouth/bells.file mxhlws

git rm -f ./rabbits/mouth/bells.file

cp ./rabbits/horses/wealth/beds.file sfrs

git rm -f ./rabbits/horses/wealth/beds.file

C:

cp ./rabbits/mouth/bells.file yzw

echo ww >> ./rabbits/mouth/bells.file

git rm -f ./rabbits/mouth/bells.file

cp ./rabbits/horses/wealth/beds.file u

git mv ./rabbits/horses/wealth/beds.file rbcxkvfbxloqu

  • Вариант A

16. Начальное состояние репозитория:

./wrist/flag/dock/school/cough.file

./poison/harbor/offer.file

./popcorn/work/birth/minister.file

./popcorn/stream.file

git status №0:

On branch master

nothing to commit, working directory clean

git status №1:

On branch master

Changes to be committed:

(use "git reset HEAD <file>..." to unstage)

renamed: poison/harbor/offer.file -> tsc

Untracked files:

(use "git add <file>..." to include in what will be committed)

exbezy

Выберите верный набор git команд, которые переводят git status №0 в git status №1:

A:

git mv ./poison/harbor/offer.file ./exbezy

cp ./poison/harbor/offer.file ./tsc

B:

cp ./poison/harbor/offer.file ./exbezy

git mv ./poison/harbor/offer.file ./poison/harbor/tsc

C:

cp ./poison/harbor/offer.file ./exbezy

git mv ./poison/harbor/offer.file ./tsc

  • Вариант C

17. У вас есть склонированный локально репозиторий https://github.com/OSLL/git_course_example_repo в /home/box/REPO. Сделайте коммит с сообщением "Git rules!"

  • cd ~/REPO

  • git commit --amend -m "Git rules!"

18. Отметьте команды, которые создают хэш:

A: git add

B: git commit

  • Choice B

19. Отметьте команды, которые создают снимок файлов из индекса и обновляют состояние локального репозитория:

A: git add

B: git commit

C: git status

D: git push

E: git stash

  • Choice B

20. В рабочей директории находится файл some_file.txt

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

A:

echo "new line" >> some_file.txt

git add some_file.txt

B:

echo "new_line" >> some_file.txt

git checkout – some_file.txt

  • Choice A

21. В репозитории содержится файл, не находящийся в индексе: file.txt Файл был обновлен путем добавления в него новой строки.

Выберете корректное утверждение:

A: Обновленный файл не содержится ни в индексе, ни в коммите.

B: Обновленный файл содержится в индексе, но не в коммите.

C: Обновленный файл не содержится в индексе, но содержится в коммите.

D: Обновленный файл содержится и в индексе, и в коммите.

  • Choice A

22. Был создан новый файл newfile в рабочей директории и проиндексирован следующим образом: git add newfile

После этого файл был изменен, и было принято решение его удалить.

Выберите команду, которая удаляет файл из файловой системы и из индекса:

A: git rm newfile

B: git rm -f newfile

  • Вариант B

23. Сопоставьте последовательности команд, которые выполняют одни и те же задачи.

A:

mv old_name new_name

git add old_name new_name

B:

git rm old_name

C:

git mv old_name new_name

git mv new_name old_name

1:

rm old_name

git add old_name

2:

cp old_name new_name

rm old_name

mv new_name old_name

3:

git mv old_name new_name

  • C 2

  • A 3

  • B 1

24. В рабочей директории есть два закомиченных файла: textfile.txt, readme

Выберите последовательности команд, которые удаляют файл readme из файловой системы и из индекса:

A:

rm readme

git commit

B:

rm readme

git add readme

git commit

C:

git rm readme

git commit

D:

git rm --cached readme

git add readme

git commit

  • Вариант B

  • Вариант C

25. В рабочей директории есть несколько файлов: file1.txt, dir/file2.txt, readme.txt

Это состояние было закоммичено и был получен хэш 9e2d55ff.

После этого file1.txt был изменен и readme.txt был переименован в readme:

echo "new line" >> file1.txt

git mv readme.txt readme

Выберите последовательность команд (без дополнительных неиспользуемых команд) которая позволит вам переключиться на коммит, хэш которого 9e2d55ff без ошибок:

A:

git checkout -- file1.txt

git checkout 9e2d55ff

B:

git reset HEAD

git checkout -- file1.txt readme.txt

rm readme

git checkout 9e2d55ff

C:

git checkout 9e2d55ff

  • Вариант A

26. Вам дана виртуальная машина, где в директории /home/box/REPO размещена локальная копия репозитория  https://github.com/OSLL/git_course_example_repo. На основе ветки master создайте новую ветку под названием "git_rules".

  • cd ~/REPO

  • git checkout -b git_rules

27. Вам дана виртуальная машина, где в директории /home/box/REPO размещена локальная копия репозитория https://github.com/OSLL/git_course_example_repo. Кто-то создал в репозитории очень много веток и одна из них содержит в названии 5555. Определите полное название этой ветки с помощью git branch и запишите его в файл /home/box/answer.

  • git branch --list '*5555*' > /home/box/answer

28. Выберите команды, которыми можно отобразить список веток удаленного репозитория.

A: git branch --all

B: git branch --list

C: git branch -r

D: git branch

  • A

  • C

29. Выберите правильный набор команд (или отдельные команды), которые создают ветку и переключают рабочее дерево на нее. В данном задании несколько правильных вариантов ответа.

A: git branch new_branch

B:

git branch new_branch

git checkout -b new_branch

C: git checkout -b new_branch

D:

git branch new_branch

git checkout new_branch

  • C

  • D

30. Вы создали ветку с помощью следующей команды:

git branch new_branch

Выберите правильный:

A: Ветка существует только в локальном репозитории.

B: Ветка существует только в удаленном репозитории.

C: Ветка существует и в удаленном и в локальном репозитории.

  • A

31. У вас есть локальный репозиторий, в котором git status вывел следующий текст:

On branch master

Changes not staged for commit:

(use "git add <file>..." to update what will be committed)

(use "git checkout -- <file>..." to discard changes in working directory)

modified: file2.txt

no changes added to commit (use "git add" and/or "git commit -a")

Предположим, что вы хотите создать новую ветку из мастера с помощью команды: git checkout -b new_branch

Как будет выглядеть вывод команды git status?

A:

On branch new_branch

Changes to be committed:

(use "git reset HEAD <file>..." to unstage)

deleted: file2.txt

B:

On branch new_branch

Changes to be committed:

(use "git reset HEAD <file>..." to unstage)

deleted: file2.txt

Untracked files:

(use "git add <file>..." to include in what will be committed)

file2.txt

C:

On branch new_branch

Changes not staged for commit:

(use "git add <file>..." to update what will be committed)

(use "git checkout -- <file>..." to discard changes in working directory)

modified: file2.txt

no changes added to commit (use "git add" and/or "git commit -a")

  • Choice C

32. У вас есть локальный репозиторий в /home/box/REPO. Найдите в истории коммит с сообщением "Git rules!" и напишите его хэш (полностью) в файл /home/box/answer.

  • git log --grep="Git rules!" --pretty=format:%H > /home/box/answer

33. Аналогично предыдущему заданию, у вас есть локальный репозиторий в /home/box/REPO. Требуется найти коммит, сообщение которого содержит "Git rules!", и переключиться к этому коммиту.

  • git log --grep='Git rules!' --pretty=format:%h

  • git checkout 24c9a1b

34. Текущей веткой является branch1. Пользователь создал файл text.txt и внес в него изменения, не добавляя text.txt в индекс.

Какие команды позволят сохранить изменения text.txt в индексе, а также сменить текущую ветку на branch2?

A:

git stash

git checkout branch2

B:

git add text.txt

git checkout branch2

C:

git checkout -- text.txt

git checkout branch2

D:

git commit

git checkout branch2

  • Вариант B

35. В директории /home/box/REPO располагается локальный репозиторий. Необходимо при помощи команды git stash сохранить все измененные файлы в stash. Ничего удалять/создавать/коммитить не нужно.

  • сd ~/REPO

  • git stash

36. В директории /home/box/REPO располагается локальный репозиторий. Необходимо при помощи команды git stash извлечь сохраненные изменения в stash. Ничего удалять/создавать/коммитить не нужно.

  • cd ~/REPO

  • git stash pop

37. В директории /home/box/REPO располагается локальный репозиторий. Необходимо при помощи команды git stash удалить все сохраненные изменения из stash. Ничего создавать/коммитить не нужно.

  • cd ~/REPO

  • git stash clear

38. Локальный и удалённый репозитории синхронизированы, при этом существует единственная ветка master.

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

git add file.txt

git commit -m "commit description"

git checkout HEAD^

touch README

git add README

git commit -m "another commit description"

  • 1

39. В директории /home/box/REPO располагается локальный репозиторий. Необходимо при помощи команды git reset откатиться к предыдущему коммиту с восстановлением индекса, но без изменений рабочего каталога. Ничего удалять/создавать/коммитить не нужно.

  • git reset -- mixed HEAD~

40. В директории /home/box/REPO располагается локальный репозиторий. Необходимо при помощи команды git reset откатиться к предыдущему коммиту без изменений в индексе или рабочем каталоге. Ничего удалять/создавать/коммитить не нужно.

  • git reset --soft HEAD~

41. В директории /home/box/REPO располагается локальный репозиторий. Необходимо при помощи команды git reset откатиться к предыдущему коммиту с восстановлением как индекса, так и рабочего каталога. Ничего удалять/создавать/коммитить не нужно.

  • git reset --hard HEAD~

42. Состояние локального и удалённого репозиториев различаются. Если необходимо скачать только новые файлы с удалённого репозитория, не обновляя существующие на локальном, то подходит команда:

A: git fetch

B: git push

C: git pull

  • Вариант A

43. Вы обновили состояние локального репозитория (совершили коммит), а в это время кто-то внёс изменения в удалённый репозиторий.

Если вы попытаетесь загрузить свои изменения на удалённый репозиторий (командой git push), то получите конфликт версий. Какими командами необходимо воспользоваться, чтобы решить проблему?

A:

git fetch origin master

<edit your files to the correct version>

git commit -a

git push origin master

B:

git pull origin master

git push origin master

C:

git pull origin master

<edit your files to the correct version>

git commit -a

git push origin master

  • Вариант C

44. Есть две ветки на удалённом репозитории: master и beta. При работе на ветке master были произведены некоторые изменения, но работа не была полностью закончена. Необходимо сменить текущую ветку на beta и скачать её состояние с удалённого репозитория, при этом не загружая на сервер несохранённые изменения ветки master.

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

A:

git checkout -- *

git pull origin

git checkout beta

B:

git stash

git pull origin

git checkout beta

C:

git add -A

git commit

git pull origin

git checkout beta

D:

git pull origin

git checkout beta

  • Вариант B

  • Вариант C

45. В удалённый репозиторий загружен файл:

git add readme.txt

git commit

git push origin master

Выберите верное утверждение, которое описывает, что произойдёт, если после этих действий кто-то в удаленном репозитории изменит файл readme.txt (создав коммит), а в локальном репозитории будет вызвана команда: git pull origin master

  • Изменения успешно загрузятся в локальный репозиторий из удаленного.

46. В удалённый репозиторий загружен файл:

git add readme.txt

git commit

git push origin master

Выберите верное утверждение, которое описывает, что произойдёт, если после этих действий кто-то в удаленном репозитории изменит файл readme.txt (создав коммит), а в локальном репозитории кто-то изменит файл readme.txt (не создавая коммит) и будет вызвана команда: git pull origin master

  • Возникнет конфликт слияния, коммит из удаленного репозитория не будет загружен.

47. В директории /home/box/REPO у вас содержится склонированный репозиторий https://github.com/OSLL/git_course_example_repo.

В репозитории находится файл file.txt, который менялся на протяжении 4 коммитов. Вам необходимо найти, какие данные были добавлены в file.txt в третьем коммите и удалить остальные (т.е. нужно оставить только строку, которая была добавлена во время третьего коммита).

  • git log

  • git diff d607e6 45f6f8

  • echo 'oPL3g1jH9t6iUvNJi8QnWzWzajBqUgnx' > file.txt

48. Ниже представлено содержимое файла с исходным кодом.

#include <iostream>

int main(){

int a = 100;

int b = 0;

while(true) {

if (a > b) {

b += 2;

}

else {

a -= 3;

}

}

std::cout << "a = ", a, " b = ", b;

  return 0;

}

Далее этот же код после некоторых изменений:

#include <iostream>

int main(){

int a = 100;

int b = 0;

while(true) {

if (a < b) {

a++;

b += 2;

}

else {

a -= 3;

}

}

std::cout << "a = ", a, " b = ", b;

  return 0;

}

Что будет показано после вызова команды git diff

A:

@@ -4,7 +4,8 @@ int main(){

int a = 100;

int b = 0;

while(true) {

+ a++;

b += 2;

}

else {

B:

@@ -7,7 +7,8 @@

- if (a > b) {

+ if (a < b) {

+ a++;

C:

@@ -4,7 +4,8 @@ int main(){

int a = 100;

int b = 0;

while(true) {

- if (a > b) {

+ if (a < b) {

+ a++;

b += 2;

}

else {

  • Вариант C

49. Ниже представлено содержимое файла с исходным кодом.

bool isEmpty(){

if(this->data == 0)

return true;

bool result = true;

for (int i = 0; i < 10; i++) {

if(readFromFile("input.txt", i)) {

result = indexes[i].matched;

}

indexes[i].setMatched(true);

}

return result;

}

Далее этот же код после некоторых изменений:

bool isEmpty(){

if(this->data == 0)

return true;

bool result = true;

for (int i = 0; i < 10; i++) {

if(readFromFile("input.txt")) {

result &= indexes[i].matched;

}

indexes[i].setMatched(true);

}

return result;

}

Что будет показано после вызова команды git diff

A:

@@ -5,8 +5,8 @@

- if(readFromFile("input.txt", i)) {

- result = indexes[i].matched;

+ if(readFromFile("input.txt")) {

+ result &= indexes[i].matched;

B:

@@ -3,8 +3,8 @@ bool isEmpty(){

return true;

bool result = true;

for (int i = 0; i < 10; i++) {

- if(readFromFile("input.txt", i)) {

- result = indexes[i].matched;

- }

+ if(readFromFile("input.txt")) {

+ result &= indexes[i].matched;

}

indexes[i].setMatched(true);

}

C:

@@ -3,8 +3,8 @@ bool isEmpty(){

return true;

bool result = true;

for (int i = 0; i < 10; i++) {

- if(readFromFile("input.txt", i)) {

- result = indexes[i].matched;

+ if(readFromFile("input.txt")) {

+ result &= indexes[i].matched;

}

indexes[i].setMatched(true);

}

  • Вариант C

50. Ниже представлено содержимое файла с исходным кодом.

1. int main(){

2. int a = 100;

3. int b = 0;

4. bool flag = getFlag();

5. while(a > b) {

6. if (flag) {

7. b += 2;

8. for (int i = 0; i < calcCPU(a,b); i++) {

9. int grep = initGrep(i);

10. b += grep%2;

11. }

12. std::cout << a;

13. }

14. else {

15. a -= 3;

16. std::cout << b;

17. }

18.

19. if (a%3 == 0) {

20. std::cout << a;

21. }

22. else {

23. a -= 3;

24. std::cout << b;

25. }

26. }

27. std::cout << "a = ", a, " b = ", b;

28.   return 0;

29. }

Далее этот же код после некоторых изменений:

1.

2. int main(){

3. int a = 100;

4. int b = 0;

5. bool flag = getFlag();

6. while(a > b) {

7. if (flag) {

8. b += 2;

9. for (int i = 0; i <= calcCPU(a,b); i++) {

10. int grep = initGrep(i+1);

11. b += grep%2;

12. }

13. std::cout << a;

14. }

15. else {

16. a -= 3;

17. std::cout << b;

18. }

19.

20. if (a%3 == 0) {

21. std::cout << a;

22. }

23. else {

24. a -= 2;

25. std::cout << b;

26. }

27. }

28. std::cout << "a = ", a, " b = ", b;

29.   return 0;

30. }

Что будет показано после вызова команды git diff

A:

@@ -5,8 +6,8 @@ int main(){

while(a > b) {

if (flag) {

b += 2;

- for (int i = 0; i < calcCPU(a,b); i++) {

- int grep = initGrep(i);

+ for (int i = 0; i <= calcCPU(a,b); i++) {

+ int grep = initGrep(i+1);

b += grep%2;

}

std::cout << a;

@@ -20,7 +21,7 @@ int main(){

std::cout << a;

}

else {

- a -= 3;

+ a -= 2;

std::cout << b;

}

}

B:

@@ -1,3 +1,4 @@

+

int main(){

int a = 100;

int b = 0;

@@ -5,8 +6,8 @@ int main(){

while(a > b) {

if (flag) {

b += 2;

- for (int i = 0; i < calcCPU(a,b); i++) {

- int grep = initGrep(i);

+ for (int i = 0; i <= calcCPU(a,b); i++) {

+ int grep = initGrep(i+1);

b += grep%2;

}

std::cout << a;

@@ -12,7 +13,7 @@ int main(){

std::cout << a;

}

else {

- a -= 3;

+ a -= 2;

std::cout << b;

}

}

C:

@@ -1,3 +1,4 @@

+

int main(){

int a = 100;

int b = 0;

@@ -5,8 +6,8 @@ int main(){

while(a > b) {

if (flag) {

b += 2;

- for (int i = 0; i < calcCPU(a,b); i++) {

- int grep = initGrep(i);

+ for (int i = 0; i <= calcCPU(a,b); i++) {

+ int grep = initGrep(i+1);

b += grep%2;

}

std::cout << a;

@@ -20,7 +21,7 @@ int main(){

std::cout << a;

}

else {

- a -= 3;

+ a -= 2;

std::cout << b;

}

}

  • Вариант C

51. Ниже представлено содержимое файла с исходным кодом.

1. int main(){

2. int a = 100;

3. int b = 0;

4. bool flag = getFlag();

5. while(a > b) {

6. if (flag) {

7. b += 2;

8. for (int i = 0; i < calcCPU(a,b); i++) {

9. int grep = initGrep(i);

10. b += grep%2;

11. }

12. std::cout << a;

13. }

14. else {

15. a -= 3;

16. std::cout << b;

17. }

18.

19. if (a%3 == 0) {

20. std::cout << a;

21. }

22. else {

23. a -= 3;

24. std::cout << b;

25. }

26. }

27. std::cout << "a = ", a, " b = ", b;

28.   return 0;

29. }

Далее идет вывод команды git diff

@@ -1,6 +1,6 @@

-int main(){

+int main(int argc, char** argv){

int a = 100;

- int b = 0;

+ int b = argv[0];

bool flag = getFlag();

while(a > b) {

if (flag) {

@@ -13,6 +13,7 @@ int main(){

}

else {

a -= 3;

+ int buf = a > 20 ? 12 : -12;

std::cout << b;

}

Каким будет обновленное состояние этого файла?

A:

1. int main(int argc, char** argv){

2. int a = 100;

3. int b = argv[0];

4. bool flag = getFlag();

5. while(a > b) {

6. if (flag) {

7. b += 2;

8. for (int i = 0; i < calcCPU(a,b); i++) {

9. int grep = initGrep(i);

10. b += grep%2;

11. }

12. std::cout << a;

13. }

14. else {

15. a -= 3;

16. std::cout << b;

17. }

18.

19. if (a%3 == 0) {

20. std::cout << a;

21. }

22. else {

23. a -= 3;

24. int buf = a > 20 ? 12 : -12;

25. std::cout << b;

26. }

27. }

28. std::cout << "a = ", a, " b = ", b;

29.   return 0;

30. }

B:

1. int main(int argc, char** argv){

2. int a = 100;

3. int b = argv[0];

4. bool flag = getFlag();

5. while(a > b) {

6. if (flag) {

7. b += 2;

8. for (int i = 0; i < calcCPU(a,b); i++) {

9. int grep = initGrep(i);

10. b += grep%2;

11. }

12. std::cout << a;

13. }

14. else {

15. a -= 3;

16. int buf = a > 20 ? 12 : -12;

17. std::cout << b;

18. }

19.

20. if (a%3 == 0) {

21. std::cout << a;

22. }

23. else {

24. a -= 3;

25. std::cout << b;

26. }

27. }

28. std::cout << "a = ", a, " b = ", b;

29.   return 0;

30. }

C:

1. int main(){

2. int a = 100;

3. int b = 0;

4. int b = argv[0];

5. bool flag = getFlag();

6. while(a > b) {

7. if (flag) {

8. b += 2;

9. for (int i = 0; i < calcCPU(a,b); i++) {

10. int grep = initGrep(i);

11. b += grep%2;

12. }

13. std::cout << a;

14. }

15. else {

16. a -= 3;

17. int buf = a > 20 ? 12 : -12;

18. std::cout << b;

19. }

20.

21. if (a%3 == 0) {

22. std::cout << a;

23. }

24. else {

25. a -= 3;

26. std::cout << b;

27. }

28. }

29. std::cout << "a = ", a, " b = ", b;

30.   return 0;

31. }

32.

  • Вариант B

Вывод: в ходе курса были изучены возможности распределённой системы управления версиями Git.

Соседние файлы в предмете Программирование для Web