Какие программы написаны на с
Перейти к содержимому

Какие программы написаны на с

  • автор:

Миром всё ещё управляет язык С

Многие из проектов на языке С, существующих сегодня, начинали разрабатываться ещё десятилетия назад. Операционная система UNIX стартовала 1969 году (и писалась на ассемблере), но уже в 1972 была переписана на С. Точнее, это язык С был создан для того, чтобы появилось что-то, на что было бы удобно переписать с ассемблера ядро UNIX и получить чуть более высокоуровневый код, менее зависимый от архитектуры и позволяющий выполнять больше полезной работы на каждую строчку написанного кода.

Разработка базы данных Oracle началась в 1977 году (тоже на ассемблере) и тоже была переписана на С в 1983 году. К тому времени это был уже один из самых популярных языков в мире.

В 1985 году вышла Windows 1.0. Хотя код операционной системы Windows не является открытым, общеизвестно, что ядро в основном написано на С с небольшими вставками ассемблера. Разработка Linux началась в 1991 году и началась сразу на С. В следующем году она была опубликована под лицензией GPL и использована как часть GNU Operating System, которая и сама начиналась как проект на С и Lisp, так что многие компоненты были написаны на С.

Но проекты на С — это не только то, что стартовало десятилетия назад, когда выбор языков, скажем прямо, был достаточно ограничен. Много С-кода пишется и сейчас, на нём начинаются и новые проекты. Для этого есть причины.

Как именно язык С управляет миром?

Не смотря на современную тенденцию к использованию высокоуровневых языков, фундамент мира ИТ всё ещё держится на языке С. Вот лишь некоторые из систем, написанных на С и ежедневно используемых миллионами людей.

Microsoft Windows

Как уже говорилось выше, ядро Windows — это в основном код на С. Можно по-разному относится к этой операционной системе, но уже несколько десятилетий она занимает наибольшую долю рынка десктопных ОС.

Linux

Linux тоже написано большей частью на С. 97% всех суперкомпьютеров мира работают на Linux. Неоспорима его большая доля на рынке серверов, а кто-то использует его и на десктопе.

Mac

Вы не поверите, но и третья «большая» ОС в нашем списке тоже написана на С (по крайней мере её ядро).

Драйвера

Когда мы говорим о драйвере устройства, не важно под какую операционную систему, в абсолютном большинстве случаев мы говорим о коде на С.

Мобильные ОС

Ядра iOS, Android и Windows Phone тоже написаны на С. По сути они являются мобильными адаптациями уже существовавших ранее ядер Mac OS, Linux и Windows. Так что прямо сейчас в вашем кармане работает С-код.

image

Базы данных

Все наиболее популярные базы данных в мире (Oracle Database, MySQL, MS SQL Server, PostgreSQL) написаны на С (некоторые — на комбинации С/С++). Базы данных используются во всех типах систем: финансы, медиа, телеком, здравоохранение, образование, продажи, веб и т.д. Если вы не живёте на необитаемом острове — вы сталкиваетесь с системами на базах данных (и, как следствие, с работой кода на С) ежедневно.

image

Графика, видео, спецэффекты

Современный кинематограф создаётся в основном специальным ПО, предназначенным для этого. Высоконагруженные системы, от которых требуется обрабатывать огромные массивы видеоданных, часто пишутся на С и С++. Чем эффективнее будет код — тем быстрее будет получен результат, тем больше возможностей откроется перед художниками и аниматорами по доводке деталей будущего киношедевра. И тем больше денег сэкономит кинопроизводитель.

Embedded-разработка

Просто вспомните свой обычный день. Вы просыпаетесь от будильника (который, возможно, управляется микроконтроллером с кодом на С). Затем ваша микроволновка (тоже с микроконтроллером) разогревает ваш завтрак. Вы наливаете кофе из кофеварки (ну, вы уже поняли). За завтраком вы включаете телевизор или радио (снова embedded железо и код). Дальше вы открываете дверь гаража (с пульта). Очень большая часть кода во всех вышеперечисленных устройствах написана на С.

И вот вы добрались до своего автомобиля. В нём работают (и, скорее всего, написаны на С), следующие системы:

  • управление автоматической коробкой передач
  • система определения давления в шинах
  • сенсоры
  • сохранения положений сидушек и зеркал
  • экран бортового компьютера
  • сигнализация
  • система электронной стабилизации
  • круиз-контроль
  • климат-контроль
  • зажигание без ключа
  • обогрев сидений
  • подушки безопасности

