Chapter 2 Introduction to the C Language Objectives

Chapter 2 Introduction to the C Language Objectives ❏ To understand the structure of a C-language program. ❏ To write your first C program. ❏ To introduce the #include preprocessor command. ❏ To be able to create good identifiers for objects in a program. ❏ To be able to list, describe, and use the C basic data types. ❏ To be able to create and use variables and constants. ❏ To understand input and output concepts. ❏ To be able to use simple input and output statements. Computer Science: A Structured Programming Approach Using C 1

2 -1 Background • C is a structured programming language. • It is considered a high-level language because it allows the programmer to concentrate on the problem at hand not worry about the machine that the program will be using. • That is another reason why it is used by software developers whose applications have to run on many different hardware platforms. platform independent Computer Science: A Structured Programming Approach Using C 2

2 -2 C Programs It's time to write your first C program. Topics discussed in this section: Structure of a C Program Your First C Program Comments The Greeting Program Computer Science: A Structured Programming Approach Using C 3

FIGURE 2 -2 Structure of a C Program Computer Science: A Structured Programming Approach Using C 4

FIGURE 2 -3 The Greeting Program Computer Science: A Structured Programming Approach Using C 5

PROGRAM 2 -1 The Greeting Program Computer Science: A Structured Programming Approach Using C 6

FIGURE 2 -4 Examples of Block Comments Computer Science: A Structured Programming Approach Using C 7

FIGURE 2 -5 Examples of Line Comments Computer Science: A Structured Programming Approach Using C 8

FIGURE 2 -6 Nested Block Comments Are Invalid Computer Science: A Structured Programming Approach Using C 9

2 -3 Identifiers • One feature present in all computer languages is the identifier. • Identifiers allow us to name data and other objects in the program. • Each identified object in the computer is stored at a unique address in the computer’s primary memory. Computer Science: A Structured Programming Approach Using C 10

Table 2 -1 Rules for Identifiers Computer Science: A Structured Programming Approach Using C 11

Note An identifier must start with a letter or underscore: it may not have a space or a hyphen. Computer Science: A Structured Programming Approach Using C 12

Note C is a case-sensitive language. Computer Science: A Structured Programming Approach Using C 13

Table 2 -2 Examples of Valid and Invalid Names Computer Science: A Structured Programming Approach Using C 14

2 -4 Types A type defines a set of values and a set of operations that can be applied on those values. Topics discussed in this section: Void Type Integral Type Floating-Point Types Computer Science: A Structured Programming Approach Using C 15

FIGURE 2 -7 Data Types Computer Science: A Structured Programming Approach Using C 16

• wchar_t is a wide character type of data: ü The increased datatype size allows for the use of larger coded character sets. ü Width of wchar_t is compiler specific (not portable). FIGURE 2 -8 Character Types Computer Science: A Structured Programming Approach Using C 17

FIGURE 2 -9 Integer Types Computer Science: A Structured Programming Approach Using C 18

Note sizeof (short) ≤ sizeof (int) ≤ sizeof (long) Computer Science: A Structured Programming Approach Using C 19

Table 2 -3 Typical Integer Sizes and Values for Signed Integers Computer Science: A Structured Programming Approach Using C 20

FIGURE 2 -10 Floating-point Types Computer Science: A Structured Programming Approach Using C 21

Note sizeof (float) ≤ sizeof (double) ≤ sizeof (long double) Computer Science: A Structured Programming Approach Using C 22

Table 2 -4 Type Summary Computer Science: A Structured Programming Approach Using C 23

Using the sizeof( ) function Computer Science: A Structured Programming Approach Using C 24

#include <stdio. h> #include <limits. h> #include <stdbool. h> int main() { printf("Storage size for short int : %d n", sizeof(short int)); printf("Storage size for int : %d n", sizeof(int)); printf("Storage size for long int : %d n", sizeof(long int)); printf("Storage size for float: %d n", sizeof(float)); printf("Storage size for double: %d n", sizeof(double)); printf("Storage size for long double: %d n", sizeof(long double)); printf("Storage size for char: %d n", sizeof(char)); printf("Storage size for wchar_t (compiler-dependent): %d n", sizeof(wchar_t)); printf("Storage size for bool: %d n", sizeof(bool)); //bool is defined in stdbool. h //Adding to a variable already holding the max value of its type will result in an error. int an. Int = INT_MAX; printf("an. Int has %d. n", an. Int); printf("an. Int plus 1 becomes %d. n", an. Int+1); an. Int++; printf("an. Int becomes %d. n", an. Int); return 0; } Computer Science: A Structured Programming Approach Using C 25

2 -5 Variables • Variables are named memory locations that have a type, such as integer or character, which is inherited from their type. • The type determines the values that a variable may contain and the operations that may be used with its values. Topics discussed in this section: Variable Declaration Variable Initialization Computer Science: A Structured Programming Approach Using C 26

