Programming Through 'C' Language

91
PROGRAMMING THROUGH ‘C’ LANGUAGE Paritosh Mohapatra Roll No.-9 A-Level OCAC [email protected]

Transcript of Programming Through 'C' Language

Page 1: Programming Through 'C' Language

PROGRAMMING THROUGH ‘C’ LANGUAGE

Paritosh Mohapatra Roll No.-9

A-Level OCAC

[email protected]

Page 2: Programming Through 'C' Language

CONTENTS Sl. No. Subjects Page No. 1. Conceptual 4 2. Control Statements 7 3. Triangles 23 4. Arrays 26 5. Matrix 30 6. String or Array of Characters 33 7. Number System 38 8. Function 40 9. Recursion 45 10. Sorting 49 11. Searching 51 12. Pointers 53 13. Structure 60 14. Link List 61 15. File 75 16. DOEACC Examination Questions & Answers 77

2

Page 3: Programming Through 'C' Language

Quick Reference Sl. No. Programs Page No. 1. Area Of Circle. 6 2. Checking For Leap Year. 11 3. Printing The Odd & Even Numbers. 16 4. Sum Of Digits. 15 5. Reversing A Number. 15, 46 6. Evaluating xn. 18, 42, 47, 81 7. Calculating Factorial. 19, 45, 77 8. Generating Fibonacci Series. 19, 45 9. Generating ASCII Chart. 18 10. Prime Numbers. 20, 21, 43 11. Armstrong Numbers. 23 12. Palindrome Numbers. 22, 57 13. Printing The Floyd’s Triangles. 26 14. Computing Mean, Variance & Standard Deviation. 29 15. Search For The Highest & Lowest Number In An Array. 27 16. Converting A String To Lower Case. 36 17. Converting A String To Upper Case. 36 18. Converting A String To First Case. 37 19. Reversing A String. 33, 57 20. Checking For String Palindrome. 34 21. Counting Number Of Vowels In A String. 35 22. Counting Number Of Words In A String. 34, 35 23. Conversion Of Decimal To Binary Number. 37 24. Conversion Of Binary To Decimal Number. 39 25. Conversion Of Decimal To Octal Number. 38 26. Conversion Of Decimal To Hexadecimal Number. 38 27. Generating Number System. 89 28. The Tower Of Hanoi. 47 29. Sorting An Array Using Bubble Sort Algorithm. 48, 84 30. Sorting An Array Using Quick Sort Algorithm. 49 31. Searching A Key Value In An Array Using Sequential Search. 50 32. Searching A Key Value In An Array Using Dictionary Search. 51 33. Concatenating Two Strings. 55 34. Processing A Link List. 60, 71, 73 35. Inserting A New Node In A Link List. 62, 63, 64 36. Deleting A Node From A Link List. 67, 68, 70 37. Counting The Nodes Of A Link List. 61 38. Generating A Book Structure. 59 39. Reading The Contents Of A File. 74 40. Writing To A File. 74

3

Page 4: Programming Through 'C' Language

Conceptual 1) Write a program to print “HELLO WORLD”. #include <stdio.h> #include <conio.h> void main() { clrscr(); printf("\nHELLO WORLD"); getch(); } 2) Write a program to compute the addition, subtraction, product, quotient and remainder of two given numbers. #include <stdio.h> #include <conio.h> void main() { int n1,n2,add,sub,prod,quot,remain; clrscr(); printf("\nENTER NUMBER-1: " ); scanf("%d",&n1); printf("\nENTER NUMBER-2: " ); scanf("%d",&n2); add=n1+n2; sub=n1-n2; prod=n1*n2; quot=n1/n2; remain=n1%n2; printf("\nADDITION OF THE NUMBERS: %d",add); printf("\nSUBSTRACTION OF THE NUMBERS: %d",sub); printf("\nPRODUCTION OF THE NUMBERS: %d",prod); printf("\nQUOTIENT OF THE NUMBERS: %d",quot); printf("\nREMAINDER OF THE NUMBERS: %d",remain); getch(); } 3) Write a program to compute the average of three given numbers. #include <stdio.h> #include <conio.h> void main() { int n1,n2,n3;

4

Page 5: Programming Through 'C' Language

float avg; clrscr(); printf("\nENTER THREE NUMBERS: " ); scanf("%d %d %d",&n1,&n2,&n3); avg=(n1+n2+n3)/3; printf("\nAVERAGE: %0.2f",avg); getch(); } 4) Write a program to compute the seconds from a given age. #include <stdio.h> #include <conio.h> void main() { long unsigned age,sec; clrscr(); printf("\nENTER YOUR AGE: "); scanf("%lu",&age); sec=age*365*24*60*60; printf("\nAGE IN SECONDS: %lu",sec); getch(); } 5) Write a program to compute simple interest and compound interest from the given principal, time period and interest rate. #include <stdio.h> #include <conio.h> #include <math.h> void main() { int p,t; float si,ci,r,i; clrscr( ); printf("\nENTER PRINCIPAL: "); scanf("%d",&p); printf("\nENTER TIME PERIOD: "); scanf("%d",&t); printf("\nENTER RATE OF INTEREST: "); scanf("%f",&r); si=(p*t*r)/100; i=r/100; ci=p*pow((1+i),t); printf("\nSIMPLE INTEREST: %0.2f",si); printf("\n\nCOMPOUND INTEREST: %0.2f",ci);

5

Page 6: Programming Through 'C' Language

getch(); } Note: - To use the pow() function <math.h> header file must be included. 6) Write a program to compute the area of a circle from the given radius. Hint: - Area of the circle=π x (radius)2. #include <stdio.h> #include <conio.h> void main() { float pi=3.14,rad,area; clrscr(); printf("\nENTER THE RADIUS OF THE CIRCLE: "); scanf("%f",&rad); area=pi*rad*rad; printf("\nTHE AREA OF THE CIRCLE IS: %0.2f",area); getch(); } 7) Write a program to swap the values of two variables. #include <stdio.h> #include <conio.h> void main() { int a,b,c; clrscr(); printf("\nENTER TWO NUMBERS FOR a AND b:\n"); scanf("%d %d",&a,&b); printf("\nBEFORE SWAPING THE VALUE OF a=%d AND b=%d",a,b); c=a; a=b; b=c; printf("\nAFTER SWAPING THE VALUE OF a=%d AND b=%d",a,b); getch(); } 8) Write a program to swap the values of two variables without using a third variable. #include <stdio.h> #include <conio.h> void main() {

6

Page 7: Programming Through 'C' Language

int a,b; clrscr(); printf("\nENTER TWO NUMBERS FOR a AND b:\n"); scanf("%d %d",&a,&b); printf("\nBEFORE SWAPING THE VALUE OF a=%d AND b=%d",a,b); a=a+b; b=a-b; a=a-b; printf("\nAFTER SWAPING THE VALUE OF a=%d AND b=%d",a,b); getch(); }

Control Statements

A) Conditional Control Statements

1) If Conditions 1) Write a program to compute net amount from the given quantity purchased and rate per quantity. Discount @10% is allowed if quantity purchased exceeds 100. Net Amount = (Quantity Purchased x Rate Per Quantity) – Discount. #include <stdio.h> #include <conio.h> void main() { int qty,rate; float disc=0.0,net; clrscr(); printf("\nENTER QUANTITY: "); scanf("%d",&qty); printf("\nENTER RATE: "); scanf("%d",&rate); if (qty>100) disc=qty*rate*10/100; net=(qty*rate)-disc; printf("\nNET AMOUNT: %0.2f",net); getch(); } 2) Find out the highest number from three given numbers. #include <stdio.h> #include <conio.h>

7

Page 8: Programming Through 'C' Language

void main() { int a,b,c,h; clrscr(); printf("\nENTER THREE NUMBERS:\n"); scanf("%d %d %d",&a,&b,&c); h=a; if(b>h) h=b; if(c>h) h=c; printf("\nHIGHEST NUMBER IS %d",h); getch(); } Alternative Method #include <stdio.h> #include <conio.h> void main() { int a,b,c; clrscr(); printf("\nENTER THREE NUMBERS:\n"); scanf("%d %d %d",&a,&b,&c); if(a>b && a>c) printf("\nHIGHEST NUMBER IS %d",a); if(b>c && b>a) printf("\nHIGHEST NUMBER IS %d",b); if(c>a && c>b) printf("\nHIGHEST NUMBER IS %d",c); getch(); } 3) Find out the lowest number from three given numbers. #include <stdio.h> #include <conio.h> void main() { int a,b,c,l; clrscr(); printf("\nENTER THREE NUMBERS:\n"); scanf("%d %d %d",&a,&b,&c); l=a; if(b<l)

8

Page 9: Programming Through 'C' Language

l=b; if(c<l) l=c; printf("\nLOWEST NUMBER IS %d",l); getch(); } Alternative Method #include <stdio.h> #include <conio.h> void main() { int a,b,c; clrscr(); printf("\nENTER THREE NUMBERS:\n"); scanf("%d %d %d",&a,&b,&c); if(a<b && a<c) printf("\nLOWEST NUMBER IS %d",a); if(b<c && b<a) printf("\nLOWEST NUMBER IS %d",b); if(c<a && c<b) printf("\nLOWEST NUMBER IS %d",c); getch(); } 4) Write a program to check a given number is odd or even. #include <stdio.h> #include <conio.h> void main() { int a; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&a); if(a%2==0) printf("\nTHE NUMBER IS AN EVEN NUMBER"); else printf("\nTHE NUMBER IS AN ODD NUMBER"); getch(); } 5) Write a program to find out a person is insured or not. The person is insured if following conditions are satisfied: -

9

Page 10: Programming Through 'C' Language

i) If the person is married. ii) If the person is unmarried, male & above 30 years of age. iii) If the person is unmarried, female & above 25 years of age.

In all other cases the person is not insured. #include <stdio.h> #include <conio.h> void main() { char ms,sex; int age; clrscr(); printf("\nEnter Marital Status [M/U],Sex [M/F],Age: "); scanf("%c %c %d",&ms,&sex,&age);

if((ms=='M') || (ms=='U' && age>30 && sex=='M') || (ms=='U' && age>25 && sex=='F'))

