Введение
В этом практическом занятии (лабораторной работе) вы научитесь писать и запускать свою первую программу на языке C в виртуальной машине (VM) LabEx. Вы начнете с простой программы "Hello, World!", затем улучшите вывод с помощью нескольких операторов вывода на экран, персонализируете вывод, используя переменные, изучите манипуляцию строками в языке C и, наконец, научитесь компилировать и отлаживать программы на языке C.
Напишите и запустите свою первую программу на языке C
На этом этапе вы напишете и запустите свою первую программу на языке C в виртуальной машине (VM) LabEx. Мы поможем вам создать простую программу "Hello, World!", которая познакомит вас с базовой структурой программирования на языке C.
Откройте WebIDE
- Нажмите на вкладку "WebIDE" (по умолчанию) в интерфейсе LabEx, чтобы открыть среду, похожую на VS Code.
- В проводнике файлов в левой боковой панели щелкните правой кнопкой мыши и выберите "Новый файл".
- Назовите файл
hello.c. Расширение.cуказывает, что это файл исходного кода на языке C.

Если вы хотите узнать больше о WebIDE, ознакомьтесь с Руководством по WebIDE.
Напишите свою первую программу на языке C
Скопируйте и вставьте следующий код в файл hello.c:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
Разберем этот код:
#include <stdio.h>: Подключает стандартную библиотеку ввода-выводаint main() {... }: Главная функция, с которой начинается выполнение программыprintf("Hello, World!\n");: Выводит текст на экран\n: Переходит на новую строку после выводаreturn 0;: Указывает на успешное завершение программы
Скомпилируйте и запустите программу
Откройте терминал в WebIDE и выполните следующие команды:
gcc hello.c -o hello
./hello

