C Programming Exercises, Practice, Solution
What is C Programming Language?
C is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations. C was originally developed by Dennis Ritchie between 1969 and 1973 at Bell Labs. It has since become one of the most widely used programming languages of all time, with C compilers from various vendors available for the majority of existing computer architectures and operating systems.
The best way we learn anything is by practice and exercise questions. We have started this section for those (beginner to intermediate) who are familiar with C programming.
Hope, these exercises help you to improve your C programming coding skills. Currently, following sections are available, we are working hard to add more exercises. Please refer to this page for important C snippets, code, and examples before starting the exercises. Happy Coding!
List of C Programming Exercises :
- Basic Declarations and Expressions [ 150 Exercises with Solution ]
- Basic Part-II [ 7 Exercises with Solution ]
- Basic Algorithm [ 75 Exercises with Solution ]
- Variable Type [ 18 Exercises with Solution ]
- Input, Output [ 10 Exercises with Solution ]
- Conditional Statement [ 26 Exercises with Solution ]
- For Loop [ 59 Exercises with Solution ]
- Array [ 107 Exercises with Solution ]
- Pointer [ 22 Exercises with Solution ]
- Linked List [ 34 Exercises with Solution ]
- Numbers [ 38 Exercises with Solution ]
- String [ 41 Exercises with Solution ]
- Date Time [ 10 Exercises with Solution ]
- Math [ 38 Exercises with Solution ]
- Function [ 12 Exercises with Solution ]
- Recursion [ 21 Exercises with Solution ]
- File Handling [ 19 Exercises with Solution ]
- Search and Sorting [ 31 Exercises with Solution ]
- Challenges [ 35 exercises with solution ]
- C Snippets [13]
- More to Come !
[ Want to contribute to C exercises? Send your code (attached with a .zip file) to us at w3resource[at]yahoo[dot]com. Please avoid copyrighted materials.]
Do not submit any solution of the above exercises at here, if you want to contribute go to the appropriate exercise page.
Popularity of Programming Language Worldwide, Dec 2022 compared to a year ago:
Rank | Change | Language | Share | Trend |
---|---|---|---|---|
1 | Python | 28.34 % | -1.0 % | |
2 | Java | 16.93 % | -0.8% | |
3 | Javascript | 9.28 % | +0.3% | |
4 | C# | 6.89 % | -0.3% | |
5 | C/C++ | 6.64 % | -0.3 % | |
6 | PHP | 5.19 % | -1.0 % | |
7 | R | 3.98 % | -0.1% | |
8 | ![]() |
TypeScript | 2.79 % | +1.1% |
9 | ![]() |
Swift | 2.23 % | +0.6% |
10 | ![]() |
Objective-C | 2.22% | +0.1% |
11 | ![]() |
Go | `2.02% | +0.7% |
12 | ![]() |
Rust | 1.78 % | +0.8% |
13 | ![]() |
Kotlin | 1.71 % | -0.0% |
14 | ![]() |
Matlab | 1.61 % | +0.0% |
15 | ![]() |
Ruby | 1.12% | +0.2% |
16 | ![]() |
VBA | 1.08 % | -0.1 % |
17 | Ada | 0.96 % | +0.2 % | |
18 | ![]() |
Dart | 0.85 % | +0.4 % |
19 | ![]() |
Scala | 0.69 % | -0.0 % |
20 | ![]() |
Lua | 0.65 % | +0.3 % |
21 | ![]() |
Visual Basic | 0.57 % | -0.1 % |
22 | ![]() |
Abap | 0.55 % | +0.1 % |
23 | ![]() |
Perl | 0.53 % | +0.1 % |
24 | Groovy | 0.36 % | +0.0 % | |
25 | Cobol | 0.33 % | +0.0 % | |
26 | Haskell | 0.25 % | +0.0 % | |
27 | ![]() |
Julia | 0.24 % | +0.0 % |
28 | ![]() |
Delphi/Pascal | 0.2 % | -0.0 % |
Source : https://pypl.github.io/PYPL.html
TIOBE Index for December 2022
Dec 2022 | Dec 2021 | Change | Programming Language | Ratings | Change |
---|---|---|---|---|---|
1 | 1 | Python | 16.66% | +3.76% | |
2 | 2 | C | 16.56% | +4.77% | |
3 | 4 | ![]() |
C++ | 11.94% | +4.21% |
4 | 3 | ![]() |
Java | 11.82% | +1.70% |
5 | 5 | C# | 4.92% | -1.48% | |
6 | 6 | Visual Basic | 3.94% | -1.46% | |
7 | 7 | JavaScript | 3.19% | +0.90% | |
8 | 9 | ![]() |
SQL | 2.22% | +0.43% |
9 | 8 | ![]() |
Assembly language | 1.87% | -0.38% |
10 | 12 | ![]() |
PHP | 1.62% | +0.12% |
11 | 11 | R | 1.25% | -0.34% | |
12 | 19 | ![]() |
Go | 1.15% | +0.20% |
13 | 13 | Classic Visual Basic | 1.15% | -0.13% | |
14 | 20 | ![]() |
MATLAB | 0.95% | +0.03 |
15 | 10 | ![]() |
Swift | 0.91% | -0.86% |
16 | 16 | Delphi/Object Pascal | 0.85% | -0.30% | |
17 | 15 | ![]() |
Ruby | 0.81% | -0.35% |
18 | 18 | Perl | 0.78% | -0.18% | |
19 | 29 | ![]() |
Objective-C | 0.71% | +0.29% |
20 | 27 | ![]() |
Rust | 0.68% | +0.23% |
Source : https://www.tiobe.com/tiobe-index/
List of Exercises with Solutions :
- HTML CSS Exercises, Practice, Solution
- JavaScript Exercises, Practice, Solution
- jQuery Exercises, Practice, Solution
- jQuery-UI Exercises, Practice, Solution
- CoffeeScript Exercises, Practice, Solution
- Twitter Bootstrap Exercises, Practice, Solution
- C Programming Exercises, Practice, Solution
- C# Sharp Programming Exercises, Practice, Solution
- PHP Exercises, Practice, Solution
- Python Exercises, Practice, Solution
- R Programming Exercises, Practice, Solution
- Java Exercises, Practice, Solution
- SQL Exercises, Practice, Solution
- MySQL Exercises, Practice, Solution
- PostgreSQL Exercises, Practice, Solution
- SQLite Exercises, Practice, Solution
- MongoDB Exercises, Practice, Solution
C Programming: Tips of the Day
How can mixed data types (int, float, char, etc) be stored in an array?
You can make the array elements a discriminated union, aka tagged union.
struct { enum { is_int, is_float, is_char } type; union { int ival; float fval; char cval; } val; } my_array[10];
The type member is used to hold the choice of which member of the union is should be used for each array element. So if you want to store an int in the first element, you would do:
my_array[0].type = is_int; my_array[0].val.ival = 3;
When you want to access an element of the array, you must first check the type, then use the corresponding member of the union. A switch statement is useful:
switch (my_array[n].type) { case is_int: // Do stuff for integer, using my_array[n].ival break; case is_float: // Do stuff for float, using my_array[n].fval break; case is_char: // Do stuff for char, using my_array[n].cvar break; default: // Report an error, this shouldn't happen }
It's left up to the programmer to ensure that the type member always corresponds to the last value stored in the union.
Ref : https://bit.ly/3phiA9W
- Weekly Trends
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join
- JavaScript functions Exercises
- Python Tutorial
- Python Array Exercises
- SQL Cross Join
- C# Sharp Array Exercises