printf("\nTHE EMPLOYEE IS INSURED"); else printf("\nTHE EMPLOYEE IS NOT INSURED"); getch(); } 6) Write a program to find out the gross amount from the given basic pay. Gross = Basic + DA + HRA DA & HRA can be calculated as follows: - If Basic Pay is greater than or equal to 8000 DA is 20% of Basic Pay & HRA is 25% of Basic Pay, otherwise DA is 15% of Basic Pay & HRA is 20% of Basic Pay. #include <stdio.h> #include <conio.h> void main() { float basic,da,hra,gross; clrscr(); printf("\nENTER BASIC PAY: "); scanf("%f",&basic); if(basic>=8000)

{ da=basic*20/100; hra=basic*25/100; }

10

Page 11: Programming Through 'C' Language

else {

da=basic*15/100; hra=basic*20/100; } gross=basic+da+hra; printf("\nGROSS AMOUNT: %0.2f",gross); getch(); } 7) Write a program to compute the division from the given marks of 5 subjects. The division can be calculated as follows: -

Average Mark Division >=60 First >=50 Second >=40 Third <40 Fail

#include <stdio.h> #include <conio.h> void main() { int m1,m2,m3,m4,m5,per; clrscr(); printf("\nENTER THE MARKS OF THE SUBJECTS:\n"); scanf("%d %d %d %d %d",&m1,&m2,&m3,&m4,&m5); per=(m1+m2+m3+m4+m5)/5; if(per>=60) printf("\nFIRST DIVISION"); else

{ if(per>=50) printf("\nSECOND DIVISION"); else

{ if(per>=40) printf("\nTHIRD DIVISION"); else printf("\nFAIL"); } } getch(); } 8) Write a program to check whether a given year is leap year or not.

11

Page 12: Programming Through 'C' Language

#include <stdio.h> #include <conio.h> void main() { int year,n; clrscr(); printf("\nENTER A YEAR: "); scanf("%d",&year); if(year%4==0 && year%100 !=0 || year%400==0) printf("\n%d IS A LEAP YEAR",year); else printf("\n%d IS NOT A LEAP YEAR",year); getch(); }

2) Switch Case 1) Write a program to ask the user to enter a number. If the number is 1 print “One”, if the number is 2 print “Two”, if the number is 3 print “Three”, otherwise print “Other than One, Two or Three. #include <conio.h> #include <stdio.h> void main() { int i; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&i); switch(i)

{ case 1: printf("\nNUMBER IS ONE"); break; case 2: printf("\nNUMBER IS TWO"); break; case 3: printf("\nNUMBER IS THREE"); break; default:

printf("\nNUMBER IS OTHER THAN ONE, TWO OR THREE");

} getch();

12

Page 13: Programming Through 'C' Language

} 2) Write a program to ask the user to enter a character. If the user enter ‘a’ or ‘A’ print “The Character is a or A”, if the user enter ‘b’ or ‘B’ print “The Character is b or B”, if the user enter ‘c’ or ‘C’ print “The Character is c or C”, otherwise print “Other than a, b, c, A, B, C. #include <stdio.h> #include <conio.h> void main() { char ch; clrscr(); printf("\nEnter A Character: "); scanf("%c",&ch); switch(ch)

{ case 'a': case 'A': printf("\nCharacter Is a Or A"); break; case 'b': case 'B': printf("\nCharacter Is b Or B"); break; case 'c': case 'C': printf("\nCharacter Is c or C"); break; default: printf("\nCharacter Is Other Than a,b,c,A,B,C"); } getch(); }

B) Loop Control Statements

1) While Loop 1) Write a program to print natural numbers up to a given number. #include <stdio.h> #include <conio.h> void main() { int i=1,n;

13

Page 14: Programming Through 'C' Language

clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); printf("\nNATURAL NUMBERS UPTO %d ARE:\n",n); while(i<=n)

{ printf("%d ",i); i=i+1; } getch(); } 2) Write a program to ask the user to enter a series of marks of a student. If the user enters –1, come out of the loop and print the average mark. #include <stdio.h> #include <conio.h> void main() { int mark,num=0; float sum,avg=0.0; clrscr(); printf("\nEnter Mark Or -1 To Quit: \n"); scanf("%d",&mark); while(mark!=-1)

{ sum+=mark; num+=1; scanf("%d",&mark); } avg=sum/num; printf("\nAverage Mark: %0.2f",avg); getch(); } 3) Write a program to ask the user for a number. Print the square of the number and ask a confirmation from the user whether the user want to continue or not. #include <stdio.h> #include <conio.h> void main() { char ch='y'; int num; clrscr(); while (ch=='y'|| ch=='Y')

14

Page 15: Programming Through 'C' Language

{ printf("\nENTER A NUMBER: "); scanf("%d",&num); printf("\nITS SQUARE IS: %d\n",num*num); printf("\nDO YOU WANT TO CONTINUE [Y/N]: "); ch=getche(); } getch(); }

2) Do While Loop 1) Write a program to print the sum of digit of a given number. #include <stdio.h> #include <conio.h> void main() { int digit; unsigned long num,sum=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%lu",&num); do

{ digit=num%10; num=num/10; sum=sum+digit; } while(num!=0); printf("\nSUM OF THE DIGITS IS %lu",sum); getch(); } 2) Write a program to print the reverse of a given number. Example: - Reverse of 2565 is 5652. #include <stdio.h> #include <conio.h> void main() { unsigned long num,rev; clrscr(); printf("\nENTER A NUMBER: "); scanf("%lu",&num);

15

Page 16: Programming Through 'C' Language

printf("\nTHE REVERSE OF THE NUMBER %lu IS ",num); do

{ rev=num%10; num=num/10; printf("%lu",rev); } while(num!=0); getch(); }

3) For Loop 1) Write a program to print the odd numbers within a given number. #include <stdio.h> #include <conio.h> void main() { int i,n; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); printf("\nODD NUMBERS BETWEEN 1 AND %d ARE: \n",n); for(i=1;i<=n;i+=2)

{ printf("%d ",i); } getch(); } 2) Write a program to print the even numbers within a given number. #include <stdio.h> #include <conio.h> void main() { int i,n; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); printf("\nEVEN NUMBERS BETWEEN 1 AND %d ARE: \n",n); for(i=2;i<=n;i+=2)

{ printf("%d ",i); }

16

Page 17: Programming Through 'C' Language

getch(); } 3) Write a program to add the odd numbers within a given number. #include <stdio.h> #include <conio.h> void main() { int i,n; unsigned long sum=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); for(i=1;i<=n;i+=2) { sum=sum+i; }

printf("\nSUM OF THE ODD NUMBERS BETWEEN 1 TO %d IS %lu",n,sum);

getch(); } 4) Write a program to add the even numbers within a given number. #include <stdio.h> #include <conio.h> void main() { int i,n; unsigned long sum=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); for(i=2;i<=n;i+=2) { sum=sum+i; }

printf("\nSUM OF THE EVEN NUMBERS BETWEEN 1 TO %d IS %lu",n,sum);

getch(); } 5) Write a program to print the multiplication table of a given number. #include <stdio.h>

17

Page 18: Programming Through 'C' Language

#include <conio.h> void main() { int n,i; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); printf("\nMULTIPLICATION TABLE OF %d\n",n); for(i=1;i<=10;i++) { printf("\n%2d x %2d = %3d",n,i,n*i); } getch(); } 6) Write a program to print the ASCII chart within a given number. #include <stdio.h> #include <conio.h> void main() { int n,i; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); for(i=0;i<=n;i++) printf("%d=%c ",i,i); getch(); } 7) Write a program to evaluate xn. #include <stdio.h> #include <conio.h> void main() { int num,temp,power,i; unsigned long res=1; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&num); printf("\nENTER THE POWER: "); scanf("%d",&power); temp=num; for(i=1;i<=power;i++)

{

18

Page 19: Programming Through 'C' Language

res=res*num; } printf("\nTHE %d POWER OF %d IS %lu",power,temp,res); getch(); } 8) Write a program to evaluate 1/3 + 2/5 + 3/7 …. + n/((n*2) + 1). #include <stdio.h> #include <conio.h> void main() { float n,i,sum=0.0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%f",&n); for(i=1;i<=n;i++) sum=sum+(i/((i*2)+1)); printf("\nTHE SUMMATION IS: %0.2f",sum); getch(); } 9) Write a program to compute the factorial of a given number. #include <stdio.h> #include <conio.h> void main() { int i=1,n; unsigned long fact=1; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); for(i=1;i<=n;i+=1) { fact=fact*i; } printf("\nFACTORIAL OF %d IS %lu",n,fact); getch(); } 10) Write program to print the fibonacci series up to a given number. #include <stdio.h> #include <conio.h> void main()

19

Page 20: Programming Through 'C' Language

{ int num,i; unsigned long n1=0,n2=1,s; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&num); printf("\nFIBONACCI SERIES UPTO %d NUMBERS IS: \n",num); printf("%lu %lu",n1,n2); for(i=1;i<=num-2;i++) { s=n1+n2; printf(" %lu",s); n1=n2; n2=s; } getch(); } 11) Write a program to evaluate 1/1 Factorial + 2/2 Factorial + n/n Factorial. #include <stdio.h> #include <conio.h> void main() { float n,i,j,sum=0.0,fact=1.0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%f",&n); for(i=1;i<=n;i++) { fact=1.0; for(j=1;j<=i;j++) { fact=fact*j; } sum=sum+(i/fact); } printf("\nTHE SUMMATION IS: %0.2f",sum); getch(); }

C) Combination of Loop & Conditional Statements 1) Write a program to print the prime numbers within a given number. #include <stdio.h>

20

Page 21: Programming Through 'C' Language

#include <conio.h> main() { int n,i,j,c; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); printf("\nPRIME NUMBERS WITHIN %d\ ARE:\n",n); for(i=1;i<=n;i++) { c=0; for(j=1;j<=i;j++) { if(i%j==0) c++; } if(c==2) printf("%d ",i); } getch(); } 2) Write a program to check a given number is prime or not. #include <stdio.h> #include <conio.h> void main() { int n,i,c=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); for(i=1;i<=n;i++) { if(n%i==0) c++; } if(c==2) printf("\n%d IS A PRIME NUMBER",n); else printf("\n%d IS NOT A PRIME NUMBER",n); getch(); } Alternative Method

21

Page 22: Programming Through 'C' Language

