255
- 1 - C Language Introduction Languages : A Set Of Statements Is Called A Language.There Are Four Types Of Languages According To Their Time. I generation languages: these languages are machine languages. To write programs in these languages the system technology must be required. The data is Non-portable. That means a program written in a system does not work in another systems. Ii Generation Languages : These Are Assembly Languages. These Are Also system oriented that means to write any program in a system that system’s

C Language

Embed Size (px)

Citation preview

Page 1: C Language

- 1 -

C Language Introduction

Languages :

A Set Of Statements Is Called A Language.There Are Four Types Of Languages According To Their Time.

I generation languages: these languages are machine languages. To write programs in these languages the system technology must be required. The data isNon-portable. That means a program written in a system does not work in another systems.

Ii Generation Languages :These Are Assembly Languages. These Are Also system oriented that means to write any program in a system that system’s technology must be required and data is non-portable. But they used MNEMONIC words in programs. That means they used a single word instead of more words.

III Generation Languages :In these languages programs are witten in general english language.There is no need to

Page 2: C Language

- 2 -

know the system technology and the data can be transfered anywhere.

IV Generation languages :These languages are defined in any one of the above languages.These are also called as packages.

Here I & II Generation languages are called Low Level Languages and III & IV generation languages are called High Level Languages.

For high level languages we have to use translaters to translate the source code written in general english language into machine language. These translaters are two types.1) Interpreters, 2) Compilers.

1) Interpreters : These translaters translate the source code step by step into machine language until any error. If there is any error it stops and shows some message. After correction it can continue.Ex: BASIC, DBase III+, ....

Page 3: C Language

- 3 -

2) Compilers : These translaters translate the entire source code into machine language when it is error-free and creates an object file in machine

language. If there is any error it shows the list of error. After debugging it creates the object file.

Ex: COBOL, C, C++, ...

Page 4: C Language

- 4 -

C LANGUAGEThe language ‘C’ was designed by Dennis Ritchie at AT & T Bell Laboratories. The standardised C was released in 1979.

The ‘C’ language is used to developi) Scientific applications,ii)Business applications,iii) Graphical applications (Ex: WINDOWS ),iv) System programs,v)Operating Systems (Ex: UNIX) , ...

Character Set : alphabets constants, statements, digits ==> variables, ==> ==> Programs special symbols keywords instructions

Constants : The unchangeable quantities are called Constants.The constants are generally two types.

1)Character constants : a) Characters Ex: ‘a’, ‘5’, ‘+’, ‘ ‘, ... b) Strings Ex: “abc”, “435”, ‘rama”, ...

2)Numeric Constants :

Page 5: C Language

- 5 -

a) integers Ex: 435, -657, 65535, -32768,...b) Real numbers

i) Fractional form Ex: 435.67, 345.00054, ...ii) Exponential form Ex: 0.02e3, 1.17e-38, ...

Variables : The quantities which can be changed during the execution of program are called Variables. A variable can be considered as the name of the cell which can hold the constants. To use any variable it must be declared with its data type before the first executable statement and they can be initialised. Naming the variable is very important.

1)The variable name must be start with either alphabets or an underscore and may contain alphabets, digits, hyphen or underscore.

2)The maximum length of a variable is 8 characters. But some compilers can accept upto 32 characters.

3)There must not be any blank spaces or special symbols in a variable name.

4)A variable name must not be a keyword.

Ex: valid invlid eno emp name empname emp(name emp-name 45abc

Page 6: C Language

- 6 -

Keywords : These are predefined words. There are 32 keywords in C language. These keywords can not be used as user-defined variables.

Operators : There are 42 operators in C language.

1) Arithmetic Operators : + - * / %

Ex:

100 + 40 ==> 140100 - 40 ==> 60100 * 40 ==> 4000100 / 40 ==> 2100 % 40 ==> 2040 % 100 ==> 40

2) Assigning Operators : = (variable) = (constant) / (variable) / (expression) ;

Ex: a = 5 b = a c = a + b -2

3) Multiple operators : += -= *= /= %=

Ex:

Page 7: C Language

- 7 -

a = a + 3 ==> a += 3a = a - 3 ==> a -= 3a = a * 3 ==> a *= 3a = a / 3 ==> a /= 3a = a % 3 ==> a %= 3

4) Unary Operators : ++ --

Ex :

a = a + 1 ==> a += 1 ==> a ++ ==> ++ a a = a - 1 ==> a -= 1 ==> a -- ==> -- a

5) Relational Operators : == > < >= <= !=

6) Logical Operators : && || !

7)

, . : ; < > # { [ ( ) ] } ......

Structure of a ‘C’ program :

preprocessor commandsglobal declarations

Page 8: C Language

- 8 -

main(){

local declarations ;

statements ; }

function(arguments){

local declarations ;statements ;

}

The ‘C’ program has a free formated structure. Every statement must be terminated with a semicolon ; A program is a collection of functions. There may be a

lot of functions but at least one function must be there that is main(), where the execution starts.

C has case sensitivity. All the keywords are defined in lower case.

So better to write entire program in lower case.

Preprocessor commands :

The commands which start with a hash(#) symbol are called Preprocessor commands.

Ex :

Page 9: C Language

- 9 -

# include <stdio.h># include “conio.h”# define PI 3.14159

Global declarations :

To use any variable it must be declared with its data type before the first executable statement. The variables which declared in a block are available in that block only.

To use the variable in the entire program with same effect it must be declared as global.

Page 10: C Language

- 10 -

Data Types :Type Range occupied bytes format stringsigned char -128 to 127 1

%cunsigned char 0 to 255 1

%c

shortsigned int -32768 to 32767 2 %i %d %o %xshort unsigned int 0 to 65535 2

%ulong signed int -2^31 to 2^31 -1 4 %ldlong unsigned int 0 to 2^32 -1 4 %lu

float 3.14e-38 to 3.14e38 4 %f %edouble 1.17e-308 to 1.17e308 8 %lflong double 1.17e-4932 to1.17e4932 10 %Lf

Functions :The functions are two types.

Page 11: C Language

- 11 -

1)derived functions, 2) user-defined functions.The derived functions are defined by the ‘C’ authors. They defined them in the header files. To use the function the header file must be included as preprocessor statement.

1)clrscr() :-This function is used to clear the screen. This function’s prototype has defined in the header file CONIO.H ( CONIO ==> Console Input Output )

Syntax :

clrscr();

2)printf() :-This function is used to display the text and the values of variables. This function’s prototype has defined in the header file STDIO.H To display the variable’s value the format string must be used.( STDIO ==> Standard Input Output )Syntax :

printf(“ format string “, variables) ;

Ex :

printf(“ Hello \t World “);printf(“ %d %c”, k, j);printf(“The marks are %d, %d, %d”, m1, m2, m3 );

Page 12: C Language

- 12 -

Note : The function printf() returns an integer value that is the number of arguments given to the statement.

Page 13: C Language

- 13 -

Remarks :To write any remarks or comments to the statements they must be enclosed with the symbols /* */

Ex :

/*sdfjkshadjfsdjkafkjsadjkfhkasdjsdafhasdfhgasdhfgasdgfgasdfhasdfjsdafjksadfjasdkhfjasdhkfjhksda

*/

Ex Programs :

1) /* My First ‘C’ Program */

# include <stdio.h># include <conio.h>

main()

{clrscr() ;printf(“Hello” );printf(“Bhanodaya “) ;

printf(“Welcome “) ;

}

/*

Page 14: C Language

- 14 -

Save this program (F2) as FIRST.C

After compilation(Alt-F9) it creates an object file, and an executable

file which can be executed at MS-DOS prompt.

By saving a modified file it creates a backup file.

FIRST.CFIRST.BAKFIRST.OBJFIRST.EXEOutput :

Hello Bhanodaya Welcome

*/

Page 15: C Language

- 15 -

TURBO C editor :

It is a compiler of C program and it can be also used as an general editor. To enter into editor first change into the directory which contains the software and enter the command TC at the command prompt.

C:\> CD TC

C:\TC> tc

Then it opens the editor which contains a menu bar at the top, a status bar at the bottom and a main window to write the programming statements and a sub window which shows the messages.

The menu bar contains some menu pads and they can be selected by pressing ALT and the highlighted character in the required menu pad.

Then it shows the submenu which contains some bars and they can be selected using arrow keys.

The status bar shows online help and the keys information.

1)To write a new program select ‘New’ command from “File” menu.

2)To save the working program select ‘Save’ command from “File” menuor press F2 and enter a name.

Page 16: C Language

- 16 -

3)To compile the program select ‘Compile to OBJ’ command from “compile” menu or press Alt + F9. Then it shows the list of

errors or warnings. If the program is error-free then the compiler

creates an object file (.OBJ) and an executable file (.EXE).

4)To execute the program select ‘Run’ command from “Run” menu or press Ctrl + F9.

5)To seee the output of the execution select ‘User Screen’ command from “Run” menu or press Alt + F5.

6)To close the editor select ‘Quit’ command from “File” menu or press Alt + X.

Page 17: C Language

- 17 -

Escape Sequences :

\0 ==> Null character\t ==> Tab ( 8 spaces)\l ==> Line feed\r ==> Carriage Return\n ==> New line character ( \n

= \l + \r )\a ==> Alert (beep sound)\’ ==> Single quotes\” ==> Double quotes\\ ==> back slash

Ex Programs :2) /* Using Escape Sequences */

# include <stdio.h># include <conio.h>

main(){ clrscr() ; printf(“Hello \t “) ; printf(“Udaya \n”) ;

Page 18: C Language

- 18 -

printf(“Welcome “) ; }

/* Output :

Hello Udaya Welcome

*/

3)

# include <stdio.h># include <conio.h>

main(){

clrscr() ;

printf(“Hello \t Bhanu \n Welcome “) ; }

/* Output :

Hello Bhanu Welcome

*/

Page 19: C Language

- 19 -

4) /* Using Variables */

# include <stdio.h># include <conio.h>

main(){

int k = 65 ;char j = ‘*’ ;clrscr() ;

printf(“\n The value of k is %i %d %c %o %x”, k, k, k, k, k ) ;

printf(“\n The value of j is %i %d %c %o %x”, j, j, j, j, j ) ; }

/* Output :

The value of k is 65 65 A 101 42The value of j is 42 42 * 52 2a*/

Page 20: C Language

- 20 -

5) /* Formatting the output */

# include <stdio.h> # include <conio.h>

main() {

int a, b, c ; clrscr() ; a = 6 ; b = 23456; c = 678 ;

printf(“\n %05d \t %d”, a, a ) ;printf(“\n %05d \t %d”, b, b ) ;printf(“\n %5d \t %d”, c, c ) ;}

/* Output : 00006 6 23456 23456 678 678

*/

6) /* Arithmetic Operations */

# include <stdio.h> # include <conio.h>

Page 21: C Language

- 21 -

main() {

int a, b, c, d, e, f ;clrscr() ;

a = 100 ; b = 40 ; c = a + b ; d = a - b ; e = a * b ; f = a / b ;printf(“The given values are %d,

%d”, a, b ) ;printf(“\n The addition is %d”, c)

;printf(“\n The subtraction %d”, d)

;printf(“\n The product is %d”,

e) ;printf(“\n The division %d”, f) ;printf(“\n The reminder is %d”, a

%b) ; }

/* Output :

Page 22: C Language

- 22 -

The given values are 100, 40The addition is 140The subtraction 60The product is 4000The division 2The reminder is 20

*/

Notes : The Arithmetic operations are three types depend on the types of the operands in the expression.

operand1 operand2 result integer integer integerinteger real realreal real real

Ex Programs :7) /* Type casting */

# include <stdio.h> # include <conio.h>

main() { int m1, m2, m3, tot; float avg ;

Page 23: C Language

- 23 -

clrscr() ;

m1 = 65; m2 = 66; m3 = 68; tot = m1 + m2 + m3 ;

/* avg = tot / 3.0 ; */avg = (float) tot / 3 ;

printf(“The three subjects marks are %d, %d, %d”, m1, m2, m3 ) ; printf(“\n The total %d \t Average %f”, tot, avg ) ;

}

/* Output :

The three subjects marks are 65, 66, 68 The total 199 Average 66.33

*/

8) /* Formatting the output of floating point values */

# include <stdio.h> # include <conio.h>

main()

Page 24: C Language

- 24 -

