Создайте свою первую программу на языке C в LabEx

CCBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь писать и запускать свою первую программу на языке C в виртуальной машине (VM) LabEx. Вы начнете с простой программы "Hello, World!", затем улучшите вывод с помощью нескольких операторов вывода на экран, персонализируете вывод, используя переменные, изучите манипуляцию строками в языке C и, наконец, научитесь компилировать и отлаживать программы на языке C.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/comments("Comments") c/ControlFlowGroup -.-> c/if_else("If...Else") c/CompoundTypesGroup -.-> c/strings("Strings") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-438241{{"Создайте свою первую программу на языке C в LabEx"}} c/comments -.-> lab-438241{{"Создайте свою первую программу на языке C в LabEx"}} c/if_else -.-> lab-438241{{"Создайте свою первую программу на языке C в LabEx"}} c/strings -.-> lab-438241{{"Создайте свою первую программу на языке C в LabEx"}} c/output -.-> lab-438241{{"Создайте свою первую программу на языке C в LabEx"}} end

Напишите и запустите свою первую программу на языке C

На этом этапе вы напишете и запустите свою первую программу на языке C в виртуальной машине (VM) LabEx. Мы поможем вам создать простую программу "Hello, World!", которая познакомит вас с базовой структурой программирования на языке C.

Откройте WebIDE

  1. Нажмите на вкладку "WebIDE" (по умолчанию) в интерфейсе LabEx, чтобы открыть среду, похожую на VS Code.
  2. В проводнике файлов в левой боковой панели щелкните правой кнопкой мыши и выберите "Новый файл".
  3. Назовите файл hello.c. Расширение .c указывает, что это файл исходного кода на языке C.
Скриншот интерфейса WebIDE

Если вы хотите узнать больше о 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
Терминал, запускающий программу на языке C

Пример вывода:

Hello, World!

Пояснение команд

  • gcc hello.c -o hello: Компилирует исходный код на языке C в исполняемый файл с именем hello
  • ./hello: Запускает скомпилированную программу

Улучшение вывода с использованием нескольких операторов вывода на экран

На этом этапе вы научитесь улучшать свою программу на языке C, добавляя несколько операторов вывода на экран (printf). Это поможет вам понять, как выводить более сложный текст и использовать несколько строк текста в своих программах.

Измените существующую программу

  1. Откройте файл hello.c в WebIDE, который вы создали на предыдущем этапе.
  2. Замените содержимое файла следующим кодом:
#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 с использованием переменных

  1. Откройте WebIDE и создайте новый файл с именем greeting.c. Или вы можете ввести команду touch greeting.c в терминале, чтобы создать файл.
  2. Введите следующий код в файл 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, включая конкатенацию (склеивание) строк и использование функций, связанных со строками, из стандартной библиотеки.

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

  1. Откройте WebIDE и создайте новый файл с именем strings.c.
  2. Введите следующий код:
#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, включая понимание предупреждений компилятора, использование флагов компиляции и базовые стратегии отладки.

Создание программы с преднамеренными ошибками

  1. Откройте WebIDE и создайте новый файл с именем debug.c.
  2. Введите следующий код с некоторыми преднамеренными ошибками:
#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: Установить точку останова в функции main
  • print x: Вывести значение переменной x
  • next: Выполнить следующую строку
  • 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() для вывода информации на экран, а также компиляцию и запуск программы. Вы также изучили более продвинутые концепции, такие как использование нескольких операторов вывода на экран и работа с переменными и строками.