Каждый день вы сталкиваетесь с банкоматами, кассовыми аппаратами, светофорами, системами контроля доступа, видеонаблюдением — везде микроконтроллеры, везде код на С.

image

Почему люди всё ещё пишут на С?

Сегодня есть множество языков программирования и многие из них, скажем прямо, позволяют писать код быстрее и легче, чем на С. Высокоуровневые языки дают нам отличные инструменты для абстракций, богатые стандартные библиотеки, работу с разными форматами данных «из коробки», легкий доступ к сети и вебу, к базам данных и т.д.

Но, не смотря на всё вышеперечисленное, есть причины, по которым код на С всё ещё работает и будет работать ещё долго. В мире разработки ПО нет «серебрянной пули», нет одного языка, который закрыл бы все ниши. В некоторых сферах С всё ещё предпочтительный выбор, а в некоторых — вообще единственный возможный.

Комбинация портируемости и эффективности

С разрабатывался как «портируемый ассемблер». Он так близок к машинному коду, как только это возможно, но всё же он — не машинный код. Есть как минимум один компилятор С под вообще любую существующую в мире процессорную архитектуру (ну, если только вы не спаяли вчера собственный процессор где-нибудь в гараже). Более того, под основные архитектуры компиляторы С писались и оптимизировались уже несколько десятилетий. А это означает, что они просто бешено эффективные. У вас займёт очень много времени написать и оптимизировать ассемблерный код до того уровня, который улучшит результат, генерируемый по-умолчанию стандартным компилятором С.

Язык С также стал чем-то вроде универсального языка для общения программистов. Не знаешь, на каком языке выразить идею, чтобы незнакомый тебе разработчик на другом конце мира понял, что за алгоритм ты написал? Просто пиши на С. Alex Allain из команды Dropbox сказал так:

С — это отличный язык для выражения общих идей в программировании способом, удобным для большинства людей. Многие из соглашений и принципов языка С были заимствованы другими языками, так что с помощью кода на С вам, вероятно, удастся объясниться даже с теми программистами, которые на С никогда и не писали

Прямой и быстрый доступ к памяти

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

Микроконтроллер может быть спроектирован таким образом, например, что байт по адресу 0x40008000 будет отправлен UART к какому-то периферийному устройству, тогда, когда бит номер 4 в ячейке памяти по адресу 0x40008001 будет выставлен в 1.

Код на С для оправки байта для такого микроконтроллера будет выглядить вот так:

#define UART_BYTE *(char *)0x40008000 #define UART_SEND *(volatile char *)0x40008001 |= 0x08 void send_uart(char byte) < UART_BYTE = byte; // записываем отправляемое значение в ячейку 0x40008000 UART_SEND; // поднимаем бит номер 4 в ячейке 0x40008001 >

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

Детерминированность использования ресурсов

Общеизвестным фактом является то, что системное программирование не может полагаться на языки со сборщиком мусора. Более того, в некоторых системах вообще запрещена динамическая аллокация памяти. Embedded-приложения должны использовать свои ресурсы очень экономно. Некоторые из них работают в операционных системах реального времени, где вызов сборщика мусора (с его неопределённо долгим временем работы) не допустим. А запрет на динамическое выделение памяти требует наличия удобных средств работы с выделенной заранее памятью — таких, как указатели С.

Размер кода

Рантайм С очень невелик. Бинарник, полученный после компиляции и линковки кода на С, будет меньше бинарников на многих других языках. Даже по сравнению с С++ размер часто бывает в 2 раза меньше. С++ вынужден поддерживать абстракции, вроде исключений, что не даётся бесплатно. Это, безусловно, неплохой в некоторых случаях инструмент, но он требует дополнительного кода.

Давайте посмотрим вот на такой код на С++:

