SlideShare a Scribd company logo
Programming in C
Objectives


                In this session, you will learn to:
                   Identify the benefits and features of C language
                   Use the data types available in C language
                   Identify the structure of C functions
                   Use input-output functions
                   Use constructs




     Ver. 1.0                                                         Slide 1 of 53
Programming in C
Identifying the Benefits and Features of C Language


                Ken Thompson developed a new language called B.
                B language was interpreter-based, hence it was slow.
                Dennis Ritchie modified B language and made it a
                compiler-based language.
                The modified compiler-based B language is named as C.




     Ver. 1.0                                                    Slide 2 of 53
Programming in C
C as a Second and Third Generation Language


                C language:
                   Possesses powerful low-level features of second generation
                   languages.
                   Provides loops and constructs available in third generation
                   languages.
                   Is very powerful and flexible.




     Ver. 1.0                                                            Slide 3 of 53
Programming in C
Block Structured Language - An Advantage for Modular Programming


                C language:
                   Offers all essentials of structured programming.
                   Has functions that work along with other user-developed
                   functions and can be used as building blocks for advanced
                   functions.
                   Offers only a handful of functions, which form the core of the
                   language.
                   Has rest of the functions available in libraries. These functions
                   are developed using the core functions.




     Ver. 1.0                                                               Slide 4 of 53
Programming in C
Features of the C Language


                The features that make C a widely-used language are:
                   Pointers: Allows reference to a memory location by a name.
                   Memory Allocation: Allows static as well as dynamic memory
                   allocation.
                   Recursion: Is a process in which a functions calls itself.
                   Bit Manipulation: Allows manipulation of data in its lowest form
                   of storage.




     Ver. 1.0                                                              Slide 5 of 53
Programming in C
Using the Data Types Available in C language


                The types of data structures provided by C can be classified
                under the following categories:
                   Fundamental data types
                   Derived data types




     Ver. 1.0                                                        Slide 6 of 53
Programming in C
Fundamental Data Types


               Fundamental Data Types:
                  Are the data types at the lowest level.
                  Are used for actual data representation in the memory.
                  Are the base for other data types.
                  Have machine dependent storage requirement.
                  Are of the following three types:
                      char
                      int
                      float




    Ver. 1.0                                                               Slide 7 of 53
Programming in C
Fundamental Data Types (Contd.)


                The storage requirement for fundamental data types can be
                represented with the help of the following table.

                    Data    Number of bytes on a        Minimum                 Maximum
                              32-byte machine
                    char             1                     -128                    127


                     int             4                    -2^31                 (2^31) - 1


                    float            4             6 digits of precision   6 digits of precision




     Ver. 1.0                                                                                  Slide 8 of 53
Programming in C
Derived Data Types


                Derived Data Types:
                   Are represented in memory as fundamental data type.
                Some derived data types are:
                – short int
                – long int
                – double float




     Ver. 1.0                                                            Slide 9 of 53
Programming in C
Derived Data Types (Contd.)


                The storage requirement for derived data types can be
                represented with the help of the following table.

                       Data        Number of bytes        Minimum             Maximum
                                    on a 32-byte
                                      machine
                     short int           2                  -2^15             (2^15) - 1


                      long int           4                   -2^31            (2^31) - 1


                    double float         8           12 digits of precision   6 digits of
                                                                              precision




     Ver. 1.0                                                                               Slide 10 of 53
Programming in C
Defining Data


                 The syntax for defining data is:
                    [data type] [variable name],...;
                 Declaration is done in the beginning of a function.
                 Definition for various data types is shown in the following
                 table.

                Data definition     Data type   Memory defined   Size (bytes)   Value assigned
                   char a, c;         char            a               1               -
                                                      c               1               -
                  char a = 'Z';       char            a               1               Z
                   int count;          int          count             4               -
                int a, count =10;      int            a               4               -
                                                    count             4              10
                  float fnum;         float         fnum              4               -
                  float fnum1,        float          fnum1            4               -
                fnum2 = 93.63;                      fnum2             4             93.63



     Ver. 1.0                                                                             Slide 11 of 53
Programming in C
Practice: 1.1


                Write the appropriate definitions for defining the following
                variables:
                 –   num to store integers.
                 –   chr to store a character and assign the character Z to it.
                 –   num to store a number and assign the value 8.93 to it.
                 –   i, j to store integers and assign the value 0 to j.




     Ver. 1.0                                                               Slide 12 of 53
Programming in C
Practice: 1.1 (Contd.)


                Solution:
                 1. int num;
                 2. char chr=’Z’;
                 3. float num = 8.93;
                 4. int i, j=0;




     Ver. 1.0                           Slide 13 of 53
Programming in C
Defining Data (Contd.)


                Defining Strings:
                   Syntax:
                       char (variable) [(number of bytes)];
                       Here number of bytes is one more than the number of
                       characters to store.
                 – To define a memory location of 10 bytes or to store 9 valid
                     characters, the string will be defined as follows:
                       char string [10];




     Ver. 1.0                                                             Slide 14 of 53
Programming in C
Practice: 1.2


                Write the appropriate definitions for defining the following
                strings:
                 – addrs to store 30 characters.
                 – head to store 14 characters.




     Ver. 1.0                                                          Slide 15 of 53
Programming in C
Practice: 1.2 (Contd.)


                Solution:
                 1. char addrs[31];
                 2. char head[15];




     Ver. 1.0                         Slide 16 of 53
