w3resource

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 :

[ 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 up arrow TypeScript 2.79 % +1.1%
9 up arrow Swift 2.23 % +0.6%
10 down arrow Objective-C 2.22% +0.1%
11 down arrow Go2.02% +0.7%
12 up arrow Rust 1.78 % +0.8%
13 down arrow Kotlin 1.71 % -0.0%
14 down arrow Matlab 1.61 % +0.0%
15 up arrow Ruby 1.12% +0.2%
16 down arrow VBA 1.08 % -0.1 %
17 Ada 0.96 % +0.2 %
18 up arrow Dart 0.85 % +0.4 %
19 down arrow Scala 0.69 % -0.0 %
20 up arrow Lua 0.65 % +0.3 %
21 down arrow Visual Basic 0.57 % -0.1 %
22 down arrow Abap 0.55 % +0.1 %
23 down arrow Perl 0.53 % +0.1 %
24 Groovy 0.36 % +0.0 %
25 Cobol 0.33 % +0.0 %
26 Haskell 0.25 % +0.0 %
27 up arrow Julia 0.24 % +0.0 %
28 down arrow 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 up arrow C++ 11.94% +4.21%
4 3 down arrow 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 up arrow SQL 2.22% +0.43%
9 8 down arrow Assembly language 1.87% -0.38%
10 12 up arrow PHP 1.62% +0.12%
11 11 R 1.25% -0.34%
12 19 up arrow Go 1.15% +0.20%
13 13 Classic Visual Basic 1.15% -0.13%
14 20 up arrow MATLAB 0.95% +0.03
15 10 down arrow Swift 0.91% -0.86%
16 16 Delphi/Object Pascal 0.85% -0.30%
17 15 down arrow Ruby 0.81% -0.35%
18 18 Perl 0.78% -0.18%
19 29 up arrow Objective-C 0.71% +0.29%
20 27 up arrow Rust 0.68% +0.23%

Source : https://www.tiobe.com/tiobe-index/

List of Exercises with Solutions :



Follow us on Facebook and Twitter for latest update.

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