// Объявление класса А. Реализация методов находится где-то в другом месте class A < public: A(); // Конструктор ~A(); // Деструктор (called when the object goes out of scope or is deleted) void myMethod(); // Просто метод >; // Объявление класса В. Реализация методов находится где-то в другом месте class B < public: B(); // Конструктор ~B(); // Деструктор void myMethod(); // Просто метод >; // Объявление класса С. Реализация методов находится где-то в другом месте class C < public: C(); // Конструктор ~C(); // Деструктор void myMethod(); // Просто метод >; void myFunction() < A a; // Вызван конструктор a.A() < B b; // Вызван конструктор b.B() b.myMethod(); >// Вызван деструктор b.~B() < C c; // Вызван конструктор c.C() c.myMethod(); >// Вызван деструктор c.~C() a.myMethod(); > // Вызван деструктор a.~A()

Методы классов A, B и C объявлены где-то в других файлах. Таким образом, компилятор пока не может проанализировать их и понять, генерируют ли они исключения. То есть он должен быть готов к тому, что да, генерируют. И их нужно обрабатывать. Если возникнет исключение — нужно суметь отмотать стек и вызвать деструкторы всех созданных объектов. Это всё увеличивает объём сгенерированного кода. Мы получаем оверхед языка С++ по сравнению с С. Для многих приложений это не допустимо. И, хотя компиляторы С++ часто дают возможность отключить использование исключений, это тоже не даётся даром, поскольку код стандартной библиотеки С++ использует их для сообщений об ошибках. Придётся или жить без этой информации, либо переписывать части стандартной библиотеки.

И это мы ещё говорим о языке С++, чей принцип «Вы не платите за то, чем вы не пользуетесь». Для других языков оверхед как по размеру бинарников, так и по быстродействию будет ещё хуже. Язык С не даёт вам много крутых фич, но зато те, которые вы используете, будут работать ровно так, как это будет написано в вашем коде.

Причины изучить С (если вы ещё этого не сделали)

Язык С не так сложно выучить, а вот польза от этого может быть существенная.

Общий язык

Как уже говорилось выше: если вы пишете на С — вас всегда поймут. Много реализаций алгоритмов в книгах или статьях приводятся впервые именно на языке С. Это даёт максимальную портируемость, максимальную простоту использования на любой платформе. Я видел, как программисты на некоторых высокоуровневых языках рыскали по интернету в поисках реализации какого-то алгоритма на их языке просто потому, что не понимали деталей его реализации на С.

Учитывайте также, что С — это старый и распространённый язык, так что если вы ищете какой-то алгоритм в интернете, то максимальный шанс у вас будет в случае, если вы ищете его С-реализацию.

Понимание того, как работает ваш компьютер

Когда мы с коллегами обсуждаем нюансы поведения некоторых частей кода и у нас случаются сложности в понимании происходящего, приходится спускаться на более низкие уровни и заканчивается это всё «говоря языком С, это работает вот так. » — и мы вспоминаем «указатели» (даже в языках, где их нет) и копирование «по ссылке или по значению» (опять таки, даже если язык по-умолчанию реализует лишь что-то одно) и так далее.

Мы редко доходим в детализации происходящего к ассемблерному коду, но вот на уровне языка С мы действительно думаем и разговариваем.

image

Возможность работать над интересными проектами

Множество действительно классных вещей написаны на С. Когда вы, ради собственного удовольствия или за деньги решите покопаться в движке базы данных или ядра ОС — вы будете делать это на С. Нет причин отказывать себе в удовольствии прикоснуться к чему-то столь фундаментальному из-за незнания этого языка программирования.

image

Вывод

Миром управляют не масоны. Миром управляют программисты на С.

У языка С нет «срока годности». Он близок к железу, портируем и очень практичен в плане использования ресурсов. Вы можете найти себе проект по душе в куче интересных областей. Большая функциональность более современных языков не обязательно означает большую практическую пользу того кода, который будет на них написан.

Мир полон устройств, в которых работает код на С. Мы используем их каждый день. Язык С — это не только прошлое, настоящее, но и, насколько хватает взгляда, будущее во многих областях разработки ПО.

  • Блог компании Инфопульс Украина
  • C++
  • Системное программирование
  • C
  • Промышленное программирование

Какие есть серьезные программы на С?

Я заканчиваю в университете базовый курс по С и задался вопросом:

Насколько серьезные программы были написаны на С? И в чем из этого можно попытаться разобраться, для совершенствования собственных навыков. Хочется знать реальные возможности этого языка.

  • Вопрос задан более трёх лет назад
  • 11209 просмотров

2 комментария

