Learning Center
Plans & pricing Sign in
Sign Out

t02 AFirst CProgram


									Department of Computer and Information Science,
School of Science, IUPUI

  A First C Program

         Dale Roberts, Lecturer
         Computer Science, IUPUI

                                                  Dale Roberts
                  Try Your First C Program
           #include <stdio.h>                /* I/O header file */                         comment
                                         header file – contains I/O routines
               pre-processor directive
            main()                                    main must be present in each C program
Indicates a {
                               one statement
building             printf(“Hello world ”);                                   statement terminator
block called         printf(“Welcome to CSCI230\n“);
                     printf(“I am John Smith\n”);
       A C program contains one or more functions
       main() is the function name of your main (root) program
       { }: braces (left & right) to construct a block containing the statements of a
       Every statement must end with a ;
        \ is called an escape character
        \n is an example of an escape sequence which indicates newline
       Other escape sequences are: \t \r \a \\ \”
     Exercise: Use any editor to type and then save your first program as main.c
       % gcc main.c
       % a.out               and observe its result.
                                                                                               Dale Roberts
Variable identifiers
  Begin with a letter or underscore: A-Z, a-z, _
  The rest of the name can be letters, underscore, or digits
  Guarantee that east least the first 8 characters are significant (those
  come after the 8th character will be ignored) while most of C compiler
  allows 32 significant characters.
        _abc      ABC      Time   time     _a1       abcdefgh
        abcdefghi (may be the same as abcdefgh)
  Case sensitive
  Keywords: reserved names (lexical tokens)
  auto    double if    static break          else   int    struct
  case    entry long   switch char           extern register
  typedef float return union do              go     sizeof continue

                                                               Dale Roberts
                   Fundamental Data Type
   Four Data Types (assume 2’s complement, byte machine)
            Data Type            Abbreviation     Size              Range
 char      char                                    1              -128 ~ 127
           unsigned char                           1               0 ~ 255
           int                                   2 or 4   -215 ~ 215-1 or -231 ~ 231-1
           unsigned int         unsigned         2 or 4    0 ~ 65535 or 0 ~ 232-1
  int      short int            short              2           -32768 ~ 32767
           unsigned short int   unsigned short     2              0 ~ 65535
           long int             long               4             -231 ~ 231-1
           unsigned long int    unsigned long      4               0 ~ 232-1
        float                                      4
        double                                     8
Note:      27 = 128, 215 =32768, 231 = 2147483648
           Complex and double complex are not available

                                                                           Dale Roberts
           Variable Declarations

type v1,v2,v3, …, vn
   int i;
   int j;
   float k;
   char c;
   short int x;
   long int y;
   unsigned int z;
   int a1, a2, a3, a4, a5;

                                   Dale Roberts
      Numeric, Char, String Literals
  Numeric literal
          octal                        O32 (= 24D) (covered later)
          hexadecimal                  OxFE or Oxfe (=254D) (covered later)
          decimal int                  32
          long (explicit)              32L or 32l
     an ordinary integer literal that is too long to fit in an int is also too
     long for long
         No single precision is used; always use double for literal

                                                                      Dale Roberts
         Numeric, Char, String Literals
• Character literal (covered later)
    • American Standard Code for Information Interchange (ASCII)
    • Printable:     single space    32
                        ‘0’ - ‘9’         48 - 57
                        ‘A’ - ‘Z’         65 - 90
                        ‘a’ - ‘z’         97 - 122
    • Nonprintable and special meaning chars
      ‘\n’    new line              10    ‘\t’       tab                9
      ‘\\’    back slash            9     ‘\’’       single quote      39
      ‘\0’    null                   0    ‘\b’       back space         8
      ‘\f’    formfeed              12    ’\r’       carriage return   13
      ‘\”’    double quote          34

      ‘\ddd’ arbitrary bit pattern using 1-3 octal digits
      ‘\Xdd’ for Hexadecimal mode
      ‘\017’ or ‘\17’           Shift-Ins, ^O
      ‘\04’ or ‘\4’ or ‘\004’             EOT (^D)
      ‘\033’ or ‘\X1B’          <esc>

                                                                            Dale Roberts
    Numeric, Char, String Literals
String Literal
  will be covered in Array section
  String is a array of chars but ended by ‘\0’
  String literal is allocated in a continuous memory space of
  Data Segment, so it can not be rewritten
   Example:            “ABCD”
                   A   B   C   D   ‘\0’   ...
              4 chars but takes 5 byte spaces in memory

    Question: “I am a string” takes ? Bytes

                                       Ans: 13+1 = 14 bytes

                                                              Dale Roberts
   Numeric, Char, String Literals
• Character literals & ASCII codes:
      char x;
      x=‘a’;        /* x = 97*/
  – ‘a’ and “a” are different; why?
    ‘a’ is the literal 97
    “a” is an array of character literals, { ‘a’, ‘\0’} or {97, 0}
  – “a” + “b” +”c” is invalid but ‘a’+’b’+’c’ = ? (hint: ‘a’ = 97 in ASCII)
    ‘a’ + ‘b’ + ‘c’ = 97 + 98 + 99 = 294 = 256 + 38

    in the memory

                           1     38
  – if the code used is not ASCII code, one should check out each
    value of character

                                                                    Dale Roberts
If a variable is not initialized, the value of
variable may be either 0 or garbage depending
on the storage class of the variable.
     int i=5;
     float x=1.23;
     char c=‘A’;
     int i=1, j,k=5;
     char c1 = ‘A’, c2 = 97;
     float x=1.23, y=0.1;

                                         Dale Roberts
                Memory Concepts
Each variable has a name, address, type, and
1) int x;
2) scanf(“%d”, &x);

3)   user inputs 10
4)   x = 200;
     After the execution of (1)   x
     After the execution of (2)   x
     After the execution of (3)   x   10

     After the execution of (4)   x   200

Previous value of x was overwritten

                                            Dale Roberts
                 Sample Problem
Write a program to take two numbers as input data and
print their sum, their difference, their product and their
  Problem Inputs
   float x, y;          /* two items */
  problem Output
   float sum;           /*   sum of x and y */
   float difference;    /*   difference of x and y */
   float product;       /*   product of x and y */
   float quotient;      /*   quotient of x divided by y */

                                                   Dale Roberts
          Sample Problem (cont.)
Pseudo Code:
  Declare variables of x and y;
  Prompt user to input the value of x and y;
  Print the sum of x and y;
  Print the difference of x and y;
  Print the product of x and y;
  If y not equal to zero, print the quotient of x divided by y

                                                      Dale Roberts
                    Example Program
#include <stdio.h>    function
int main(void)           • name
{                        • list of argument along with their types
   float x,y;            • return value and its type
                         • Body
   float sum;
   printf(“Enter the value of x:”);
   scanf(“%f”, &x);
   printf(“\nEnter the value of y:”);
   scanf(“%f”, &y);
   sum = x + y;
   printf(“\nthe sum of x and y is:%f”,sum);
   printf(“\nthe sum of x and y is:%f”,x+y);
   printf(“\nthe difference of x and y is:%f”,x-y);
   printf(“\nthe product of x and y is:%f”,x*y);
   if (y != 0)                                                     inequality operator
        printf(“\nthe quotient of x divided by y is:%f”,x/y);
        printf(“\nquotient of x divided by y does not
                                                                              Dale Roberts

To top