Sie sind auf Seite 1von 5

TOPICS FOR REPORT 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

22. DATA TYPES POINTERS X RECURSION X STRUCTURE X ONE-DIMENSIONAL ARRAY X TWO-DIMENSIONAL ARRAY X MERGING OF TWO SORTED LISTS (ARRAYS) X TRANSPOSE OF A MATRIX (ARRAYS) X IMPLEMENTATION OF HEAPS X BUBBLE SORT X QUICK SORT X MERGE SORT X HEAPSORT X BINARY SEARCH X HASHING X STACKS X QUEUES X SINGLY LINKED LIST X DOUBLY LINKED LISTS X CIRCULAR LINKED LISTS X BINARY SEARCH TREE (BST) ABSTRACT DATA TYPE (ADT)

THE BUILT-IN DATA TYPES IN C Introduction Data types are provided to store various types of data that is processed in real life. A student's record might contain the following data types: name, roll number, and grade percentage. For example, a student named Anil might be assigned roll number 5 and have a grade percentage of 78.67. The roll number is an integer without a decimal point, the name consists of all alpha characters, and the grade percentage is numerical with a decimal point. C supports representation of this data and gives instructions or statements for processing such data. In general, data is stored in the program in variables, and the kind of data the variable can have is specified by the data type. Using this example, grade percentage has a float data type, and roll number has an integer data type. The data type is attached to the variable at the time of declaration, and it remains attached to the variable for the lifetime of the program. Data type indicates what information is stored in the variable, the amount of memory that can be allocated for storing the data in the variable, and the available operations that can be performed on the variable. For example, the operation S1 * S2, where S1 and S2 are character strings, is not valid for character strings because character strings cannot be multipled. Program // the program gives maximum and minimum values of data type #include <stdio.h> main() { int i,j ;// A i = 1; while (i > 0) { j = i; i++; } printf ("the maximum value of integer is %d\n",j); printf ("the value of integer after overflow is %d\n",i); }

VARIOUS DATA TYPES IN C Introduction C supports various data types for processing information. There is a family of integer data types and floating-point data types. Characters are stored internally as integers, and they are interpreted according to the character set. The most commonly used character set is ASCII. In the ASCII character set, A is represented by the number 65. Program/Examples The data type families are as follows: Integer family char data type int data type short int data type long int data type These data types differ in the amount of storage space allocated to their respective variables. Additionally, each type has two variants, signed and unsigned, which will be discussed later. Float family (real numbers with decimal points)

Float data type Double data type (ANSI has also specified long double, which occupies the same storage space as double) THE INTEGER DATA TYPE FAMILY Introduction Integer data types are used for storing whole numbers and characters. The integers are internally stored in binary form. Program/Example Here is an example that shows how integers are stored in the binary form. Number =13

Decimal representation = 1*101 + 3*100 Binary representation = 1101 = 1*23 + 1*22 + 0*21 + 1*1

Each 1 or 0 is called a bit, thus the number 13 requires 4 bits. In the same way, the number 130 is 1000 0010 in binary. If the general data type is char, 8 bits are allocated. Using 8 bits, you can normally represent decimal numbers from 0 to 255 (0000 0000 to 1111 1111). This is the case when the data type is unsigned char. However, with signed char, the leftmost bit is used to represent the sign of the number. If the sign bit is 0, the number is positive, but if it is 1, the number is negative. Binary representation of the following numbers in signed char is as follows: Number = 127 Binary representation = 0111 1111 (leftmost bit is 0, indicating positive.) Number = 128 Binary representation = 1000 0000 (leftmost bit is 1, indicating negative.) The negative numbers are stored in a special form called "2's complement". It can be explained as follows: Suppose you want to represent 127: 1. 2. 3. 4. 5. 6. 7. Convert 127 to binary form, i.e. 0111 1111. Complement each bit: put a 0 wherever there is 1 and for 0 put 1. So you will get 1000 0000. Add 1 to the above number 1000 0000 + 1 ------------1000 0001 (127)

Thus in the signed char you can have the range 128 to +127, i.e. (28 to 281). The binary representation also indicates the values in the case of overflow. Suppose you start with value 1 in char and keep adding 1. You will get the following values in binary representation: 0000 0001 (1) 0111 1111 (127)

1000 0000 (-128) 1000 0001 (-127) In the case of unsigned char you will get 0000 0111 1000 1000 1111 0000 0001 1111 0000 0001 1111 0000 (1) (127) (128) (129) (255) (0)

This concept is useful in finding out the behavior of the integer family data types. The bytes allocated to the integer family data types are (1 byte = 8 bits) shown in Table 2.1. Table 2.1: Integer data type storage allocations Data Type signed char short long int int Allocation 1 byte 2 bytes 4 bytes Range 27 to 271 (128 to 127) 0 to 281 (0 to 255) 215 to 215 1 (32768 to 32767) 0 to 216 1 (0 to 65535) 231 to 2311 (2,147,483,648 to 2,147,483,647)

Unsigned char 1 byte Unsigned short 2 bytes

2 or 4 bytes depending on implementation Range for 2 or 4 bytes as given above

OVERFLOW IN char AND UNSIGNED char DATA TYPES Introduction Overflow means you are carrying out an operation such that the value either exceeds the maximum value or is less than the minimum value of the data type. Program // the program gives maximum and minimum values of data type #include <stdio.h> main() { char i,j ; i = 1; while (i > 0) // A { j = i; // B i++; // C } printf ("the maximum value of char is %d\n",j); printf ("the value of char after overflow is %d\n",i); }

THE char TYPE Introduction Alpha characters are stored internally as integers. Since each character can have 8 bits, you can have 256 different character values (0255). Each integer is associated with a character using a character set. The most commonly used character set is ASCII. In ASCII, "A" is represented as decimal value 65, octal value 101, or hexadecimal value 41. Explanation If you declared C as a character as char c; then you can assign A as follows: c c c c = = = = 'A'; 65; '\x41'; '\101';

// Hexadecimal representation // Octal representation

You cannot write c = A because A is interpreted as a string. Escape Sequence Certain characters are not printable but can be used to give directive to functions such as printf. For example, to move printing to the next line you can use the character "\n". These characters are called escape sequences. Though the escape sequences look like two characters, each represents only a single character. The complete selection of escape sequences is shown here. backslash \a alert (bell) character \\ \b backspace \? question mark single quote \f form feed \ new line \n \" double quote \r carriage return \ooo octal number \t horizontal tab \xhh hexadecimal number \v vertical tab

Das könnte Ihnen auch gefallen