#include <stdio.h> #include <conio.h> void main() { int n,i,flag=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); for(i=2;i<n;i++) { if(n%i!=0) flag=1; } if(flag==0) printf("\n%d IS A PRIME NUMBER",n); else printf("\n%d IS NOT A PRIME NUMBER",n); getch(); } 3) Write a program to check a given number is Palindrome or not. A number is said to be Palindrome if the reverse of the number is equal to the number. #include <stdio.h> #include <conio.h> void main() { unsigned long num,temp,pal,sum=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%lu",&num); temp=num; do

{ pal=num%10; num=num/10; sum=(sum*10)+pal; } while(num!=0); if(temp==sum) printf("\n%lu IS A PALINDROM NUMBER",temp); else printf("\n%lu IS NOT A PALINDROM NUMBER",temp); getch(); }

22

Page 23: Programming Through 'C' Language

4) Write a program to check a given number is Armstrong or not. A number is said to be Armstrong if sum of the cube of the individual digit is equal to the number. Example: - 153 = (1)3 + (5)3 + (3)3. #include <stdio.h> #include <conio.h> void main() { int num,num1,digit,arm=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&num); num1=num; do

{ digit=num%10; num=num/10; arm=arm+(digit*digit*digit); } while(num!=0); if(arm==num1) printf("\n%d IS AN AMSTORNG NUMBER",num1); else printf("\n%d IS NOT AN AMSTRONG NUMBER",num1); getch(); }

Triangles 1) Write a program to print a triangle like the following: - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #include <stdio.h> #include <conio.h> void main() { int num,i,j; clrscr(); printf("\nENTER THE NUMBER OF LINES: ");

23

Page 24: Programming Through 'C' Language

scanf("%d",&num); for(i=1;i<=num;i++)

{ for(j=1;j<=i;j++)

{ printf("1 "); } printf("\n"); } getch(); } 2) Write a program to print a triangle like the following: - 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 #include <stdio.h> #include <conio.h> void main() { int num,i,j; clrscr(); printf("\nENTER THE NUMBER OF LINES: "); scanf("%d",&num); for(i=1;i<=num;i++)

{ for(j=1;j<=i;j++)

{ printf("%d ",j); } printf("\n"); } getch(); } 3) Write a program to print a triangle like the following: - 1 2 3 4 5 6 7 8 9 10 11 12 13 14

24

Page 25: Programming Through 'C' Language

#include <stdio.h> #include <conio.h> void main() { int num,i,j,k=1; clrscr(); printf("\nENTER THE NUMBER OF LINES: "); scanf("%d",&num); for(i=1;i<=num;i++) { for(j=1;j<=i;j++) { printf("%d ",k); k++; } printf("\n"); } getch(); } 4) Write a program to print a triangle like the following: -

1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 #include <stdio.h> #include <conio.h> void main() { int num,i,j,k,s=40; clrscr(); printf("\nENTER THE NUMBER OF LINES: "); scanf("%d",&num); for(i=1;i<=num;i++)

{ for(j=1;j<=s;j++) printf(" "); for(k=1;k<=i;k++) printf("1"); for(k=i-1;k>0;k--) printf("1"); printf("\n");

25

Page 26: Programming Through 'C' Language

s--; } getch(); } 5) Write a program to print a triangle (Floyd’s Triangle) like the following: -

1 1 2 1

1 2 3 2 1 1 2 3 4 3 2 1

1 2 3 4 5 4 3 2 1 #include <stdio.h> #include <conio.h> void main() { int num,i,j,k,s=40; clrscr(); printf("\nENTER THE NUMBER OF LINES: "); scanf("%d",&num); for(i=1;i<=num;i++)

{ for(j=1;j<=s;j++) printf(" "); for(k=1;k<=i;k++) printf("%d",k); for(k=i-1;k>0;k--) printf("%d",k); printf("\n"); s--; } getch(); }

Arrays 1) Write a program to create an array. Print the values and addresses of each elements of the array. #include <stdio.h> #include <conio.h> void main() { int a[5]; int i,n=5;

26

Page 27: Programming Through 'C' Language

clrscr(); for(i=0;i<n;i++) { printf("\nENTER THE NUMBER-%d: ",i+1); scanf("%d",&a[i]); } for(i=0;i<n;i++)

printf("ARRAY ELEMENT-%d: VALUE=%d, ADDRESS=%u\n",i+1,a[i],&a[i]);

getch(); } 2) Write a program to create an array of student’s ages. Print the average age. #include <stdio.h> #include <conio.h> void main() { int age[10],i ; float avg,sum=0.0; clrscr(); for(i=0;i<10;i++)

{ printf("\nENTER AGE-%d: ",i+1); scanf("%d",&age[i]); sum=sum+age[i]; } printf("\nINPUT AGES ARE: "); for(i=0;i<10;i++) printf("%d ",age[i]); avg=sum/10; printf("\nTHE AVERAGE AGE IS: %0.2f",avg); getch(); } 3) Write a program to create an array. Print the highest and lowest number in the array. #include <stdio.h> #include <conio.h> void main() { int val[5],h,l,i; clrscr(); for(i=0;i<5;i++)

{

27

Page 28: Programming Through 'C' Language

printf("\nENTER VALUE-%d: ",i+1); scanf("%d",&val[i]); } l=val[0]; h=val[0]; for(i=0;i<5;i++)

{ if(val[i]>h) h=val[i]; else

{ if(val[i]<l) l=val[i]; } } printf("\nHIGHEST VALUE IS %d",h); printf("\nLOWEST VALUE IS %d",l); getch(); } 4) Write a program to insert a given number in the array in a given position. #include <stdio.h> #include <conio.h> void main() { int a[5],i,j=5,k,val,pos; clrscr(); for(i=0;i<5;i++)

{ printf("\nENTER NUMBER-%d: ",i+1); scanf("%d",&a[i]); } printf("\nENTER VALUE TO INSERT: "); scanf("%d",&val); printf("\nENTER POSITION TO INSERT: "); scanf("%d",&pos); j++; for(k=j;k>=pos;k--)

{ a[k]=a[k-1]; } a[--pos]=val; printf("\nTHE ARRAY IS: "); for(i=0;i<j;i++)

{

28

Page 29: Programming Through 'C' Language

printf("\n%d",a[i]); } getch(); } 5) Write a program to create an array. Compute the Mean, Variance & Standard Deviation of the array. #include <stdio.h> #include <conio.h> #include <math.h> void main() { int a[10],i,n=5; float mean,temp,var,sd,sum=0.0; clrscr(); for(i=0;i<n;i++)

{ printf("\nENTER NUMBER-%d: ",i+1); scanf("%d",&a[i]); sum=sum+a[i]; } mean=sum/n; sum=0.0; for(i=0;i<n;i++)

{ temp=a[i]-mean; sum=sum+(temp*temp); } var=sum/n; sd=sqrt(var); printf("\nMEAN = %0.2f",mean); printf("\nVARIANCE = %0.2f",var); printf("\nSTANDARD DAVIATION = %0.2f",sd); getch(); } Note: - To use the sqrt() function <math.h> header file must be included. 6) There are 5 groups of employees in an organization. Write a program to draw a histogram showing given number of employees in each group. #include <stdio.h> #include <conio.h> #define n 5 void main()

29

Page 30: Programming Through 'C' Language

{ int g[n],i,j; clrscr(); for(i=0;i<n;i++) {

printf("\nENTER HOW MANY EMPLOYEES ARE IN GROUP-%d: ",i+1);

scanf("%d",&g[i]); } printf("\n"); for(i=0;i<n;i++) { printf("GROUP-%d",i+1); printf("%c",221); for(j=0;j<=g[i];j++) { printf("%c",220); } printf(" %d",g[i]); printf("\n"); } getch(); }

Matrix 1) Write a program to create a matrix and display a matrix. #include <stdio.h> #include <conio.h> void main() { int a[2][3],i,j; clrscr(); printf("\nENTER VALUES FOR THE MATRIX:\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("\nTHE VALUES OF THE MATRIX ARE:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); } getch();

30

Page 31: Programming Through 'C' Language

} 2) Write a program to create two matrixes. Add the values of the two matrixes and store it in another matrix. Display the new matrix. #include <stdio.h> #include <conio.h> void main() { int a[2][3],b[2][3],c[2][3],i,j; clrscr(); printf("\nENTER VALUES FOR MATRIX A:\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("\nENTER VALUES FOR MATRIX B:\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&b[i][j]); for(i=0;i<2;i++) for(j=0;j<3;j++) c[i][j]=a[i][j]+b[i][j]; printf("\nTHE VALUES OF MATRIX C ARE:\n"); for(i=0;i<2;i++)

{ for(j=0;j<3;j++) printf("%5d",c[i][j]); printf("\n"); } getch(); } 3) Write a program to create two matrixes. Multiply the values of the two matrixes and store it in another matrix. Display the new matrix. #include <stdio.h> #include <conio.h> #define max 3 void main() { int a[max][max],b[max][max],c[max][max],i,j,k; printf("\nENTER VALUES FOR MATRIX-A\n"); for(i=0;i<max;i++) { for(j=0;j<max;j++) {

31

Page 32: Programming Through 'C' Language

printf("ENTER VALUE FOR A(%d,%d): ",i+1,j+1); scanf("%d",&a[i][j]); } } printf("\nENTER VALUES FOR MATRIX-B\n"); for(i=0;i<max;i++) { for(j=0;j<max;j++) { printf("ENTER VALUE FOR B(%d,%d): ",i+1,j+1); scanf("%d",&b[i][j]); } } for(i=0;i<max;i++) { for(j=0;j<max;j++) { c[i][j]=0; for(k=0;k<max;k++) { c[i][j]+=a[i][k]*b[k][j]; } } } printf("\nVALUES OF MATRIX-A\n"); for(i=0;i<max;i++) { for(j=0;j<max;j++) { printf("%d ",a[i][j]); } printf("\n"); } printf("\nVALUES OF MATRIX-B\n"); for(i=0;i<max;i++) { for(j=0;j<max;j++) { printf("%d ",b[i][j]); } printf("\n"); } printf("\nVALUES OF MATRIX-C\n"); for(i=0;i<max;i++) { for(j=0;j<max;j++)

32

Page 33: Programming Through 'C' Language

{ printf("%d ",c[i][j]); } printf("\n"); } getch(); } 4) Write a program to create a matrix. Add the diagonal elements of the matrix. #include <stdio.h> #include <conio.h> void main() { int a[3][3],trace=0,i,j; clrscr(); printf("\nENTER VALUES OF THE MATRIX:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("\nTHE VALUES OF THE MATRIX ARE:\n"); for(i=0;i<3;i++)