{ float bas, da, hra, pf, net ; clrscr() ;

bas = 5000; da = bas * 20 / 100 ; hra = bas * 30 / 100 ; pf = bas * 5 / 100 ; net = bas + da + hra - pf ;

printf(“The Basic Salary %f”, bas) ; printf(“\n Da %.1f \t Hra %010.3f \t Pf %5.0f”, da, hra, pf) ; printf(“\n Net Salary %10.2f”, net) ; }

/* Output :

The Basic Salary 5000.000000Da 1000.0 Hra 001500.000 Pf

00250Net Salary 7250.00

*/

Page 25: C Language

- 25 -

q) /* Program to demonstrate the Increment / Decrement operators */

# include <stdio.h> # include <conio.h>

main() {

int k = 5 ; clrscr() ;

Output

5printf(“\n %d”, k) ;

k ++ ; 7

printf(“\n %d”, ++k) ; 7

printf(“\n %d”, k++); 8

printf(“\n %d”, k) ; k -- ;

7

Page 26: C Language

- 26 -

printf(“\n %d”, k--) ; 5

printf(“\n %d”, --k) ;

k = ++k + ++k + ++k ; 24 printf(“\n %d”, k) ;

k = 5 ;

k = k++ + ++k + ++k + k++ + k++ ;

printf(“\n %d”, k) ; 38

getch() ; }

Notes :

scanf() :

This function is used to accept the values for the variables while executing the program from keyboard. This function’s prototype has defined in the header file STDIO.H

The function printf() returns an integer value that is the number of arguments given to the statement.

Syntax:

scanf(“formatstring” , &(variables) );

Page 27: C Language

- 27 -

Note :

To accept two or more values with a single scanf() they can be seperated by space or tab or enter key.

Ex :

i) int a;scanf(“%d”, &a);

ii)int m1, m2, m3;scanf(“%d%d%d”, &m1, &m2, &m3);

iii) char ch;scanf(“%c”, &ch);

getch() :

This function is used to accept a single character for the variable while executing the program. But this function does not display the entered character. This function’s prototype has defined in the header file CONIO.H

Note : To see the entered character the function getche() can be Used.

Syntax:

(variable) = getch() ;

Ex :

char c;

c = getch();

Page 28: C Language

- 28 -

Page 29: C Language

- 29 -

Ex Programs :

9)/* Program to demonstrate the difference between the functions

scanf(), getche(), getch()*/

# include <stdio.h># include <conio.h>

main() {

char k ;clrscr();

printf(“Enter any character “) ;

scanf(“%c”, &k) ;

printf(“You entered the character %c”, k) ;

printf(“\n\n Enter any character “) ; k = getche(); printf(“\n You entered the character %c”, k) ;

printf(“\n\n Enter any character “) ; k = getch() ; printf(“\n You entered the character %c”, k) ;

getch(); }

Page 30: C Language

- 30 -

/* Output :

Enter any character abcdefYou entered the chracter a

Enter any character gYou entered the chracter g

Enter any characterYou entered the chracter d */

10) /* Write a program to calculate the total, average of a student’s three subjects marks */

# include <stdio.h># include <conio.h>

main() {

int m1, m2, m3, tot;float avg ;clrscr() ;

printf(“Enter three subjects marks \n”) ;

Page 31: C Language

- 31 -

scanf(“%d%d%d”, &m1, &m2, &m3 ) ;

tot = m1 + m2 + m3 ;/* avg = tot / 3.0 ; */avg = (float) tot / 3 ;

printf(“The three subjects marks are %d, %d, %d”, m1, m2, m3 ) ; printf(“\n The total %d \t Average %f”, tot, avg ) ;

}

/* Output :

Enter three subjects marks65 66 68

The three subjects marks are 65, 66, 68

The total 199 Average 66.33 */

11) /* Write a program to accept an employee’s basic salary, calculate da, hra, pf, net salary and print all

*/

Notes :

Conditional Statements :

Page 32: C Language

- 32 -

In C language the conditional statement returns zero when the

condition is false. Otherwise it returns a non-zero(1) value when

the condition is true.

Ex Program :

12)

# include <stdio.h># include <conio.h>

main()

{ output

int k = 5 ;clrscr() ;

printf(“\n %d”, k ); 5 printf(“\n %d”, k<10) ; 1 printf(“\n %d”, k>10) ; 0 printf(“\n %d”, k+(k==5) );

6 printf(“\n %d”, k=10) ;

10

getch() ;

Page 33: C Language

- 33 -

}

Page 34: C Language

- 34 -

Notes :

There are three types of conditional statements in ‘C’.

1) if, 2) switch, 3) conditional operators

1)if ... else :Syntax : if (condition)

if (condition) { {

(statements); (statements);

} or }else {

(statements) ;}

Ex Program :

13)/* Write a program to check whether the given number is zero or not */

# include <stdio.h>

Page 35: C Language

- 35 -

# include <conio.h>

main() { int k; clrscr() ;

printf(“Enter any number “) ;scanf(“%d”, &k) ;

if(k==0) printf(“The number is zero “) ; else printf(“The number is not zero “) ;

getch() ; }

14) /* Write a program to check the given number is positive or negative */

# include <stdio.h># include <conio.h>

main() {

Page 36: C Language

- 36 -

int k ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &k) ;

if(k==0)

printf(“The number is zero “) ;

else if(k>0)

printf(“The number is Positive “);

elseprintf(“The number is Negative “) ;

getch() ; }

15) /* Write a program to find the big number in the given two numbers */

# include <stdio.h># include <conio.h>

main()

Page 37: C Language

- 37 -

{int a, b ;clrscr() ;

printf(“Enter any two numbers \n”) ;

scanf(“%d%d”, &a, &b) ;

if(a==b)printf(“\n Given both are equl “) ;

else{

printf(“\n The big is “) ;

if(a>b) printf(“%d”, a) ;else printf(“%d”, b) ; }

getch() ; }

16) /* Write a program to find the biggest number in the given threenumbers */

# include <stdio.h># include <conio.h>

main()

Page 38: C Language

- 38 -

{int a, b, c ;clrscr() ;

printf(“Enter any three numbers \n”) ;

scanf(“%d%d%d”, &a, &b, &c) ;

if(a==b && a==c)printf(“Given all are equal “) ;

else {

printf(“\n The biggest is “) ;

if(a>b && a>c)

printf(“%d”, a) ;

else if(b>c)

printf(“%d”, b);else

printf(“%d”, c); }

getch() ; }

Page 39: C Language

- 39 -

17) /* Write a program to find the smallest number in the given five numbers */

# include <stdio.h># include <conio.h>

main() {

int a, b, c, d, e, t ;clrscr() ;

printf(“Enter any five numbers \n”) ;

scanf(“%d%d%d%d%d”, &a, &b, &c, &d, &e ) ;

if(a==b && a==c && a==d && a==e)printf(“\n Given all are equal “) ;

else {

t = a ; if(t>b) t = b; if(t>c) t = c ; if(t>d) t = d ; if(t>e) t = e ;

printf(“\n The biggest is %d”, t) ; }

Page 40: C Language

- 40 -

getch( ); }

18)/* Write a program to find the biggest and smallest numbers in the

given five numbers */

# include <stdio.h># include <conio.h>

main() {

int a, b, c, d, e, x, y ;clrscr() ;

printf(“Enter any five numbers \n”) ;

scanf(“%d%d%d%d%d”, &a, &b, &c, &d, &e ) ;

if(a==b && a==c && a==d && a==e)printf(“\n Given all are equal “) ;

else {

x = a ; y = a ; if(x<b) x = b;

else y = b;

Page 41: C Language

- 41 -

if(x<c) x = c ;

else if(y>c) y = c ;

if(x<e) x = e ;

else if(y>d) y = d ;

if(x<e) x = e ;

else if(y>e) y = e ;

printf(“\n The biggest is %d”, x) ;printf(“\n The smallest is %d”, y) ;

}getch( );

}

19) /* Write a program to accept three subjects marks of a student, calculate total, average find the result, division and print all details */

# include <stdio.h># include <conio.h>

main() {

int m1, m2, m3, tot ;float avg ;

Page 42: C Language

- 42 -

clrscr() ;

printf(“Enter three subjects marks \n”) ;

scanf(“%d%d%d”, &m1, &m2, &m3 ) ;

tot = m1 + m2 + m3 ; avg = (float) tot / 3 ;

printf(“The three subjects marks %d, %d, %d”, m1, m2, m3 ) : printf(“\n The Total %d \t Average %03.2f”, tot, avg ) ;

if(m1<35 || m2<35 || m3<35){

printf(“\n Result is Fail “) ;printf(“\t division is NIl “) ; }

else{

printf(“\n Result is Pass \t”) ; if(avg>=60) printf(“Division

is I class “) ; else if(avg>=50)printf(“Division is II class”) ; else printf(“Division is

III class”) ; }

getch() ;

Page 43: C Language

- 43 -

}

20) /* Write a program to accept an employee’s basic salary, calculate da, hra, pf, net salary using the following conditions and print all details

if bas >= 10000 ==> da = 40%, hra = 50%, pf = 25% 10000 > bas >= 5000 ==> da = 35%, hra = 45%, pf = 20%

5000 > bas >= 2000 ==> da = 30%, hra = 40%, pf = 15%

bas < 2000 ==> da = 25%, hra = 35%, pf = 10%

net = bas + da + hra - pf*/

Notes :

2) switch. . . case :

Syntax:

switch(variable)

Page 44: C Language

- 44 -

{case (value) : (statements) ;case (value) : (statements) ;

default : (statements) ; }

break :

This keyword stops the execution in the given block and come out. Generally this is used in switch..case statements and looping

Statements.

Ex Programs :

21)

# include <stdio.h># include <conio.h>

main() {

int k ;clrscr() ;

Page 45: C Language

- 45 -

printf(“Enter any number “ );

scanf(“%d”, &k) ;

switch(k) {

case 0 : printf(“\n Number is zero “ );

case 1 :

case 2 :

case 3 :

case 4 : printf(“\n Number is less than five “) ;

break ;

case 5 : printf(“\n Number is five “ );

break ;

default : printf(“\n Number is greater than five “) ;}

getch() ; }

22)

# include <stdio.h>

Page 46: C Language

- 46 -

# include <conio.h>

main() {

char k;clrscr() ;

printf(“Enter any one of the alphabets “ );

k = getche() ;

switch(k) {

case ‘a’ :

case ‘A’ : printf(“\n A for Active “) ;

break ;

case ‘b’ :

case ‘B’ : printf(“\n B for Brave “) ;

break ;

case ‘c’ :

case ‘C’ : printf(“\n C for Courage “);

break ;

case ‘d’ :

case ‘D’ : printf(“\n D for Dare “) ;

Page 47: C Language

- 47 -

break ;

default : printf(“\n You are timid “) ;}

getch() ; }

23)

# include <stdio.h># include <conio.h>

main() {

int a, b, k ;clrscr() ;

printf(“Enter two numbers \n”) ;

scanf(“%d%d”, &a, &b) ;

printf(“\n\n 1. Addition “) ;printf(“\n 2. Subtraction “) ;printf(“\n 3. Multiplication “) ;

printf(“\n 4. Division “) ;

printf(“\n\n Select your choice “) ;

scanf(“%d”, &k);

Page 48: C Language

- 48 -

printf(“\n”) ;

switch(k) {

case 1 : printf(“ The addition %d”, a+b) ; break ;

case 2 : printf(“ The subtraction %d”, a-b) ; break ;

case 3 : printf(“ The multiplication %d”, a*b); break ;

case 4 : printf(“ The division %d”, a/b); break ;

default : printf(“ Invalid choice “); }

getch() ; }

Notes :

3) Conditional Expressions : ( ? : ; )

Syntax :

(condition) ? (statement1) : (statement2) ;

Ex Programs :

24)/* Write a program to check whether the given number is zero or not */

Page 49: C Language

- 49 -

# include <stdio.h># include <conio.h>

main() {

int k;clrscr() ;

pritnf(“Enter any number “) ;

scanf(“%d”, &k);

(k==0) ? printf(“Number is zero “) : pritnf(“Number is not zero “) ;

getch() ; }

Page 50: C Language

- 50 -

25)/* Write a program to find the biggest number in the given three numbers */

# include <stdio.h># include <conio.h>