Programming in C
Identifying the Structure of C Functions


                In C language, the functions can be categorized in the
                following categories:
                   Single-level functions
                   Multiple-level functions




     Ver. 1.0                                                       Slide 17 of 53
Programming in C
Single Level Functions


                Single Level Functions:
                   Consider the following single-level function:
                       main()
                       {
                          /*print a message*/
                          printf("Welcome to C");
                         }
                In the preceding function:
                 – main(): Is the first function to be executed.
                 – (): Are used for passing parameters to a function.
                 – {}: Are used to mark the beginning and end of a function. These
                   are mandatory in all functions.
                 – /* */: Is used for documenting various parts of a function.



     Ver. 1.0                                                            Slide 18 of 53
Programming in C
Single Level Functions (Contd.)


                – Semicolon (;): Is used for marking the end of an executable
                  line.
                – printf(): Is a C function for printing (displaying) constant or
                  variable data.




     Ver. 1.0                                                            Slide 19 of 53
Programming in C
Practice: 1.3


                Identify any erroneous or missing component(s) in the
                following functions:
                 1. man()
                    {
                     printf("This function seems to be okay")
                    }
                 2. man()
                    {
                       /*print a line*/
                       printf("This function is perfect“;
                     }




     Ver. 1.0                                                      Slide 20 of 53
Programming in C
Practice: 1.3 (Contd.)


                3. main()
                   }
                    printf("This has got to be right");
                   {
                4. main()
                   {
                   This is a perfect comment line
                   printf("Is it okay?");
                   }




     Ver. 1.0                                             Slide 21 of 53
Programming in C
Practice: 1.3 (Contd.)


                Solution:
                 1. man instead of main() and semi-colon missing at the end of
                    the printf() function.
                 2. mam instead of main() and ‘)’ missing at the end of the
                    printf() function.
                 3. ‘}’ instead of ‘{‘ for marking the beginning of the function and
                    ‘{’ instead of ‘}‘ for marking the end of the function.
                 4. Comment line should be enclose between /* and */.




     Ver. 1.0                                                                Slide 22 of 53
Programming in C
Multiple Level Functions


                The following example shows functions at multiple
                levels - one being called by another:
                main ()
                {
                     /* print a message */
                     printf ("Welcome to C.");
                     disp_msg ();
                     printf ("for good learning");
                   }
                   disp_msg ()
                   {
                     /* print another message */
                     printf ("All the best");
                   }

     Ver. 1.0                                                       Slide 23 of 53
Programming in C
Multiple Level Functions (Contd.)


                The output of the preceding program is:
                   Welcome to C. All the best for good learning.
                In the preceding program:
                 – main(): Is the first function to be executed.
                 – disp_msg(): Is a programmer-defined function that can be
                   independently called by any other function.
                 – (): Are used for passing values to functions, depending on
                   whether the receiving function is expecting any parameter.
                 – Semicolon (;): Is used to terminate executable lines.




     Ver. 1.0                                                           Slide 24 of 53
Programming in C
Practice: 1.4


                Identify any erroneous or missing component(s) in the
                following functions:
                a. print_msg()
                   { main();
                     printf(“bye”);
                   }
                   main()
                   { printf(“This is the main function”);}
                b. main()
                   { /*call another function*/
                     dis_error();
                   }
                   disp_err();
                   { printf(“Error in function”);}

     Ver. 1.0                                                      Slide 25 of 53
Programming in C
Practice: 1.4 (Contd.)


                Solution:
                 a. main() is always the first function to be executed. Further
                    execution of the program depends on functions invoked from
                    main(). Here, after executing printf(), the program
                    terminates as no other function is invoked. The function
                    print_msg is not invoked, hence it is not executed.
                 b. The two functions, dis_error() and disp_error, are not
                    the same because the function names are different.




     Ver. 1.0                                                           Slide 26 of 53
Programming in C
Using the Input-Output Functions


                The C environment and the input and output operations are
                shown in the following figure.




                      Standard Input Device (stdin)      Standard Output Device (stdout)




                                                  C Environment



                                                           Standard Error Device (stderr)




     Ver. 1.0                                                                               Slide 27 of 53
Programming in C
Using the Input-Output Functions (Contd.)


                These are assumed to be always linked to the C
                environment:
                   stdin - refers to keyboard
                   stdin - refers to keyboard
                   stdout - refers to VDU
                   stderr - refers to VDU
                Input and output takes place as a stream of characters.
                Each device is linked to a buffer through which the flow of
                characters takes place.
                After an input operation from the standard input device, care
                must be taken to clear input buffer.




     Ver. 1.0                                                        Slide 28 of 53
Programming in C
Character-Based Input-Output Functions


                  Character-Based Input-Output Functions are:
                     getc()
                     putc()
                     getchar()
                     putchar()
                • The following example uses the getc() and putc()
                  functions:
                   # include < stdio.h>
                   /* function to accept and display a character*/
                   main ()
                   {char alph;
                   alph = getc (stdin); /* accept a character */
                   fflush (stdin); /* clear the stdin buffer*/
                   putc (alph, stdout); /* display a character*/
                   }

     Ver. 1.0                                                        Slide 29 of 53
Programming in C
Character-Based Input-Output Functions (Contd.)


                • The following example uses the getchar() and
                  putchar() functions:
                   # include < stdio.h >
                   /* function to input and display a character using the
                     function getchar() */
                     main () {
                     char c;
                     c = getchar ();
                     fflush (stdin); /* clear the buffer */
                     putchar (c);
                     }




     Ver. 1.0                                                     Slide 30 of 53
Programming in C
Practice: 1.5


                1.   Write a function to input a character and display the
                     character input twice.




     Ver. 1.0                                                           Slide 31 of 53
Programming in C
Practice: 1.5 (Contd.)


                Solution:




                            Microsoft Word
                               Document




     Ver. 1.0                                Slide 32 of 53
Programming in C
Practice: 1.6


                •   Write a function to accept and store two characters in
                    different memory locations, and to display them one after
                    the other using the functions getchar() and
                    putchar().




     Ver. 1.0                                                         Slide 33 of 53
Programming in C
Practice: 1.6 (Contd.)


                Solution:
                 /* function to accept and display two characters*/
                     #include<stdio.h>
                     main()
                     {
                       char a, b;
                       a=getchar();
                       fflush(stdin);
                       b=getchar();
                       fflush(stdin);
                       putchar(a);
                       putchar(b);
                     }




     Ver. 1.0                                                   Slide 34 of 53
Programming in C
String-Based Input-Output Functions


                  String-based input-output functions are:
                     gets()
                     puts()
                • The following example uses the gets() and puts()
                  functions:
                     # include < stdio.h >
                     /* function to accept and displaying */
                     main ()
                     { char in_str {21}; /* display prompt */
                     puts ("Enter a String of max 20 characters");
                     gets (in_str); /* accept string     */
                     fflush (stdin); /* clear the buffer */
                     puts (in_str); /* display input string */
                     }

     Ver. 1.0                                                    Slide 35 of 53
Programming in C
Practice: 1.7


                1. Write a function that prompts for and accepts a name with a
                   maximum of 25 characters, and displays the following
                   message.
                    Hello. How are you?
                    (name)
                2. Write a function that prompts for a name (up to 20
                   characters) and address (up to 30 characters) and accepts
                   them one at a time. Finally, the name and address are
                   displayed in the following way.
                    Your name is:
                    (name)
                    Your address is:
                    (address)



     Ver. 1.0                                                          Slide 36 of 53
Programming in C
Practice: 1.7 (Contd.)


                Solution:




                            Microsoft Word
                               Document




     Ver. 1.0                                Slide 37 of 53
Programming in C
Using Constructs


                There are two types of constructs in C language:
                   Conditional constructs
                   Loop constructs




     Ver. 1.0                                                      Slide 38 of 53
Programming in C
Conditional Constructs


                Conditional Constructs:
                   Requires relation operators as in other programming language
                   with a slight change in symbols used for relational operators.
                   The two types of conditional constructs in C are:
                    • if..else construct
                    • switch…case construct




     Ver. 1.0                                                            Slide 39 of 53
Programming in C
Conditional Constructs (Contd.)


                – The Syntax of the if..else construct is as follows:
                      if (condition)
                            {
                                   statement 1 ;

                                     statement 2 ;
                                             :
                             }
                             else
                             {
                                     statement 1 ;
                                     statement 2 ;
                                             :
                             }




     Ver. 1.0                                                           Slide 40 of 53
Programming in C
Practice: 1.8


                1. Write a function that accepts one-character grade code, and
                   depending on what grade is input, display the HRA
                   percentage according to the following table.


                            Grade            HRA %

                             A               45%

                             B               40%

                             C               30%

                             D               25%




     Ver. 1.0                                                         Slide 41 of 53
Programming in C
Practice: 1.8 (Contd.)


                Identify errors, if any, in the following function:
                 #include<stdio.h>
                 /*function to check if y or n is input*/
                 main()
                 {
                 char yn;
                 puts("Enter y or n for yes/no");
                 yn = getchar();
                 fflush(stdin);
                 if(yn=’y’)
                   puts("You entered y");
                 else if(yn=‘n')
                   puts("You entered n");
                 else
                 puts("Invalid input");
                 }

     Ver. 1.0                                                         Slide 42 of 53
Programming in C
Practice: 1.8 (Contd.)


                Solution:




                            Microsoft Word
                               Document




     Ver. 1.0                                Slide 43 of 53
Programming in C
Conditional Constructs (Contd.)


                • Syntax of switch…case construct:
                     switch (variable)
                     {
                         case 1 :
                               statement1 ;
                               break ;
                       case 2 :
                               statement 2 ;
                                       :
                               :
                               break;
                       default :
                               statement
                       }




     Ver. 1.0                                        Slide 44 of 53
Programming in C
Practice: 1.9


                Write a function to display the following menu and accept a
                choice number. If an invalid choice is entered then an
                appropriate error message must be displayed, else the
                choice number entered must be displayed.
                Menu
                1. Create a directory
                2. Delete a directory
                3. Show a directory
                4. Exit
                Your choice:




     Ver. 1.0                                                       Slide 45 of 53
Programming in C
Practice: 1.9 (Contd.)


                Solution:




                            Microsoft Word
                               Document




     Ver. 1.0                                Slide 46 of 53
Programming in C
Loop Constructs


                The two types of conditional constructs in C are:
                 – while loop construct.
                 – do..while construct.
                 – The while loop construct has the following syntax:
                     while (condition in true)
                       {
                             statement 1 ;                loop

                              statement 2 ;               body
                     }
                   Used to iterate a set of instructions (the loop body) as long as
                   the specified condition is true.




     Ver. 1.0                                                               Slide 47 of 53
Programming in C
Loop Constructs (Contd.)


                – The do..while loop construct:
                    • The do..while loop is similar to the while loop, except that the
                      condition is checked after execution of the body.
                    • The do..while loop is executed at least once.
                    • The following figure shows the difference between the while loop
                      and the do...while loop.

                              while                        do while


                                         False           Execute
                            Evaluate                     Body of
                            Condition                     Loop
                                  True
                             Execute                                  False
                             Body of                     Evaluate
                              Loop                       Condition

                                                  True




     Ver. 1.0                                                                 Slide 48 of 53
Programming in C
Practice: 1.10


                1. Write a function to accept characters from the keyboard
                   until the character ‘!’ is input, and to display whether the
                   total number of non-vowel characters entered is more than,
                   less than, or equal to the total number of vowels entered.




     Ver. 1.0                                                           Slide 49 of 53
Programming in C
Practice: 1.10 (Contd.)


                Solution:




                            Microsoft Word
                               Document




     Ver. 1.0                                Slide 50 of 53
Programming in C
Summary


               In this session, you learned that:
                  C language was developed by Ken Thompson and Dennis
                  Ritchie.
                  C language combines the features of second and third
                  generation languages.
                  C language is a block structured language.
                  C language has various features that make it a widely-used
                  language. Some of the important features are:
                      Pointers
                      Memory Allocation
                      Recursion
                      Bit-manipulation




    Ver. 1.0                                                           Slide 51 of 53
Programming in C
Summary (Contd.)


               The types of data structures provided by C can be classified
               under the following categories:
                • Fundamental data types: Include the data types, which are used
                  for actual data representation in the memory.
                • Derived data types: Are based on fundamental data types.
               Fundamental data types:
                • char, int, and float
               Some of the derived data types are:
                • short int, long int, and double float
               Definition of memory for any data, both fundamental and
               derived data types, is done in the following format:
                [data type] [variable name],...;




    Ver. 1.0                                                             Slide 52 of 53
Programming in C
Summary (Contd.)


                 In C language, the functions can be categorized in the
                 following categories:
                   • Single-level functions
                   • Multiple-level functions
               – For standard input-output operations, the C environment uses
                 stdin, stdout, and stderr as references for accessing the
                 devices.
               – There are two types of constructs in C language:
                     Conditional constructs
                     Loop constructs




    Ver. 1.0                                                              Slide 53 of 53

More Related Content

What's hot

C programming session 05
C programming session 05C programming session 05
C programming session 05
AjayBahoriya
 
Bca(rev syll ii-sem) assignment for july 2012 and jan 2013 sessionn
Bca(rev syll ii-sem) assignment for july 2012 and jan 2013 sessionnBca(rev syll ii-sem) assignment for july 2012 and jan 2013 sessionn
Bca(rev syll ii-sem) assignment for july 2012 and jan 2013 sessionn
Shripad Tawade
 
Oop02 6
Oop02 6Oop02 6
Oop02 6
schwaa
 

What's hot (19)

C interview questions
C interview questionsC interview questions
C interview questions
 
C programming session 05
C programming session 05C programming session 05
C programming session 05
 
Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...
Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...
Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...
 
Cpprm
CpprmCpprm
Cpprm
 
How To Code in C#
How To Code in C#How To Code in C#
How To Code in C#
 
Bca(rev syll ii-sem) assignment for july 2012 and jan 2013 sessionn
Bca(rev syll ii-sem) assignment for july 2012 and jan 2013 sessionnBca(rev syll ii-sem) assignment for july 2012 and jan 2013 sessionn
Bca(rev syll ii-sem) assignment for july 2012 and jan 2013 sessionn
 
Computer science_xii_2016
 Computer science_xii_2016 Computer science_xii_2016
Computer science_xii_2016
 
Automata And Compiler Design
Automata And Compiler DesignAutomata And Compiler Design
Automata And Compiler Design
 
Software Abstractions for Parallel Hardware
Software Abstractions for Parallel HardwareSoftware Abstractions for Parallel Hardware
Software Abstractions for Parallel Hardware
 
Top C Language Interview Questions and Answer
Top C Language Interview Questions and AnswerTop C Language Interview Questions and Answer
Top C Language Interview Questions and Answer
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.Proto
 
Sample paper i.p
Sample paper i.pSample paper i.p
Sample paper i.p
 
Oop02 6
Oop02 6Oop02 6
Oop02 6
 
C++ interview question
C++ interview questionC++ interview question
C++ interview question
 
Boost.Dispatch
Boost.DispatchBoost.Dispatch
Boost.Dispatch
 
The Goal and The Journey - Turning back on one year of C++14 Migration
The Goal and The Journey - Turning back on one year of C++14 MigrationThe Goal and The Journey - Turning back on one year of C++14 Migration
The Goal and The Journey - Turning back on one year of C++14 Migration
 
Sample Question Paper IP Class xii
Sample Question Paper IP Class xii Sample Question Paper IP Class xii
Sample Question Paper IP Class xii
 
C faqs interview questions placement paper 2013
C faqs interview questions placement paper 2013C faqs interview questions placement paper 2013
C faqs interview questions placement paper 2013
 
C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1
 

Viewers also liked

C programming session 16
C programming session 16C programming session 16
C programming session 16
AjayBahoriya
 
Research and planning March
Research and planning  March Research and planning  March
Research and planning March
hannahata2012
 
C programming session 10
C programming session 10C programming session 10
C programming session 10
AjayBahoriya
 
How does your media product represent particular social
How does your media product represent particular socialHow does your media product represent particular social
How does your media product represent particular social
hannahata2012
 
C programming session 11
C programming session 11C programming session 11
C programming session 11
AjayBahoriya
 
C programming session 02
C programming session 02C programming session 02
C programming session 02
AjayBahoriya
 

Viewers also liked (6)

C programming session 16
C programming session 16C programming session 16
C programming session 16
 
Research and planning March
Research and planning  March Research and planning  March
Research and planning March
 
C programming session 10
C programming session 10C programming session 10
C programming session 10
 
How does your media product represent particular social
How does your media product represent particular socialHow does your media product represent particular social
How does your media product represent particular social
 
C programming session 11
C programming session 11C programming session 11
C programming session 11
 
C programming session 02
C programming session 02C programming session 02
C programming session 02
 

Similar to C programming session 01

C language (Collected By Dushmanta)
C language  (Collected By Dushmanta)C language  (Collected By Dushmanta)
C language (Collected By Dushmanta)
Dushmanta Nath
 
C programming session 01
C programming session 01C programming session 01
C programming session 01
Vivek Singh
 
05 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_0705 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_07
Niit Care
 
C LANGUAGE UNIT-1 PREPARED BY MVB REDDY
C LANGUAGE UNIT-1 PREPARED BY MVB REDDYC LANGUAGE UNIT-1 PREPARED BY MVB REDDY
C LANGUAGE UNIT-1 PREPARED BY MVB REDDY
Rajeshkumar Reddy
 

Similar to C programming session 01 (20)

C language (Collected By Dushmanta)
C language  (Collected By Dushmanta)C language  (Collected By Dushmanta)
C language (Collected By Dushmanta)
 
C programming session 01
C programming session 01C programming session 01
C programming session 01
 
C programming unit 01
C programming unit 01C programming unit 01
C programming unit 01
 
Theory1&amp;2
Theory1&amp;2Theory1&amp;2
Theory1&amp;2
 
05 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_0705 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_07
 
A Crash Course in C Part-1
A Crash Course in C Part-1A Crash Course in C Part-1
A Crash Course in C Part-1
 
C LANGUAGE UNIT-1 PREPARED BY MVB REDDY
C LANGUAGE UNIT-1 PREPARED BY MVB REDDYC LANGUAGE UNIT-1 PREPARED BY MVB REDDY
C LANGUAGE UNIT-1 PREPARED BY MVB REDDY
 
Introduction to c programming language
Introduction to c programming languageIntroduction to c programming language
Introduction to c programming language
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Introduction to C Unit 1
Introduction to C Unit 1Introduction to C Unit 1
Introduction to C Unit 1
 
Let's us c language (sabeel Bugti)
Let's us c language (sabeel Bugti)Let's us c language (sabeel Bugti)
Let's us c language (sabeel Bugti)
 
C tutorials
C tutorialsC tutorials
C tutorials
 
Introduction to ‘C’ Language
Introduction to ‘C’ LanguageIntroduction to ‘C’ Language
Introduction to ‘C’ Language
 
Datatypes in C++.pptx
Datatypes in C++.pptxDatatypes in C++.pptx
Datatypes in C++.pptx
 
C programming notes.pdf
C programming notes.pdfC programming notes.pdf
C programming notes.pdf
 
C programming notes
C programming notesC programming notes
C programming notes
 
Introduction To C
Introduction To CIntroduction To C
Introduction To C
 
Introduction to c
Introduction to cIntroduction to c
Introduction to c
 
introduction to c programming language
introduction to c programming languageintroduction to c programming language
introduction to c programming language
 
C# note
C# noteC# note
C# note
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 

C programming session 01

  • 1. Programming in C Objectives In this session, you will learn to: Identify the benefits and features of C language Use the data types available in C language Identify the structure of C functions Use input-output functions Use constructs Ver. 1.0 Slide 1 of 53
  • 2. Programming in C Identifying the Benefits and Features of C Language Ken Thompson developed a new language called B. B language was interpreter-based, hence it was slow. Dennis Ritchie modified B language and made it a compiler-based language. The modified compiler-based B language is named as C. Ver. 1.0 Slide 2 of 53
  • 3. Programming in C C as a Second and Third Generation Language C language: Possesses powerful low-level features of second generation languages. Provides loops and constructs available in third generation languages. Is very powerful and flexible. Ver. 1.0 Slide 3 of 53
  • 4. Programming in C Block Structured Language - An Advantage for Modular Programming C language: Offers all essentials of structured programming. Has functions that work along with other user-developed functions and can be used as building blocks for advanced functions. Offers only a handful of functions, which form the core of the language. Has rest of the functions available in libraries. These functions are developed using the core functions. Ver. 1.0 Slide 4 of 53
  • 5. Programming in C Features of the C Language The features that make C a widely-used language are: Pointers: Allows reference to a memory location by a name. Memory Allocation: Allows static as well as dynamic memory allocation. Recursion: Is a process in which a functions calls itself. Bit Manipulation: Allows manipulation of data in its lowest form of storage. Ver. 1.0 Slide 5 of 53
  • 6. Programming in C Using the Data Types Available in C language The types of data structures provided by C can be classified under the following categories: Fundamental data types Derived data types Ver. 1.0 Slide 6 of 53
  • 7. Programming in C Fundamental Data Types Fundamental Data Types: Are the data types at the lowest level. Are used for actual data representation in the memory. Are the base for other data types. Have machine dependent storage requirement. Are of the following three types: char int float Ver. 1.0 Slide 7 of 53
  • 8. Programming in C Fundamental Data Types (Contd.) The storage requirement for fundamental data types can be represented with the help of the following table. Data Number of bytes on a Minimum Maximum 32-byte machine char 1 -128 127 int 4 -2^31 (2^31) - 1 float 4 6 digits of precision 6 digits of precision Ver. 1.0 Slide 8 of 53
  • 9. Programming in C Derived Data Types Derived Data Types: Are represented in memory as fundamental data type. Some derived data types are: – short int – long int – double float Ver. 1.0 Slide 9 of 53
  • 10. Programming in C Derived Data Types (Contd.) The storage requirement for derived data types can be represented with the help of the following table. Data Number of bytes Minimum Maximum on a 32-byte machine short int 2 -2^15 (2^15) - 1 long int 4 -2^31 (2^31) - 1 double float 8 12 digits of precision 6 digits of precision Ver. 1.0 Slide 10 of 53
  • 11. Programming in C Defining Data The syntax for defining data is: [data type] [variable name],...; Declaration is done in the beginning of a function. Definition for various data types is shown in the following table. Data definition Data type Memory defined Size (bytes) Value assigned char a, c; char a 1 - c 1 - char a = 'Z'; char a 1 Z int count; int count 4 - int a, count =10; int a 4 - count 4 10 float fnum; float fnum 4 - float fnum1, float fnum1 4 - fnum2 = 93.63; fnum2 4 93.63 Ver. 1.0 Slide 11 of 53
  • 12. Programming in C Practice: 1.1 Write the appropriate definitions for defining the following variables: – num to store integers. – chr to store a character and assign the character Z to it. – num to store a number and assign the value 8.93 to it. – i, j to store integers and assign the value 0 to j. Ver. 1.0 Slide 12 of 53
  • 13. Programming in C Practice: 1.1 (Contd.) Solution: 1. int num; 2. char chr=’Z’; 3. float num = 8.93; 4. int i, j=0; Ver. 1.0 Slide 13 of 53
  • 14. Programming in C Defining Data (Contd.) Defining Strings: Syntax: char (variable) [(number of bytes)]; Here number of bytes is one more than the number of characters to store. – To define a memory location of 10 bytes or to store 9 valid characters, the string will be defined as follows: char string [10]; Ver. 1.0 Slide 14 of 53
  • 15. Programming in C Practice: 1.2 Write the appropriate definitions for defining the following strings: – addrs to store 30 characters. – head to store 14 characters. Ver. 1.0 Slide 15 of 53
  • 16. Programming in C Practice: 1.2 (Contd.) Solution: 1. char addrs[31]; 2. char head[15]; Ver. 1.0 Slide 16 of 53
  • 17. Programming in C Identifying the Structure of C Functions In C language, the functions can be categorized in the following categories: Single-level functions Multiple-level functions Ver. 1.0 Slide 17 of 53
  • 18. Programming in C Single Level Functions Single Level Functions: Consider the following single-level function: main() { /*print a message*/ printf("Welcome to C"); } In the preceding function: – main(): Is the first function to be executed. – (): Are used for passing parameters to a function. – {}: Are used to mark the beginning and end of a function. These are mandatory in all functions. – /* */: Is used for documenting various parts of a function. Ver. 1.0 Slide 18 of 53
  • 19. Programming in C Single Level Functions (Contd.) – Semicolon (;): Is used for marking the end of an executable line. – printf(): Is a C function for printing (displaying) constant or variable data. Ver. 1.0 Slide 19 of 53
  • 20. Programming in C Practice: 1.3 Identify any erroneous or missing component(s) in the following functions: 1. man() { printf("This function seems to be okay") } 2. man() { /*print a line*/ printf("This function is perfect“; } Ver. 1.0 Slide 20 of 53
  • 21. Programming in C Practice: 1.3 (Contd.) 3. main() } printf("This has got to be right"); { 4. main() { This is a perfect comment line printf("Is it okay?"); } Ver. 1.0 Slide 21 of 53
  • 22. Programming in C Practice: 1.3 (Contd.) Solution: 1. man instead of main() and semi-colon missing at the end of the printf() function. 2. mam instead of main() and ‘)’ missing at the end of the printf() function. 3. ‘}’ instead of ‘{‘ for marking the beginning of the function and ‘{’ instead of ‘}‘ for marking the end of the function. 4. Comment line should be enclose between /* and */. Ver. 1.0 Slide 22 of 53
  • 23. Programming in C Multiple Level Functions The following example shows functions at multiple levels - one being called by another: main () { /* print a message */ printf ("Welcome to C."); disp_msg (); printf ("for good learning"); } disp_msg () { /* print another message */ printf ("All the best"); } Ver. 1.0 Slide 23 of 53
  • 24. Programming in C Multiple Level Functions (Contd.) The output of the preceding program is: Welcome to C. All the best for good learning. In the preceding program: – main(): Is the first function to be executed. – disp_msg(): Is a programmer-defined function that can be independently called by any other function. – (): Are used for passing values to functions, depending on whether the receiving function is expecting any parameter. – Semicolon (;): Is used to terminate executable lines. Ver. 1.0 Slide 24 of 53
  • 25. Programming in C Practice: 1.4 Identify any erroneous or missing component(s) in the following functions: a. print_msg() { main(); printf(“bye”); } main() { printf(“This is the main function”);} b. main() { /*call another function*/ dis_error(); } disp_err(); { printf(“Error in function”);} Ver. 1.0 Slide 25 of 53
  • 26. Programming in C Practice: 1.4 (Contd.) Solution: a. main() is always the first function to be executed. Further execution of the program depends on functions invoked from main(). Here, after executing printf(), the program terminates as no other function is invoked. The function print_msg is not invoked, hence it is not executed. b. The two functions, dis_error() and disp_error, are not the same because the function names are different. Ver. 1.0 Slide 26 of 53
  • 27. Programming in C Using the Input-Output Functions The C environment and the input and output operations are shown in the following figure. Standard Input Device (stdin) Standard Output Device (stdout) C Environment Standard Error Device (stderr) Ver. 1.0 Slide 27 of 53
  • 28. Programming in C Using the Input-Output Functions (Contd.) These are assumed to be always linked to the C environment: stdin - refers to keyboard stdin - refers to keyboard stdout - refers to VDU stderr - refers to VDU Input and output takes place as a stream of characters. Each device is linked to a buffer through which the flow of characters takes place. After an input operation from the standard input device, care must be taken to clear input buffer. Ver. 1.0 Slide 28 of 53
  • 29. Programming in C Character-Based Input-Output Functions Character-Based Input-Output Functions are: getc() putc() getchar() putchar() • The following example uses the getc() and putc() functions: # include < stdio.h> /* function to accept and display a character*/ main () {char alph; alph = getc (stdin); /* accept a character */ fflush (stdin); /* clear the stdin buffer*/ putc (alph, stdout); /* display a character*/ } Ver. 1.0 Slide 29 of 53
  • 30. Programming in C Character-Based Input-Output Functions (Contd.) • The following example uses the getchar() and putchar() functions: # include < stdio.h > /* function to input and display a character using the function getchar() */ main () { char c; c = getchar (); fflush (stdin); /* clear the buffer */ putchar (c); } Ver. 1.0 Slide 30 of 53
  • 31. Programming in C Practice: 1.5 1. Write a function to input a character and display the character input twice. Ver. 1.0 Slide 31 of 53
  • 32. Programming in C Practice: 1.5 (Contd.) Solution: Microsoft Word Document Ver. 1.0 Slide 32 of 53
  • 33. Programming in C Practice: 1.6 • Write a function to accept and store two characters in different memory locations, and to display them one after the other using the functions getchar() and putchar(). Ver. 1.0 Slide 33 of 53
  • 34. Programming in C Practice: 1.6 (Contd.) Solution: /* function to accept and display two characters*/ #include<stdio.h> main() { char a, b; a=getchar(); fflush(stdin); b=getchar(); fflush(stdin); putchar(a); putchar(b); } Ver. 1.0 Slide 34 of 53
  • 35. Programming in C String-Based Input-Output Functions String-based input-output functions are: gets() puts() • The following example uses the gets() and puts() functions: # include < stdio.h > /* function to accept and displaying */ main () { char in_str {21}; /* display prompt */ puts ("Enter a String of max 20 characters"); gets (in_str); /* accept string */ fflush (stdin); /* clear the buffer */ puts (in_str); /* display input string */ } Ver. 1.0 Slide 35 of 53
  • 36. Programming in C Practice: 1.7 1. Write a function that prompts for and accepts a name with a maximum of 25 characters, and displays the following message. Hello. How are you? (name) 2. Write a function that prompts for a name (up to 20 characters) and address (up to 30 characters) and accepts them one at a time. Finally, the name and address are displayed in the following way. Your name is: (name) Your address is: (address) Ver. 1.0 Slide 36 of 53
  • 37. Programming in C Practice: 1.7 (Contd.) Solution: Microsoft Word Document Ver. 1.0 Slide 37 of 53
  • 38. Programming in C Using Constructs There are two types of constructs in C language: Conditional constructs Loop constructs Ver. 1.0 Slide 38 of 53
  • 39. Programming in C Conditional Constructs Conditional Constructs: Requires relation operators as in other programming language with a slight change in symbols used for relational operators. The two types of conditional constructs in C are: • if..else construct • switch…case construct Ver. 1.0 Slide 39 of 53
  • 40. Programming in C Conditional Constructs (Contd.) – The Syntax of the if..else construct is as follows: if (condition) { statement 1 ; statement 2 ; : } else { statement 1 ; statement 2 ; : } Ver. 1.0 Slide 40 of 53
  • 41. Programming in C Practice: 1.8 1. Write a function that accepts one-character grade code, and depending on what grade is input, display the HRA percentage according to the following table. Grade HRA % A 45% B 40% C 30% D 25% Ver. 1.0 Slide 41 of 53
  • 42. Programming in C Practice: 1.8 (Contd.) Identify errors, if any, in the following function: #include<stdio.h> /*function to check if y or n is input*/ main() { char yn; puts("Enter y or n for yes/no"); yn = getchar(); fflush(stdin); if(yn=’y’) puts("You entered y"); else if(yn=‘n') puts("You entered n"); else puts("Invalid input"); } Ver. 1.0 Slide 42 of 53
  • 43. Programming in C Practice: 1.8 (Contd.) Solution: Microsoft Word Document Ver. 1.0 Slide 43 of 53
  • 44. Programming in C Conditional Constructs (Contd.) • Syntax of switch…case construct: switch (variable) { case 1 : statement1 ; break ; case 2 : statement 2 ; : : break; default : statement } Ver. 1.0 Slide 44 of 53
  • 45. Programming in C Practice: 1.9 Write a function to display the following menu and accept a choice number. If an invalid choice is entered then an appropriate error message must be displayed, else the choice number entered must be displayed. Menu 1. Create a directory 2. Delete a directory 3. Show a directory 4. Exit Your choice: Ver. 1.0 Slide 45 of 53
  • 46. Programming in C Practice: 1.9 (Contd.) Solution: Microsoft Word Document Ver. 1.0 Slide 46 of 53
  • 47. Programming in C Loop Constructs The two types of conditional constructs in C are: – while loop construct. – do..while construct. – The while loop construct has the following syntax: while (condition in true) { statement 1 ; loop statement 2 ; body } Used to iterate a set of instructions (the loop body) as long as the specified condition is true. Ver. 1.0 Slide 47 of 53
  • 48. Programming in C Loop Constructs (Contd.) – The do..while loop construct: • The do..while loop is similar to the while loop, except that the condition is checked after execution of the body. • The do..while loop is executed at least once. • The following figure shows the difference between the while loop and the do...while loop. while do while False Execute Evaluate Body of Condition Loop True Execute False Body of Evaluate Loop Condition True Ver. 1.0 Slide 48 of 53
  • 49. Programming in C Practice: 1.10 1. Write a function to accept characters from the keyboard until the character ‘!’ is input, and to display whether the total number of non-vowel characters entered is more than, less than, or equal to the total number of vowels entered. Ver. 1.0 Slide 49 of 53
  • 50. Programming in C Practice: 1.10 (Contd.) Solution: Microsoft Word Document Ver. 1.0 Slide 50 of 53
  • 51. Programming in C Summary In this session, you learned that: C language was developed by Ken Thompson and Dennis Ritchie. C language combines the features of second and third generation languages. C language is a block structured language. C language has various features that make it a widely-used language. Some of the important features are: Pointers Memory Allocation Recursion Bit-manipulation Ver. 1.0 Slide 51 of 53
  • 52. Programming in C Summary (Contd.) The types of data structures provided by C can be classified under the following categories: • Fundamental data types: Include the data types, which are used for actual data representation in the memory. • Derived data types: Are based on fundamental data types. Fundamental data types: • char, int, and float Some of the derived data types are: • short int, long int, and double float Definition of memory for any data, both fundamental and derived data types, is done in the following format: [data type] [variable name],...; Ver. 1.0 Slide 52 of 53
  • 53. Programming in C Summary (Contd.) In C language, the functions can be categorized in the following categories: • Single-level functions • Multiple-level functions – For standard input-output operations, the C environment uses stdin, stdout, and stderr as references for accessing the devices. – There are two types of constructs in C language: Conditional constructs Loop constructs Ver. 1.0 Slide 53 of 53

Editor's Notes

  1. Begin the session by explaining the objectives of the session.
  2. Discuss the history of the C language.
  3. The storage requirements for different data types are machine-dependent. There is a subtle difference between declaring and defining variables. The statement: char a; Is used to declare a variable a. Here, only the attributes of the variable are specified, not the contents. In contrast, the statement: char a = ‘A’ ; is used to define the contents of the variable a.
  4. Derived data types modify the data according to the specific requirements. For example, if you need to store a integer value above 32,767 or below -32,767, you can use long int instead of int . the derived data type long increases the range of the int data type.
  5. Use Slide 12 to test the student’s understanding on defining the variables.
  6. Use Slide 15 to test the student’s understanding on defining the variables.
  7. A C function is typically made up of blocks. A block is a set of C statements enclosed within braces. Variables are generally declared at the beginning of a function, but may also be declared at the beginning of a block. A C program is modular and structured. This allows for reusability of code.
  8. Use Slide 20 to test the student’s understanding on functions.
  9. Multiple-level functions are those functions where a function calls another function. Like in the slide, the main() function calls another function disp_msg() .
  10. Use Slide 25 to test the student’s understanding on functions.
  11. The getc() and getchar() functions are used to take a character from a stream. The getc() functions takes a stream as a parameter while the getchar() function does not take any parameter. Similarly, the putc() and putchar() function outputs a character to a stream. The putc() functions takes two parameters, the character to be output and the stream, while the putchar() function takes only one parameter i.e. the character to be output.
  12. Use Slide 31 to test the student’s understanding on character-based input-output functions.
  13. Use Slide 33 to test the student’s understanding on the getchar() and putchar() functions.
  14. The gets() function is used to get a string from stdin . It collects a string terminated by a new line character from the input stream. It takes a constant string as a parameter. The puts() function copies the null-terminated string, which is passed as a parameter, to the standard output stream.
  15. Use Slide 36 to test the student’s understanding on the gets() and puts() functions.
  16. Explain the need for conditional constructs and loop constructs by taking appropriate examples.
  17. Use Slide 41 to test the student’s understanding on the conditional constructs.
  18. Explain the limitations of the switch…case construct. Tell the students that the switch…case construct cannot work with float variable. Also, you cannot specify an expression in the switch…case construct.
  19. Use Slide 45 to test the student’s understanding on the conditional constructs.
  20. The condition associated with the while loop is checked before entering the loop. Hence, there is a possibility that the loop is not executed at all. In the other case, the condition is checked after executing the loop once and for every interaction thereafter.
  21. Use Slide 49 to test the student’s understanding on the loop constructs.
  22. Use Slides 51, 52, and 53 to summarize the session.