{ for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); } for(i=0;i<3;i++) trace+=a[i][i];

printf("THE SUMMATION OF THE DIAGONAL ELEMENTS OF THE MATRIX IS %d",trace);

getch(); }

String or Array of Characters 1) Write a program which will accept Name, Age, Sex and Qualification and display the same. #include <stdio.h> #include <conio.h> #include <string.h> void main() { int i,j; char label[5][20]={"NAME","AGE","SEX","QUALIFICATION"},a[5][10];

33

Page 34: Programming Through 'C' Language

clrscr(); for(i=0;i<4;i++)

{ printf("\nENTER YOUR %s: ",label[i]); gets(a[i]); } for(i=0;i<4;i++) printf("\n%s IS YOUR %s\n",a[i],label[i]); getch(); } 2) Write a program to find out the length of a given string without using the library function strlen(). #include <stdio.h> #include <conio.h> void main() { char str[50]; int len; clrscr(); printf("\nENTER A STRING: "); gets(str); for(len=0;str[len]!=NULL;len++); printf("\nTHE LENGTH OF THE STRING IS %d",len); getch(); } 3) Write a program to print the reverse of a given string. #include <stdio.h> #include <conio.h> void main() { char ch[100]; int i,len; clrscr(); printf("\nENTER A STRING: "); gets(ch); len=strlen(ch); printf("\nTHE STRING IN THE REVERSE ORDER: "); for(i=len-1;i>=0;i--) printf("%c",ch[i]); getch(); }

34

Page 35: Programming Through 'C' Language

4) Write a program to check if a given string is palindrome or not. A string is said to be palindrome if the reverse of the string is equal to the string. #include <stdio.h> #include <conio.h> void main() { char a[100]; int i,len,flag=0; clrscr(); printf("\nENTER A STRING: "); gets(a); len=strlen(a); for(i=0;i<len;i++) { if(a[i]==a[len-i-1]) flag=flag+1; } if(flag==len) printf("\nTHE STRING IS PALINDROM"); else printf("\nTHE STRING IS NOT PALINDROM"); getch(); } 5) Write a program to count the number of words including spaces and excluding spaces in a given string. Two words are separated by single space. #include <stdio.h> #include <conio.h> void main() { char a[100]; int len,i,sp=0; clrscr(); printf("\nENTER A STRING: "); gets(a); for(len=0;len<=a[len];len++); for(i=0;i<len;i++) { if(a[i]==' ') sp=sp+1; } printf("\nNUMBER OF WORDS INCLUDING SPACES: %d",len); printf("\nNUMBER OF WORDS EXCLUDING SPACES: %d",len-sp); getch();

35

Page 36: Programming Through 'C' Language

} 6) Write a program to count the number of vowels in a given string. #include <stdio.h> #include <conio.h> void main() { char a[100]; int len,i,vow=0; clrscr(); printf("\nENTER A STRING: "); gets(a); len=strlen(a); for(i=0;i<len;i++) {

if(a[i]=='a' || a[i]=='A' || a[i]=='e' || a[i]=='E' || a[i]=='i' || a[i]=='I' || a[i]=='o' || a[i]=='O' || a[i]=='u' || a[i]=='U')

vow=vow+1; } printf("\nTHERE ARE %d VOWELS IN THE STRING",vow); getch(); } 7) Write a program to count the number of words in a given string. Two words are separated by one or more blank spaces. #include <stdio.h> #include <conio.h> void main() { char a[100]; int len,i,word=1; clrscr(); printf("\nENTER A STRING: "); gets(a); len=strlen(a); for(i=0;i<len;i++) { if(a[i]!=' ' && a[i+1]==' ') word=word+1; } printf("\nTHERE ARE %d WORDS IN THE STRING",word); getch(); }

36

Page 37: Programming Through 'C' Language

8) Write a program to print a given string in lower case. #include <stdio.h> #include <conio.h> void main() { char s[100]; int len,i; clrscr(); printf("\nENTER A SENTENSE: "); gets(s); len=strlen(s); printf("\n"); for(i=0;i<len;i++) { if(s[i]>=65 && s[i]<=90) printf("%c",s[i]+32); else printf("%c",s[i]); } getch(); } 9) Write a program to print a given string in upper case. #include <stdio.h> #include <conio.h> void main() { char s[100]; int len,i; clrscr(); printf("\nENTER A SENTENSE: "); gets(s); len=strlen(s); printf("\n"); for(i=0;i<len;i++) { if(s[i]>=97 && s[i]<=122) printf("%c",s[i]-32); else printf("%c",s[i]); } getch(); }

37

Page 38: Programming Through 'C' Language

10) Write a program to print the string in first case. #include <stdio.h> #include <conio.h> void main() { char s[100]; int len,i; clrscr(); printf("\nENTER A SENTENSE: "); gets(s); len=strlen(s); printf("\n"); for(i=0;i<len;i++) {

if((i==0 && s[i]>=97 && s[i]<=122) || (s[i-1]==32 && s[i]>=97 && s[i]<=122))

printf("%c",s[i]-32); else { if(i!=0 && s[i-1]!=32 && s[i]>=65 && s[i]<=90) printf("%c",s[i]+32); else printf("%c",s[i]); } } getch(); }

Number System 1) Write a program to convert a decimal number to its equivalent binary number. #include <stdio.h> #include <conio.h> void main() { unsigned long dec; int a[25],c=0,i; clrscr(); printf("\nENTER A DECIMAL NUMBER: "); scanf("%lu",&dec); printf("\n%lu IN BINARY FORMAT: ",dec); while(dec>0) { a[c]=dec%2;

38

Page 39: Programming Through 'C' Language

dec=dec/2; c++; } for(i=c-1;i>=0;i--) printf("%d",a[i]); getch(); } 2) Write a program to convert a decimal number to its equivalent octal number. #include <stdio.h> #include <conio.h> void main() { unsigned long dec; int a[25],c=0,i; clrscr(); printf("\nENTER A NUMBER: "); scanf("%lu",&dec); printf("\n%lu IN OCTAL FORMAT: ",dec); while(dec>0) { a[c]=dec%8; dec=dec/8; c++; } for(i=c-1;i>=0;i--) printf("%d",a[i]); getch(); } 3) Write a program to convert a decimal number to its equivalent hexadecimal number. #include <stdio.h> #include <conio.h> void main() { unsigned long dec; int a[25],c=0,i; clrscr(); printf("\nENTER A DECIMAL NUMBER: "); scanf("%lu",&dec); printf("\n%lu IN HEXADECIMAL FORMAT: ",dec); while(dec>0) {

39

Page 40: Programming Through 'C' Language

a[c]=dec%16; dec=dec/16; c++; } for(i=c-1;i>=0;i--) { if(a[i]>=10) printf("%c",a[i]+55); else printf("%d",a[i]); } getch(); } 4) Write a program to convert a binary number to its equivalent decimal number. #include <stdio.h> #include <conio.h> void main() { unsigned long num; int digit,i,pos=0,pow=1,dec=0; clrscr(); printf("\nENTER A BINARY NUMBER: "); scanf("%lu",&num); printf("\nDECIMAL EQUIVALANT OF %lu IS ",num); while(num!=0) { pow=1; digit=num%10; num=num/10; for(i=1;i<=pos;i++) pow=pow*2; pos++; dec=dec+(pow*digit); } printf("%d",dec); getch(); }

Function 1) Write a program to print “Hello World” in the main function and “Welcome To C” in another function. #include <stdio.h>

40

Page 41: Programming Through 'C' Language

#include <conio.h> void message(void); main() { clrscr(); printf("\nHELLO WORLD"); message(); getch(); } void message() { printf("\nWELCOME TO C"); } 2) Write a program to add three given numbers using function. #include <stdio.h> #include <conio.h> sum(int,int,int); void main() { int a,b,c,d; clrscr(); printf("\nACCEPT VALUE FOR a,b,c:\n"); scanf("%d %d %d",&a,&b,&c); d=sum(a,b,c); printf("\nSUM OF %d,%d and %d IS %d",a,b,c,d); getch(); } sum(int x,int y,int z) { int temp; temp=x+y+z; return(temp); } 3) Write a program to calculate the tax of n given number of employees. Use a separate function to calculate the tax. Tax is 20% of basic if basic is less than 9000 otherwise tax is 25% of basic. #include <stdio.h> #include <conio.h> void cal(void); void main() { int i,n;

41

Page 42: Programming Through 'C' Language

clrscr(); printf("\nENTER THE NUMBER OF THE EMPLOYEES: "); scanf("%d",&n); for(i=1;i<=n;i++) cal(); getch(); } void cal() { int basic; float tax; printf("\nENTER THE AMOUNT OF BASIC: "); scanf("%d",&basic); if(basic<9000) tax=basic*20/100; else tax=basic*25/100; printf("\nTHE AMOUNT OF TAX IS %0.2f\n",tax); } 4) Write a program to compute the root of a number using function. #include <stdio.h> #include <conio.h> unsigned long root(int); void main() { int x; unsigned long res; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&x); res=root(x); printf("\nROOT OF %d IS %lu",x,res); getch(); } unsigned long root(int a) { unsigned long b; b=a*a; return(b); } 5) Write a program to evaluate ab using function. #include <stdio.h>

42

Page 43: Programming Through 'C' Language

#include <conio.h> unsigned long power(int,int); void main() { int num,pow; unsigned long res; clrscr(); printf("\nENTER THE NUMBER: "); scanf("%d",&num); printf("\nENTER THE POWER: "); scanf("%d",&pow); res=power(num,pow); printf("\n%d TO THE POWER %d IS %lu",num,pow,res); getch(); } unsigned long power(int a,int b) { int i; unsigned long prod=1; for(i=1;i<=b;i++) prod=prod*a; return(prod); } 6) Write a program to print the following series using function. 9 25 57 121 249 505 1017 2041… #include <stdio.h> #include <conio.h> void main() { int num=9,i; clrscr(); printf("%d ",num); for(i=4;i<=10;i++) { num=num+pow(2,i); printf("%d ",num); } getch(); } pow(int a,int b) { int prod=1,j; for(j=1;j<=b;j++)