Оценить 2 комментария

Базовый курс по Си, это еще не значит что надо сразу идти в прогеры на си, есть еще много языков и технологий, на которые стоит хотя бы посмотреть

nadom @nadom Автор вопроса
Само собой. Просто пока есть время, хочется узнать больше о возможностях языка.
Решения вопроса 1

  1. Операционные системы
  2. Системы управления базами данных
  3. Компиляторы и интерпретаторы
  4. Драйвера
  5. Микроконтроллеры

Ответ написан более трёх лет назад
Нравится 7 3 комментария
nadom @nadom Автор вопроса

А не известны ли вам учебники/посбоия по написанию такого рода программ? Тк в «стандартных» учебниках, которые прочитал не увидел возможности перехода к программам такого урвоня.

@nadom для каждого случая нужно что-то конкретное, для написания драйверов и мк нужна инструкция от производителя железа, для компиляторов и субд разбираться в алгоритмах и структурах данных для эффективного поиска и хранения, а ос это все вместе. В этом и фишка языка Си, в нем из коробки нет ничего, для написания таких программ вы должны с нуля изобрести все сами.

Стоило бы уточнить, что здесь Си применяется с большой долей интеграции кода на ассемблере, особенно в двух последних случаях из данного списка.

Ответы на вопрос 7
Ядро Linux
Ответ написан более трёх лет назад
Комментировать
Нравится 7 Комментировать
Front-end Developer @ Starbucks

veZuk: Многие элементы Си потенциально опасны, а последствия неправильного использования этих элементов зачастую непредсказуемы. Керниган говорит: «Си — инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво».
SARS: Quake тому пример ))

Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать

Весь, поверьте, весь С укладывается в ~292 страницы КерниганаРитчи. Учитывая, что в С нет ничего кроме массивов, указателей и структур, то практически весь код на С выглядит примерно вот так : https://github.com/jonof/jfbuild/blob/master/kenbu.
Учитывая, что сейчас почти всё можно решить на Java и Python, то на С пишется такой лютейший хардкор, что даже с ходу не поймете что к чему. Посмотрите хотя бы ядро Linux.

Ответ написан более трёх лет назад
Нравится 3 2 комментария
nadom @nadom Автор вопроса

Дело в том, что я эту книгу ( и некоторые другие) прочитал. Теперь хочется применить знания на практическом уровне. Выйти за пределы консольных приложений.

Мде. Хардкор.
А я на сях вообще все пишу — мне эти вашы пхытоны с пыхпыхами 100 лет не втарахтелись: и GUI на сях (motif, gtk), и веб на сях (CGI), и числодробилки (в т.ч. с CUDA).
Пхытон — слишком примитивный язычок.

Сейчас я вообще склоняюсь к тому, что нечего извращаться с GUI: GTK скатился в GTK3, GTK2 уже практически объявили deprecated — в общем, лучше делать веб-морды для всего, что требует GUI, это даже сократит время разработки.

Вам мало языка C? Попробуйте C++

Когда в 1973 году вышел С, это было круто — можно было писать почти любые системные программы на языке высокого уровня без всякого ассемблера. И первое время его хватало всем.

Но потом один разработчик захотел использовать всю мощь ООП, но язык это напрямую не поддерживал. Тогда он нашёл выход — написал свою версию языка C с поддержкой объектов, классов и методов, которую изначально называли «Си с классами».

Вначале это была как бы просто надстройка над стандартным С, и даже был компилятор, который переводил этот код в обычный код на С. Но со временем язык усложнялся, всё больше отходил от концепции привычного С, и в 1983 он стал отдельным полноценным языком со своими возможностями и особенностями. Тогда же у него появилось название C++ .

В чём сила C++

С++ унаследовал от C все его сильные стороны и добавил новые:

  • полноценное ООП-программирование;
  • перегрузку операторов (в умелых руках это очень мощная штука);
  • полноценную обработку исключений (это когда вы заранее продумываете, что может пойти не так, и успеваете сами предусмотреть поведение программы при ошибках);
  • некоторую автоматизацию при работе с памятью.

Недостатки C++

