Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Exercism

C

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
C is a general purpose language, used for a wide range of applications, from embedded computers to high-performance computing clusters. C is commonly found in low level applications as it's a good alternative to harder-to-read assembly languages. It can be compiled to assembly to keep the same level of performance, while increasing readability, and providing a small level of safety with static types!

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Leap
    • Determine whether a given year is a leap year.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Resistor Color
    • Convert a resistor band's color to its numeric representation.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Queen Attack
    • Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Resistor Color Duo
    • Convert color codes, as used on resistors, to a numeric value.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Binary
    • Convert a binary number, represented as a string (e.g. '101010'), to its decimal equivalent using first principles.
  • Eliud's Eggs
    • Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • High Scores
    • Manage a player's High Score list.
  • Pangram
    • Determine if a sentence is a pangram.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Binary Search
    • Implement a binary search algorithm.
  • Robot Simulator
    • Write a robot simulator.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Complex Numbers
    • Implement complex numbers.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Clock
    • Implement a clock that handles times without dates.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Square Root
    • Given a natural radicand, return its square root.
  • Reverse String
    • Reverse a given string.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Beer Song
    • Produce the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Rational Numbers
    • Implement rational numbers.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • List Ops
    • Implement basic list operations.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Acronym
    • Convert a long phrase to its acronym.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Flower Field
    • Mark all the flowers in a garden.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Linked List
    • Implement a doubly linked list.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • Meetup
    • Calculate the date of meetups.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Zebra Puzzle
    • Solve the zebra puzzle.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Knapsack
    • Given a knapsack that can only carry a certain weight, determine which items to put in the knapsack in order to maximize their combined value.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • React
    • Implement a basic reactive system.
  • Intergalactic Transmission
    • Add parity bits to a message for transmission

Reviews

Start your review of C

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.