main() {

int a, b, c, t ;clrscr() ;

printf(“Enter any three numbers \n”) ;

scanf(“%d%d%d”, &a, &b, &c);

t = (a>b) ? a : b ;

printf(“The biggest is %d”, (t>c)?t:c );

getch() ; }

Notes :

gotoxy() :

This function locates the cursor position to the given place on the screen. This function’s prototype has defined in the header file CONIO.H

Page 51: C Language

- 51 -

Syntax:

gotoxy(column, row) ;

Generally in MS-DOS mode the screen contains 80 columns and 25 rows.

Ex Programs :

26)

# include <stdio.h># include <conio.h>

main() {

clrscr() ;gotoxy(20, 3) ;printf(“Hello “);gotoxy(70, 5);printf(“Bhanodaya “) ;gotoxy(35,12);printf(“Welcome “);gotoxy(50,20);printf(“To smile “);getch() ; }

Page 52: C Language

- 52 -

Notes :

goto :

This command changes the execution control to the given statement.

Syntax:

goto (label) ;

(label) :

(statements) ;

Ex Programs :

27)

# include <stdio.h># include <conio.h>

main() {

clrscr() ;printf(“Hello “) ;printf(“World “) ;goto abc ;

printf(“Go out “) ;

xyz :

printf(“To smile “) ;

Page 53: C Language

- 53 -

goto end ;abc :printf(“Welcome “) ;goto xyz ;

end :

getch() ; }

/* Output :

Hello World Welcome To smile */

Note :

Looping Statements :

Repeating a block of statements number of times is called Looping.

There are three types of looping statements defined in C language.

1)do..while, 2) while, 3) for.

Note :

The keyword ‘goto’ cn be also used to repeat a block of statements number of times.

Ex Programs :

28)

Page 54: C Language

- 54 -

# include <stdio.h>

main() {

abc :

printf(“Welcome “) ;

goto abc ; }

29) /* Program to display the first 10 natural numbers*/

# include <stdio.h># include <conio.h>

main() {

int k ;clrscr() ;

k = 1 ;abc :

printf(“%d “, k) ;

k++ ;

if(k<=10) goto abc ;

Page 55: C Language

- 55 -

getch() ; }

Notes :

1)do ... while() :

Syntax :

do {

(statements);

} while(condition) ;

Page 56: C Language

- 56 -

Ex Programs :

30) /* Write a program to display the first 10 natural numbers */

# include <stdio.h># include <conio.h>

main() {

int k ;clrscr() ;

k = 1 ;

do {

printf(“%d “, k) ;

k++ ;}while(k<=10) ;

getch() ; }

Page 57: C Language

- 57 -

31) /* Write a program to display the even numbers upto the given number and find the sum of them

*/

# include <stdio.h># include <conio.h>

main() {

int k, n, s ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &n) ;

k = 2 ; s = 0;do

{printf(“%d “, k) ;

s += k ;k += 2 ;}while (k<=10) ;

printf(“\n The sum is %d”, s) ;

getch() ; }

Page 58: C Language

- 58 -

Notes :

There is a draw-back in do.. while() staement. It executes the conditional statement after executing the statement.

2)while() :

Syntax:

while(condition) {

(statements); }

Ex Programs :

32) /* Write a program to display the first 10 natural numbers */

# include <stdio.h># include <conio.h>

main() {

int k ;clrscr() ;

k = 1 ;

Page 59: C Language

- 59 -

while(k<=10) {

printf(“%d “, k) ;

k++ ; }

getch() ; }

33) /* Write a program to display the even numbers upto the given number and find the sum of them

*/# include <stdio.h># include <conio.h>

main() {

int k, n, s ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &n) ;

k = 2 ; s = 0;

Page 60: C Language

- 60 -

while (k<=10) {

printf(“%d “, k) ;

s += k ;k += 2 ;

}

printf(“\n The sum is %d”, s) ;getch() ;

}

34) /* Write a program to check whether the given number is Prime or notPrime Number :

A number which is divisible by 1 and itselft. */

/* I method */

# include <stdio.h># include <conio.h>

main() {

Page 61: C Language

- 61 -

int n, k, s;clrscr() ;

printf(“Enter any number “) ;scanf(“%d”, &n) ;

k = 1; s = 0;while(k<=n)

{if(n%k==0) s++;k++ ;

}if(s==2) printf(“\n Number is Prime “ );

else printf(“\n Number is not a Prime “)

getch( ); }

/* II method */

# include <stdio.h>

# include <conio.h>

main() {

int n, k, s;clrscr() ;

Page 62: C Language

- 62 -

printf(“Enter any number “) ;scanf(“%d”, &n) ;

k = 2; s = 0;while(k<=n/2)

{if(n%k==0) { s++; break ; }k++ ;

}if(s==0) printf(“\n Number is Prime “ );

else printf(“\n Number is not a Prime “)

getch( ); }

35) /* Write a program to find the number of digits, sum of digits, and reverse order of the given number

*/

# include <stdio.h># include <conio.h>

main() {

long int a, b ;

Page 63: C Language

- 63 -

int n, s, r ;

clrscr( );

printf(“Enter any big number “ ); scanf(“%ld”, &a) ;

n = 0; s = 0; b = 0;

while(a>0) {

n ++ ;r = a % 10 ;s += r ;b = (b*10) + r ;a /= 10 ; }

printf(“\n The number of digits %d”, n) ;

printf(“\n The sum of digits %d”, s) ;

printf(“\n The Reverse number %lu”, b) ;

getch( ); }

36) /* Write a program to check whether the given number is Armstrong or not

Armstrong Number :

Page 64: C Language

- 64 -

A number which is equal to the sum of the cubes of the digits

is called Armstrong Number.

Ex: 1, 153, 370, 371, 407 */

# include <stdio.h># include <conio.h># include <math.h>

main() {

int a, b, r, s ;clrscr() ;

printf(“Enter any number “) ;scanf(“%d”, &a) ;

b = a ; s = 0;while(a>0){

r = a % 10 ;

s = pow(r, 3); /* s += r * r * r ; */

a /= 10; }

Page 65: C Language

- 65 -

if(b==s) printf(“\n The number is an Armstrong “) ;

else printf(“\n The number is not an Armstrong “) ;

getch() ; }

Notes :

3)for() :

Syntax:

for ( initialisation ; condition ; iteration ){

(statements) ;

}

Ex Programs :

37)/* Write a program to display the odd numbers upto the given number */

# include <stdio.h>

Page 66: C Language

- 66 -

# include <conio.h>

main() { int n, a ; clrscr() ;

printf(“Enter any number “ ); scanf(“%d”, &a );

/* n = 1 ;for ( ; a>=n ; ){ printf(“%d “, n);

n += 2 ; }

*/

for(n=1; n<=a ; n+=2)printf(“\n %d “ , n) ;

getch() ;}

Page 67: C Language

- 67 -

38)/* Write a program to display the even numbers upto the given number

and find the sum of them*/# include <stdio.h># include <conio.h>

main() {

int a, n, s ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &a) ;

/* n = 2 ; s = 0 ;

for( ; n<=a ; ) {

printf(“%d “, n) ;

s += n ;

n += 2 ; }

*/ /*

Page 68: C Language

- 68 -

s = 0 ;for(n=2; n<=a; n+=2)

{printf(“%d “ , n );

s += n; }

*/

for(n=2, s=0 ; n<=a ; s+=n, n+=2 )

printf(“%d “, n) ;

printf(“\n The sum is %d”, s) ;getch() ;

}

39) /* Write a program to find the sum of natural numbers, even numbers, odd numbers upto the given number */

# include <stdio.h># include <conio.h>

main()

Page 69: C Language

- 69 -

{int a, n, s, odd, even ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &a) ;

for(n=1, s=0, odd=0, even=0 ; n<=a ; s+=n, n++)if(n%2==0) even += n;else odd += n;

printf(“\n The sum of natural numbers %d”, s) ;

printf(“\n The sum of even numbers %d”, even ) ;

printf(“\n The sum of odd numbers %d” , odd ) ;

getch() ; }

40) /* Write a program to find the factorial value of the given number

n! = n * (n-1) !

*/

Page 70: C Language

- 70 -

# include <stdio.h># include <conio.h>

main() {

long int a, f ;clrscr() ;

printf(“Enter any number “) ;scanf(“%ld”, &a) ;

/* f = 1 ; for( ; a>1 ;) {

f *= a ;a -- ;

}*/

for(f=1; a>1; f*=a, a--) ;

printf(“\n The factorial is %ld” , f) ; getch() ; }

41)

Page 71: C Language

- 71 -

/* Write a program to display the multiplication table of the given number

using all types of loopings. */# include <stdio.h># include <conio.h>

main() {

int n, k;clrscr() ;

printf(“Enter any number “ );

scanf(“%d”, &n) ;/* k = 1 ; do {

printf(“\n %d x %2d = %3d”, n, k, n*k );

k ++ ; } while (k<=10) ;

*//*

k = 1 ;

while( k<= 10 ) {

Page 72: C Language

- 72 -

printf(“\n %d x %2d = %3d “, n, k, n*k );

k ++ ;}

*/for(k=1; k<=10; k++)

printf(“\n %d x %2d = %3d”, n, k, n*k);

getch() ; }

42) /* Write a program to display the ASCII chart

ASCII ==> American Standard Code for Information Interchange */

# include <stdio.h># include <conio.h>

main() {

int k ;clrscr() ;

/* k = 0 ;

do

Page 73: C Language

- 73 -

{printf(“\t %d %c”, k, k) ;k ++ ;if(k%50==0) getch() ;

} while(k<=255 ) ;*//* k = 0 ; while(k<=255) {

printf(“\t %d %c”, k, k) ;k ++ ;

if(k%50==0) getch() ; }*/

for(k=0; k<=255; k++) {

printf(“\t %d %c”, k, k) ;

if(k%50==0) getch() ; }

getch() ; }

Page 74: C Language

- 74 -

43) /* Write a program to display the multiplication table of the given number using all types of Loopings.

*/

Notes :

Nested Loops :

Looping in a loop is called Nesting of Loops.

Ex Programs :

44)

# include <stdio.h># include <conio.h>

main() {

int n, k, j ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &n) ;

for(k=1; k<=n; k++) {

printf(“\n “) ;for(j=1; j<=k; j++)

Page 75: C Language

- 75 -

printf(“%d “, j) ; }

getch() ; }

/* output :

Enter any number 511 21 2 31 2 3 41 2 3 4 5

*/

45)

# include <stdio.h># include <conio.h>

main() {

int n, k, j ;clrscr() ;

Page 76: C Language

- 76 -

printf(“Enter any number “) ;

scanf(“%d”, &n) ;

for(k=1; k<=n; k++) {

printf(“\n “) ;for(j=1; j<=k; j++)printf(“%d “, k) ; }

getch() ; }

/* output :

Enter any number 512 23 3 34 4 4 45 5 5 5 5 */

46)

# include <stdio.h># include <conio.h>

Page 77: C Language

- 77 -

main() {

int n, k, j ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &n) ;

for(k=n; k>=1; k--) {

printf(“\n “) ;for(j=1; j<n-k; j++)printf(“ “) ;

for(j=1; j<=k; j++)

printf(“%d “, j) ; }

getch() ; }

/* output :

Enter any number 51 2 3 4 5 1 2 3 4

Page 78: C Language

- 78 -

1 2 3 1 2

1 */

47)

# include <stdio.h># include <conio.h>

main(){

int n,j,k,a;clrscr();

printf(“Enter the any number”);

scanf(“%d”,&a);

for(n=a;n>0;n--) {

printf(“\n”);for(k=1;k<=n;k++)

Page 79: C Language

- 79 -

printf(“%c”,64+k);

for(k=1;k<=2*(a-n)-1;k++)

printf(“ “);

k=(a==n)?n-1:n;for (;k>=1;k--)printf(“%c”,64+k);

}getch(); }

/* Output :

Enter any number 5

ABCDEDCBAABCD DCBA

ABC CBAAB BAA A */

48)/* Write a program to display the multiplication tables upto

the given number */# include <stdio.h># include <conio.h>

Page 80: C Language

- 80 -

main() {

int a, n, k ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &a) ;

for(n=1; n<=a; n++) {

for(k=1; k<=10; k++ )

printf(“\n %d x %2d = %3d “, n, k, n*k);getch() ;clrscr() ;

}

}

49)/* Write a program to display the list of Prime numbers upto

the given number */# include <conio.h>