43

Page 44: Programming Through 'C' Language

prod=prod*a; return(prod); } 7) Write a program to check a number is prime or not using function. #include <stdio.h> #include <conio.h> void main() { int num,res=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&num); res=prime(num); if(res==0) printf("\n%d IS A PRIME NUMBER",num); else printf("\n%d IS NOT A PRIME NUMBER",num); getch(); } int prime(int n) { int i; for(i=2;i<=n/2;i++) { if(n%i!=0) continue; else return 1; } return 0; } 8) Write a program to find out the maximum number in an array using function. #include <stdio.h> #include <conio.h> max(int [],int); void main() { int a[]={10,5,45,12,19}; int n=5,m; clrscr(); m=max(a,n); printf("\nMAXIMUM NUMBER IS %d",m);

44

Page 45: Programming Through 'C' Language

getch(); } max(int x[],int k) { int t,i; t=x[0]; for(i=1;i<k;i++)

{ if(x[i]>t) t=x[i]; } return(t); } 9) Write a program to evaluate 1/Factorial of 1 + 2/Factorial of 2 … + n/Factorial of n using function. #include <stdio.h> #include <conio.h> fact(float); void main() { float i,sum=0.0,n; clrscr(); printf("\nENTER A NUMBER: "); scanf("%f",&n); for(i=1;i<=n;i++) sum=sum+(i/fact(i)); printf("\nTHE SUMMATION IS: %0.2f",sum); getch(); } fact(float x) { if(x==1) return(1); else return(x*fact(x-1)); }

Recursion 1) Write a recursive function to print the factorial of a number. #include <stdio.h> #include <conio.h> unsigned long fact(int);

45

Page 46: Programming Through 'C' Language

void main() { unsigned long f; int n; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); f=fact(n); printf("\nFACTORIAL OF %d IS %ld",n,f); getch(); } unsigned long fact(int a) { unsigned long fac; if(a==1) return(1); else fac=a*fact(a-1); return(fac); } 2) Write a recursive function to print the fibonacci series up to a given number. #include <stdio.h> #include <conio.h> unsigned long fib(int); void main() { int n,i; unsigned long f; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); printf("\nTHE FIBONNACI SERIES UPTO %d NUMBERS IS:\n",n); for(i=0;i<n;i++) { f=fib(i); printf("%lu ",f); } getch(); } unsigned long fib(int x) { unsigned long res; if(x==0) return(0);

46

Page 47: Programming Through 'C' Language

else if(x==1) return(1); else { res=fib(x-1)+fib(x-2); return(res); } } 3) Write a recursive function to print a given number in reverse order. #include <stdio.h> #include <conio.h> int reverse(unsigned long); void main() { unsigned long num; clrscr(); printf("\nENTER A NUMBER: "); scanf("%lu",&num); printf("\nREVERSE OF %lu IS ",num); reverse(num); getch(); } int reverse(unsigned long n) { int dig; if(n==0) return 1; else { dig=n%10; n=n/10; printf("%d",dig); reverse(n); } } 4) Write a recursive function to evaluate xy. #include <stdio.h> #include <conio.h> pow(int,int); void main() {

47

Page 48: Programming Through 'C' Language

int x,y,pow; clrscr(); printf("\nENTER A NUMBER FOR x: "); scanf("%d",&x); printf("\nENTER A NUMBER FOR y: "); scanf("%d",&y); pow=power(x,y); printf("\nx TO THE POWER y IS: %d",pow); getch(); } power(int a,int b) { int prod; if(b==0) return(1); else { prod=a*power(a,b-1); return(prod); } } 5) Write a program to implement Tower Of Hanoi. #include <stdio.h> #include <conio.h> void hanoi(char,char,char,int); void main() { int num; clrscr(); printf("\nENTER NUMBER OF DISKS: "); scanf("%d",&num); printf("\nTOWER OF HANOI FOR %d NUMBER OF DISKS:\n", num); hanoi('A','B','C',num); getch(); } void hanoi(char from,char to,char other,int n) { if(n<=0) printf("\nILLEGAL NUMBER OF DISKS"); if(n==1) printf("\nMOVE DISK FROM %c TO %c",from,other); if(n>1) { hanoi(from,other,to,n-1);

48

Page 49: Programming Through 'C' Language

hanoi(from,to,other,1); hanoi(to,from,other,n-1); } }

Sorting 1) Write a program to sort an array using Bubble Sort Algorithm. #include <stdio.h> #include <conio.h> void main() { int a[15],i,j,n=10,temp; clrscr(); printf("\nENTER VALUES FOR THE ARRAY:\n"); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } printf("\nTHE SORTED ARRAY IS:\n"); for(i=0;i<n;i++) printf("%d ",a[i]); getch(); } 2) Write a program to sort an array using Quick Sort Algorithm. #include <stdio.h> #include <conio.h> void qsort(); int n; void main() { int a[100],i,l,r; clrscr();

49

Page 50: Programming Through 'C' Language

printf("\nENTER THE SIZE OF THE ARRAY: "); scanf("%d",&n); for(i=0;i<n;i++) { printf("\nENTER NUMBER-%d: ",i+1); scanf("%d",&a[i]); } printf("\nTHE ARRAY ELEMENTS BEFORE SORTING: \n"); for(i=0;i<n;i++) { printf("%5d",a[i]); } l=0; r=n-1; qsort(a,l,r); printf("\nTHE ARRAY ELEMENTS AFTER SORTING: \n"); for(i=0;i<n;i++) printf("%5d",a[i]); getch(); } void qsort(int b[],int left,int right) { int i,j,p,tmp,finished,k; if(right>left) { i=left; j=right; p=b[left]; finished=0; while (!finished) { do { ++i; } while ((b[i]<=p) && (i<=right)); while ((b[j]>=p) && (j>left)) { --j; } if(j<i) finished=1; else { tmp=b[i]; b[i]=b[j];

50

Page 51: Programming Through 'C' Language

b[j]=tmp; } } tmp=b[left]; b[left]=b[j]; b[j]=tmp; qsort(b,left,j-1); qsort(b,i,right); } return; }

Searching 1) Write a program to search a key number in an array using Sequential Search Method. #include <stdio.h> #include <conio.h> main() { int arr[]={12,23,78,98,67,56,45,19,65,9},key,i,flag=0; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&key); for(i=0;i<10;i++) { if(key==arr[i]) flag=1; } if(flag==1) printf("\nTHE NUMBER %d EXISTS IN THE ARRAY",key); else

printf("\nTHE NUMBER %d DOES NOT EXIST IN THE ARRAY",key);

getch(); } 2) Write a program to search a key number in an array using Binary Search Method or Dictionary Search Method. #include <stdio.h> #include <conio.h> void sort(int *); int search(int *,int); void main()

51

Page 52: Programming Through 'C' Language

{ int a[10],i,j,temp,key,flag; clrscr(); for(i=0;i<10;i++) { printf("\nENTER NUMBER-%d: ",i+1); scanf("%d",&a[i]); } sort(a); printf("\nTHE SORTED ARRAY IS: "); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\nENTER A NUMBER TO SEARCH: "); scanf("%d",&key); flag=search(a,key); if(flag==1) printf("\nTHE NUMBER %d EXISTS",key); else

printf("\nTHE NUMBER %d DOES NOT EXIST ARRAY",key); getch(); } void sort(int *x) { int i,j,temp; for(i=0;i<10;i++) { for(j=i+1;j<10;j++) { if(x[i]>x[j]) { temp=x[i]; x[i]=x[j]; x[j]=temp; } } } } int search(int *x,int k) { int low=0,high=10,mid,res=0; while(high>=low) { mid=(high+low)/2; if(k==x[mid]) { res=1;

52

Page 53: Programming Through 'C' Language

break; } else { if(k>x[mid]) low=mid+1; else high=mid-1; } } return res; }

Pointers 1) Write a program to give examples & (Address Of) and * (Value At Address) operator. #include <stdio.h> #include <conio.h> void main() { int i=3,*j; clrscr(); j=&i; printf("\nVALUE OF i IS [i]: %d",i); printf("\nVALUE OF i IS [*(&i)]: %d",*(&i)); printf("\nADDRESS OF i IS [&i]: %u",&i); printf("\nVALUE OF j IS [*(&j)]: %u",*(&j)); printf("\nADDRESS OF j IS [&j]: %u",&j); printf("\nADDRESS OF i IS [j]: %u",j); getch(); } 2) Write a program to swap the address of two variables. #include <stdio.h> #include <conio.h> void swap(int *,int *); void main() { int a=10,b=20; clrscr(); printf("\nVALUES OF a AND b BEFORE SWAPING ARE %d %d",a,b); swap(&a,&b); printf("\nVALUES OF a AND b AFTER SWAPING ARE %d %d",a,b);

53

Page 54: Programming Through 'C' Language

getch(); } void swap(x,y) int *x,*y; { int t; t=*x; *x=*y; *y=t; } 3) Write a program to compute the average of n given numbers using pointers. #include <stdio.h> #include <conio.h> void main() { int n,*p,sum=0,i; float avg; clrscr(); printf("\nHOW MANY NUMBERS: "); scanf("%d",&n); p=(int *) malloc(n*2); if(p==NULL) { printf("\nMEMORY ALLOCATION UNSUCCCESSFUL"); exit(); } for(i=0;i<n;i++) { printf("\nENTER NUMBER %d: ",i+1); scanf("%d",(p+i)); } for(i=0;i<n;i++) sum=sum+*(p+i); avg=(float)sum/n; printf("\nTHE AVERAGE OF THE NUMBERS IS %0.2f",avg); getch(); } 4) Write a program to sort n given numbers using pointers. Hint: - Use Bubble Sort Algorithm. #include <stdio.h> #include <conio.h> #include <alloc.h>

54

Page 55: Programming Through 'C' Language