Пример вывода:
Hello, World!
Пояснение команд
gcc hello.c -o hello: Компилирует исходный код на языке C в исполняемый файл с именемhello./hello: Запускает скомпилированную программу
Улучшите вывод с помощью нескольких операторов printf
На этом этапе вы научитесь улучшать свою программу на языке C, добавляя несколько операторов вывода на экран (printf). Это поможет вам понять, как выводить более сложный текст и использовать несколько строк текста в своих программах.
Измените существующую программу
- Откройте файл
hello.cв WebIDE, который вы создали на предыдущем этапе. - Замените содержимое файла следующим кодом:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
printf("Welcome to C programming!\n");
printf("This is your first multi-line program.\n");
return 0;
}
Пояснение кода
- Мы добавили еще два оператора
printf - Каждый оператор
printfзаканчивается\n, чтобы создать новую строку - Точка с запятой (
;) обозначает конец каждой инструкции
Скомпилируйте и запустите обновленную программу
Откройте терминал в WebIDE и выполните следующие команды:
gcc hello.c -o hello
./hello
Пример вывода:
Hello, World!
Welcome to C programming!
This is your first multi-line program.
Основные наблюдения
- Каждый оператор
printfвыводит текст на отдельной строке - Символ
\nобеспечивает разрыв строки между выводами - Вы можете добавить столько операторов
printf, сколько вам нужно
Советы по устранению неполадок:
- Убедитесь, что каждая строка заканчивается
\n - Проверьте, что каждый оператор
printfзаканчивается точкой с запятой - Убедитесь, что вы сохранили файл перед компиляцией
Персонализируйте вывод с использованием переменных
На этом этапе вы научитесь использовать переменные в языке C для создания более динамического и персонализированного вывода. Переменные позволяют вам хранить и манипулировать данными в рамках вашей программы.
Создание новой программы на языке C с использованием переменных
- Откройте WebIDE и создайте новый файл с именем
greeting.c. Или вы можете ввести командуtouch greeting.cв терминале, чтобы создать файл. - Введите следующий код в файл
greeting.c:
#include <stdio.h>
int main() {
char name[] = "LabEx";
printf("Hello, %s!\n", name);
printf("Welcome to C programming, %s!\n", name);
return 0;
}
Пояснение кода
char name[] = "LabEx";: Создает переменную - символьный массив (строка) с именемname%s- это спецификатор формата, который сообщает функцииprintf, что нужно вставить строку, nameпосле строки формата указывает, какую переменную нужно вставить
Компиляция и запуск программы
Откройте терминал в WebIDE и выполните следующие команды:
gcc greeting.c -o greeting
./greeting
Пример вывода:
Hello, LabEx!
Welcome to C programming, LabEx!
Эксперименты с переменными
Попробуйте изменить переменную name, указав свое имя:
char name[] = "Your Name";
Перекомпилируйте и запустите программу, чтобы увидеть персонализированный вывод.
Советы по устранению неполадок:
- Убедитесь, что переменная определена до ее использования в функции
printf - Проверьте, что вы сохранили файл перед компиляцией
- Убедитесь, что имя переменной написано правильно
Исследуйте манипуляции со строками в языке C
На этом этапе вы научитесь основным техникам манипуляций со строками в языке C, включая конкатенацию (склеивание) строк и использование функций, связанных со строками, из стандартной библиотеки.
Создание программы для манипуляций со строками
- Откройте WebIDE и создайте новый файл с именем
strings.c. - Введите следующий код:
#include <stdio.h>
#include <string.h>
int main() {
char first_name[] = "Lab";
char last_name[] = "Ex";
char full_name[20];
// Concatenate strings
strcpy(full_name, first_name);
strcat(full_name, " ");
strcat(full_name, last_name);
// Print string length and concatenated name
printf("First name length: %lu\n", strlen(first_name));
printf("Last name length: %lu\n", strlen(last_name));
printf("Full name: %s\n", full_name);
return 0;
}
Пояснение кода
#include <string.h>: Подключает функции для манипуляций со строкамиstrcpy(): Копирует строку в другую строкуstrcat(): Конкатенирует (склеивает) две строкиstrlen(): Возвращает длину строки%lu: Спецификатор формата для беззнакового целого типаlong(используется для вывода длины строки)
Компиляция и запуск программы
Откройте терминал в WebIDE и выполните следующие команды:
gcc strings.c -o strings
./strings
Пример вывода:
First name length: 3
Last name length: 2
Full name: Lab Ex
Техники манипуляций со строками
Основные операции со строками, продемонстрированные в программе:
- Создание символьных массивов
- Копирование строк с использованием
strcpy() - Склеивание строк с использованием
strcat() - Определение длины строки с использованием
strlen()
Советы по устранению неполадок:
- Убедитесь, что в целевой строке есть достаточно места
- Всегда подключайте
<string.h>при использовании функций для работы со строками - Будьте осторожны с размерами буферов строк, чтобы избежать переполнения
Компиляция и отладка программ на языке C
На этом этапе вы научитесь важнейшим техникам компиляции и отладки программ на языке C, включая понимание предупреждений компилятора, использование флагов компиляции и базовые стратегии отладки.
Создание программы с преднамеренными ошибками
- Откройте WebIDE и создайте новый файл с именем
debug.c. - Введите следующий код с некоторыми преднамеренными ошибками:
#include <stdio.h>
int main() {
int x = 10;
int y = 0;
// Intentional division by zero
int result = x / y;
printf("Result: %d\n", result);
// Unused variable
int z = 5;
return 0;
}
Компиляция с выводом предупреждений
Скомпилируйте программу с дополнительными флагами предупреждений:
gcc -Wall -Wextra debug.c -o debug
Пояснение флагов компиляции
-Wall: Включает большинство сообщений о предупреждениях-Wextra: Включает еще более детальные предупреждения
Пример вывода компилятора:
debug.c: In function ‘main’:
debug.c:13:9: warning: unused variable ‘z’ [-Wunused-variable]
13 | int z = 5;
| ^
Использование GDB для отладки
Скомпилируйте программу с символами отладки:
gcc -g debug.c -o debug
Запустите отладку:
gdb./debug
Команды GDB:
run: Запустить программуbreak main: Установить точку останова в функцииmainprint x: Вывести значение переменнойxnext: Выполнить следующую строкуquit: Выйти из GDB
(gdb) run
Starting program: /home/labex/project/debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGFPE, Arithmetic exception.
0x0000555555555167 in main () at debug.c:8
8 int result = x / y;
(gdb) print x
$1 = 10
(gdb) break main
Breakpoint 1 at 0x555555555155: file debug.c, line 4.
(gdb) next
Program terminated with signal SIGFPE, Arithmetic exception.
The program no longer exists.
(gdb) quit
GDB показывает ошибку деления на ноль в строке 8. Программа завершается аварийно из - за арифметического исключения.
Исправление программы
Измените файл debug.c, чтобы безопасно обрабатывать деление:
#include <stdio.h>
int main() {
int x = 10;
int y = 2; // Change from 0 to a non-zero value
if (y!= 0) {
int result = x / y;
printf("Result: %d\n", result);
} else {
printf("Error: Division by zero!\n");
}
return 0;
}
Перекомпилируйте и запустите программу:
gcc -Wall -Wextra debug.c -o debug
./debug
Вывод:
Result: 5
Советы по устранению неполадок:
- Всегда компилируйте программу с флагами
-Wall -Wextra - Уделяйте внимание предупреждениям компилятора
- Используйте GDB для сложных сценариев отладки
- Добавляйте проверку ошибок для потенциальных проблем во время выполнения программы
Резюме
В этом практическом занятии вы научились писать и запускать свою первую программу на языке C, улучшать вывод с помощью нескольких операторов вывода на экран (printf), персонализировать вывод с использованием переменных, исследовать манипуляции со строками в языке C, а также компилировать и отлаживать программы на C. Вы получили практический опыт работы с базовой структурой программирования на языке C, включая подключение библиотек, определение функции main, использование функции printf() для вывода информации на экран, а также компиляцию и запуск программы. Вы также изучили более продвинутые концепции, такие как использование нескольких операторов вывода на экран и работа с переменными и строками.