Page 81: C Language

- 81 -

# include <stdio.h>

main() {

int a, n, k, s ;clrscr() ;

printf(“Enter any number “) ;

scanf(“%d”, &a ) ;

for(n=2; n<=a; n++) {

for(k=2, s=0; k<=n/2; k++)

if(n%k==0) { s++; break ; }

if(s==0) printf(“%d “, n) ;}

getch() ; }

50) /* Write a program to display the list of Armstrong Numbers upto the given number */

51) /* Write a program to display the Fibonacci Series upto the given number

Page 82: C Language

- 82 -

Fibonacci Series : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ....

In this series every element is the sum of its previous two numbers */

52)/* Write a program to display a box with the given character,

length and width using arrays */

/* Output :Enter box length 10Enter box width 5Enter any character *

* * * * * * * * * * * * * * * * * * * * * * * * * **/

Notes :

Arrays :

Page 83: C Language

- 83 -

An array is a collection of similar data type elements. It stores the elements in contiguous locations. To use any array it must be declared with its size and they may be initialized. The size must be a constant.

The indexing is start from 0. The arrays are two types.

1)Single Dimensional arrays, 2) Multi Dimensional Arrays.1)Single Dimensional Arrays :

Syntax :

(type) (variable) [size] ;

Ex:

int eno[5] = { 56, 67, 45, 89, 45};

char ena[] = { ‘a’, ‘b’, ‘c’, ‘d’ } ;

float bas[] = { 56.67, 900.45, 567 } ;

Ex Programs :

53) /* Write a program to create a 5 cells single dimensional array, store 7 in cells and print all */

# include <conio.h># include <stdio.h>

main() {

Page 84: C Language

- 84 -

int k, a[5] ;clrscr() ;

printf(“Enter any five numbers \n”) ;

for(k=0; k<=4; k++)a[k] = 7 ;

printf(“\n The array elements are \n”) ;

for(k=0; k<5; k++)

printf(“%d “, a[k]) ;

getch() ; }

/* Output: 7 7 7 7 7 */

54) /* Write a program to accept 5 numbers and print all in reverse order

*/

# include <conio.h># include <stdio.h>

main() {

int k, a[5] ;

Page 85: C Language

- 85 -

clrscr() ;

printf(“Enter any five numbers \n”) ;

for(k=0; k<=4; k++)

scanf(“%d”, &a[k]) ;

printf(“\n The array elements in reverse order \n”) ; for(k=4; k>=0; k--)

printf(“%d “, a[k]) ;

getch() ; }

55)

/* Write a program to accept 5 numbers print all, and find the sum of them */

# include <conio.h># include <stdio.h>

main() {

int k, s, a[5] ;clrscr() ;

printf(“Enter any five numbers \n”) ;

for(k=0, s=0; k<=4;s+=a[k], k++)

Page 86: C Language

- 86 -

scanf(“%d”, &a[k]) ;

printf(“\n The array elements are \n”) ; for(k=0; k<5; k++)

printf(“%d “, a[k]) ;

printf(“\n The sum of elements is %d”, s) ; getch() ; }

56) /* Write a program to create 10 cells single dimensional array,

accept 9 cells values, assign the sum of them to thelast cell and print all */

# include <conio.h># include <stdio.h>

main() {

int k, a[10] ;clrscr() ;

printf(“Enter any nine numbers \n”) ;

for(k=0,a[9]=0; k<=8;a[9]+=a[k], k++)

scanf(“%d”, &a[k]) ;

Page 87: C Language

- 87 -

printf(“\n The array elements are \n”) ; for(k=0; k<10; k++)

printf(“%d “, a[k]) ;

getch() ; }

Notes :

2)Multi Dimensional Arrays :Ex:

int a[5][3], b[4][5][6][7], .....

char na[3][20] = { “abcdefgh”, “ramakrishna”, “Bhanodaya” };

A multi dimensional array is a collection of another arrays. That means a double dimensional array is a collection of single dimensional arrays.

Ex:

The array a[5][3] is a collection of 5 single dimensional arrays with size 3.

Ex Programs :

57)

Page 88: C Language

- 88 -

/* Write a program to create a 5x5 double dimensional array,

store 7 in all cells and print them as a matrix */# include <stdio.h># include <conio.h>

main() {

int k, j, a[5][5] ; clrscr() ; output:

for(k=0; k<5; k++) 7 7 7 7 7 for(j=0; j<5; j++) 7 7 7 7 7

a[k][j] = 7; 7 7 7 7 7

7 7 7 7 7 for(k=0; k<=4; k++) 7 7 7 7 7 {

printf(“\n”);for(j=0; j<=4; j++)printf(“%d “, a[k][j] );

Page 89: C Language

- 89 -

}

getch() ; }

58)

main() {

(same as above)

for(k=0; k<5; k++)

for(j=0; j<5; j++)

a[k][j] = (k==j || k+j==4) ? 7 : 0;

(same as above) }

/* Output :

7 0 0 0 70 7 0 7 00 0 7 0 00 7 0 7 07 0 0 0 7 */

Page 90: C Language

- 90 -

59)

main() {

(same as above)

for(k=0; k<5; k++)

for(j=0; j<5; j++)

a[k][j] = (k==0 || k==4 || j==0 || j==4) ? 7 : 0;

(same as above) }

/* Output :

7 7 7 7 77 0 0 0 77 0 0 0 77 0 0 0 77 7 7 7 7 */

60) /* Write a program to display a box with the given character,

length and width using arrays */

# include <stdio.h>

Page 91: C Language

- 91 -

# include <conio.h>

main() {

char ch, a[25][80] ;int k, j, len, w ;clrscr() ;

printf(“Enter the box length “);

scanf(“%d”, &len) ;

printf(“Enter the box width “) ;

scanf(“%d”, &w );

printf(“Enter a character “);

ch = getche() ;

printf(“\n\n”) ;

for(k=0; k<w; k++)

for(j=0; j<len; j++)

a[k][j] = (k==0 || j==0 || k==w-1 || j==len-1) ? ch : 32 ;

for(k=0; k<w; k++) {

printf(“\n”);for(j=0; j<len; j++)

Page 92: C Language

- 92 -

printf(“%c “, a[k][j] );}

getch() ; }

/* Output :

Enter box length 10Enter box width 5Enter any character *

* * * * * * * * * * * * * * * * * * * * * * * * * * */

61)/* Write a program to find the addition matrix of

two 3x3 matrices */

# include <stdio.h># include <conio.h>

main() {

Page 93: C Language

- 93 -

int a[3][3], b[3][3], c[3][3], k, j ;

clrscr();

printf(“Enter 9 numbers for firs array \n”) ;

for(k=0; k<3; k++)

for(j=0; j<3; j++)scanf(“%d”, &a[k][j] );

printf(“\n Enter 9 numbers for second array \n”) ;

for(k=0; k<3; k++)

for(j=0; j<3; j++)scanf(“%d”, &b[k][j] );

for(k=0; k<3; k++)for(j=0; j<3; j++)c[k][j] = a[k][j] + b[k][j] ;

printf(“\n The Addition matrix is \n”);

for(k=0; k<3; k++) {

printf(“\n ³ “);for(j=0; j<3; j++)printf(“%3d “, c[k][j] );

printf(“³”);}

Page 94: C Language

- 94 -

getch(); }

62) /* Write a program to find the multiplication matrix of

two 3x3 matrices */

# include <stdio.h>

# include <conio.h>

main() {

int a[3][3], b[3][3], c[3][3], k, j, t ;

clrscr();

printf(“Enter 9 numbers for firs array \n”) ;

for(k=0; k<3; k++)

for(j=0; j<3; j++)scanf(“%d”, &a[k][j] );

printf(“\n Enter 9 numbers for second array \n”) ;

for(k=0; k<3; k++)

for(j=0; j<3; j++)

Page 95: C Language

- 95 -

scanf(“%d”, &b[k][j] );

for(k=0; k<3; k++)for(j=0; j<3; j++)for(t=0, c[k][j]=0 ; t<3; t++)c[k][j] += a[k][t] * b[t][j] ;

printf(“\n The multiplication matrix is \n”);

for(k=0; k<3; k++) {

printf(“\n ³ “);for(j=0; j<3; j++)printf(“%3d “, c[k][j] );

printf(“³”);}

getch(); }

Page 96: C Language

- 96 -

Notes:

STRINGS :

A string is an array of characters. It ends with a null character. ( ‘\0’ ==> Null character )

Ex :

char na1[6] = { ‘a’, ‘b’,’c’, ‘d’, ‘e’, ‘\0’ } ;

char na2[6] = “abcde” ;

char names[][] = { “rama”, “krishna”, “abcd” } ;

char str1[20], str2[40] ;

Note :

The format string for a string variable is %s .

Ex programs :

63)

# include <stdio.h># include <conio.h>

main(){

char str[80];clrscr();

printf(“Enter any string “);

Page 97: C Language

- 97 -

scanf(“%s”, str) ;

printf(“\n You entered the string %s”, str) ; getch() ; }

/* Output :

Enter any string udaya bhanu

You entered the string udaya */

Notes :

scanf() function can accept the string values. But it does not allow spaces in the string. To avoid this problem gets() can be used.

gets() :

This function is used to accept the value for a string variable. This function’s prototype has defined in the header file STDIO.H.

Syntax :

gets(varaible) ;

Ex :

gets(str) ;

puts() :

Page 98: C Language

- 98 -

This function is used to display the string value of the variable. This function’s prototype has defined in the header file STDIO.H

Syntax :

puts(string) ;

Ex :

puts(“The string is “);puts(str) ;

Ex Programs :

64)

# include <stdio.h># include <conio.h>

main(){

char str[80] ;

clrscr() ;

printf(“Enter any string “) ;

gets(str) ;

printf(“ You entered “);puts(str);getch() ;

Page 99: C Language

- 99 -

}

/* Output :

Enter any string udaya bhanu

You entered the string udaya bhanu */

65) /* Write a program to find the length of a string */

# include <stdio.h># include <conio.h>

main() {

char str[80]; int k;clrscr() ;

printf(“Enter any string “);

gets(str) ;

/* k = 0;while(str[k]!=’\0’)

k++ ; */

for(k=0; str[k] !=’\0’; k++) ;

printf(“\n The length is %d”, k);

getch() ;

Page 100: C Language

- 100 -

}

66)/* Write a program to change the given string into upper case */

# include <stdio.h># include <conio.h>

main() {

char str[80] ; int k ;clrscr() ;

printf(“Enter any string \n”) ;

gets(str) ;

for(k=0; str[k]!=’\0’; k++)

if(str[k]>=97 && str[k]<=122)

str[k] -= 32 ;/*

if( str[k] >=’a’ && str[k] <=’z’ )

str[k] -= ‘a’ - ‘A’;*/

printf(“\n In upper case %s”, str) ;

getch() ;

Page 101: C Language

- 101 -

}/* Output :

Enter any string Udaya Bhanu In upper case UDAYA BHANU */

67)/* Write a program to change the given string into lower case */68)/* Write a program to change the given string into Sentence case

that means the first character into upper case and the remaininginto lower case */

# include <stdio.h># include <conio.h>

main() {

char str[80] ; int k ;clrscr() ;

printf(“Enter any string “) ;

gets(str) ;

if(str[0]>=’a’ && str[0]<=’z’ ) str[0] -= ‘a’ - ‘A’ ;

for(k=1; str[k]!=’\0’; k++)

if(str[k]>=65 && str[k]<=90)

Page 102: C Language

- 102 -

str[k] += 32 ;

printf(“\n In sentence case %s”, str) ;

getch() ; }

/* Output :

Enter any string UDAYA BHANU In upper case Udaya bhanu */

69) /* Write a program to change the given string into Title Case */

/* Output :Enter any string UDAYA BHANU In upper case Udaya Bhanu */

70) /* Write a program to copy a string to another */

# include <stdio.h># include <conio.h>

main() {

char s[80], t[80] ;

Page 103: C Language

- 103 -

int k;

clrscr() ;

printf(“Enter the source string to copy “) ;

gets(s) ;

k=0;while(s[k]!=’\0’) {

t[k] = s[k] ;

k++ ;}

t[k] = ‘\0’ ;

printf(“\n The new string is %s”, t) ;

getch() ; }

71)/* Write a program to concatenate two strings */

# include <stdio.h># include <conio.h>