Может показаться, что по сравнению с C у C++ больше недостатков, но это не так — они просто другие и возникли по другим причинам. Вот некоторые из них:

  • Допустить ошибку, которая приведёт к неправильной работе программы или к её падению, стало ещё проще.
  • Неправильное использование механизмов ссылок, указателей и перегрузок сложно отловить на этапе поиска ошибок.
  • Встроенные способы обхода ограничений компилятора дают непредсказуемые результаты (хотя, опять же, иногда это бывает полезно).
  • ООП-реализация может на несколько процентов снизить быстродействие кода. Иногда это критично.
  • Сложно писать кроссплатформенный код, чтобы он легко портировался на другие платформы.
  • Для полного раскрытия потенциала C++ нужно знать язык действительно хорошо, иначе не будет выигрыша в скорости или эффективности.

Что сейчас пишут на C++

На C++ пишут то же, что и на C — системные приложения, драйверы, операционные системы и софт для встраиваемых систем. Но благодаря ООП область применения C++ получилась немного шире, чем у С. Вот что написано на C++ :

  • почти все продукты Adobe (Photoshop, Illustrator, inDesign, Acrobat и так далее);
  • почти все главные продукты Microsoft (Windows, Office, IE, Visual Studio, SQL);
  • большая часть MacOS (включая интерфейс Finder);
  • интерфейс iPod;
  • приложения Autodesk для проектировщиков;
  • высоконагруженные компоненты платформы Facebook;
  • поиск Google, движок Chromium;
  • Havoc — реалистичный физический движок, который используется в играх;
  • софт для бортовых компьютеров самолётов Lockheed (Стелс, например);
  • прошивки для двигателей MAN — тягачей;
  • большая часть медицинского софта компании Siemens.

А вот часть игр, которая тоже написана на C++ (или на C++ написаны движки для этих игр):

  • Doom III engine;
  • Football Pro;
  • Kings Quest;
  • Antara;
  • SWAT;
  • StarCraft;
  • Diablo II: Lord of Destruction;
  • Warcraft III;
  • World of Warcraft.

С чего начать

Если вы любите смотреть видео, то можно начать с этих уроков:

  • вводный видеокурс от Proglib.io по C++
  • они же, но в виде плейлиста на Youtube
  • подборка по программированиию на C++ в Visual Code от SimpleCode

А это любителям классических книг и статей:

  • Основы программирования на C++ — пошагово и для новичков.
  • С++ с нуля — немного сложнее, но тоже можно разобраться.
  • Язык программирования C++ — классическая книга Бьёрна Страуструпа, автора языка. Сложно, но зато всё и сразу.
  • С++, лекции и упражнения — Стивен Прата плохого не напишет.

Получите ИТ-профессию

В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.

C Programs

C Programs: Practicing and solving problems is the best way to learn anything. Here, we have provided 100+ C programming examples in different categories like basic C Programs, Fibonacci series in C, String, Array, Base Conversion, Pattern Printing, Pointers, etc. These C programs are the most asked interview questions from basic to advanced level.

C Programs

C Program Topics:

  • Basic C Programs
  • Control Flow Programs
  • Pattern Printing Programs
  • Functions Programs
  • Arrays Programs
  • Strings Programs
  • Conversions Programs
  • Pointers Programs
  • Structures and Unions Programs
  • File I/O Programs
  • Date and Time Programs
  • More C Programs

C Program – Basic

  1. C Hello World Program
  2. C Program to Print Your Own Name
  3. C Program to Print an Integer Entered By the User
  4. C Program to Add Two Numbers
  5. C Program to Check Whether a Number is Prime or Not
  6. C Program to Multiply two Floating-Point Numbers
  7. C Program to Print the ASCII Value of a Character
  8. C Program to Swap Two Numbers
  9. C Program to Calculate Fahrenheit to Celsius
  10. C Program to Find the Size of int, float, double, and char
  11. C Program to Add Two Complex Numbers
  12. C Program to Print Prime Numbers From 1 to N
  13. C Program to Find Simple Interest
  14. C Program to Find Compound Interest
  15. C Program for Area And Perimeter Of Rectangle