FIGURE 2 -11 Variables Computer Science: A Structured Programming Approach Using C 27

Table 2 -5 Examples of Variable Declarations and Definitions Computer Science: A Structured Programming Approach Using C 28

‘B’ FIGURE 2 -12 Variable Initialization Computer Science: A Structured Programming Approach Using C 29

Note When a variable is defined, it is not initialized. We must initialize any variable requiring prescribed data when the function starts. Computer Science: A Structured Programming Approach Using C 30

PROGRAM 2 -2 Print Sum of Three Numbers Computer Science: A Structured Programming Approach Using C 31

PROGRAM 2 -2 Print Sum of Three Numbers (continued) Computer Science: A Structured Programming Approach Using C 32

PROGRAM 2 -2 Print Sum of Three Numbers (continued) Computer Science: A Structured Programming Approach Using C 33

2 -6 Constants are data values during the execution of a constants have a type. In Boolean, character, integer, constants. that cannot be changed program. Like variables, this section, we discuss real, complex, and string Topics discussed in this section: Constant Representation Coding Constants Computer Science: A Structured Programming Approach Using C 34

Note A character constant is enclosed in single quotes. Computer Science: A Structured Programming Approach Using C 35

Table 2 -6 Symbolic Names for Control Characters Computer Science: A Structured Programming Approach Using C 36

Table 2 -7 Examples of Integer Constants Computer Science: A Structured Programming Approach Using C 37

Table 2 -8 Examples of Real Constants Computer Science: A Structured Programming Approach Using C 38

FIGURE 2 -13 Some Strings Computer Science: A Structured Programming Approach Using C 39

FIGURE 2 -14 Null Characters and Null Strings Computer Science: A Structured Programming Approach Using C 40

Note Use single quotes for character constants. Use double quotes for string constants. Computer Science: A Structured Programming Approach Using C 41

PROGRAM 2 -3 Memory Constants Computer Science: A Structured Programming Approach Using C 42

PROGRAM 2 -3 Memory Constants (continued) Computer Science: A Structured Programming Approach Using C 43

2 -7 Input/Output Although our programs have implicitly shown how to print messages, we have not formally discussed how we use C facilities to input and output data. We devote two chapters, Chapter 7 and 13, to fully explain the C input/output facilities and how to use them. In this section, we describe simple input and output formatting. Topics discussed in this section: Streams Formatting Input/Output Computer Science: A Structured Programming Approach Using C 44

FIGURE 2 -15 Stream Physical Devices Computer Science: A Structured Programming Approach Using C 45

FIGURE 2 -17 Output Stream Formatting Example Computer Science: A Structured Programming Approach Using C 46

scanf FIGURE 2 -20 Input Stream Formatting Example Computer Science: A Structured Programming Approach Using C 47

Note scanf requires variable addresses in the address list. Computer Science: A Structured Programming Approach Using C 48

Table 2 -12 scanf Rules Computer Science: A Structured Programming Approach Using C 49

PROGRAM 2 -4 A Program That Prints “Nothing!” Computer Science: A Structured Programming Approach Using C 50

PROGRAM 2 -6 Print Value of Selected Characters Computer Science: A Structured Programming Approach Using C 51

PROGRAM 2 -6 Print Value of Selected Characters (continued) Computer Science: A Structured Programming Approach Using C 52

PROGRAM 2 -6 Print Value of Selected Characters (continued) Computer Science: A Structured Programming Approach Using C 53

PROGRAM 2 -6 Print Value of Selected Characters (continued) Computer Science: A Structured Programming Approach Using C 54

PROGRAM 2 -7 Calculate a Circle’s Area and Circumference Computer Science: A Structured Programming Approach Using C 55

PROGRAM 2 -7 Calculate a Circle’s Area and Circumference (continued) Computer Science: A Structured Programming Approach Using C 56

FIGURE 2 -22 Output Specifications for Inventory Report Computer Science: A Structured Programming Approach Using C 57

PROGRAM 2 -8 A Sample Inventory Report Computer Science: A Structured Programming Approach Using C 58

PROGRAM 2 -8 A Sample Inventory Report (continued) Computer Science: A Structured Programming Approach Using C 59

PROGRAM 2 -9 Print Complex Number Attributes Computer Science: A Structured Programming Approach Using C 60

PROGRAM 2 -9 Print Complex Number Attributes (continued) Computer Science: A Structured Programming Approach Using C 61

PROGRAM 2 -10 Complex Number Arithmetic Computer Science: A Structured Programming Approach Using C 62

PROGRAM 2 -10 Complex Number Arithmetic (continued) Computer Science: A Structured Programming Approach Using C 63

PROGRAM 2 -10 Complex Number Arithmetic (continued) Computer Science: A Structured Programming Approach Using C 64
- Slides: 64