main() {

char a[80], b[80] ;int k, j ;

Page 104: C Language

- 104 -

clrscr() ;

printf(“Enter two strings \n”) ;

gets(a) ; gets(b);

for(k=0;a[k]!=’\0’; k++) ;for(j=0; b[j]!=’\0’; k++, j++)a[k] = b[j] ;

a[k] = ‘\0’ ; printf(“\n The concatenated string is %s”, a) ; getch() ; }

72)/* Write a program to reverse the given string */

# include <stdio.h># include <conio.h>

main() {

char a[80], b[80] ;

int k, j ;

clrscr() ;

printf(“Enter any string “) ;gets(a) ;

for(k=0; a[k]!=’\0’; k++) ;

Page 105: C Language

- 105 -

for(k--, j=0; k>=0; k--, j++)b[j] = a[k];

b[j] = ‘\0’ ;

printf(“\n In reverse order %s”, b) ;

getch(); }

/* Output :

Enter any string bhanodaya In upper case ayadonahb */

73)/* Program to move the given name around the screen */

# include <stdio.h> # include <conio.h> # include <string.h>

main() { int k, r, c, DL; char str[80]; clrscr();

Page 106: C Language

- 106 -

puts(“Enter your name “); gets(str);

k = strlen(str); DL = 10000;

while(!kbhit()) {

for(r=1; r<=23; r++) {

gotoxy(1,r); printf(“%s”, str);

delay(DL); clrscr(); }

for(c=1; c<=80-k; c+=3) {

gotoxy(c,23); printf(“%s”, str);

delay(DL); clrscr(); }

for(r=23;r>0; r--) {

gotoxy(80-k,r); printf(“%s”, str);

delay(DL); clrscr(); }

for(c=80-k;c>0; c-=3)

Page 107: C Language

- 107 -

{gotoxy(c,1); printf(“%s”, str);

delay(DL); clrscr(); } } }

74)/* Program to fall and replace the given name character by character */

# include <stdio.h># include <conio.h># include <string.h># include <dos.h>

main() {

char na[80];int r, c, k, n, DL;clrscr();

printf(“Enter your name “); gets(na);k = strlen(na);DL = 2000;

clrscr();

Page 108: C Language

- 108 -

for(n=1; n<5; n++) {

for(c=0; c<k; c++) {

for(r=1; r<=15; r++) {

gotoxy(c+20,r);printf(“ “);

gotoxy(c+20,r+1);printf(“%c”, na[c]);

delay(DL);}

}

for(c=0; c<k; c++) {

for(r=16; r>1; r--){

gotoxy(c+20, r); printf(“ “);

gotoxy(c+20, r-1); printf(“%c”, na[c]);

delay(DL); }

}

}

Page 109: C Language

- 109 -

}

75)/* Program to display the given name as a box*/

# include <stdio.h># include <conio.h>

main(){

char str[20], a[25][20];int k, j, n ;clrscr( );

printf(“Enter Your name “) ;

gets(str) ;

for(n=0; str[n]!=’\0’; n++) ;for(k=0; k<n; k++)for(j=0; j<n; j++)

if(k==0) a[k][j] = str[j] ;

else if(j==0) a[k][j] = str[k];

else if(j==n-1) a[k][j] = str[n-k-1] ;

else if(k==n-1) a[k][j] = str[n-j-1] ;

else a[k][j] = 32 ;

Page 110: C Language

- 110 -

for(k=0; k<n; k++) {

printf(“\n”);for(j=0; j<n; j++)printf(“%c “, a[k][j] ) ; }

getch() ; }

/* Output :

Enter Your name Bhanodaya

B h a n o d a y a h y a a n d

o d n a a y h

a y a d o n a h B*/

Page 111: C Language

- 111 -

Notes :

STRING.H functions :

To manipulate the strings the C authors designed some functions in the header file STRING.H

1)strlen():This function returns an integer value that is the length of the string. length means the number of characters.

Syntax:

int strlen(string) ;

2)strupr() :This function changes the given string into uppercase characters.

Syntax :

strupr(string) ;

3)strlwr() :This function changes the given string into lowercase characters.

Syntax :

strlwr(string) ;

4)strcpy() :This function copies the string to another string.

Page 112: C Language

- 112 -

Syntax :

strcpy(target, source) ;

5)strcat() :This function adds two strings.

Syntax :

strcat(destination, second) ;

6)strrev() :This function change the given string into reverse order.

Syntax :

strrev(string) ;

7)strcmp() :This function compares two strings and returns zero when both are same.

Syntax :

int strcmp(first, second) ;

Ex Programs :

77) /* Program to demonstrate the library functions of STRING.H */

# include <stdio.h># include <conio.h># include <string.h>

Page 113: C Language

- 113 -

main() {

char a[80], b[80] ;clrscr() ;

printf(“Enter a string “) ;gets(a) ;

printf(“\n The given string is %s”, a);

printf(“\n The length of string is %d”, strlen(a) ) ;

printf(“\n In Upper case %s”, strupr(a)) ;

printf(“\n In Lower case %s”, strlwr(a) );

strcpy(b, a) ;

printf(“\n The new string is %s”, b) ;

strrev(b);

printf(“\n In reverse order %s”, b) ;

printf(“\n The difference is %d”, strcmp(a,b) );

getch(); }

/* Output :

Enter a string Bhanodaya

Page 114: C Language

- 114 -

The given string is BhanodayaThe length of string is 9In Upper case BHANODAYAIn Lower case bhanodayaThe new string is bhanodayaIn reverse order ayadonahbThe difference is 1

*/

Page 115: C Language

- 115 -

FUNCTIONS :

The function is a piece of code. These functions are used to reduce the repetition of coding.

The functions are two types.

1)Derived functions,2)User-defined functions.

The derived functions are provided by the C writers and they defined them in header files. To use these functions the header file must be included at the top of the program.

We can create our own functions. To write any function there are three steps.

1)Functions declarations, 2) Functions calling, 3) Function definition.or

1)Function definition, 2) Function calling.

In the function declaration and/or in the definition the name must be follow the return data type, and it should be followed by parenthesis. In the parenthesis there may be arguments with their data types. If the function does not return any value it must be declared as void. The default return type is int.

Syntax:

Page 116: C Language

- 116 -

(datatype) (functionname) (argumentstype) ; /* Function declaration */ functionname(arguments) ; /* Function calling */

(datatype) (functionname) (arguments) /* Function definition */ {

(statements) ; }

These functions are three types.

1)No arguments with no return value functions,2)Arguments with no return value functions,3)Arguments with return value functions.

1)No arguments with no return value functions : 78)

# include <stdio.h># include <conio.h>

void first(void) ;void second(void) ;

Page 117: C Language

- 117 -

void third(void){

printf(“\n This is in third function “) ; }

void fourth(void){

printf(“\n This is in fourth function “) ; }

void main(){

clrscr() ;printf(“This is in Main “) ;

first() ;second() ;third() ;fourth() ;

printf(“\n This is in main again “) ;

getch() ; }

void first(void) {

printf(“\n This is in first function “) ;

Page 118: C Language

- 118 -

}

void second(void) {

printf(“\n This is in second function “) ; }

/* Output :

This is in MainThis is in first functionThis is in second functionThis is in third functionThis is in fourth functionThis is in mainagain */

79)

# include <stdio.h># include <conio.h>

void replicate(void){

int k;for(k=1; k<=50; k++)printf(“*”) ; }

Page 119: C Language

- 119 -

void main(){

clrscr() ;replicate() ;printf(“\n Hello \n”) ;replicate() ;printf(“\n World \n”) ;replicate() ;printf(“\n Welcome \n”) ;replicate() ;getch(); }

/* Output :

Hello

World

Welcome

*/

/* 2) Arguments with No Return value functions */

Page 120: C Language

- 120 -

80)

# include <stdio.h># include <conio.h>

void replicate(int n, int ch){

int k;for(k=1; k<=n; k++)printf(“%c”, ch) ; }

void main(){

clrscr() ;replicate(30,’*’) ;printf(“\n Hello \n”) ;replicate(60,’#’) ;printf(“\n Bhanodaya \n”) ;replicate(50,’%’) ;printf(“\n Welcome \n”) ;replicate(40,’@’) ;getch(); }

/* Output :

Page 121: C Language

- 121 -

Hello

Bhanodaya%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%Welcome

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

*/

81)

# include <stdio.h># include <conio.h>

void add(int, int) ;void subtr(int, int) ;void mult(int a, int b){

printf(“\n The multiplication %d”, a*b) ; }

void div(int k, int j){

printf(“\n The division %f”, (float)k / j ) ;

Page 122: C Language

- 122 -

}

void main(){

int a, b ;clrscr() ;

printf(“Enter any two numbers \n”) ;

scanf(“%d%d”, &a, &b ) ;

add(a, b) ; subtr(a, b) ;mult(a, b) ; div(a, b) ;

getch() ; }

void add(int m, int n) {

int k;k = m - n ;printf(“\n The addition is %d”, k) ; }

void subtr(p, q)int p, q ; {

Page 123: C Language

- 123 -

int r ;r = p - q ;printf(“\n The subtraction %d” , r) ; }

Page 124: C Language

- 124 -

/* 3. Arguments with Return value functions */

82)

# include <stdio.h># include <conio.h>

int add(int x, int y) {

int z ;z = x + y;return z ;

}

int subtr(int p, int q) {

return p-q ; }

int mult(int, int ) ;int div(int, int) ;

int main() {

int a, b, c ;

clrscr() ;

Page 125: C Language

- 125 -

printf(“Enter any two numbers \n” );

scanf(“%d%d”, &a, &b) ;

c = add(a, b) ; printf(“\n The addition is %d”, c ); printf(“\n The subtraction %d”, subtr(a,b) ) ;

c = mult(a,b) ; printf(“\n The multiplication %d”, mult(a,b) ); printf(“\n The division %d”, div(a,b) );

getch() ;return 0;}

int mult(int a, int b) {

return a*b; }

int div(int m, int n) {

int p = m / n;return p;}

Page 126: C Language

- 126 -

83) Important :

/* Program to demonstrate all types of functions*/

# include <stdio.h># include <conio.h>

/* No arguments with No return value functions */

void looping(void) ;void condition(void) ;/* Arguments with No return value functions */

void add(int, int) ;void mult(int, int) ;/* Arguments with Return value functions */

int subtr(int, int) ;int div(int, int) ;

int main() {

looping() ;return 0; }

Page 127: C Language

- 127 -

void looping() {

char ch = ‘y’ ;while(ch==’y’ || ch==’Y’) {

clrscr() ;condition() ;gotoxy(45, 22) ;printf(“ Do you want to cotinue (y/n) “) ;ch = getche (); } }

void condition() {

int a, b, k;

printf(“\n Enter any two numbers \n”) ;

scanf(“%d%d”, &a, &b) ; gotoxy(30, 5) ;

printf(“1. Addition “ ); gotoxy(30, 6) ;

printf(“2. Subtraction “) ; gotoxy(30, 7) ;

printf(“3. Multiplication “) ;

Page 128: C Language

- 128 -

gotoxy(30, 8) ; printf(“4. Division “) ;

gotoxy(30, 10 );printf(“Enter Your choice “) ;scanf(“%d”, &k) ;

gotoxy(10, 15);switch(k) {

case 1 : add(a, b) ; break ;

case 2 : printf(“ The subtraction %d”, subtr(a,b) );

break ;

case 3 : mult(a,b ); break ;

case 4 : printf(“ The division %d”, div(a,b) ) ;

break;

default : printf(“ Invalid choice “) ;}

}

void add(int a, int b) {

printf(“\n The addition %d”, a+b) ; }

int subtr(int x, int y)

Page 129: C Language

- 129 -

{int z = x - y;return z ; }

void mult(int p, int q) {

int r ;r = p * q ;printf(“The multiplication %d”, r) ; }

int div(int a, int b) {

int c ;c = a / b ;return c; }

Notes :

PREPROCESSOR COMMANDS :

The commands which start with hash (#) are called Preprocessor

Commands.

Page 130: C Language

- 130 -

Ex :

# define PI 3.14159# include <stdio.h># include “conio.h”# define A 1.7

Page 131: C Language

- 131 -

define :

This command is used to define our own constants and macros.

Ex Programs :

84)

# include <stdio.h># include <conio.h>