C Program – Control Flow

  1. C Program to Check Whether a Number is Positive, Negative, or Zero
  2. C Program to Check Whether Number is Even or Odd
  3. C Program to Check Whether a Character is Vowel or Consonant
  4. C Program to Find Largest Number Among Three Numbers
  5. C Program to Calculate Sum of Natural Numbers
  6. C Program to Print Alphabets From A to Z Using Loop
  7. C Program to Check Leap Year
  8. C Program to Find Factorial of a Number
  9. C Program to Make a Simple Calculator
  10. C Program to Generate Multiplication Table
  11. C Program to Print Fibonacci Series
  12. C Program to Find LCM of Two Numbers
  13. C Program to Check Armstrong Number
  14. C Program to Display Armstrong Numbers Between 1 to 1000
  15. C Program to Display Armstrong Number Between Two Intervals
  16. C Program to Reverse a Number
  17. C Program to Check Whether a Number is a Palindrome or Not
  18. C Program to Check Whether a Number is Prime or Not
  19. C Program to Display Prime Numbers Between Intervals
  20. C Program to Check whether the input number is a Neon Number
  21. C Program to Find All Factors of a Natural Number
  22. C program to Sum of Fibonacci Numbers at Even Indexes up to N Terms

C Program – Pattern Printing

  1. C Program to Print Simple Pyramid Pattern
  2. C Program to Print Given Triangle
  3. C Program to Print 180 0 Rotation of Simple Pyramid
  4. C Program to Print Inverted Pyramid
  5. C Program to Print Number Pattern
  6. C Program to Print Character Pattern
  7. C Program to Print Continuous Character Pattern
  8. C Program to Print Hollow Star Pyramid
  9. C Program to Print Inverted Hollow Star pyramid
  10. C Program to Print Hollow Star Pyramid in a Diamond Shape
  11. C Program to Print Full Diamond Shape Pyramid
  12. C Program to Print Pascal’s Pattern Triangle Pyramid
  13. C Program to Print Floyd’s Pattern Triangle Pyramid
  14. C Program to Print Reverse Floyd pattern Triangle Pyramid

C Program – Functions

  1. C Program to Check Prime Number By Creating a Function
  2. C Program to Display Prime Numbers Between Two Intervals Using Functions
  3. C Program to Find All Roots of a Quadratic Equation
  4. C Program to Check Whether a Number can be Express as Sum of Two Prime Numbers
  5. C Program to Find the Sum of Natural Numbers using Recursion
  6. C Program to Calculate the Factorial of a Number Using Recursion
  7. C Program to Find G.C.D Using Recursion
  8. C Program to Reverse a Stack using Recursion
  9. C Program to Calculate Power Using Recursion

C Program – Arrays

  1. C Program to Print a 2D Array
  2. C Program to Find the Largest Element in an Array
  3. C Program to Find the Maximum and Minimum in an Array
  4. C Program to Search an Element in an Array (Binary search)
  5. C Program to Calculate the Average of All the Elements Present in an Array
  6. C Program to Sort an Array using Bubble Sort
  7. C Program to Sort an Array using Merge Sort
  8. C Program to Sort an Array Using Selection Sort
  9. C Program to Sort an Array Using Insertion Sort
  10. C Program to Sort the Elements of an Array in Descending Order
  11. C Program to Sort the Elements of an Array in Ascending Order
  12. C Program to Remove Duplicate Elements From a Sorted Array
  13. C Program to Merge Two Arrays
  14. C Program to Remove All Occurrences of an Element in an Array
  15. C Program to Find Common Array Elements
  16. C Program to Copy All the Elements of One Array to Another Array
  17. C Program For Array Rotation
  18. C Program to Sort the 2D Array Across Rows
  19. C Program to Check Whether Two Matrices Are Equal or Not
  20. C Program to Find the Transpose
  21. C Program to Find the Determinant of a Matrix
  22. C Program to Find the Normal and Trace
  23. C Program to Add Two Matrices
  24. C Program to Multiply Two Matrices
  25. C Program to Print Boundary Elements of a Matrix
  26. C Program to Rotate Matrix Elements
  27. C Program to Compute the Sum of Diagonals of a Matrix
  28. C Program to Interchange Elements of First and Last in a Matrix Across Rows
  29. C Program to Interchange Elements of First and Last in a Matrix Across Columns