void main() { int n,*p,i,j,temp; clrscr(); printf("\nHOW MANY NUMBER: "); scanf("%d",&n); p=(int *) malloc(n*2); if(p==NULL) { printf("\nMEMORY ALLOCATION UNSUCCESSFUL"); exit(); } for(i=0;i<n;i++) { printf("\nENTER NUMBER %d: ",i+1); scanf("%d",p+i); } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(*(p+i)<*(p+j)) { temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp; } } } printf("\nTHE SORTED NUMBERS ARE:\n"); for(i=0;i<n;i++) printf("%d ",*(p+i)); getch(); } 5) Write a program to concatenate two given string without using the library function strcat(). #include <stdio.h> #include <conio.h> void strconc(char *,char *); char *s3; void main() { char *str1,*str2; clrscr();

55

Page 56: Programming Through 'C' Language

printf("\nENTER THE FIRST STRING: "); gets(str1); printf("\nENTER THE SECOND STRING: "); gets(str2); strconc(str1,str2); printf("\nTHE NEW STRING IS: %s",s3); getch(); } void strconc(char *s1,char *s2) { int ls1,ls2,i; ls1=strlen(s1); ls2=strlen(s2); s3=s1; for(i=0;i<ls2;i++) { s3[ls1++]=s2[i]; } s3[ls1++]=NULL; } 6) Write a program to find the maximum number within n given numbers using pointers. #include <stdio.h> #include <conio.h> void main() { int n,*p,i,h=0; clrscr(); printf("\nHOW MANY NUMBERS: "); scanf("%d",&n); p=(int *) malloc(n*2); if(p==NULL) { printf("\nMEMORY ALLOCATION UNSUCCCESSFUL"); exit(); } for(i=0;i<n;i++) { printf("\nENTER NUMBER %d: ",i+1); scanf("%d",(p+i)); } h=*p; for(i=1;i<n;i++) {

56

Page 57: Programming Through 'C' Language

if(*(p+i)>h) h=*(p+i); } printf("\nTHE HIGHEST NUMBER IS %d",h); getch(); } 7) Write a program to search a given key number within n given numbers using pointers. If the key number exists print found otherwise print not found. #include <stdio.h> #include <conio.h> #include <alloc.h> void main() { int n,*p,i,num,flag=0; clrscr(); printf("\nHOW MANY NUMBER: "); scanf("%d",&n); p=(int *) malloc(n*2); if(p==NULL) { printf("\nMEMORY ALLOCATION UNSUCCESSFUL"); exit(); } for(i=0;i<n;i++) { printf("\nENTER NUMBER %d: ",i+1); scanf("%d",p+i); } printf("\nENTER A NUMBER TO SEARCH: "); scanf("%d",&num); for(i=0;i<n;i++) { if(num==*(p+i)) flag=1; } if(flag==1) printf("\nTHE NUMBER %d IS FOUND",num); else printf("\nTHE NUMBER %d DOES NOT EXIST",num); getch(); } 8) Write a program to reverse a string using pointers.

57

Page 58: Programming Through 'C' Language

#include <stdio.h> #include <conio.h> void main() { char *s; int len,i; clrscr(); printf("\nENTER A STRING: "); gets(s); len=strlen(s); printf("\nTHE REVERSE OF THE STRING IS:"); for(i=len;i>=0;i--) printf("%c",*(s+i)); getch(); } 9) Write a program to find out whether a given string is palindrome or not using pointers. #include <stdio.h> #include <conio.h> void main() { char *a; int i,len,flag=0; clrscr(); printf("\nENTER A STRING: "); gets(a); len=strlen(a); for(i=0;i<len;i++) { if(a[i]==a[len-i-1]) flag=flag+1; } if(flag==len) printf("\nTHE STRING IS PALINDROM"); else printf("\nTHE STRING IS NOT PALINDROM"); getch(); } 10) Write a program to sort n given numbers of cities using pointers. #include <stdio.h> #include <conio.h> #define items 5

58

Page 59: Programming Through 'C' Language

void main() { char *str[items],*temp; int i,j; clrscr(); for(i=0;i<items;i++) { printf("\nENTER CITY-%d: ",i+1); gets(str[i]); } for(i=0;i<items;i++) { for(j=i+1;j<items;j++) { if(strcmp(str[i],str[j])>0) { strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } } } printf("\nCITIES IN SORTED ORDER:\n"); for(i=0;i<items;i++) printf("\n%s",str[i]); getch(); } 11) Write a program to reverse the order of each word of the string using pointers.

Example: - INPUT: Orissa Computer Application Centre OUTPUT: Centre Application Computer Orissa

#include <stdio.h> #include <conio.h> void main() { char *s; int len,i,j,sp=0,start,end; clrscr(); printf("\nENTER A STRING: "); gets(s);

printf("\nTHE STRING AFTER CHANGING THE ORDER OF EACH WORD:\n");

59

Page 60: Programming Through 'C' Language

len=strlen(s); end=len-1; for(i=len-1;i>=0;i--) { if(s[i]==32 || i==0) { if(i==0) start=0; else start=i+1; for(j=start;j<=end;j++) printf("%c",s[j]); end=i-1; printf(" "); } } getch(); }

Structure 1) Write a program to create a book structure having name, author, page and price. #include <stdio.h> #include <conio.h> void main() { struct book { char name[20]; char auth[20]; int page; float price; }; struct book b; clrscr(); printf("\nENTER THE NAME OF THE BOOK: "); gets(b.name); printf("\nENTER THE NAME OF THE AUTHOR: "); gets(b.auth); printf("\nENTER THE NUMBER OF PAGES: "); scanf("%d",&b.page); printf("\nENTER THE PRICE OF THE BOOK: "); scanf("%f",&b.price); printf("\nNAME OF THE BOOK: %s",b.name);

60

Page 61: Programming Through 'C' Language

printf("\nNAME OF THE AUTHOR: %s",b.auth); printf("\nNUMBER OF PAGES: %d",b.page); printf("\nPRICE OF THE BOOK: %0.2f",b.price); getch(); }

Link List 1) Write a program to create a singly link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct linklist { int number; struct linklist *next; }; typedef struct linklist node; void create(node *); void display(node *); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); display(head); getch(); } void create(node *list) { char conf='y'; printf("\nENTER A NUMBER: "); scanf("%d",&list->number); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else { list->next=(node *) malloc(sizeof(node)); create(list->next); } }

61

Page 62: Programming Through 'C' Language

void display(node *disp) { printf("\nTHE VALUES OF THE LINK LIST ARE:\n"); while(disp!=NULL) { printf("%d ",disp->number); disp=disp->next; } } 2) Write a program to count the number of nodes in a link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct linklist { int number; struct linklist *next; }; typedef struct linklist node; void create(node *); void count(node *); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); printf("\n"); count(head); getch(); } void create(node *list) { char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->number); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else {

62

Page 63: Programming Through 'C' Language

list->next=(node *) malloc(sizeof(node)); create(list->next); } } void count(node *first) { int i=0; while(first!=NULL) { first=first->next; i++; } printf("THERE ARE %d NODES IN THE LINK LIST",i); } 3) Write a program to insert a node before the first node of a link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct link { int num; struct link *next; }; typedef struct link node; void create(node *); void insert(node *); void display(node *); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); display(head); insert(head); display(head); getch(); } void create(node *list) { char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->num);

63

Page 64: Programming Through 'C' Language

printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else { list->next=(node *) malloc(sizeof(node)); create(list->next); } } void display(node *disp) { printf("\nTHE VALUES OF THE LINK LIST ARE:\n"); while(disp!=NULL) { printf("%d ",disp->num); disp=disp->next; } } void insert(node *ins) { node *newnode; int newnum; printf("\n\nENTER A NUMBER YOU WANT TO INSERT: "); scanf("%d",&newnum); newnode=(node *) malloc(sizeof(node)); newnode->num=newnum; newnode->next=ins; head=newnode; } 4) Write a program to insert a node after the last node of a link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct link { int num; struct link *next; }; typedef struct link node; void create(node *); void insert(node *); void display(node *);

64

Page 65: Programming Through 'C' Language

node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); display(head); insert(head); display(head); getch(); } void create(node *list) { char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->num); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else { list->next=(node *) malloc(sizeof(node)); create(list->next); } } void display(node *disp) { printf("\nTHE VALUES OF THE LINK LIST ARE:\n"); while(disp!=NULL) { printf("%d ",disp->num); disp=disp->next; } } void insert(node *ins) { node *newnode; int newnum; while(ins->next!=NULL) { ins=ins->next; } printf("\n\nENTER A NUMBER YOU WANT TO INSERT: ");

65

Page 66: Programming Through 'C' Language

scanf("%d",&newnum); newnode=(node *) malloc(sizeof(node)); newnode->num=newnum; newnode->next=NULL; ins->next=newnode; } 5) Write a program to insert a node before a given key value of a link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct link { int num; struct link *next; }; typedef struct link node; void create(node *); void insert(node *); void display(node *); node *find(node *,int); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); display(head); insert(head); display(head); getch(); } void create(node *list) { char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->num); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else {

66

Page 67: Programming Through 'C' Language

list->next=(node *) malloc(sizeof(node)); create(list->next); } } void display(node *disp) { printf("\nTHE VALUES OF THE LINK LIST ARE:\n"); while(disp!=NULL) { printf("%d ",disp->num); disp=disp->next; } } void insert(node *ins) { node *newnode,*n1; int newnum,key; printf("\n\nENTER A NUMBER YOU WANT TO INSERT: "); scanf("%d",&newnum); printf("\nENTER THE VALUE OF KEY NUMBER: "); scanf("%d",&key); if(ins->num==key) { newnode=(node *) malloc(sizeof(node)); newnode->num=newnum; newnode->next=ins; head=newnode; } else { n1=find(ins,key); if(n1==NULL) printf("\nKEY VALUE NOT FOUND IN THE LIST\n"); else { newnode=(node *) malloc(sizeof(node)); newnode->num=newnum; newnode->next=n1->next; n1->next=newnode; } } } node *find(node *list,int key) { if(list->next->num==key) return(list);

67

Page 68: Programming Through 'C' Language

else if(list->next->next==NULL) return(NULL); else find(list->next,key); } 6) Write a program to delete the first node of a link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct link { int num; struct link *next; }; typedef struct link node; void create(node *); void delet(node *); void display(node *); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); display(head); delet(head); printf("\n"); display(head); getch(); } void create(node *list) { char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->num); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else {

68

Page 69: Programming Through 'C' Language

list->next=(node *) malloc(sizeof(node)); create(list->next); } } void display(node *disp) { printf("\nTHE VALUES OF THE LINK LIST ARE:\n"); while(disp!=NULL) { printf("%d ",disp->num); disp=disp->next; } } void delet(node *del) { head=del->next; free(del); } 7) Write a program to delete the last node of a link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct link { int num; struct link *next; }; typedef struct link node; void create(node *); void delet(node *); void display(node *); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); display(head); delet(head); printf("\n"); display(head); getch(); } void create(node *list)