# define MN main()# define pf printf# define cls clrscr()# define wait getch()# define sf scanf# define PI 3.14159# define msg “Enter the radius of circle “# define area(g) PI*g*g# define per(g) 2*PI*g

MN {

float r ;

cls ;pf(msg) ;

Page 132: C Language

- 132 -

sf(“%f”, &r) ;

pf(“\n The area of circle is %f”, area®) ; pf(“\n The perameter of circle %f”, per® ) ; wait ; }

Notes :

include :

This command is used to include the files which contains the definition

of functions.

There are two types to include the files.

1)# include < name >This type of command includes the file which is located in the

specified directory. These specifications are set by selecting

the Directories command from Options menu.

2)# include “ name “This type of command includes the file which is located in the

current directory and/or in the specified directory.

Page 133: C Language

- 133 -

Ex Programs :

85)

/* Save this progam as SUB.C */

# include <stdio.h># include <conio.h>

int add(int x, int y) {

int z ;z = x + y;return z ;

}

int subtr(int p, int q) {

return p-q ; }

/* Save and execute this program as MAIN.C*/

# include “sub.c”

int mult(int, int ) ;int div(int, int) ;

Page 134: C Language

- 134 -

int main() {

int a, b, c ;

clrscr() ;

printf(“Enter any two numbers \n” );

scanf(“%d%d”, &a, &b) ;

c = add(a, b) ; printf(“\n The addition is %d”, c ); printf(“\n The subtraction %d”, subtr(a,b) ) ;

c = mult(a,b) ; printf(“\n The multiplication %d”, mult(a,b) ); printf(“\n The division %d”, div(a,b) );

getch() ;return 0;}

int mult(int a, int b) {

return a*b; }

int div(int m, int n) {

int p = m / n;return p;

Page 135: C Language

- 135 -

}

Notes :

STORAGE CLAUSES :

The declared variables are generally stored in memory devices. But by

using the storage clauses they can be stored either in memory devices or

in CPU registers.

These storage clauses are 4 types. The variables initialisation

depends on this type.

1)auto, 2) register, 3) static, 4) extern1)auto :

This keyword is an option. It stores the variable in memory device.

It assigns a junk(garbage) value to the variable. The variable which

declared in a block that is available in that block only. The default

Page 136: C Language

- 136 -

type is auto.

Ex Programs :

86)

# include <stdio.h># include <conio.h>

main() {

auto int k; {

int k = 5 ; output :{

auto int k = 20 ;

clrscr() ; printf(“\n %d”, k ); 20 }

5 }

printf(“\n %d”, k ); 456

getch() ; }

Page 137: C Language

- 137 -

87)

# include <stdio.h># include <conio.h>

main() {

int k ;clrscr() ;

printf(“%d \n”, k) ;

for(k=1; k<=5; k++)

display() ;

getch() ; }

display() {

auto int k = 20 ;printf(“ %d “ , k);k += 3 ;

}

/* Output :

Page 138: C Language

- 138 -

456720 20 20 20 20 */

Notes :

2)register :This keyword stores the variable in CPU registers. It assigns a junk(garbage) value to the variable. In CPU registers it can’t store more and big values like floats, doubles,..etc. It can store Only chars and integers. These variables are also local that means the variables which declared in a block are available in that block only.

Generally these variables are used to generate the looping statements.

Ex Programs

88)

# include <stdio.h># include <conio.h>

main() {

register int k ;clrscr() ;

Page 139: C Language

- 139 -

printf(“%d \n”, k );

for(k=1; k<=100; k++)

printf(“%d “, k) ;

getch() ; }

Notes :

3)static :This keyword stores the variable in memory device. It initialises the

variable as 0. The scope of variable is local that means

the variables which declared in a block are available in that block

only. But it does not destroy the variable’s value when end that block.

It takes the previous value when the controller entered into that

block again.

Ex Programs :

89)

Page 140: C Language

- 140 -

# include <stdio.h># include <conio.h>

main() {

static int k ;

clrscr() ;

printf(“%d \n”, k) ;

for(k=1; k<=5; k++)

display() ;

getch() ; }

display() {

static int k = 20 ;printf(“ %d “ , k);k += 3 ; }/* Output :

020 23 26 29 32 */

Page 141: C Language

- 141 -

Notes :

4)extern :This keyword stores the variable in memory device. It initialises thevariable as 0. The scope of variable is global. This variable isdeclared before the main() . The variable’s value can be changed

in the functions.

Page 142: C Language

- 142 -

Ex Programs :

90)

# include <stdio.h># include <conio.h>

int k ;

main() {

clrscr() ;printf(“\n %d”, k) ;k = 5 ;

disp1() ;disp2() ;printf(“\n %d”, k) ;getch() ; }

disp1() {

printf(“\n %d”, k );

k += 3 ; }

disp2()

Page 143: C Language

- 143 -

{int k = 20 ;printf(“\n %d”, k );disp3() ; }

disp3() {

printf(“\n %d”, k ); }

/* Output

0 5 20 8 8 */

Page 144: C Language

- 144 -

Notes :

STRUCTURES :

A structure is a collection of variety of data type elements. This is created with the keyword struct.

struct (name) {

(elements declaration); } ;

struct (name) (variable) ;

(variable).(element)

Ex :

1)struct employee {

int eno;char ename[80];float bas;

};struct employee emp = { 5, “rama”, 5600 } ;

2)struct employee {

int eno;char ename[80];

Page 145: C Language

- 145 -

float bas;} emp = { 5, “rama”, 5600 } ;

3)struct {

int eno;char ename[80];float bas;} emp = { 5, “rama”, 5600 } ;

Page 146: C Language

- 146 -

Ex Programs :

91)

# include <stdio.h># include <conio.h>

main() {

struct book {

int pages;char title[40] ;float price ; } ;

struct book bk = { 500, “Let us C”, 175 } ;

clrscr() ;

printf(“\n The title of book %s” , bk.title ); printf(“\n The number of pages %d” , bk.pages ) ; printf(“\n The price of book %.2f” , bk.price ) ; getch( ); }

92)

# include <stdio.h># include <conio.h>

Page 147: C Language

- 147 -

main() {

struct book {

int pages;char title[40] ;float price ; } ;

struct book bk ;clrscr() ;

printf(“Enter the number of pages of book “) ;

scanf(“%d” , &bk.pages ) ;

printf(“Enter the book title “) ;

scanf(“%s”, bk.title ) ;

printf(“Enter the cost of book “) ;

scanf(“%f”, &bk.price);

printf(“\n The title of book %s” , bk.title ); printf(“\n The number of pages %d” , bk.pages ) ; printf(“\n The price of book %.2f” , bk.price ) ; getch( ); }

Page 148: C Language

- 148 -

93)

/* Array of Structures */

# include <stdio.h># include <conio.h>

main() {

struct book {

int pages;char title[40] ;float price ;

} ;

int k ;struct book bk[3] = { { 500, “Let us C”, 175 },

{ 350, “Graphics under C”, 235 } ,{ 800, “Datastructures through C and C++ “, 350 }

} ;

clrscr() ;

Page 149: C Language

- 149 -

for(k=0; k<3; k++) {

printf(“\n\n The title of book %s” , bk[k].title );

printf(“\n The number of pages %d” , bk[k].pages ) ;

printf(“\n The price of book %.2f” , bk[k].price ) ;

getch( ); }

}

94) /* Structures to Functions */

# include <stdio.h> # include <conio.h>

struct book { int pages; char title[40] ; float price ; } ;

main() {

struct book bk = { 500, “Let us C”, 175 } ;

clrscr() ;

Page 150: C Language

- 150 -

display(bk.pages, bk.title, bk.price );dispstrct(bk) ;getch( ); }

display(int pg, char na[], float pr) {

printf(“\n The title of book %s”, na);

printf(“\n The number of pages %d”, pg);

printf(“\n The price of book %f”, pr ); }

dispstrct(struct book b) {

printf(“\n The title of book %s”, b.title);

printf(“\n The number of pages %d”, b.pages);

printf(“\n The price of book %f”, b.price ); }

95) /* Structures in structure */

# include <stdio.h># include <conio.h>

struct book

Page 151: C Language

- 151 -

{ int pages; char name[40]; float price ; } ;

struct pens

{ int qty; char name[40]; float price ; } ;

struct shop {

char name[40], street[40] ;struct book bk ;struct pens pn ;

} ;

main() {struct shop sh = { “Udaya Book world “, “Chintal “,

{ 1200, “Test your skills in C”, 175 } ,{ 50, “Reynolds”, 12 }

} ;clrscr() ;

printf(“\n The shop name %s” , sh.name ) ; printf(“\n The shop address %s “, sh.street);

printf(“\n\n The book title %s” , sh.bk.name ) ; printf(“\n The number of pages in the book %d”,sh.bk.pages ) ; printf(“\n The cost of each book %.2f” , sh.bk.price ) ;

Page 152: C Language

- 152 -

printf(“\n\n The name of pen %s” , sh.pn.name ) ; printf(“\n The quantity of pens %d” , sh.pn.qty ) ; printf(“\n The cost of each pen %.2f” , sh.pn.price ) ;

getch() ;}

96) /* Write a program to interchange the values of two variables */

Page 153: C Language

- 153 -

Notes :

POINTERS

This topic is the most important in C.

To use any variable it must be declared with its data type before the first executable statement. By declaring a variable the compiler reserves the required space in memory between 64 kb and 128 kb. Every cell has a unique address in memory. This address is a number,that is an integer.

The variables stored in the memory can be accessed with their addresses using pointers.To access with pointers we have to use two new operators.

& ==> Address of* ==> Value at address of

Ex :

int a = 5;a ==> 5&a ==> 65500*(&a) ==> 5

These address value can be stored in another variable. But that must be a pointer variable of the same type to the variable.

Page 154: C Language

- 154 -

Ex Programs :

97)

# include <stdio.h># include <conio.h>

main() {

int k, *p, **q ;clrscr() ;

k = 7; p = &k; q = &p;

printf(“The value of k is %d”, k) ; printf(“\n The address of k is %u”, &k); printf(“\n The value at address %u is %d”, &k, *(&k) ) ;

printf(“\n The value of P is %u”, p) ; printf(“\n The value at address %u is %u”, &p, *(&p) ) ;

printf(“\n The value at address %u is %d”, p, *p );

printf(“\n The value of q is %u”, q) ; printf(“\n The value at address of %u is %u”, &q, *(&q) ) ;

printf(“\n The value at address %u is %u”, q, *q);

printf(“\n The integer value is %d”, *(*q) ) ;

getch() ; }

Page 155: C Language

- 155 -

/* Output :

The value of k is 7The address of k is 65524The value at address 65524 is 7The value of P is 65524The value at address 65522 is 65524The value at address 65524 is 7The value of q is 65522The value at address of 65520 is 65522The value at address 65522 is 65524The integer value is 7 */

98)

# include <stdio.h># include <conio.h>

main() {

int a, *ap ;float b, *bp ;char c, *cp ;

clrscr() ;

Page 156: C Language

- 156 -

printf(“\n The size of int is %d and pointer is %d”, sizeof(a), sizeof(ap) ) ; printf(“\n The size of float is %d and Pointer is %d”, sizeof(b),sizeof(bp) ) ; printf(“\n The size of char is %d and Pointer is %d”, sizeof©, sizeof(cp) ) ;

getch() ; }

Notes :

Pointers in Functions :

The functions can be send some arguments to the definition and may

take a return value. If the value of these variables changed in the

functions that does not effected to the function calling.

To change the value after calling the function the values can be send by reference. That means the address of the variable can be send to change the value.

Ex Programs :

98) /* Write a program to interchange the values of two variables using

Page 157: C Language

- 157 -

functions

A) CALL BY VALUE : */

# include <stdio.h>

# include <conio.h>

main() {

int a=20, b=30 ;clrscr() ;

printf(“The initial values are \n”) ;

printf(“a = %d \t b = %d”, a, b) ;

swap(a,b) ;

printf(“\n\n After swapping in main \n”) ;printf(“ a = %d \t b = %d”, a, b) ;getch() ;

}

swap(int x, int y) {

int t ;

t = x; x = y ; y = t ;printf(“\n\n After swapping \n”);printf(“ x = %d, y = %d”, x, y);

}

Page 158: C Language

- 158 -

/* Output : a = 20 b = 30 x = 30 y = 20 a = 20 b = 30 */

B) CALL BY REFERENCE :

# include <stdio.h>