C Program – Strings

  1. C Program to Add or Concatenate Two Strings
  2. C Program to Add 2 Binary Strings
  3. C Program to Get a Non-Repeating Character From the Given String
  4. C Program to check if the string is palindrome or not
  5. C Program to Reverse an Array or String
  6. C program to Reverse a String Using Recursion
  7. C Program to Find the Length of a String
  8. C Program to Sort a String
  9. C Program to Check For Pangram String
  10. C Program to Print the First Letter of Each Word
  11. C Program to Determine the Unicode Code Point at a Given Index
  12. C Program to Remove Leading Zeros
  13. C Program to Compare Two Strings
  14. C Program to Compare Two Strings Lexicographically
  15. C Program to Insert a String into Another String
  16. C Program to Split a String into a Number of Sub-Strings

C Program – Conversions

  1. C Program For Boolean to String Conversion
  2. C Program For Float to String Conversion
  3. C Program For Double to String Conversion
  4. C Program For String to Long Conversion
  5. C Program For Long to String Conversion
  6. C Program For Int to Char Conversion
  7. C Program For Char to Int Conversion
  8. C Program For Octal to Decimal Conversion
  9. C Program For Decimal to Octal Conversion
  10. C Program For Hexadecimal to Decimal Conversion
  11. C Program For Decimal to Hexadecimal Conversion
  12. C Program For Decimal to Binary Conversion
  13. C Program For Binary to Decimal Conversion

C Program – Pointers

  1. How to Return a Pointer from a Function in C
  2. How to Declare a Two-Dimensional Array of Pointers in C?
  3. C Program to Find the Largest Element in an Array using Pointers
  4. C Program to Swap Two Numbers
  5. C Program to Sort an Array using Pointers
  6. C Program to Sort a 2D Array of Strings
  7. C Program to Check if a String is a Palindrome using Pointers
  8. C Program to Create a Copy of a Singly Linked List using Recursion

C Program – Structures and Unions

  1. C Program to Store Information of Students Using Structure
  2. C Program to Store Student Records as Structures and Sort them by Name
  3. C Program to Add N Distances Given in inch-feet System using Structures
  4. C Program to Add Two Complex Numbers by Passing Structure to a Function
  5. C Program to Store Student Records as Structures and Sort them by Age or ID
  6. Read/Write Structure to a File in C
  7. Flexible Array Members in a Structure in C

C Program – File IO

  1. C Program to Create a Temporary File
  2. C Program to Read/Write Structure to a File
  3. C Program to Rename a file
  4. C Program to Make a File Read-Only
  5. C program to Compare Two Files and Report Mismatches
  6. C Program to Copy One File into Another File
  7. C Program to Print all the Patterns that Match Given Pattern From a File
  8. C Program to Append the Content of One Text File to Another
  9. C Program to Read Content From One File and Write it Into Another File
  10. C Program to Read and Print all Files From a Zip File

C Program – Date and Time

  1. C Program to Format time in AM-PM format
  2. C program to Print Digital Clock with the Current Time
  3. C Program to Display Dates of Calendar Year in Different Formats
  4. C Program to Display Current Date and Time
  5. C Program to Maximize Time by Replacing ‘_’ in a Given 24-Hour Format Time
  6. C Program to Convert the Local Time to GMT
  7. C Program to Convert Hours into Minutes and Seconds

C Program – More C Programs

  1. C Program to Show Runtime exceptions
  2. C Program to Show Types of errors
  3. C Program to Show Unreachable Code Error
  4. C Program to Find Quotient and Remainder
  5. C Program to Find the Initials of a Name
  6. C Program to Draw a Circle in Graphics
  7. Printing Source Code of a C Program Itself

FAQs on C Program

Q1: What is C programming?

Answer:

C is a structured, high-level, and general-purpose programming language, developed in the early 1970s by Dennis Ritchie at Bell Labs. C language is considered as the mother language of all modern programming languages, widely used for developing system software, embedded software, and application software.

Q2: How do I write a “Hello, World!” program in C?

Answer:

To write a “Hello, World!” program in C, you can use the following code:

#include

int main() printf(“Hello, World!\n”);
return 0;
>
This code uses the printf function to display the “Hello, World!” message on the screen.

Q3: Why should you learn C Programming?

Answer:

  • Versatility
  • Efficiency
  • Portability
  • Widely used
  • Foundation for other languages
  • Employment opportunities and more.

Learn to code easily with our course Coding for Everyone. This course is accessible and designed for everyone, even if you’re new to coding. Start today and join millions on a journey to improve your skills!

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out — check it out now!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *