0% found this document useful (0 votes)
21 views88 pages

C Programming Lab-Manual

Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
21 views88 pages

C Programming Lab-Manual

Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 88

ANNA

UNIVERSITY
UNIVERSITY COLLEGE OF ENGINEERING- DINDIGUL
DINDIGUL - 624622

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CS8261- C Programming Laboratory

Name :
Register no :
Branch :
ANNA UNIVERSITY
UNIVERSITY COLLEGE OF ENGINEERING - DINDIGUL
DINDIGUL - 624622

BONAFIDE CERTIFICATE

This is to certify that this is a bonafide record of work done by

Mr./Ms. _______________________________________________________________________ in

_________________________________________________________________ Laboratory during the

academic year 2019– 2020.

University Registration No:

Staff in Charge Head of the


Department

Submitted for the University Practical Examination held on


_____________________
INTERNAL EXAMINER EXTERNAL EXAMINER

INDEX
Ex.no Date Name of the Experiment Page Signature
no
Table of Contents

Ex. Page Signature


Name of the Experiment
No. No.
1 Programs using I/O statements and
expressions.
2 Programs using decision-making
constructs.
3 To find whether the given year is leap year
or Not.
4 Arithmetic operations.

5 Armstrong number.

6 Sort the numbers based on the weight.

7 Average height of persons.

8 Body Mass Index of the individuals.


Reverse of a given string.
9

10 Conversion of Decimal number into other


bases.
11 String operations.
Towers of Hanoi using Recursion.
12
Sorting using pass by reference.
13

14 Salary slip of employees.

15 Internal marks of students.

16 Telephone directory.

17 Banking Application
Railway reservation system
18
Annexure I - Additional C Programs for exercise

Annexure I - C Language Questions and Answers


EX.No. : 1 PROGRAM USING I/O STATEMENTS AND

EXPRESSIONS DATE :

AIM

To write a C Program to perform I/O statements and expressions.

ALGORITHM

1. Start
2. Declare variables and initializations
3. Read the Input variable.
4. Using I/O statements and expressions for computational processing.
5. Display the output of the calculations.
6. Stop

PROGRAM

/*
* Sum the odd and even numbers, respectively, from 1 to a given upperbound.
* Also compute the absolute difference.
* (SumOddEven.c)
*/
#include <stdio.h> // Needed to use IO functions

int main() {
int sumOdd = 0; // For accumulating odd numbers, init
to 0 int sumEven = 0; // For accumulating even
numbers, init to 0 int upperbound; // Sum from 1 to
this upperbound
int absDiff; // The absolute difference between the two
sums int number = 1;

// Prompt user for an


upperbound printf("Enter the
upper bound: ");
scanf("%d", &upperbound); // Use %d to read an int

// Use a while-loop to repeatedly add 1, 2, 3,..., to the


upperbound while (number <= upperbound) {
if (number % 2 == 0) { // Even number
sumEven += number; // Add number into sumEven
} else { // Odd number
sumOdd += number; // Add number into sumOdd
}
++number; // increment number by 1
}

// Compute the absolute difference between the two


sums if (sumOdd > sumEven) {
absDiff = sumOdd - sumEven;
} else {
absDiff = sumEven - sumOdd;
}

// Print the results


printf("The sum of odd numbers is %d.\n",
sumOdd); printf("The sum of even numbers is
%d.\n", sumEven); printf("The absolute
difference is %d.\n", absDiff);

return 0;
}

OUTPUT
Enter the upper bound: 1000
The sum of odd numbers is
250000. The sum of even
numbers is 250500. The
absolute difference is 500.

RESULT:

Thus a C Program using i/o statements and expressions was executed and the
output was obtained.
EX.No. : 2 PROGRAM USING DECISION-MAKING

CONSTRUCTS DATE :

AIM

To write a C Program to perform decision-making constructs.

ALGORITHM

1. Start
2. Declare variables and initializations
3. Read the Input variable.
4. Codes are given to different categories and da is calculated as
follows: For code 1,10% of basic salary.
For code 2, 15% of basic
salary. For code 3, 20% of
basic salary. For code >3 da
is not given.
5. Display the output of the calculations .
6. Stop

PROGRAM

#include
<stdio.h>
#include<conio.
h> void main ()
{
float basic , da ,
salary ; int code ;
char
name[25];
da=0.0;
printf("Enter employee name\
n"); scanf("%[^\n]",name);
printf("Enter basic salary\n");
scanf("%f",&basic);
printf("Enter code of the Employee\n");
scanf("%d",&code);
switch (code)
{
case 1:
da = basic *
0.10; break;
case 2:
da = basic *
0.15; break;
case 3:
da = basic * 0.20;
break; default :
da = 0;
}
salary = basic + da;
printf("Employee name is\
n"); printf("%s\n",name);
printf ("DA is %f and Total salary is =%f\n",da, salary);
getch();
}

OUTPUT

Enter employee
name sriram
Enter basic
salary 5000
Enter code of the
Employee 1
Employee name
is sriram
DA is 500.000000 and Total salary is =5500.000000

RESULT

Thus a C Program using decision-making constructs was executed and the


output was obtained.
EX.No. : 3 Leap year

checking DATE :

AIM

To write a C Program to find whether the given year is leap year or Not .

ALGORITHM

1. Start
2. Declare variables
3. Read the Input .
4. Take a year as input and store it in the variable year.
5. Using if,else statements to,
a) Check whether a given year is divisible by 400.
b) Check whether a given year is divisible by 100.
c) Check whether a given year is divisible by 4.
6. If the condition at step 5.a becomes true, then print the ouput as “It is a
leap year”.
7. If the condition at step 5.b becomes true, then print the ouput as “It is
not a leap year”.
8. If the condition at step 5.c becomes true, then print the ouput as “It is a
leap year”.
9. If neither of the condition becomes true, then the year is not a leap year
and print the same.
10. Display the output of the calculations .
11. Stop

PROGRAM