# include <conio.h>

main() {

int a=20, b=30 ;clrscr() ;

printf(“The initial values are \n”) ;

printf(“a = %d \t b = %d”, a, b) ;

swap(&a,&b) ;

printf(“\n\n After swapping in main \n”) ;printf(“ a = %d \t b = %d”, a, b) ;getch() ;

}

swap(int *x, int *y)

Page 159: C Language

- 159 -

{int t ;

t = *x; *x = *y ; *y = t ;printf(“\n\n After swapping \n”);printf(“ x = %d, y = %d”, *x, *y);

}/* Output :

a = 20 b = 30 x = 30 b = 30 a = 30 b = 20

*/

Notes :

Arrays with Pointers :

An array is a collection of similar data type elements mentioning with a single variable. The address of first element is considered the address of the array. The array elements can be accessed using the address of array and the index value.

Ex Programs :

q)

# include <stdio.h>

Page 160: C Language

- 160 -

# include <conio.h>

main() {

int k, a[5] = { 10, 20, 30, 40, 50 } ;

clrscr() ;

for(k=0; k<5; k++) {

printf(“\n the addres of %d element %u %u”, k, &a[k], a+k ) ;

printf(“the value is %d %d %d %d”, a[k], *(a+k), *(k+a), k[a] ) ;

}

getch () ; }

q)

# include <stdio.h># include <conio.h>

main() {

int *a, n ;

Page 161: C Language

- 161 -

clrscr() ;

printf(“Enter the number of elements you want “) ;

scanf(“%d”, &n) ;

accept(a, n) ;display(a, n) ;

getch() ; }

accept(int *p, int n) {

int k;

printf(“Enter %d numbers \n “, n) ;

for(k=0; k<n; k++)

scanf(“%d”, p+k) ; }

display(int *p, int n) {

int k;

printf(“\n The elemetns are \n”) ;

for(k=0; k<n; k++)

Page 162: C Language

- 162 -

printf(“%d “, *(p+k) ) ; }

q)

# include <stdio.h># include <conio.h>

# define M 5

main() {

int a[M] ;clrscr() ;accept(a, M) ;display(a, M) ;getch() ; }

accept(int *p, int k) {

int n ;

printf(“Enter any %d numbers \n”, k) ;for(n=0; n<k; n++)scanf(“%d”, p+n) ; }

Page 163: C Language

- 163 -

display(int d[], int k) {

int n ;

printf(“\n The array elements are \n”) ;

for(n=0; n<k; n++)printf(“%d “, d[n] ) ; }

Notes :

malloc() :

This function is used to allocate the required space in the memory while executing the program. This function’s prototype was defined in the header file ALLOC.H

There is an another function to allocate memory. that is calloc().

The malloc() assigns junk values the allocated space. But calloc() assigns 0 to the allocated space.

Syntax:

(pointer) = (pointertype) malloc( size * number) ;

(pointer) = (pointertype) calloc( size , number ) ;

Note :

Page 164: C Language

- 164 -

If the compiler failed to allocate the required space this function returns a NULL value.

Ex Programs :

q)

# include <stdio.h># include <conio.h># include <alloc.h>

main() {

int *p, n, k, s;clrscr() ;

printf(“Enter the number of elements “) ;

scanf(“%d”, &n) ;

p = (int *) malloc(sizeof(int) * n) ; if(p==NULL) {

printf(“Unable to allocate the required space “) ;

exit(0) ; }

printf(“Enter %d numbers \n”, n) ;

for(k=0, s=0; k<n;s+=p[k], k++)

Page 165: C Language

- 165 -

scanf(“%d”, p+k );

printf(“\n The elements are \n”) ;for(k=0; k<n; k++)printf(“%d “, p[k] );

printf(“\n The sum is %d”, s) ;

getch() ; }

q) /* Write a program to sort the given numbers using Linear Sort technique */

# include <stdio.h># include <conio.h># include <stdlib.h># include <alloc.h>

main() {

int *p, n;clrscr() ;

printf(“Enter the number of elements “) ;

scanf(“%d”, &n) ;

p = (int *) malloc(2*n) ;

Page 166: C Language

- 166 -

if(p==NULL) {

printf(“\n Unable to allocate the required space “) ;

exit(0); }

accept(p, n) ;linear(p, n) ; /* bubble(p, n) ; */display(p, n) ;getch() ;

}

accept(int *p, int n) {

int k ;printf(“Enter %d numbers \n”, n) ;for(k=0; k<n; k++)

scanf(“%d”, p+k) ; }

display(int *p, int n){

int k ;

printf(“\n The elements are “ ) ;

Page 167: C Language

- 167 -

for(k=0; k<n; k++)

printf(“%d “, *(p+k) ) ; }

/*linear(int a[], int n) {

int k, j, t ;

for(k=0; k<n; k++)

for(j=k; j<n; j++)if(a[k]<a[j]) {

t = a[k] ; a[k] = a[j] ; a[j] = t ; } }

*/

linear(int *a, int n){

int k, j, t ;

for(k=0; k<n; k++)for(j=k; j<n; j++)

if(*(a+k) < *(a+j) ) {

Page 168: C Language

- 168 -

t = *(a+k) ;*(a+k) = *(a+j) ;*(a+j) = t ;

} }

bubble(int a[], int n) {

int t, k, j ;

for(k=0; k<n-1; k++)for(j=0; j<n-1; j++)if(a[j] < a[j+1] ) {t = a[j] ;a[j] = a[j+1] ;a[j+1] = t ; } }

/* bubble(int *a, int n) {

int t, k, j ;

Page 169: C Language

- 169 -

for(k=0; k<n-1; k++) for(j=0; j<n-1; j++) if(*(a+j) < *(a+j+1) ) {

t = *(a+j) ;*(a+j) = *(a+j+1) ;*(a+j+1) = t ; } }

*/

Notes :

String Pointers to Functions :

Ex Programs :

q) /* Moving the given string as a Banner */

# include <stdio.h> # include <conio.h> # include <string.h> # include <dos.h>

Page 170: C Language

- 170 -

void main() { char *str = “ Bhanodaya is a

super hero “; clrscr();

while(!kbhit()) { substr(str); delay(100);

gotoxy(20, 12); printf(“%s”,str); }

getch(); }

/*substr(char *str) {

char *dst, c; int i=1, j=0;c = *str;while(*(str+i)!=’\0’) {

*(dst+j) = *(str+i);

i++; j++; }

*(dst+j) = c;

Page 171: C Language

- 171 -

*(dst+j+1) = ‘\0’;strcpy(str,dst); }

*/

substr(char str[]) {

char dst[80], ch ;int k, j ;

ch = str[0] ;k=1; j=0;while(str[k]!=’\0’)

{dst[j] = str[k] ;k++; j++;

}dst[j++] = ch ;dst[j] = ‘\0’ ;strcpy(str, dst) ;

}

Notes :

Structures with Pointers :

Page 172: C Language

- 172 -

The elements of a structure variable can be accessed using a period operator between the variable and the element. To access the elements using the address of the variable the ‘ -> ‘ operator must be used.

(variablepoitner) -> (element)

Ex Programs :

q)

# include <conio.h># include <stdio.h>

struct book

{ int pages; char title[40]; float price ; } ;

main() {

struct book bk = { 500, “Pointers in C”, 175.00 } ;

struct book *b ;

clrscr() ;

b = &bk ;

printf(“\n The book title %s” , bk.title ) ; printf(“\n The number of pages %d” , bk.pages ) ; printf(“\n The cost of book %.2f “ , bk.price ) ;

Page 173: C Language

- 173 -

printf(“\n\n The book title %s” , b->title) ; printf(“\n The number of pages %d”, b->pages ) ; printf(“\n The cost of book %.2f “, b->price ) ;

printf(“\n\n The size of structure variable %d”,sizeof(bk) ); printf(“\n The size of structure pointer %d”, sizeof(b) ) ;

getch() ; }

q) /* Structure Pointers to Functions */

# include <conio.h># include <stdio.h>

struct book

{ int pages; char title[40]; float price ; } ;

main() {

struct book bk = { 500, “Pointers in C”, 175.00 } ;

clrscr() ;

dispvar(bk) ;disppntr(&bk) ;

getch() ;

Page 174: C Language

- 174 -

}

dispvar(struct book bk) {

printf(“\n The book title %s” , bk.title ) ;

printf(“\n The number of pages %d” , bk.pages ) ;

printf(“\n The cost of book %.2f “ , bk.price ) ;

printf(“\n The size of structure variable %d” , sizeof(bk) );

}

disppntr(struct book *b) {

printf(“\n\n The book title %s” , b->title) ;

printf(“\n The number of pages %d”, b->pages ) ;

printf(“\n The cost of book %.2f “, b->price ) ;

printf(“\n The size of structure pointer %d”, sizeof(b) ) ;

}

Notes :

FILE HANDLING IN C

Page 175: C Language

- 175 -

Using C programs the data files and text files can be manipulated. To use any file it must be loaded into memory.

In C programs the file pointer where the file stored can be found.

fopen():

This function is used to open the required file in the required mode and returns the file pointer where the file stored. If it is unable to open in the given mode it returns a constant value NULL.

Syntax :

FILE * (filepointer) ;

(filepointer) = fopen(“filename”, “mode” );

modes : - - - -“w” ==> To create the file and store the data“a” ==> To add the data to the file“r” ==> To read the data from the file

Ex :

FILE *fp;fp = fopen(“data.txt”, “w”);

fclose() :

Page 176: C Language

- 176 -

The file, which opened in memory must be closed to avoid the data

corruption. To close the file the function fclose() must be used. Syntax :

fclose(filepointer);

Ex :

fclose(fp) ;

fputc():

This function is used to store the characters in the data file opened in the filepointer.

Syntax :

fputc(char, filepointer) ;

Ex :

fputc(ch, fp) ;

fgetc() :

This function is used to read a character to the variable from the file pointer.

Syntax :

char variable = fgetc(filepointer) ;

Ex :

ch = fgetc(fp) ;

Page 177: C Language

- 177 -

Ex Programs :

q) /* Write a program to create a text file DATA and store some data. */

# include <stdio.h># include <conio.h># include <stdlib.h>

main() {

FILE *fp ;

char ch ;

fp = fopen(“DATA”, “w”) ;if(fp==NULL)

{printf(“\n Unable to open the given file “) ;

exit(0) ;}

while(1) {

ch = getchar();if(ch==EOF) break ;

Page 178: C Language

- 178 -

fputc(ch, fp) ; }

fclose(fp) ; }

q) /* Write a program to read the text from the file DATA */

# include <stdio.h># include <conio.h># include <stdlib.h>

main() {

FILE *fp ;

char ch ;

clrscr() ;fp = fopen(“DATA”, “r”) ;if(fp==NULL)

{printf(“\n File not found “) ;

exit(0) ;}

Page 179: C Language

- 179 -

while(1) {

ch = fgetc(fp);if(ch==EOF) break ;putchar(ch) ; }

fclose(fp) ;getch() ;

}

q)/* Write a program to read the text from the file DATA display in

Upper case characters */

# include <stdio.h># include <conio.h># include <stdlib.h>

main() {

FILE *fp ;

char ch ;

Page 180: C Language

- 180 -

clrscr() ;fp = fopen(“data”, “r”) ;if(fp==NULL)

{printf(“\n File not found “) ;

exit(0) ;}

while(1) {

ch = fgetc(fp);if(ch==EOF) break ;if(ch>=97 && ch<=122) ch -= 32 ;putchar(ch) ; }

fclose(fp) ;getch() ;

}

q)/* Write a program to read the text from the file DATA copy to another

in file in upper case characters */

# include <stdio.h># include <conio.h>

Page 181: C Language

- 181 -

# include <stdlib.h>

main() {

FILE *fs, *ft ;

char ch, *src, *trg ;

clrscr() ;

printf(“Enter the source file to copy “) ;

scanf(“%s”, src) ;

fs = fopen(src, “r”) ;if(fs==NULL)

{printf(“\n Source File not found “) ;

exit(0) ;}

printf(“\n Enter the target file to copy “) ;

scanf(“%s”, trg) ;ft = fopen(trg, “w”) ;if(ft==NULL){

printf(“\n Unable to open the target file “) ;

exit(1) ;

Page 182: C Language

- 182 -

}

while(1) {

ch = fgetc(fs);if(ch==EOF) break ;if(ch>=97 && ch<=122) ch -= 32 ;putchar(ch) ;fputc(ch, ft) ; }

fclose(fs) ; fclose(ft) ;

getch() ; }