69

Page 70: Programming Through 'C' Language

{ char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->num); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else { list->next=(node *) malloc(sizeof(node)); create(list->next); } } void display(node *disp) { printf("\nTHE VALUES OF THE LINK LIST ARE:\n"); while(disp!=NULL) { printf("%d ",disp->num); disp=disp->next; } } void delet(node *del) { while(del!=NULL) { if(del->next->next==NULL) { del->next=NULL; free(del->next->next); } del=del->next; } } 8) Write a program to delete a node having the given key value of a link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct link { int num;

70

Page 71: Programming Through 'C' Language

struct link *next; }; typedef struct link node; void create(node *); void delet(node *); void display(node *); node *find(node *,int); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); display(head); delet(head); display(head); getch(); } void create(node *list) { char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->num); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else { list->next=(node *) malloc(sizeof(node)); create(list->next); } } void display(node *disp) { printf("\nTHE VALUES OF THE LINK LIST ARE:\n"); while(disp!=NULL) { printf("%d ",disp->num); disp=disp->next; } } void delet(node *del) {

71

Page 72: Programming Through 'C' Language

node *newnode,*n1; int key; printf("\n\nENTER THE VALUE OF KEY NUMBER: "); scanf("%d",&key); if(del->num==key) { head=del->next; free(del); } else { n1=find(del,key); if(n1==NULL) printf("\nKEY VALUE NOT FOUND IN THE LIST\n"); else { newnode=n1->next->next; free(n1->next); n1->next=newnode; } } } node *find(node *list,int key) { if(list->next->num==key) return(list); else if(list->next->next==NULL) return(NULL); else find(list->next,key); } 9) Write a program to create a doubly link list. #include <stdio.h> #include <conio.h> #include <alloc.h> struct linklist { struct linklist *prev; int num; struct linklist *next; }; typedef struct linklist node; void create(node *);

72

Page 73: Programming Through 'C' Language

void display(node *); void main() { node *head; clrscr(); head=(node *) malloc(sizeof(node)); head->prev=NULL; create(head); printf("\n"); display(head); getch(); } void create(node *list) { char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->num); list->next->prev=list; printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else { list->next=(node *) malloc(sizeof(node)); create(list->next); } } void display(node *disp) {

printf("THE ADDRESS-PREVIOUS ADDRESS-VALUE-NEXT ADDRESS OF THE LINK LIST ARE:\n");

while(disp!=NULL) { printf("%u-%u-%u-%u\n",disp,disp->prev,disp->num,disp->next); disp=disp->next; } } 10) Write a program to create a circular link list. #include <stdio.h> #include <conio.h> #include <alloc.h>

73

Page 74: Programming Through 'C' Language

struct linklist { int number; struct linklist *next; }; typedef struct linklist node; void create(node *); void display(node *); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); display(head); getch(); } void create(node *list) { char conf='y'; int i; printf("\nENTER A NUMBER: "); scanf("%d",&list->number); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=head; else { list->next=(node *) malloc(sizeof(node)); create(list->next); } } void display(node *disp) {

printf("\nTHE ADDRESS-VALUE-NEXT ADDRESS OF THE LINK LIST ARE:\n");

while(disp->next!=head) { printf("%u-%u-%u\n",disp,disp->number,disp->next); disp=disp->next; } printf("%u-%u-%u",disp,disp->number,disp->next); }

74

Page 75: Programming Through 'C' Language

File 1) Write a program to read a text file print it on the screen. #include <stdio.h> #include <conio.h> void main() { FILE *fp; char s; clrscr(); fp=fopen("text.txt","r"); if(fp==NULL) { printf("\nCAN NOT OPEN FILE"); getch(); exit(); } do

{ s=getc(fp); printf("%c",s); } while(s!=EOF); fclose(fp); getch(); } 2) Write a program to enter a sentence from the keyboard and store it in a text file. #include <stdio.h> #include <conio.h> void main() { FILE *fp; char ch[50]; clrscr(); fp=fopen("output.txt","w"); printf("\nENTER YOUR LINES: (PRESS ^Z TO EXIT)\n"); while(strlen(gets(ch))!=0) { fputs(ch,fp); fputs("\n",fp); } fclose(fp);

75

Page 76: Programming Through 'C' Language

getch(); } 3) Write a program to copy a file. Use command line arguments to specify the source file and target file. #include <stdio.h> #include <conio.h> void main(int argc,char *args[]) { FILE *fpr,*fpw; char ch; fpr=fopen(args[1],"r"); fpw=fopen(args[2],"w"); do { ch=getc(fpr); putc(ch,fpw); } while(ch!=EOF); fclose(fpr); fclose(fpw); printf("\nFILE COPIED\n"); } 4) Write a program to read a file and print the number of vowels and number of words in the file. Assume that a word is a sequence of letters ending with a blank, or a tab, or an end of line marker or end of file or punctuation symbols such as “,”, ”.”, ”!” and “?”. #include <stdio.h> #include <conio.h> void count(char[]); void main() { FILE *fp; char str[100],s; int word=0,vow=0; clrscr(); fp=fopen("text.txt","r"); if(fp==NULL) { printf("\nCAN NOT OPEN FILE"); getch(); exit(); }

76

Page 77: Programming Through 'C' Language

do {

s=getc(fp); if(s==32 || s=='\t' || s=='\n' || s==EOF || s==',' || s=='.' || s=='!' || s=='?')

word++; if(s=='a' || s=='e' || s=='i' || s=='o' || s=='u' || s=='A' || s=='E' || s=='I' || s=='O'|| s=='U')

vow++; } while(s!=EOF); printf("\nNUMBER OF WORDS IN THE STRING ARE %d",word); printf("\nNUMBER OS VOWELS IN THE STRING ARE %d",vow); fclose(fp); getch(); }

DOEACC Examination Questions & Answers

January 2003 5) The first few numbers of Lucas sequences which is a variation of Fibonacci sequence are sequence are

1 3 4 7 11 18 29

a) Design a program in C to generate Lucas sequence. b) Develop a function to calculate sum of first n odd integers.

a) #include <stdio.h> #include <conio.h> void main() { int num,i; unsigned long n1=1,n2=3,s; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&num); printf("\nLUCAS SEQUENCE UPTO %d NUMBERS IS: \n",num); printf("%lu %lu",n1,n2); for(i=1;i<=num-2;i++) { s=n1+n2; printf(" %lu",s); n1=n2;

77

Page 78: Programming Through 'C' Language

n2=s; } getch(); } b) #include <stdio.h> #include <conio.h> unsigned long sumodd(int); void main() { int i,n; unsigned long sum; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); sum=sumodd(n);

printf("\nSUM OF THE ODD NUMBERS BETWEEN 1 TO %d IS %lu",n,sum);

getch(); } unsigned long sumodd(int x) { int i; unsigned long res=0; for(i=1;i<=x;i+=2) { res=res+i; } return res; } 6) Write recursive and iterative functions for computation of factorial of a number. a) /* Recursive function for computation of factorial */ #include <stdio.h> #include <conio.h> unsigned long fact(int); void main() { unsigned long f; int n; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n);

78

Page 79: Programming Through 'C' Language

f=fact(n); printf("\nFACTORIAL OF %d IS %ld",n,f); getch(); } unsigned long fact(int a) { unsigned long fac; if(a==1) return(1); else fac=a*fact(a-1); return(fac); } b) /* Iterative function for computation of factorial */ #include <stdio.h> #include <conio.h> unsigned long factor(int); void main() { int n; unsigned long result; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&n); result=factor(n); printf("\nFACTORIAL OF %d IS %lu",n,result); getch(); } unsigned long factor(int x) { int i; unsigned long fact=1; for(i=1;i<=x;i++) { fact=fact*i; } return(fact); } 7) Each node of a singly linked list stores the salary of employees in one company Write a C program for the following operations.

a) Create a list in order of employee’s salary. b) Print the contents of created list.

79

Page 80: Programming Through 'C' Language

#include <stdio.h> #include <conio.h> #include <alloc.h> struct linklist { int salary; struct linklist *next; }; typedef struct linklist node; void create(node *); void display(node *); void sort(node *); node *head; void main() { clrscr(); head=(node *) malloc(sizeof(node)); create(head); sort(head); display(head); getch(); } void create(node *list) { char conf='y'; printf("\nENTER A NUMBER: "); scanf("%d",&list->salary); printf("\nWANT TO CONTINUE[Y/N]: "); conf=getche(); printf("\n"); if(conf=='n' || conf=='N') list->next=NULL; else { list->next=(node *) malloc(sizeof(node)); create(list->next); } } void sort(node *list) { node *i,*j; int temp; for(i=list;i!=NULL;i=i->next) { for(j=i->next;j!=NULL;j=j->next)

80

Page 81: Programming Through 'C' Language

{ if(i->salary>j->salary) { temp=i->salary; i->salary=j->salary; j->salary=temp; } } } } void display(node *disp) { printf("\nTHE VALUES OF THE LINK LIST IN SORTED ORDER ARE:\n"); while(disp!=NULL) { printf("%d ",disp->salary); disp=disp->next; } } 8) Write a function that accepts an array and constant parameters and count how many elements of array are less than the constant, equal to it and greater than it. Return these three values either by way of pass by reference parameter or a three-element array parameter. #include <stdio.h> #include <conio.h> int *gle(int *,int); int *res; void main() { int a[10]={12,51,42,72,32,58,65,95,62,21},key; clrscr(); printf("\nENTER A NUMBER: "); scanf("%d",&key); res=gle(a,key); printf("\n%d ELEMENTS ARE LESS THAN THE KEY VALUE",*res); printf("\n%d ELEMENTS ARE EQUAL TO THE KEY VALUE",*(res+1));

printf("\n%d ELEMENTS ARE GREATER THAN THE KEY VALUE",*(res+2));