/*

* C program to find whether a given year is leap year or not

*/
#include <stdio.h>
#include<conio.h>
void main()
{

int year;

printf("Enter a year \

n"); scanf("%d",

&year);

if ((year % 400) == 0)

printf("%d is a leap year \n",

year); else if ((year % 100) == 0)

printf("%d is a not leap year \n",

year); else if ((year % 4) == 0)

printf("%d is a leap year \n",

year); else

printf("%d is not a leap year \n", year);

OUTPUT

Enter a
year 2012
2012 is a leap year

Enter a
year 2009
2009 is not a leap year

RESULT

Thus a C Program for Leap year checking was executed and the output was
obtained.
EX.No. : 4 Arithmetic

operations DATE :

AIM

To write a C Program to Design a calculator to perform the


operations, namely, addition, subtraction, multiplication, division and
square of a number.

ALGORITHM

1. Start
2. Declare variables
3. Read the Inputs .
4. Calculate Arithmetic operations(+,-,*,/,pow) for the input of two numbers.
5. Display the output of the calculations .
6. Stop

PROGRAM

/*
* C Program for Addition, Subtraction, Multiplication, Division
* and square of two numbers
*/
#include
<stdio.h>
#include
<conio.h>

int main(){
/* Variable declation */
int firstNumber,
secondNumber; int sum,
difference, product; long
square;
float quotient;

/* Taking input from user and storing it in firstNumber and


secondNumber */ printf("Enter First Number: ");
scanf("%d", &amp;firstNumber);
printf("Enter Second Number:
"); scanf("%d",
&amp;secondNumber);

/* Adding two numbers */


sum = firstNumber + secondNumber;
/* Subtracting two numbers */
difference = firstNumber - secondNumber;
/* Multiplying two numbers*/
product = firstNumber * secondNumber;
/* Dividing two numbers by typecasting one operand to
float*/ quotient = (float)firstNumber / secondNumber;
/* returns remainder of after an integer
division */ square = firstNumber *firstNumber;

printf("\nSum = %d", sum); printf("\


nDifference = %d", difference);
printf("\nMultiplication = %d",
product); printf("\nDivision = %.3f",
quotient); printf("\n Square= %ld",
square);

getch();
return
0;
}

OUTPUT

Enter First Number:


25 Enter Second
Number: 4

Sum = 29
Difference = 21
Multiplication = 100
Division = 6.250
Square = 625

RESULT

Thus a C Program for Arithmetic operations was executed and the output was
obtained.
EX.No. : 5 Armstrong

number DATE :

AIM

To write a C Program to Check whether a given number is Armstrong


number or not
.

ALGORITHM

1. Start
2. Declare variables
3. Read the Input number.
4. Calculate sum of cubic of individual digits of the input.
5. Match the result with input number.
6. If match, Display the given number is Armstrong otherwise not.
7. Stop

PROGRAM

/*

* C Program to Check whether a given Number is Armstrong

*/

#include

<stdio.h>

#include

<math.h>

void main()

int number, sum = 0, rem = 0, cube = 0, temp;


printf ("enter a

number"); scanf("%d",

&number); temp =

number;

while (number != 0)

rem = number % 10;

cube = pow(rem, 3);

sum = sum + cube;

number = number /

10;

if (sum == temp)

printf ("The given no is armstrong

no"); else

printf ("The given no is not a armstrong no");

OUTPUT
enter a number370
The given no is armstrong no

RESULT

Thus a C Program for Armstrong number checking was executed and the
output was obtained.
EX.No. : 6 Sort the numbers based on the

weight. DATE :

AIM

To write a C Program to perform the following:


Given a set of numbers like <10, 36, 54, 89, 12, 27>, find sum of weights
based on the following conditions
 5 if it is a perfect cube
 4 if it is a multiple of 4 and divisible by 6
 3 if it is a prime number
Sort the numbers based on the weight in the increasing order as shown
below <10,its weight>,<36,its weight><89,its weight>

ALGORITHM

1. Start
2. Declare variables
3. Read the number of elements .
4. Get the individual elements.
5. Calculate the weight for each element by the conditions
 5 if it is a perfect cube (pow)
 4 if it is a multiple of 4 and divisible by 6 (modulus operator)
 3 if it is a prime number(modulus operator)
6. Display the output of the weight calculations after sorting .
7. Stop

PROGRAM

#include
<stdio.h>
#include
<math.h> void
main()
{
int nArray[50],wArray[50],nelem,i,j,t;
clrscr();
printf("\nEnter the number of elements in an
array : "); scanf("%d",&nelem);
printf("\nEnter %d elements\
n",nelem); for(i=0;i<nelem;i++)
scanf("%d",&nArray[i]);
//Calculate the weight
for(i=0; i<nelem; i+
+)
{
wArray[i] = 0;
if(percube(nArray[i]))
wArray[i] = wArray[i] + 5;

if(nArray[i]%4==0 && nArray[i]


%6==0) wArray[i] = wArray[i] +
4;

if(prime(nArray[i]))
wArray[i] = wArray[i] + 3;

}
// Sorting an array
for(i=0;i<nelem;i++)
for(j=i+1;j<nelem;j++)
if(wArray[i] > wArray[j])
{
t = wArray[i];
wArray[i] =
wArray[j]; wArray[j]
= t;
}

for(i=0; i<nelem; i++) printf("<%d,


%d>\n", nArray[i],wArray[i]); getch();

int prime(int num)


{
int flag=1,i;
for(i=2;i<=num/2;i+
+) if(num%i==0)
{
flag=0
;
break;
}
return flag;
}
int percube(int num)
{
int i,flag=0;
for(i=2;i<=num/2;i+
+) if((i*i*i)==num)
{
flag=1
;
break;
}
return flag;
}

OUTPUT
Enter the number of elements in an
array :5 Enter 5 elements:
8
11
216
24
34

<34,0>
<11,3>
<24,4>
<8,5>
<216,9>
Explanation:
 8 is a perfect cube of 2, not a prime number and not a multiple of 4 & divisible of 6 so the
answer is 5
 11 is a prime number so the answer is 3
 216 is a perfect cube and multiple of 4 & divisible by 6 so the answer is 5+4 = 9
 24 is not a perfect cube and not a prime number and multiple of 4 & divisible by 6 so the
answer is 4
 34 not satisfied all the conditions so the answer is 0

RESULT

Thus a C Program for Sort the numbers based on the weight was executed and
the output was obtained.
EX.No. : 7 Average height of

persons DATE :

AIM

To write a C Program to populate an array with height of persons and


find how many persons are above the average height.

ALGORITHM

1. Start
2. Declare variables
3. Read the total number of persons and their height.
4. Calculate avg=sum/n and find number of persons their h>avg.
5. Display the output of the calculations .
6. Stop

PROGRAM

/* Get a Height of Different Persons and find how many


of them are are above average */
#include
<stdio.h>
#include
<conio.h> void
main()
{
int
i,n,sum=0,count=0,height[100]
; float avg;
clrscr();
//Read Number of persons
printf("Enter the Number of Persons
: "); scanf("%d",&n);
//Read the height of n persons
printf("\nEnter the Height of each person in
centimeter\n"); for(i=0;i<n;i++)
{
scanf("%d",&height[i
]); sum = sum +
height[i];
}
avg = (float)sum/n;
//Counting
for(i=0;i<n;i++)
if(height[i]>avg)
count++;
//display
printf("\nAverage Height of %d persons is : %.2f\
n",n,avg); printf("\nThe number of persons above
average : %d ",count); getch();
}

OUTPUT
Enter the Number of Persons : 5

Enter the Height of each person in


centimeter 150
155
162
158
154

Average Height of 5 persons is :

155.8 The number of persons above

average : 2

RESULT

Thus a C Program average height of persons was executed and the output was
obtained.
EX.No. : 8 Body Mass Index of the

individuals DATE :

AIM

To write a C Program to Populate a two dimensional array with height and


weight of persons and compute the Body Mass Index of the individuals..

ALGORITHM

1. Start
2. Declare variables
3. Read the number of persons and their height and weight.
4. Calculate BMI=W/H2for each person
5. Display the output of the BMI for each person.
6. Stop

PROGRAM

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

int

main(void)

{ int n,i,j;

printf("How many people's BMI do you want to


calculate?\n"); scanf("%d",&n);

float massheight[n]
[2]; float bmi[n];

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

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

switch(j)
{ case
0:
printf("\nPlease enter the mass of the person %d in kg:
",i+1); scanf("%f",&massheight[i][0]);
break;
case 1:
printf("\nPlease enter the height of the person %d in meter:
",i+1); scanf("%f",&massheight[i][1]);
break;}

}
}

for(i=0;i<n;i++){
bmi[i]=massheight[i][0]/pow(massheight[i]
[1],2.0); printf("Person %d's BMI is %f\
n",i+1,bmi[i]);
}

return 0;
}

OUTPUT
How many people's BMI do you want to
calculate? 2
Please enter the mass of the person 1 in kg: 88
Please enter the height of the person 1 in meter: 1.8288

Please enter the mass of the person 2 in kg:58


Please enter the height of the person 2 in
meter: 2.2

Person 1's BMI


is26.31178 Person 2's
BMI is11.98347

RESULT

Thus a C Program Body Mass Index of the individuals was executed and the
output was obtained.
EX.No. : 9 Reverse of a given

string DATE :

AIM

To write a C Program to perform reverse without changing the position


of special characters for the given string.

ALGORITHM

1. Start
2. Declare variables .
3. Read a String.
4. Check each character of string for alphabets or a special character
by using isAlpha() .
5. Change the position of a character vice versa if it is alphabet otherwise
remains same.
6. Repeat step 4 until reach to the mid of the position of a string.
7. Display the output of the reverse string without changing the position
of special characters .
8. Stop

PROGRAM
#include
<stdio.h>
#include
<string.h>
#include
<conio.h>
void swap(char *a, char *b)
{
char
t; t =
*a;
*a = *b;
*b = t;
}

// Main
program void
main()
{
char str[100];
// Function
Prototype void
reverse(char *); int
isAlpha(char);
void swap(char *a ,char
*b); clrscr();
printf("Enter the Given String : ");
// scanf("%[^\
n]s",str); gets(str);
reverse(str);
printf("\nReverse String :
%s",str); getch();
}

void reverse(char str[100])


{
// Initialize left and right
pointers int r = strlen(str) - 1,
l = 0;

// Traverse string from both ends until


// 'l' and 'r'
while (l <
r)
{
// Ignore special
characters if (!
isAlpha(str[l]))
l++;
else if(!
isAlpha(str[r]))
r--;

else
{
swap(&str[l],
&str[r]); l++;
r--;
}
}
}

// To check x is alphabet or not if it an alphabet then return 0 else 1

int isAlpha(char x)
{
return ( (x >= 'A' && x <= 'Z')
|| (x >= 'a' && x <= 'z') );
}
OUTPUT

Enter the Given String :a@gh%;j


Reverse String :j@hg%;a

RESULT

Thus a C Program for reverse of a given String was executed and the output was
obtained.
EX.No. : 10 Conversion of Decimal number into other

bases DATE :

AIM

To write a C Program to Convert the given decimal number into binary,


octal and hexadecimal numbers using user defined functions.

ALGORITHM

1. Start
2. Declare variables.
3. Read a decimal number.
4. Develop the procedure for conversion of different base by modulus
and divide operator.
5. Display the output of the conversion value.
6. Stop

PROGRAM

#include
<stdio.h>
#include
<conio.h>
void swap(char *s1, char *s2)
{
char temp;
temp = *s1;
*s1 = *s2;
*s2 = temp;
}
void reverse(char *str, int length)
{
int start = 0;
int end = length -
1; while (start <
end)
{
swap(&str[start],
&str[end]); start++;
end--;
}
}
char* convert(int num, char str[100], int base)
{
int i = 0;
if (num == 0)
{
str[i++] = '0';
str[i] = '\
0'; return
str;
}
while (num != 0)
{
int rem = num % base;
str[i++] = (rem > 9)? (rem-10) + 'a' : rem
+ '0'; num = num/base;
}
str[i] = '\0'; // Append string terminator
// Reverse the
string reverse(str,
i); return str;
}
void main()
{
char
str[100]; int
n;
clrscr();
printf("Enter the given decimal
number : "); scanf("%d",&n);
printf("\nThe Binary value : %s\n",convert(n,str,2));
printf("\nThe Octal value : %s\n",convert(n,str,8));
printf("\nThe Hexa value : %s\n",convert(n,str,16));
getch();
}

OUTPUT

Enter the given decimal number :


555 The Binary value :
1000101011
The Octal value :
1053 The Hexa value
: 22B

RESULT

Thus a C Program for conversion of decimal number into other bases was
executed and the output was obtained.
EX.No. : 11 String

operations DATE :

AIM

To write a C Program to perform string operations on a given


paragraph for the following using built-in functions:
a. Find the total number of words.
b. Capitalize the first word of each sentence.
c. Replace a given word with another word.

ALGORITHM

1. Start
2. Declare variables
3. Read the text.
4. Display the menu options
5. Compare each character with tab char „\t‟ or space char „ „ to count no of
words
6. Find the first word of each sentence to capitalize by checks to see if a
character is a punctuation mark used to denote the end of a sentence. (! .
?)
7. Replace the word in the text by user specific word if match.
8. Display the output of the calculations .
9. Repeat the step 4 till choose the option
stop. 10.Stop

PROGRAM

#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
void replace (char *, char *, char
*); int main()
{
char
choice.str[200];
int i, words;
char s_string[200], r_string[200];
/* Input text from user */
printf("Enter any text:\n ");
gets(str);
do
{
printf("\n1. Find the total number of words \n");
printf("2. Capitalize the first word of each
sentence \n"); printf("3. Replace a given word with
another word \n"); printf("4. Stop\n");
printf("Enter your choice :
"); choice=getchar();
switch(choice)
{
case '1' :
i = 0;
words = 1;

/* Runs a loop till end of text


*/ while(str[i] != '\0')
{
/* If the current character(str[i]) is white
space */ if(str[i]==' ' || str[i]=='\n' || str[i]=='\
t')
{
words++;
}

i++;
}

printf("\nTotal number of words = %d",


words); break;

case '2' :

i = 0;
/* Runs a loop till end of text
*/ while(str[i] != '\0')
{
/* Checks to see if a character is a punctuation mark used to denote
the end of a sentence.
(! . ?) */ if(str[i]=='!' || str[i]=='.' || str[i]=='?')
{
i++;
while(str[i]!=' ' || str[i]!='\n' || str[i]!='\t || str[i] != '\0'‟)
{putchar (toupper(str[+
+i])); i++;
}
}
else
putchar

(str[i]); i++;
}
break;
case '3'
:

/*Get the search and replace string from the user.

 Write a user defined function to replace the first occurrence of the search string with the
replace string.
 Recursively call the function until there is no occurrence of the search string.*/

printf("\nPlease enter the string to


search: "); fflush(stdin);
gets(s_string);

printf("\nPlease enter the replace


string "); fflush(stdin);
gets(r_string);

replace(str, s_string,

r_string); puts(str);

break;
case '4'
:
exit(0);
}
printf("\nPress any key to continue ");
getch();
}
while(choice!=‟4‟);

return 0;
}

void replace(char * str, char * s_string, char * r_string) {


//a buffer variable to do all replace
things char buffer[200];
//to store the pointer returned from
strstr char * ch;

//first exit condition


if(!(ch = strstr(str,
s_string))) return;

//copy all the content to buffer before the first occurrence of the
search string strncpy(buffer, str, ch-str);

//prepare the buffer for appending by adding a null to the end of it


buffer[ch-str] = 0;

//append using sprintf function


sprintf(buffer+(ch -str), "%s%s", r_string, ch + strlen(s_string));

//empty str for


copying str[0] = 0;
strcpy(str, buffer);
//pass recursively to replace other
occurrences return replace(str, s_string,
r_string);
}

OUTPUT
Enter any text:
I like C and C++ programming!

1. Find the total number of words


2. Capitalize the first word of each sentence
3. Replace a given word with another word
4. Stop
Enter your choice : 1
Total number of words = 6

Press any key to continue....


1. Find the total number of words
2. Capitalize the first word of each sentence
3. Replace a given word with another word
4. Stop
Enter your choice : 4

RESULT

Thus a C Program String operations was executed and the output was obtained.
EX.No. : 12 Towers of Hanoi using

Recursion DATE :

AIM

To write a C Program to Solve towers of Hanoi using recursion.

ALGORITHM

1. Start
2. Declare variables
3. Read the Input for number of discs.
4. Check the condition for each transfer of discs using recursion.
5. Display the output of the each move .
6. Stop

PROGRAM

/*
Rules of Tower of Hanoi:

 Only a single disc is allowed to be transferred at a time.


 Each transfer or move should consist of taking the upper disk from one of
the stacks and then placing it on the top of another stack i.e. only a
topmost disk on the stack can be moved.
 Larger disk cannot be placed over smaller disk; placing of disk
should be in increasing order.
*/
#include
<stdio.h>
#include
<conio.h>
void towerofhanoi(int n, char from, char to, char aux)
{
if (n == 1)
{
printf("\n Move disk 1 from peg %c to peg %c",
from, to); return;
}
towerofhanoi(n-1, from, aux, to);
printf("\n Move disk %d from peg %c to peg %c", n,
from, to); towerofhanoi(n-1, aux, to, from);
}
int main()
{
int n;
clrscr()
;
printf("Enter the number of disks
: "); scanf("%d",&n); // Number of
disks
towerofhanoi(n, 'A', 'C', 'B'); // A, B and C are names
of peg getch();
return 0;
}

OUTPUT
Enter the number of disks :
3 Move disk 1 from peg A to
peg C Move disk 2 from peg
A to peg B Move disk 1 from
peg C to peg B Move disk 3
from peg A to peg C Move
disk 1 from peg B to peg A
Move disk 2 from peg B to
peg C Move disk 1 from peg
A to peg C

RESULT

Thus a C Program Towers of Hanoi using Recursion was executed and the
output was obtained.
EX.No. : 13 Sorting using pass by

reference DATE :

AIM

To write a C Program to Sort the list of numbers using pass by reference.

ALGORITHM

1. Start
2. Declare variables and create an array
3. Read the Input for number of elements and each element.
4. Develop a function to sort the array by passing reference
5. Compare the elements in each pass till all the elements are sorted.
6. Display the output of the sorted elements .
7. Stop

PROGRAM

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

void main()
{
int n,a[100],i;
void
sortarray(int*,int);
clrscr();
printf("\nEnter the Number of Elements in an array : ");
scanf("%d",&n);
printf("\nEnter the Array elements\
n"); for(i=0;i<n;i++)
scanf("%d",&a[i]);
sortarray(a,n); printf("\
nAfter Sorting............\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);
getch();
}
void sortarray(int* arr,int num)
{
int i,j,temp;
for(i=0;i<num;i++)
for(j=i+1;j<num;j+
+) if(arr[i] > arr[j])
{
temp=arr[i];
arr[i] =
arr[j];
arr[j] = temp;
}
}

OUTPUT

Enter the Number of Elements in an


array : 5 Enter the Array elements
33
67
21
45
11
After Sorting....
11
21
33
45
67

RESULT

Thus a C Program Sorting using pass by reference was executed and the
output was obtained.
EX.No. : 14 Salary slip of

employees DATE :

AIM

To write a C Program to Generate salary slip of employees using


structures and pointers.
ALGORITHM

1. Start
2. Declare variables
3. Read the number of employees .
4. Read allowances, deductions and basic for each employee.
5. Calculate net pay= (basic+ allowances)-deductions
6. Display the output of the Pay slip calculations for each employee.
7. Stop

PROGRAM
#include<stdio.h
>
#include<conio.
h> #include
"stdlib.h" struct
emp
{
int empno ;
char name[10], answer
; int bpay, allow, ded,
npay ; struct emp
*next;
} ;
void main()
{
int I,n=0;
int more_data = 1;
struct emp e *current_ptr,
*head_ptr; clrscr() ;
head_ptr = (struct emp *) malloc (sizeof(struct
emp)); current_ptr = head_ptr;
while (more_data)
{
{
printf("\nEnter the employee
number : ") ; scanf("%d", &
current_ptr->empno) ; printf("\nEnter
the name : ") ;
scanf("%s",& current_ptr->name) ;
printf("\nEnter the basic pay, allowances & deductions : ") ;
scanf("%d %d %d", & current_ptr ->bpay, & current_ptr ->allow, & current_ptr
-
>ded) ;
e[i].npay = e[i].bpay + e[i].allow -
e[i].ded ; n++;
printf("Would you like to add another employee?
(y/n): "); scanf("%s", answer);

if (answer!= 'Y')
{
current_ptr->next = (struct eme *)
NULL; more_data = 0;
}
else
{
current_ptr->next = (struct emp *) malloc (sizeof(struct
emp)); current_ptr = current_ptr->next;
}

}
}
printf("\nEmp. No. Name \t Bpay \t Allow \t Ded \t Npay \n\
n") ; current_ptr = head_ptr;
for(i = 0 ; i < n ; i++)
{
printf("%d \t %s \t %d \t %d \t %d \t %d \n", current_ptr->empno,
current_ptr->name, current_ptr->bpay, current_ptr->allow,
current_ptr->ded,
current_ptr->npay) ;
current_ptr=current_ptr-
>next;
}
getch() ;
}

OUTPUT

Enter the number of


employees : 2 Enter the
employee number : 101 Enter
the name : Arun
Enter the basic pay, allowances & deductions : 5000 1000 250
Enter the employee number :
102 Enter the name : Babu
Enter the basic pay, allowances & deductions : 7000 1500
750 Emp.No. Name Bpay Allow Ded Npay
101 Arun 5000 1000 250 5750
102 Babu 7000 1500 750 7750

RESULT

Thus a C Program Salary slip of employees was executed and the output was
obtained.
EX.No. : 15 Internal marks of

students DATE :

AIM

To write a C Program to Compute internal marks of students for five


different subjects using structures and functions.

ALGORITHM

1. Start
2. Declare variables
3. Read the number of students .
4. Read the student mark details
5. Calculate internal mark by i=total of three test marks / 3 for each
subject per student.
6. Display the output of the calculations for all the students .
7. Stop

PROGRAM
#include<stdio.h
>
#include<conio.
h> struct stud{
char
name[20];
long int
rollno; int
marks[5,3];
int i[5];

}students[10];
void
calcinternal(int); int
main(){
int a,b,j,n;
clrscr();
printf("How many students : \
n"); scanf("%d",&n);
for(a=0;a<n;++a){
clrscr();
printf("\n\nEnter the details of %d student : ", a+1);
printf("\n\nEnter student %d Name : ", a);
scanf("%s", students[a].name); printf("\n\
nEnter student %d Roll Number : ", a);
scanf("%ld", &students[a].rollno);
total=0; for(b=0;b<=4;+
+b){ for(j=0;j<=2;++j){
printf("\n\nEnter the test %d mark of subject-%d : ",j+1, b+1);
scanf("%d", &students[a].marks[b,j]);
}
}
}
calcinternal(n);
for(a=0;a<n;++a)
{ clrscr();
printf("\n\n\t\t\t\tMark Sheet\n");
printf("\nName of Student : %s",
students[a].name); printf("\t\t\t\t Roll No :
%ld", students[a].rollno);
printf("\n--------------------------------------------------------------------------");
for(b=0;b<5;b++){
printf("\n\n\t Subject %d internal \t\t :\t %d", b+1, students[a].i[b]);
}
printf("\n\n---------------------------------------------------------------------------\n");
getch();
}
return(0);
}

void calcinternal(int n)
{
int a,b,j,total;
for(a=1;a<=n;++a)
{ for(b=0;b<5;b++){
total=0;
for(j=0;j<=2;++j){
total += students[a].marks[b,j];
}
students[a].i[b]=total/3;
}
}
}

OUTPUT

How many students : 1


Enter the details of 1
student : Enter student 1
Name : H.Xerio
Enter student 1 Roll Number :
536435 Enter the test 1mark of
subject-1 : 46
Enter the test 2 mark of subject-1
: 56 Enter the test 3 mark of
subject-1 : 76 Enter the test 1
mark of subject-2 : 85 Enter the
test 2mark of subject-2 : 75 Enter
the test 3mark of subject-2 : 75
Enter the test 1mark of subject-3 :
66 Enter the test 2 mark of
subject-3 : 86 Enter the test 3
mark of subject-3 : 70 Enter the
test 1 mark of subject-4 : 25 Enter
the test 2mark of subject-4 : 35
Enter the test 3mark of subject-4 :
61 Enter the test 1 mark of
subject-5 : 45 Enter the test
2mark of subject-5 : 75 Enter the
test 3mark of subject-5 : 60

Mark Sheet
Name of Student : H.Xerio Roll No : 536435
------------------------------------------------------------------------
subject 1 internal : 59
subject 2 internal : 78
subject 3 internal : 74
subject 4 internal : 40
subject 5 internal : 60
------------------------------------------------------------------------

RESULT

Thus a C Program for Internal marks of students was executed and the
output was obtained.
EX.No. : 16 Telephone directory

DATE :

AIM

To write a C Program to add, delete ,display ,Search and exit options for
telephone details of an individual into a telephone directory using
random access file.

ALGORITHM

1. Start.
2. Declare variables, File pointer and phonebook structures.
3. Create menu options.
4. Read the option .
5. Develop procedures for each option.
6. Call the procedure (Add, delete ,display ,Search and exit)for user chosen
option.
7. Display the message for operations performed.
8. Stop

PROGRAM

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

typedef struct Phonebook_Contacts


{
char FirstName[20];
char LastName[20];
char
PhoneNumber[20];
} phone;

void AddEntry(phone * );
void DeleteEntry(phone
* ); void
PrintEntry(phone * );
void SearchForNumber(phone * );
int counter = 0;
char
FileName[256];
FILE *pRead;
FILE *pWrite;

int main (void)


{
phone *phonebook;
phonebook = (phone*)
malloc(sizeof(phone)*100); int iSelection = 0;

if (phonebook == NULL)
{

printf("Out of Memory. The program will now


exit"); return 1;
}
else {}

do
{
printf("\n\t\t\tPhonebook Menu");
printf("\n\n\t(1)\tAdd Friend"); printf("\n\
t(2)\tDelete Friend"); printf("\n\t(3)\
tDisplay Phonebook Entries"); printf("\n\
t(4)\tSearch for Phone Number");
printf("\n\t(5)\tExit Phonebook");
printf("\n\nWhat would you like to do?
"); scanf("%d", &iSelection);

if (iSelection == 1)
{
AddEntry(phonebook);
}

if (iSelection == 2)
{
DeleteEntry(phonebook);
}

if (iSelection == 3)
{
PrintEntry(phonebook);
}

if (iSelection == 4)
{
SearchForNumber(phonebook);
}

if (iSelection == 5)
{
printf("\nYou have chosen to exit the
Phonebook.\n"); return 0;
}
} while (iSelection <= 4);
}

void AddEntry (phone * phonebook)


{
pWrite = fopen("phonebook_contacts.dat",
"a"); if ( pWrite == NULL )
{
perror("The following error
occurred "); exit(EXIT_FAILURE);
}
else
{
counter++;
realloc(phonebook, sizeof(phone));

printf("\nFirst Name: ");


scanf("%s", phonebook[counter-
1].FirstName); printf("Last Name: ");
scanf("%s", phonebook[counter-1].LastName);
printf("Phone Number (XXX-XXX-XXXX): ");
scanf("%s", phonebook[counter-
1].PhoneNumber);
printf("\n\tFriend successfully added to Phonebook\n");

fprintf(pWrite, "%s\t%s\t%s\n", phonebook[counter-1].FirstName,


phonebook[counter-1].LastName, phonebook[counter-
1].PhoneNumber);
fclose(pWrite);
}
}

void DeleteEntry (phone * phonebook)


{
int x = 0;
int i = 0;
char
deleteFirstName[20]; //
char deleteLastName[20];

printf("\nFirst name: ");


scanf("%s",
deleteFirstName);
printf("Last name: ");
scanf("%s",
deleteLastName);

for (x = 0; x < counter; x++)


{
if (strcmp(deleteFirstName, phonebook[x].FirstName) == 0)
{
if (strcmp(deleteLastName, phonebook[x].LastName) == 0)
{
for ( i = x; i < counter - 1; i++ )
{
strcpy(phonebook[i].FirstName, phonebook[i+1].FirstName);
strcpy(phonebook[i].LastName, phonebook[i+1].LastName);
strcpy(phonebook[i].PhoneNumber,
phonebook[i+1].PhoneNumber);
}
printf("Record deleted from the phonebook.\n\n");
--
counter;
return;
}
}
}

printf("That contact was not found, please try again.");


}

void PrintEntry (phone * phonebook)


{
int x = 0;

printf("\nPhonebook Entries:\n\n ");


pRead = fopen("phonebook_contacts.dat",
"r"); if ( pRead == NULL)
{
perror("The following error
occurred: "); exit(EXIT_FAILURE);
}
else
{
for( x = 0; x < counter; x++)
{
printf("\n(%d)\n", x+1);
printf("Name: %s %s\n", phonebook[x].FirstName,
phonebook[x].LastName); printf("Number: %s\n",
phonebook[x].PhoneNumber);
}
}
fclose(pRead);
}

void SearchForNumber (phone * phonebook)


{
int x = 0;
char
TempFirstName[20];
char
TempLastName[20];

printf("\nPlease type the name of the friend you wish to find a


number for."); printf("\n\nFirst Name: ");
scanf("%s",
TempFirstName);
printf("Last Name: ");
scanf("%s",
TempLastName); for (x =
0; x < counter; x++)
{
if (strcmp(TempFirstName, phonebook[x].FirstName) == 0)
{
if (strcmp(TempLastName, phonebook[x].LastName) == 0)
{

printf("\n%s %s's phone number is %s\n",


phonebook[x].FirstName, phonebook[x].LastName,
phonebook[x].PhoneNumber);
}
}
}
}

OUTPUT

Phonebook Menu
(1) Add Friend
(2) Delete Friend"
(3) Display Phonebook Entries
(4) Search for Phone Number
(5) Exit Phonebook

What would you like to


do? 1 First Name: Ram
Last Name: Mohan
Phone Number (XXX-XXX-XXXX): 717-675-0909

Friend successfully added to Phonebook


Phonebook Menu
(1) Add Friend
(2) Delete Friend"

(3) Display Phonebook Entries


(4) Search for Phone Number
(5) Exit Phonebook

What would you like to do? 5


You have chosen to exit the Phonebook.

RESULT

Thus a C Program was executed and the output was obtained.


EX.No. : 17 Banking

Application DATE :

AIM

To write a C Program to Count the number of account holders whose


balance is less than the minimum balance using sequential access file.

ALGORITHM

1. Start
2. Declare variables and file pointer.
3. Display the menu options.
4. Read the Input for transaction processing.
5. Check the validation for the input data.
6. Display the output of the calculations .
7. Repeat step 3 until choose to stop.
8. Stop

PROGRAM
/* Count the number of account holders whose balance is less than the
minimum balance using sequential access file.
*/
#include
<stdio.h>
#include
<stdlib.h>
#include
<conio.h>
#include
<string.h>
#define MINBAL
500 struct
Bank_Account
{
char no[10];
char
name[20];
char balance[15];
};
struct Bank_Account
acc; void main()
{
long int pos1,pos2,pos;
FILE *fp;
char
*ano,*amt;
char choice;
int
type,flag=0;
float bal;
do
{
clrscr();
fflush(stdin
);
printf("1. Add a New Account Holder\
n"); printf("2. Display\n");
printf("3. Deposit or Withdraw\n");
printf("4. Number of Account Holder Whose Balance is less than the
Minimum Balance\n");
printf("5. Stop\n");
printf("Enter your choice :
"); choice=getchar();
switch(choice)
{
case '1' :
fflush(stdin);
fp=fopen("acc.dat","a
");
printf("\nEnter the Account
Number : "); gets(acc.no);
printf("\nEnter the Account Holder Name
: "); gets(acc.name);
printf("\nEnter the Initial Amount to
deposit : "); gets(acc.balance);
fseek(fp,0,2);
fwrite(&acc,sizeof(acc),1,fp);
fclose(fp);
break;
case '2'
:
fp=fopen("acc.dat","r")
; if(fp==NULL) printf("\
nFile is Empty"); else
{
printf("\nA/c Number\tA/c Holder Name Balance\n");
while(fread(&acc,sizeof(acc),1,fp)==1)
printf("%-10s\t\t%-20s\t%s\
n",acc.no,acc.name,acc.balance); fclose(fp);
}
break;
case '3'
:
fflush(stdin
); flag=0;
fp=fopen("acc.dat","r+"); printf("\
nEnter the Account Number : ");
gets(ano);
for(pos1=ftell(fp);fread(&acc,sizeof(acc),1,fp)==1;pos1=ftell(fp))
{
if(strcmp(acc.no,ano)==0)
{
printf("\nEnter the Type 1 for deposit & 2 for withdraw :
"); scanf("%d",&type);
printf("\nYour Current Balance is :
%s",acc.balance); printf("\nEnter the Amount
to transact : "); fflush(stdin);
gets(amt);
if(type==1
)
bal = atof(acc.balance) +
atof(amt); else
{
bal = atof(acc.balance) -
atof(amt); if(bal<0)
{
printf("\nRs.%s Not available in your A/c\
n",amt); flag=2;
break;
}
}
flag+
+;
break;
}

}
if(flag==1)
{
pos2=ftell(fp);
pos = pos2-
pos1;
fseek(fp,-
pos,1);
sprintf(amt,"%.2f",bal);
strcpy(acc.balance,amt);
fwrite(&acc,sizeof(acc),1,fp
);
}
else if(flag==0)
printf("\nA/c Number Not exits... Check it
again"); fclose(fp);
break;

case '4' :
fp=fopen("acc.dat","r");
flag=0;
while(fread(&acc,sizeof(acc),1,fp)==1)
{
bal =
atof(acc.balance);
if(bal<MINBAL)
flag++;
}
printf("\nThe Number of Account Holder whose Balance less than the Minimum
Balance :
%d",flag)
; fclose(fp);
break;
case '5' :
fclose(fp);
exit(0);

}
printf("\nPress any key to continue ");
getch();
} while (choice!='5');
}

OUTPUT
1. Add a New Account Holder
2. Display
3. Deposit or Withdraw
4. Number of Account Holder Whose Balance is less than the Minimum Balance
5. Stop
Enter your choice : 1
Enter the Account Number :
547898760 Enter the Account Holder
Name : Rajan Enter the Initial Amount
to deposit : 2000 Press any key to
continue....

1. Add a New Account Holder


2. Display
3. Deposit or Withdraw
4. Number of Account Holder Whose Balance is less than the Minimum
Balance
5. Stop
Enter your choice : 4
The Number of Account Holder whose Balance less than the Minimum
Balance : 0

RESULT
Thus a C Program for Banking Application was executed and the output was
obtained.
EX.No. : 18 Railway reservation

system DATE :

AIM
Create a Railway reservation system in C with the following modules
 Booking
 Availability checking
 Cancellation
 Prepare chart

ALGORITHM

1. Start
2. Declare variables
3. Display the menu options
4. Read the option.
5. Develop the code for each option.
6. Display the output of the selected option based on existence .
7. Stop

PROGRAM

#include<stdio.h
>
#include<conio.
h>
int
first=5,second=5,thired=5;
struct node
{
int
ticketno;
int
phoneno;
char name[100];
char
address[100];
}s[15];
int i=0;
void booking()
{
printf("enter your details");
printf("\nname:");
scanf("%s",s[i].name); printf("\
nphonenumber:");
scanf("%d",&s[i].phoneno);
printf("\naddress:");
scanf("%s",s[i].address);
printf("\nticketnumber only 1-
10:");
scanf("%d",&s[i].ticketno);
i++;
}
void availability()
{
int c;
printf("availability cheking");
printf("\n1.first class\n2.second class\n3.thired
class\n"); printf("enter the option");
scanf("%d",&c
); switch(c)
{
case 1:if(first>0)
{
printf("seat available\
n"); first--;
}
else
{
printf("seat not available");
}
break;
case 2: if(second>0)
{
printf("seat available\
n"); second--;
}
else
{
printf("seat not available");
}
break;
case 3:if(thired>0)
{
printf("seat available\
n"); thired--;
}
else
{
printf("seat not available");
}
break
;
default:
break;
}
}
void cancel()
{
int c;
printf("cancel\
n");
printf("which class you want to cancel");
printf("\n1.first class\n2.second class\n3.thired
class\n"); printf("enter the option");
scanf("%d",c)
; switch(c)
{
case 1:
first+
+;
break;
case 2:
second+
+; break;
case 3:
thired+
+;
break;
default:
break;
}
printf("ticket is canceled");
}
void chart()
{
int c;
for(c=0;c<I;c+
+)
{
printf(“\n Ticket No\t Name\n”);
printf(“%d\t%s\
n”,s[c].ticketno,s[c].name)
}
}
main()
{
int n;
clrscr()
;
printf("welcome to railway ticket
reservation\n"); while(1) {
printf("1.booking\n2.availability cheking\n3.cancel\n4.Chart \n5. Exit\
nenter your option:");
scanf("%d",&n
); switch(n)
{
case 1:
booking();
break;
case 2: availability();
break;
case 3: cancel();
break;
case 4:
chart();
break;
case 5:
printf(“\n Thank you visit
again!”); getch();
exit(0)
; default:
break;
}
}
getch();
}

OUTPUT

welcome to railway ticket


reservation 1.booking
2.availability
cheking 3.cancel
4. Chart
5. Exit
enter your
option: 2
availability
cheking 1.first class
2.second class
3.thired class
enter the option 1
seat available
1.booking
2.availability
cheking 3.cancel
4. Chart
5. Exit
enter your option:
5 Thank you visit
again!

RESULT

Thus a C Program for Railway reservation system was executed and the
output was obtained.
Additional C Programs for exercise
1. Program to find the row sum and column sum of a

given matrix. #include<stdio.h>

#include<conio.

h> void main()

int mat[10]

[10]; int i,j;

int m,n;

int sumrow,sumcol;

clrscr();

printf("\nTO FIND THE ROW SUM AND COLUMN SUM OF A GIVEN

MATRIX:"); printf("\n-----------------------------------");

printf("\nEnter the order of

matrix:"); scanf("%d%d",&m,&n);

printf("\nEnter elements of a

matrix:"); for(i=0;i<m;i++)

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

scanf("%d",&mat[i]

[j]);

printf("\n\nOUTPUT:");

printf("\n----------------------------------------");

for(i=0;i<m;i++)

sumrow=0;
for(j=0;j<n;j++)

sumrow=sumrow+mat[i]

[j];

printf("\nTHE SUM OF %d ROW IS %d",i+1,sumrow);

printf("\n----------------------------------------");

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

sumcol=0;

for(i=0;i<m;i++)

sumcol=sumcol+mat[i]

[j];

printf("\nTHE SUM OF %d COLUMN IS %d",j+1,sumcol);

printf("\n----------------------------------------");

getch();

2. Program to read a string and print the first two characters of each
word in the string.
#include<stdio.h
>
#include<conio.
h> void main( )
{
char
s[100]; int
i,l; clrscr(
);
printf(“Enter a
string”); gets(s);
l=strlen(s);
for(i=0;i<l;i+
+)
{
if(s[i]!=‟ „ && s[i]=‟ „)
{
printf(“%c
%c”,s[i],s[i+1]) i=i+2;
while(s[i]!=‟
„) i++;
}
}
getch( );
}

3. Program to print current system


date. #include <stdio.h>
#include
<conio.h>
#include <dos.h>
int main()
{
struct date
d;
getdate(&d
);
printf("Current system date is
%d/%d/%d",d.da_day,d.da_mon,d.da_year); getch();
return 0;
}.

4. Program to calculate Standard


Deviation. #include <stdio.h>
#include <math.h>
float standard_deviation(float data[],
int n); int main()
{
int n, i;
float data[100];
printf("Enter number of datas( should be less than
100): "); scanf("%d",&n);
printf("Enter elements:
"); for(i=0; i<n; ++i)
scanf("%f",&data[i]);
printf("\n");
printf("Standard Deviation = %.2f",
standard_deviation(data,n)); return 0;
}
float standard_deviation(float data[], int n)
{
float mean=0.0,
sum_deviation=0.0; int i;
for(i=0; i<n;++i)
{
mean+=data[i];
}
mean=mean/n;
for(i=0; i<n;+
+i)
sum_deviation+=(data[i]-mean)*(data[i]-
mean); return sqrt(sum_deviation/n);
}
5. Program to calculate the Power of a Number using
Recursion. #include <stdio.h>
int power(int n1,int
n2); int main()
{
int base, exp;
printf("Enter base number:
"); scanf("%d",&base);
printf("Enter power number(positive
integer): "); scanf("%d",&exp);
printf("%d^%d = %d", base, exp, power(base,
exp)); return 0;
}
int power(int base,int exp)
{
if ( exp!=1 )
return (base*power(base,exp-1));
}

6. Program to find the ASCII value of a


Character. #include <stdio.h>
int main()
{ char c;
printf("Enter a character: ");
scanf("%c",&c); /* Takes a character from
user */ printf("ASCII value of %c = %d",c,c);
return 0;
}

7. Program to find biggest of four no by using ternary


numbers. #include<stdio.h>
#include<conio.
h> void main( )
{
int
a,b,c,d,big;
clrscr( );
printf(“enter value a”);
scanf(“%d”,&a);
printf(“enter the value of
b”); scanf(“%d”,&b);
printf(“enter the value of
c”); scanf(“%d”,&c);
printf(“enter the value of
d”); scanf(“%d”,&d);
big=(a>b)?(a>c)?(a>d)?a:d:(c>d)?c:d:(b>c)?(b>d)?b:d:
(c>d)?c:d; printf(“Biggest of the given 4 numbers is
%d”,big);
getch();
}
C Language Questions and Answers
1. What is C language?
C is a programming language developed at AT&T's Bell Laboratories of USA in
1972. The C programming language is a standardized programming language
developed in the early 1970s by Ken Thompson and Dennis Ritchie for use on
the UNIX operating system. It has since spread to many other operating
systems, and is one of the most widely used programming languages.

2. What are the types of constants in C?


In C language two types of constants are available:
Primary constants
Secondary constants

3. What are the types of C instructions?


There are basically three types of instructions in C:
Type Declaration Instruction
Arithmetic Instruction
Control Instruction

4. What is a pointer?
Pointers are variables which stores the address of another variable. That
variable may be a scalar (including another pointer), or an aggregate (array or
structure). The pointed-to object may be part of a larger object, such as a field
of a structure or an element in an array.

5. What is an array?
Array is a variable that hold multiple elements which has the same data type.

6. Differentiate between arrays and pointers?


Pointers are used to manipulate data using the address. Pointers use *
operator to access the data pointed to by them.
Array is a collection of similar data type. Array use subscripted variables to
access and manipulate data. Array variables can be equivalently written using
pointer expression.

7. What is “this” pointer?


The “this” pointer is a pointer accessible only within the member functions of a
class, struct,or union type. It points to the object for which the member
function is called. Static member functions do not have a “this” pointer.

8. What are the uses of a


pointer? Pointer is used in the
following cases
It is used to access array elements.
It is used for dynamic memory allocation.
It is used in Call by reference.
It is used in data structures like trees, graph, linked list etc.
9. What is the purpose of main() function?
The function main() invokes other functions within it. It is the first function to
be called when the program starts execution.
It is the starting function.
It returns an int value to the environment that called the program.
Recursive call is allowed for main( ) also.
It is a user-defined function.

10. What are the different storage classes in


C? There are four types of storage classes in C
language.
Automatic
Extern
Register
Static

11. What is a structure?


Structure constitutes a super data type which represents several different
data types in a single unit. A structure can be initialized if it is static or global.

12. Define Constructors?


A constructor is a member function with the same name as its class. The
constructor is invoked whenever an object of its associated class is created.
It is called constructor because it constructs the values of data members of
the class.

13. Define destructors?


A destructor is called for a class object when that object passes out of scope or
is explicitly deleted. A destructors as the name implies is used to destroy the
objects that have been created by a constructors. Like a constructor, the
destructor is a member function whose name is the same as the class name but
is preceded by a tilde.

14. What is the use of default constructor?


A constructor that accepts no parameters is called the default constructor. If no
user- defined constructor exists for a class A and one is needed, the compiler
implicitly declares a default parameter less constructor A::A(). This constructor
is an inline public member of its class. The compiler will implicitly define A::A()
when the compiler uses this constructor to create an object of type A. The
constructor will have no constructor initializer and a null body.

15. What is a macro?


Macros are the identifiers that represent statements or expressions.

16. What is the difference between #include< > and


#include “ ”? #include< > > specifically used for built in
header files.
#include “ ”- -> Specifically used for used for user defined/created header file.

17. What are the advantages of the functions?


It reduces the Complexity in a program by reducing the code.
Functions are easily understanding and reliability and execution is faster.
It also reduces the Time to run a program. In other way, it‟s directly
proportional to Complexity.
It‟s easy to find-out the errors due to the blocks made as function definition
outside the main function.

18. How do declare an array?


We can declare an array by specify its data type, name and the number of
elements the array holds between square brackets immediately following
the array name.
syntax :
data_type array_name[size];

19. What are the differences between structures and union?


A structure variable contains each of the named members, and its size is large
enough to hold all the members. Structure elements are of same size.
A Union contains one of the named members at a given time and is large
enough to hold the largest member. Union element can be of different sizes.

20. What is the difference between an Array and a List?


The main difference between an array and a list is how they internally store the
data whereas Array is collection of homogeneous elements. List is collection of
heterogeneous elements.

21. What is the difference between a string copy (strcpy) and a memory copy
(memcpy)? The strcpy() function is designed to work exclusively with strings. It
copies each byte of the source string to the destination string and stops when
the terminating null character () has been moved.
On the other hand, the memcpy() function is designed to work with any type
of data. Because not all data ends with a null character, you must provide the
memcpy() function with the number of bytes you want to copy from the source
to the destination.

22. What is the difference between const char*p and char const* p?
const char*p - p is pointer to the constant character. i.e value in that address
location is constant.
const char* const p - p is the constant pointer which points to the constant
string, both value and address are constants.

23. What is the purpose of realloc()?


Realloc(ptr,n) function uses two
arguments.
The first argument ptr is a pointer to a block of memory for which the size
is to be altered.
The second argument n specifies the new size. The size may be increased or
decreased.
24. What is the use of typedef?
The typedef help in easier modification when the programs are ported to
another machine. A descriptive new name given to the existing data type may
be easier to understand the code.

25. What are the differences between new and malloc?


New initializes the allocated memory by calling the constructor. Memory
allocated with new should be released with delete.
Malloc allocates uninitialized memory.
The allocated memory has to be released with free. New automatically calls the
constructor while malloc(dosen‟t)

26. What is the difference between strdup and strcpy?


Both copy a string. strcpy wants a buffer to copy the string. strdup allocates a
buffer using malloc(). Unlike strcpy(), strdup() is not specified by ANSI.

27. What is this pointer?


It is a pointer that points to the current object. This can be used to access the
members of the current object with the help of the arrow operator.

28. What is recursion?


A recursion function is one which calls itself either directly or indirectly it
must halt at a definite point to avoid infinite recursion.

29. What are the characteristics of arrays in C?


An array holds elements that have the same data type.
Array elements are stored in subsequent memory locations
Two-dimensional array elements are stored row by row in subsequent
memory locations.
Array name represents the address of the starting element

30. Differentiate between for loop and a while loop? What are it uses?
For executing a set of statements fixed number of times we use for loop while
when the number of iterations to be performed is not known in advance we use
while loop.

31. What is the difference between printf(...) and sprintf(...)?


printf(....)---------------> is standard output statement
sprintf(......)-------------> is formatted output statement.

32. What is an explicit constructor?


A conversion constructor declared with the explicit keyword. The compiler does
not use an explicit constructor to implement an implied conversion of types.
Explicit constructors are simply constructors that cannot take part in an implicit
conversion.

33. What is copy constructor?


Copy constructor is a constructor function with the same name as the class
and used to make deep copy of objects.

34. What is the difference between malloc and calloc?


Malloc() is use for memory allocation and initialize garbage values.
malloc() for allocating the single block of memory.
Calloc() is same as malloc() but it initialize 0 value. calloc() for allocating
multiple blocks of memory.

35. What is null pointer?


NULL pointer is a pointer which is pointing to
nothing. Examples :
int *ptr=(char *)0;
float *ptr=(float
*)0;
36. What is dynamic array?
The dynamic array is an array data structure which can be resized during
runtime which means elements can be added and removed.

37. What are macros? What are its advantages and disadvantages?
Macros are abbreviations for lengthy and frequently used statements. When
a macro is called the entire code is substituted by a single line though the
macro definition is of several lines.
The advantage of macro is that it reduces the time taken for control transfer as
in case of function. The disadvantage of it is here the entire code is substituted
so the program becomes lengthy if a macro is called several times.

38. What are register variables? What are the advantages of using register
variables?
If a variable is declared with a register storage class, it is known as register
variable. The register variable is stored in the CPU register instead of main
memory. Frequently used variables are declared as register variable as it‟s
access time is faster.

39. What is storage class? What are the different storage classes in C?
Storage class is an attribute that changes the behavior of a variable. It
controls the lifetime,scope and linkage. The storage classes in c are auto,
register, and extern, static, typedef.

40. What the advantages of using Unions?


When the C compiler is allocating memory for unions it will always reserve
enough room for the largest member.

41. In C, why is the void pointer useful? When would you use it?
The void pointer is useful because it is a generic pointer that any pointer can
be cast into and back again without loss of information.

42. What is the difference between the functions memmove() and memcpy()?
The arguments of memmove() can overlap in memory. The arguments of
memcpy() cannot.

43. Can a Structure contain a Pointer to itself?


Yes such structures are called self-referential structures.

44. What is dynamic memory allocation?


A dynamic memory allocation uses functions such as malloc() or calloc() to
get memory dynamically. If these functions are used to get memory
dynamically and the values returned by these function are assigned to
pointer variables, such a way of allocating memory at run time is known as
dynamic memory allocation.

45. What is pointer to a pointer?


If a pointer variable points another pointer value. Such a situation is known as a
pointer to a pointer.
Example :
int *p1,
**p2, v=10;
P1=&v;
p2=&p1;
Here p2 is a pointer to a pointer.

46. What is a function?


A large program is subdivided into a number of smaller programs or
subprograms. Each subprogram specifies one or more actions to be
performed for the larger program. Such sub programs are called functions.

47. What is an argument?


An argument is an entity used to pass data from the calling to a called function.

48. What is the difference between syntax vs logical


error? Syntax Error
These involve validation of syntax of language.
Compiler prints diagnostic
message. Logical Error
Logical error are caused by an incorrect algorithm or by a statement mistyped
in such a way that it doesn‟t violet syntax of language.
Difficult to find.

49. Explain enumerated types.


Enumerated types allow the programmers to use more meaningful words as
values to a variable.
Each item in the enumerated type variable is actually associated with a numeric
code.

50. Differentiate between the expression “++a” and “a++”?


With ++a, the increment happens first on variable a, and the resulting value
is used. This is called as prefix increment.
With a++, the current value of the variable will be used in an operation. This is
called as postfix increment.

You might also like