Это подробное руководство по основам языка C, включающее примеры программ, которые демонстрируют различные концепции программирования на C.
Каждая программа на C начинается с функции main()
:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
Основные типы данных в C:
int
— целые числаfloat
— числа с плавающей запятойdouble
— числа с двойной точностьюchar
— одиночные символыПример использования арифметических операций в C:
#include <stdio.h>
int main() {
int a = 10, b = 20;
int sum = a + b;
int diff = b - a;
int prod = a * b;
int div = b / a;
int mod = b % a;
printf("Sum: %d\n", sum);
printf("Difference: %d\n", diff);
printf("Product: %d\n", prod);
printf("Division: %d\n", div);
printf("Modulus: %d\n", mod);
return 0;
}
Ввод и вывод данных с использованием scanf
и printf
:
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
printf("You entered: %d\n", num);
return 0;
}
Пример использования оператора if-else
:
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (num > 0) {
printf("The number is positive.\n");
} else if (num < 0) {
printf("The number is negative.\n");
} else {
printf("The number is zero.\n");
}
return 0;
}
Пример цикла while
:
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
printf("i = %d\n", i);
i++;
}
return 0;
}
Пример цикла for
:
#include <stdio.h>
int main() {
for (int i = 0; i < 5; i++) {
printf("i = %d\n", i);
}
return 0;
}
Пример работы с массивами:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("Element %d: %d\n", i, arr[i]);
}
return 0;
}
Пример работы со строками в C:
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
printf("You entered: %s", str);
return 0;
}
Пример создания и использования функции:
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(10, 20);
printf("Sum: %d\n", result);
return 0;
}
Пример функции, вычисляющей факториал числа с использованием рекурсии:
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num = 5;
printf("Factorial of %d is %d\n", num, factorial(num));
return 0;
}
Пример работы с указателями:
#include <stdio.h>
int main() {
int a = 10;
int *p = &a;
printf("Value of a: %d\n", a);
printf("Address of a: %p\n", &a);
printf("Pointer p points to: %d\n", *p);
return 0;
}
Пример динамического выделения памяти с использованием malloc
и free
:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr;
int n, i;
printf("Enter number of elements: ");
scanf("%d", &n);
ptr = (int*)malloc(n * sizeof(int));
if (ptr == NULL) {
printf("Memory not allocated.\n");
return 1;
}
printf("Memory successfully allocated.\n");
for (i = 0; i < n; i++) {
ptr[i] = i + 1;
}
printf("The elements of the array are: ");
for (i = 0; i < n; i++) {
printf("%d ", ptr[i]);
}
free(ptr);
printf("\nMemory successfully freed.\n");
return 0;
}
Пример работы с файлами в C:
#include <stdio.h>
int main() {
FILE *fptr;
fptr = fopen("example.txt", "w");
if (fptr == NULL) {
printf("Error opening file.\n");
return 1;
}
fprintf(fptr, "This is a file output example.\n");
fclose(fptr);
printf("Data written to file successfully.\n");
return 0;
}
Пример использования структур в C:
#include <stdio.h>
struct Person {
char name[50];
int age;
};
int main() {
struct Person person1;
printf("Enter name: ");
fgets(person1.name, sizeof(person1.name), stdin);
printf("Enter age: ");
scanf("%d", &person1.age);
printf("Name: %s", person1.name);
printf("Age: %d\n", person1.age);
return 0;
}
Пример использования директивы #define
:
#include <stdio.h>
#define PI 3.14159
int main() {
printf("Value of PI: %f\n", PI);
return 0;
}