getch(); } int *gle(int *x,int k) { int i;

81

Page 82: Programming Through 'C' Language

*(res)=*(res+1)=*(res+2)=0; for(i=0;i<10;i++) { if(k>x[i]) (*res)++; if(k==x[i]) (*(res+1))++; if(k<x[i]) (*(res+2))++; } return res; } 9) a) Write a program in ‘C’ to find the value of xn where ‘x’ and ‘n’ are positive integers. #include <stdio.h> #include <conio.h> void main() { int i; unsigned int x,n; unsigned long res=1; clrscr(); printf("\nENTER A NUMBER: "); scanf("%u",&x); printf("\nENTER THE POWER: "); scanf("%u",&n); for(i=1;i<=n;i++) { res=res*x; } printf("\n%u TO THE POWER %u IS %lu",x,n,res); getch(); } b) Write ‘C’ function to find the largest difference between two numbers of an integer array. #include <stdio.h> #include <conio.h> int lardif(int *); void main() { int a[10]={12,51,56,72,10,58,65,92,62,12},result;

82

Page 83: Programming Through 'C' Language

clrscr(); result=lardif(a); printf("\nTHE LARGEST DIFFERENCE IS %d",result); getch(); } int lardif(int *x) { int res,i,j; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(x[i]-x[j]>res) { res=x[i]-x[j]; } } } return res; }

July 2002 5) Write C function in each case that will work exactly as following without using any built-in string manipulation function.

a) strcpy() b) stccmp()

a) #include <stdio.h> #include <conio.h> void strcopy(char[],char[]); void main() { char a[10]="Paritosh",b[10]; clrscr(); strcopy(a,b); getch(); } void strcopy(char x[],char y[]) { int i,len; for(len=0;x[len]!=0;len++); for(i=0;i<=len;i++) y[i]=x[i];

83

Page 84: Programming Through 'C' Language

printf("\na=%s\nb=%s",x,y); } b) #include <stdio.h> #include <conio.h> #include <string.h> strcmpr(char[],char[]); void main() { char a[10]="Computer",b[10]="Compute"; int result,temp; clrscr(); result=strcmpr(a,b); printf("%d",result); getch(); } strcmpr(char x[],char y[]) { int len,i,res=0; for(len=0;x[len]!=0;len++); for(i=0;i<len+1;i++) { if(x[i]==y[i]) continue; else { res=x[i]-y[i]; break; } } return(res); }

January 2002 5) Write a ‘C’ function to sort an array using bubble sort algorithm. #include <stdio.h> #include <conio.h> void sort(int *); void main() { int a[10]={52,17,82,65,45,96,24,7,37,78},i; clrscr(); printf("\nTHE NUMBERS IN THE ARRAY BEFORE SORTING:\n");

84

Page 85: Programming Through 'C' Language

for(i=0;i<10;i++) printf("%d ",a[i]); sort(a); printf("\n\nTHE NUMBERS IN THE ARRAY AFTER SORTING:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); getch(); } void sort(int *x) { int i,j,temp; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(x[i]<x[j]) { temp=x[i]; x[i]=x[j]; x[j]=temp; } } } } 6) Suppose that two arrays, “a” and “b”, contain two sets of integers. Neither of these sets contains any duplication. Write ‘C’ functions to find out the union of these two sets. For example, if “a” is {2, 7, 1, 5} and “b” is {9, 2, 8, 5} then their union is {2, 7, 1, 5, 9, 8}. #include <stdio.h> #include <conio.h> void *uni(int *,int *,int); int c[50],k; void main() { int a[25],b[25],size,i; clrscr(); printf("\nENTER THE SIZE OF THE ARRAY: "); scanf("%d",&size); for(i=0;i<size;i++) { printf("ENTER VALUE FOR a[%d]: ",i); scanf("%d",&a[i]); printf("ENTER VALUE FOR b[%d]: ",i); scanf("%d",&b[i]);

85

Page 86: Programming Through 'C' Language

} uni(a,b,size); printf("\nTHE UNION OF THESE TWO ARRAYS IS:\n"); for(i=0;i<k;i++) printf("%d ",c[i]); getch(); } void *uni(int *x,int *y,int n) { int i,j,flag=0; for(i=0;i<n;i++) c[i]=x[i]; k=n; for(i=0;i<n;i++) { flag=0; for(j=0;j<n;j++) { if(y[i]==x[j]) flag=1; } if(flag==0) { c[k]=y[i]; k++; } } } 7) Define a structure for a student having name, roll number and marks obtained in six subjects. Assume that “allStudents” is an array of students. Write ‘C’ functions to print the name and roll numbers of the students who have secured highest marks in each subject. #include <stdio.h> #include <conio.h> void hmark(struct student *); struct student { char name[20]; int roll; int s1; int s2; int s3; int s4; int s5;

86

Page 87: Programming Through 'C' Language

}; struct student std[5]; int n=5; void main() { int i; clrscr(); for(i=0;i<n;i++) { printf("\nENTER THE NAME OF THE STUDENT: "); scanf("%s",std[i].name); printf("\nENTER THE ROLL NO. OF THE STUDENT: "); scanf("%d",&std[i].roll); printf("\nENTER THE MARKS FOR 5 SUBJECTS:\n");

scanf("%d %d %d %d %d",&std[i].s1,&std[i].s2,&std[i].s3,&std[i].s4,&std[i].s5);

} hmark(std); getch(); } void hmark(struct student *x) { int i,hm1,hm2,hm3,hm4,hm5,h1,h2,h3,h4,h5; h1=h2=h3=h4=h5=0; hm1=x[0].s1; hm2=x[0].s2; hm3=x[0].s3; hm4=x[0].s4; hm5=x[0].s5; for(i=0;i<n;i++) { if(x[i].s1>hm1) { hm1=x[i].s1; h1=i; } if(x[i].s2>hm2) { hm2=x[i].s2; h2=i; } if(x[i].s3>hm3) { hm3=x[i].s3; h3=i; }

87

Page 88: Programming Through 'C' Language

if(x[i].s4>hm4) { hm4=x[i].s4; h4=i; } if(x[i].s5>hm5) { hm5=x[i].s5; h5=i; } } clrscr();

printf("\nHIGHEST MARK OBTAINED BY STUDENTS IN EACH SUBJECTS\n"); printf("\nSUBJECT-1\nNAME: %s\nROLL NO.: %d\n",x[h1].name,x[h1].roll); printf("\nSUBJECT-2\nNAME: %s\nROLL NO.: %d\n",x[h2].name,x[h2].roll); printf("\nSUBJECT-3\nNAME: %s\nROLL NO.: %d\n",x[h3].name,x[h3].roll); printf("\nSUBJECT-4\nNAME: %s\nROLL NO.: %d\n",x[h4].name,x[h4].roll); printf("\nSUBJECT-5\nNAME: %s\nROLL NO.: %d\n",x[h5].name,x[h5].roll);

} 8) Write ‘C’ functions to count the number of words in a file; Assume that a word is a sequence of letters ending with a blank, or a tab, or an end of line marker or end of file or punctuation symbols such as “,”, ”.”, ”!” and “?”. #include <stdio.h> #include <conio.h> int count(FILE *); void main() { int w; FILE *fp; clrscr(); fp=fopen("text.txt","r"); if(fp==NULL) { printf("\nTHE FILE DOES NOT EXIST"); getch(); exit(); } w=count(fp);

88

Page 89: Programming Through 'C' Language

printf("\nTHERE ARE %d WORDS IN THE FILE",w); getch(); } int count(FILE *fo) { char ch; int word=0; do { ch=getc(fo);

if(ch==32 || ch=='\t' || ch=='\n' || ch==EOF || ch==',' || ch=='.' || ch=='!' || ch=='?')

{ word++; } } while(ch!=EOF); return word; } 9) Define a self-referential structure for representing a simple linked list of integers. Write a ‘C’ function to split the list into two lists so that the first list contains all even numbered elements and the second list contains only odd numbered elements. For example, if the original list is {2, 8, 1, 14, 6, 18, 0, 17} then the resultant first list would be {8, 14, 18, 17} and the second list would be {2, 1, 6, 0}.

July 2001 6) Using command line argument concept write a ‘C’ program for the following task: Read the content of a given input file. Assume that the input file contains only upper case letters and/or special characters. Transfer each character from input file to the specified output file according to the following transfer rules: Rule-1: Alphabet character has to be replaced by its next lower alphabet character in cyclic order. For example, A will be replaced by b, B will be replaced by c, …., Z will be replaced by a. Rule-2: Replace Space/Blank Character with ‘B’. Rule-3: Other characters remain unchanged. For example,

89

Page 90: Programming Through 'C' Language

Input: THE PRICE OF THIS ITEM IS $100. Output: uifBBqsjdfBBpgBBuijtBBjufnBBjtBB$100. #include <stdio.h> #include <conio.h> void main(int argc,char *argv[]) { int i; char ch; FILE *sfp,*tfp; clrscr(); if(argc<3) printf("\nPARAMETER MISSING"); if(argc>3) printf("\nTOO MANY PARAMETERS"); sfp=fopen(argv[1],"r"); tfp=fopen(argv[2],"w"); while(ch!=EOF) { ch=getc(sfp); if(ch>=65 && ch<=90) putc(ch+33,tfp); else { if(ch==32) putc(66,tfp); else putc(ch,tfp); } } } 7) Write a C function, which takes arguments as a base and a number in decimal, then converts the number to its equivalent number in a new number system with a given base. For example, Input: Base = 2, Number = 10 (in decimal) Output: Output = 1010 #include <stdio.h> #include <conio.h> void main() { unsigned long num;

90

Page 91: Programming Through 'C' Language

int base,n[25],c=0,i; clrscr(); printf("\nENTER A DECIMAL NUMBER: "); scanf("%lu",&num); printf("\nENTER THE BASE: "); scanf("%d",&base); printf("\n%lu TO THE BASE %d IS ",num,base); while(num!=0) { n[c]=num%base; num=num/base; c++; } for(i=c-1;i>=0;i--) { if(n[i]<10) printf("%d",n[i]); else printf("%c",n[i]+55); } getch(); } 9) Write a C function to reverse a sub-string within the main string. Pointers to the main string and the sub-string are passed as arguments to this function.

91