Notes :

fprintf() :

This function stores the data in the file.

Syntax :

fprintf(filepointer, “format string”, variables);

Ex :

fprintf(fp, “%d %s %f”, eno, ena, bas);

Page 183: C Language

- 183 -

fscanf() :

This function reads the data from the file.

Syntax :

fscanf(filepointer, “format string”, variables);

Ex :

fscanf(fp, “%d%s%f”, &eno, ena, &bas);

Ex Programs :

q)/* Write a program to create a data file EMP.DAT, accept employee number,

name, basic salary and store all in the data file */

# include <conio.h># include <stdio.h># include <stdlib.h>

main() {

FILE *fp ;int eno; char ena[40]; float bas ;char ans=’y’ ;clrscr() ;

fp = fopen(“EMP.DAT”, “w”) ;if(fp==NULL)

Page 184: C Language

- 184 -

{printf(“\n Unable to open in the required mode “) ;

exit(0) ;}

while(ans==’y’ || ans==’Y’) {

printf(“\n Enter Employee Number “) ;

scanf(“%d”, &eno) ;

printf(“ Enter Employee Name “) ;

scanf(“%s”, ena) ;

printf(“ Enter Basic Salary “) ;

scanf(“%f”, &bas) ;

fprintf(fp, “\n %d %s %f”, eno, ena, bas) ;printf(“Do you want to continue “) ;

ans = getche() ;}

getch(); }

q)/* Write a program to read the records from the data file EMP.DAT,

Page 185: C Language

- 185 -

calculate da, hra, pf, net salary and print all */

# include <conio.h># include <stdio.h># include <stdlib.h>

main() {

FILE *fp ;int eno; char ena[40];float bas, da, hra, pf, net ;clrscr() ;

fp = fopen(“EMP.DAT”, “r”) ;if(fp==NULL)

{printf(“\n File not found “) ;

exit(0) ;}

while( fscanf(fp, “%d%s%f”, &eno, ena, &bas) > 0) {

da = bas * 20 / 100 ;hra = bas * 30 / 100 ;pf = bas * 10 / 100 ;net = bas + da + hra - pf ;

Page 186: C Language

- 186 -

printf(“\n\n Employee Number %d”, eno) ;

printf(“\n Employee Name %s”, ena) ;

printf(“\n Basic Salary %.2f”, bas) ;

printf(“\n Da %.2f \t Hra %.2f \t Pf %.2f”, da, hra, pf ) ;

printf(“\n Net Salary %.2f”, net) ;

getch() ; }

}

Notes :

fwrite() :

This function is used to store the structures in the file in binary

mode.

Syntax:

fwrite ( (pointer to variable), (size of variable),

(numberofvariables),(filepointer) );

Ex:

fwrite( &emp, sizeof(emp), 1, fp);

Page 187: C Language

- 187 -

fread() :

This function is used to read the structures from the file in binary level. Syntax: fread ( (pointer to variable), (size of variable),

(numberofvariables),(filepointer) ); Ex: fread(&emp, sizeof(emp), 1, fp);Ex Programs :

q)

# include <stdio.h># include <conio.h>

struct employee

{ int eno; char ena[20]; float bas ; } ;

main() {

struct employee emp ;FILE *fp ;char ans ;clrscr() ;

Page 188: C Language

- 188 -

fp = fopen(“empbn.dat”, “wb”) ;if(fp==NULL) {

printf(“Unable to open the data file “) ;

exit(0) ; }

do {

printf(“\n\n Enter employee Number “) ;

scanf(“%d”, &emp.eno) ;

printf(“Enter Employee Name “) ;

scanf(“%s”, emp.ena) ;

printf(“Enter Basic Salary “) ;

scanf(“%f”, &emp.bas) ;

fwrite(&emp, 1, sizeof(emp), fp) ; printf(“Do you want to add more “) ;

ans = getche() ;

} while(ans==’y’ || ans==’Y’) ;

}

Page 189: C Language

- 189 -

q)

# include <stdio.h># include <conio.h>

struct employee

{ int eno; char ena[20]; float bas ; } ;

main() {

struct employee emp ;

FILE *fp ;

clrscr() ;

fp = fopen(“empbn.dat”, “rb”) ;if(fp==NULL) {

printf(“Unable to open the data file “) ;

exit(0) ; }

while( fread(&emp, 1, sizeof(emp), fp) > 0) {

printf(“\n\n Employee Number %d”, emp.eno) ;

printf(“\n Employee Name %s”, emp.ena) ;

Page 190: C Language

- 190 -

printf(“\n Basic Salary %.2f”, emp.bas) ;

getch() ;}

}

q)

# include <stdio.h># include <conio.h>

struct employee

{ int eno; char ena[20]; float bas ; } ;

main() {

struct employee emp ;

FILE *fs, *ft ;

clrscr() ;

fs = fopen(“empbn.dat”, “rb”) ;if(fs==NULL) {

printf(“Unable to open the data file “) ;

exit(0) ; }

Page 191: C Language

- 191 -

ft = fopen(“emp.dat”, “w”) ;if(ft==NULL) {

printf(“\n Unable to open the target file “) ;

exit(1); }

while( fread(&emp, 1, sizeof(emp), fs) > 0) {

printf(“\n\n Employee Number %d”, emp.eno) ;

printf(“\n Employee Name %s”, emp.ena) ;

printf(“\n Basic Salary %.2f”, emp.bas) ;

fprintf(ft, “\n %d %s %f”, emp.eno, emp.ena, emp.bas);

getch() ;}

}

Notes :

COMMAND LINE ARGUMENTS :

Page 192: C Language

- 192 -

The arguments can be passed to any function when they are calling.The main() is also a function and some arguments can be passed to it from the MS-DOS prompt.

Here we have to use the words argv, args[] . Here argv is the an integer value and it is the number of

arguments passed and *args[] is an array of strings contain the arguments

Syntax:

main(int argv, char *args[])

Ex Programs :

q) /* This program demonstrates about the arguments passed to

the function main() */

# include <stdio.h>

void main(int argv, char *args[]) {

int k ;

printf(“\n The number of arguments given %d”, argv) ;

printf(“\n The arguments are \n”) ;for(k=0; k<argv; k++)printf(“\n %s”, args[k] ) ;

Page 193: C Language

- 193 -

}

/* Save this program as ARG.CAfter compilation it creates an object file ARG.OBJ andan executable file ARG.EXE, which can be executed at MS-DOSprompt [prompt] ARG abc lkj xyz mnb

*/

q)/* Program to create a file which can create text file */

# include <stdio.h># include <stdlib.h>

void main(int argv, char *args[]) {

char ch;

FILE *fp ;

if(argv!=2)

Page 194: C Language

- 194 -

{printf(“\n Invalid number of arguments “) ;

exit(0) ; }

fp = fopen(args[1], “w”) ;if(fp==NULL)

{printf(“\n Unable to create the given file “) ;

exit(1) ; }

while(1) {

ch = getchar() ;if(ch==EOF) break ;fputc(ch, fp) ; }

printf(“\n 1. file created \n”) ;

}

/*

Page 195: C Language

- 195 -

Save this program as CREATE.C

After compilation it creates an executable file CREATE.EXE, which

can be executed at MS-DOS prompt. [prompt] CREATE (filename)

*/

q) /* Program to create a file which can read a text file */

# include <stdio.h># include <stdlib.h>

void main(int argv, char *args[]) {

char ch;

FILE *fp ;

if(argv!=2) {

printf(“\n Invalid number of arguments “) ;

Page 196: C Language

- 196 -

exit(0) ; }

fp = fopen(args[1], “r”) ;if(fp==NULL)

{printf(“\n File not found - %s”, args[1] ) ;

exit(1) ; }

while(1) {

ch = fgetc(fp) ;if(ch==EOF) break ;putchar(ch) ; }

}

/* Save this program as SHOW.C

After compilation it creates an executable SHOW.EXE

Page 197: C Language

- 197 -

[prompt] SHOW (filename)*/

q)/* Program to create a file which can copy the text from a file to another

*/

# include <stdio.h>

# include <stdlib.h>

void main(int argv, char *args[]) {

FILE *fs, *ft ;

char ch ;

if(argv!=3) {

printf(“Invalid number of arguments “);

exit(0) ; }

fs = fopen(args[1], “r”) ;if(fs==NULL)

{printf(“\n Unable to open the source file “) ;

Page 198: C Language

- 198 -

exit(1) ; }

ft = fopen(args[2],”w”) ;if(ft==NULL)

{printf(“\n This target file %s not found “, args[2] ) ;

exit(2) ; }

while( (ch=fgetc(fs)) != EOF)

fputc(ch, ft) ;

fclose(fs) ; fclose(ft) ;printf(“\n 1. File copied “) ;

}

/* Save this file as FLCP.C

[prompt] FLCP (source) (target)*/

Page 199: C Language

- 199 -

Notes :

random() :

This function returns the value which is between 0 and 1 less than the given number. This function’s prototype has defined in the header file STDLIB.H

Syntax :

random(n);

This function returns any number from 0 to n-1 .

textattr() & textbackground() :

This function changes the text color to the given color.

Page 200: C Language

- 200 -

GRAPHICS

Generally the screen is in textmode. It can be changed by

the display adopters. There are a number of adopters like VGA, CGA,EGA, ...

The normal text mode has 25 rows and 80 columns. It can be changed using the MODE command in MS-DOS.Using C programs we can design some graphics by changing the screen from text mode to graphics mode.

initgraph() :

This function changes the screen from text mode to graphics mode. But here we have to mention the display driver and mode. To use this command the file EGAVGA.BGI must be in the current directory. This function’s prototype has defined in the header file GRAPHICS.H

Syntax:

initgraph( (address of driver), (address of mode), (path to file) );

Ex :

int gdr = DETECT, gmd;

initgraph(&gdr, &gmd, “C:\TC” );

Page 201: C Language

- 201 -

detectgraph() :

This function detects the using graphic driver and modes. It assign the values to the variables.

Syntax :

detectgraph( (address of graphic driver), (address of graphic mode) );

Ex :

int gdr, gmd;detectgraph(&gdr, &gmd);

closegraph() :

This function closes the graphics mode and changes to text mode.

Syntax:

closegraph();

setcolor() :

This function changes the displaying color of screen. In VGAHI we can use 16 colors. The color can be mentioned as integer.

Syntax:

setcolor(integer) ;

Page 202: C Language

- 202 -

Ex :

setcolor(RED) ;setcolor(4) ;

setbkcolor() :

This function changes the background color of screen .

Syntax :

setbkcolor(integer) ;

Ex:

setbkcolor(YELLOW) ;setbkcolor(15);

putpixel() :

This function highlights the pixel(picture element) at the given co-ordinates to the given color .

Syntax :

putpixel(x-coordinate, y-coordinate, color) ;

Ex :

putpixel(320, 240, 5) ;

line() :

This function displays a line between the given coordinates.

Syntax :

Page 203: C Language

- 203 -

line(x1, y1, x2, y2 );

Ex :

line(200,300, 240, 370 );

lineto() :

This function displays a line to the given coordinates from the current coordinates.

Syntax :

lineto(x2, y2) ;

Ex :

lineto(400, 600) ;

circle() :

This function displays a circle with the given center coordinates and the radius.

Syntax :

circle(x, y, radius) ;

Ex :

circle(320, 240, 100) ;

ellipse() :

Syntax :

Page 204: C Language

- 204 -

ellipse(x, y, st-angle, end-angle,x-radius, y-radius );

Ex :

ellipse( 320, 240, 0, 360, 200, 100 );

arc() :

Syntax :

arc(x, y, st-angle, end-angle, radius );

Ex :

arc(320, 240, 45, 135, 200 ) ;

rectangle() :

Syntax :

rectangle( x1, y1, x2, y2 );

Ex :

rectangle( 200, 150, 440, 320 );

settextstyle() :

This function sets the displaying text style .

Syntax :

settextstyle( font, direction, size );

fonts : direction : HORIZ_DIR, VERT_DIR size :

Ex : settextstyle( 3, 0, 5 );

outtextxy() :

Page 205: C Language

- 205 -

This functions displays the given text at the given coordinates with the setted style.

Syntax :

outtextxy(x, y, text) ;