Академический Документы
Профессиональный Документы
Культура Документы
If any pointer is pointing the memory address of any variable but after some
variable has deleted from that memory location while pointer is still pointing such
memory location. Such pointer is known as dangling pointer and this problem is
known as dangling pointer problem.
Initially:
Later:
#include<stdio.h>
int *call();
int main(){
int *ptr;
ptr=call();
fflush(stdin);
printf("%d",*ptr);
return 0;
}
int * call(){
return &x;
}
Example:
int main(){
int *ptr;
printf("%u\n",ptr);
printf("%d",*ptr);
return 0;
}
Array of pointers in c:
int main(){
float a=0.0f,b=1.0f,c=2.0f;
float * arr[]={&a,&b,&c};
b=a+c;
printf("%f",arr[1]);
return 0;
}
Prototype of a function
#include<stdio.h>
int main(){
int i=10;
int *ptr=&i;
*ptr=(int *)20;
printf("%d",i);
return 0;
}
Output: 10
Explanation: Here function is function whose parameter
is void data type and return type is pointer to int
data type.
x=(*ptr)()
=> x=(*&functyion)() //ptr=&function
=> x=function() //From rule *&p=p
=> x=&a
So, *x = *&a = a =10
int find(char);
int(*function())(char);
int main(){
int x;
int(*ptr)(char);
ptr=function();
x=(*ptr)('A');
printf("%d",x);
return 0;
}
int find(char c){
return c;
}
int(*function())(char){
return find;
}
Output: 65
Explanation: Here function whose name is function which
passing void data type and returning another function
whose parameter is char data type and return type is
int data type.
x=(*ptr)(A)
=> x= (*function ()) (A) //ptr=function ()
//&find=function () i.e. return type of function ()
=> x= (* &find) (A)
=> x= find (A) //From rule*&p=p
=> x= 65
Output: inter.blogspot.com
Explanation: Here call is function whose return type is
pointer to character and one parameter is pointer to
int data type and second parameter is pointer to float
data type and ptr is pointer to such function.
str= str+*i+ (int) (*j)
=c-pointer.blogspot.com + *&a+ (int) (*&b)
//i=&a, j=&b
=c-pointer.blogspot.com + a+ (int) (b)
=c-pointer.blogspot.com +2 + (int) (2.0)
=c-pointer.blogspot.com +4
=inter.blogspot.com
(4) What will be output if you will execute following
code?
Output: cquestionbak
Explanation: Here display is function whose parameter
is pointer to character and return type is also pointer
to character and ptr is its pointer.
struct ABC{
int a;
float b;
char c;
};
int main(){
struct ABC *ptr=(struct ABC *)0;
ptr++;
printf("Size of structure is: %d",*ptr);
return 0;
}
#include "stdio.h"
int main(){
#ifndef NULL
#define NULL 5
#endif
printf("%d",NULL+sizeof(NULL));
}
Output: 2
Pass by reference: In this approach we pass memory
address actual variables in function as a parameter.
Hence any modification on parameters inside the
function will reflect in the actual variable. For
example:
#incude<stdio.h>
int main(){
int a=5,b=10;
swap(&a,&b);
printf("%d %d",a,b);
return 0;
}
void swap(int *a,int *b){
int *temp;
*temp =*a;
*a=*b;
*b=*temp;
}
char (* ptr)[3]
Answer:
Step 1: () and [] enjoys equal precedence. So rule of
associative will decide the priority. Its associative
is left to right so first priority goes to ().
float (* ptr)(int)
Answer:
Assign the priority considering precedence and
associative.
Answer:
Assign the priority considering rule of precedence
and associative.
int ( * ( * ptr ) [ 5 ] ) ( )
Answer:
Assign the priority considering rule of precedence
and associative.
double*(*(*ptr)(int))(double **,char c)
Answer:
Assign the priority considering rule of precedence and
associative.
Answer:
Assign the priority considering rule of precedence and
associative.
Now read it following manner:
int main(){
int x=10;
int far *ptr;
ptr=&x;
printf("%d",sizeof ptr);
return 0;
}
Output: 4
int main(){
int far *near*ptr;
printf("%d %d",sizeof(ptr) ,sizeof(*ptr));
return 0;
}
Output: 4 2
Explanation: ptr is far pointer while *ptr is near
pointer.
int main(){
int far *p,far *q;
printf("%d %d",sizeof(p) ,sizeof(q));
}
Output: 4 4
int main(){
int x=100;
int far *ptr;
ptr=&x;
printf("%Fp",ptr);
return 0;
}
Output: 8FD8:FFF4
Here 8FD8 is segment address and FFF4 is offset address
in hexadecimal number format.
Examples:
(1)What will be output of following c program?
#include "dos.h"
int main(){
int i=25;
int far*ptr=&i;
printf("%X %X",FP_SEG(ptr),FP_OFF(ptr));
}
Example:
int main(){
int i;
char far *ptr=(char *)0xB800FFFA;
for(i=0;i<=10;i++){
printf("%Fp \n",ptr);
ptr++;
}
return 0;
}
Output:
B800:FFFA
B800:FFFB
B800:FFFC
B800:FFFD
B800:FFFE
B800:FFFF
B800:0000
B800:0001
B800:0002
B800:0003
B800:0004
Examples:
int main(){
int far *p=(int *)0X70230000;
int far *q=(int *)0XB0210000;
if(p==q)
printf("Both pointers are equal");
else
printf("Both pointers are not equal");
return 0;
}
int main(){
int far *p=(int *)0X70230000;
int far *q=(int *)0XB0210000;
int near *x,near*y;
x=(int near *)p;
y=(int near *)q;
if(x==y)
printf("Both pointer are equal");
else
printf("Both pointer are not equal");
return 0;
}
#include<stdio.h>
int main(){
signed char c1=130;
signed char c2=-130;
printf("%d %d",c1,c2);
return 0;
}
Frequentlyaskedcprogramsininterview
1. Writeacprogramtocheckgivennumberisperfectnumber
ornot.
while(i<n){
if(n%i==0)
sum=sum+i;
i++;
}
while(i<=r){
f=f*i;
i++;
}
sum=sum+f;
num=num/10;
}
5.Cprogramtocheckanumberisoddoreven.
6. Write a c program to check given number is palindrome
numberornot.
8.Writeacprogramtocheckgivenstringispalindromenumber
or not.
7.Writeacprogramtosolvequadraticequation.
d = b * b - 4 * a * c;
return 0;
}
else if(d==0){
printf("Both roots are equal.\n");
8.WriteacprogramtoprintFibonacciseriesofgivenrange.
for(k=2;k<r;k++){
f=i+j;
i=j;
j=f;
printf(" %ld",j);
}
9.Writeacprogramtogetfactorialofgivennumber.
10.WriteacprogramforFloydstriangle.
printf("FLOYD'S TRIANGLE\n\n");
for(i=1;i<=r;i++){
for(j=1;j<=i;j++,k++)
printf(" %d",k);
printf("\n");
}
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
11.WriteacprogramtoprintPascaltriangle.
printf("Enter the no. of lines: ");
scanf("%d",&line);
for(i=0;i<line;i++){
for(j=0;j<line-i-1;j++)
printf(" ");
for(j=0;j<=i;j++)
printf("%ld ",fact(i)/(fact(j)*fact(i-
j)));
printf("\n");
}
return 0;
}
Sample output:
int main(){
FILE *fp;
char c;
fp = fopen(__FILE__,"r");
do{
c= getc(fp);
putchar(c);
}
while(c!=EOF);
fclose(fp);
return 0;
}
Cprogramwithnumbers
1.Writeacprogramtoreverseanynumber.
2.Writeacprogramtofindoutsumofdigitofgivennumber.
3. Writeacprogramtofindoutpowerofnumber.
while(i<=pow){
sum=sum*num;
i++;
}
4. Write a c program to add two numbers without using
additionoperator.
sum = a - ~b -1;
In c ~ is 1's complement operator. This is equivalent
to:
~a = -b + 1
So, a - ~b -1
= a-(-b + 1) + 1
= a + b 1 + 1
= a + b
5. Writeacprogramtosubtracttwonumberswithoutusing
subtractionoperator.
sum = a + ~b + 1;
6. Write a c program to find largest among three numbers
usingbinaryminusoperator.
7. if(a-b>0 && a-c>0)
8. printf("\nGreatest is a :%d",a);
9. else
10. if(b-c>0)
11. printf("\nGreatest is b :%d",b);
12. else
13. printf("\nGreatest is c :%d",c);
7.Writeacprogramtofindlargestamongthreenumbersusing
conditionaloperator
big=(a>b&&a>c?a:b>c?b:c);
printf("\nThe biggest number is: %d",big);
8.Writeacprogramtofindoutgenericrootofanynumber.
scanf("%d",&num);
printf("Generic root: %d",(x=num%9)?x:9);
Meaning of generic root:
It sum of digits of a number unit we don't get a single
digit. For example:
Generic root of 456: 4 + 5 + 6 = 15 since 15 is two
digit numbers so 1 + 5 = 6
So, generic root of 456 = 6
9.Writeacprogramtofindoutprimefactorofgivennumber.
10.WriteacprogramtofindoutNCRfactorofgivennumber.
ncr=fact(n)/(fact(r)*fact(n-r));
11.Howtoconvertstringtointwithoutusinglibraryfunctions
inc
#include<stdio.h>
int stringToInt(char[] );
int main(){
char str[10];
int intValue;
intValue = stringToInt(str);
return 0;
}
while(str[i]!='\0'){
if(str[i]< 48 || str[i] > 57){
printf("Unable to convert it into
integer.\n");
return 0;
}
else{
sum = sum*10 + (str[i] - 48);
i++;
}
return sum;
}
Sample output:
Enter any integer as a string: 123
Equivalent integer value: 123
Exampleofrecursionincprogramming
#include<stdio.h>
#define MAX 100
char* getReverse(char[]);
int main(){
char str[MAX],*rev;
rev = getReverse(str);
if(*str){
getReverse(str+1);
rev[i++] = *str;
}
return rev;
}
Sample output:
L.C.MandH.C.F.
1. WriteacprogramtofindoutL.C.M.oftwonumbers.
2. #include<stdio.h>
3. int main(){
4. int n1,n2,x,y;
5. printf("\nEnter two numbers:");
6. scanf("%d %d",&n1,&n2);
7. x=n1,y=n2;
8. while(n1!=n2){
9. if(n1>n2)
10. n1=n1-n2;
11. else
12. n2=n2-n1;
13. }
14. printf("L.C.M=%d",x*y/n1);
15. return 0;
16. }
17.
2. WriteacprogramtofindoutH.C.F.oftwonumbers.
3. #include<stdio.h>
4. int main(){
5. int n1,n2;
6. printf("\nEnter two numbers:");
7. scanf("%d %d",&n1,&n2);
8. while(n1!=n2){
9. if(n1>=n2-1)
10. n1=n1-n2;
11. else
12. n2=n2-n1;
13. }
14. printf("\nGCD=%d",n1);
15. return 0;
16. }
17.
3.WriteacprogramtofindoutG.C.D.oftwonumbers.
Swapping
1.Writeacprogramtoswaptwonumbers.
2.Writeacprogramtoswaptwonumberswithoutusingthird
variable.
3.Writeacprogramforswappingoftwoarrays.
4.Writeacprogramforswappingoftwostring.
Conversion(NumberSystem)
1. Writeacprogramtoconvertdecimalnumbertobinary
number.
2. quotient = decimalNumber;
3.
4.
5. while(quotient!=0){
6.
7. binaryNumber[i++]= quotient % 2;
8.
9. quotient = quotient / 2;
10.
11. }
12.
2. Write a c program to convert decimal number to octal
number.
while(quotient!=0){
octalNumber[i++]= quotient % 8;
quotient = quotient / 8;
}
hexadecimalNumber[i++]= temp;
quotient = quotient / 16;
}
4.Writeacprogramtoconvertoctalnumbertobinarynumber.
5. Write a c program to convert octal number to decimal
number.
6.Writeacprogramtoconvertoctalnumbertohexadecimal
number.
7.Writeacprogramtoconverthexadecimalnumbertobinary
number.
scanf("%s",hexaDecimal);
return 0;
}
8.Writeacprogramtoconverthexadecimalnumbertooctal
number.
9.Writeacprogramtoconverthexadecimalnumbertodecimal
number.
10.Writeacprogramtoconvertbinarynumbertooctalnumber.
11. Write a c program to convert binary number to decimal
number.
13. Write a c program to convert binary number to
hexadecimal number.
13.C program for addition of binary numbers .
14.Cprogramformultiplicationoftwobinarynumbers.
15.Cprogramfractionalbinaryconversionfromdecimal.
16.C program for fractional decimal to binary fraction
conversion.
17. C program to convert decimal number to roman.
18. C program to convert roman number to decimal
number.
19.Cprogramtoconverteachdigitsofanumberinwords
14. while(number){
15.
16. digit = number %10;
17. number = number /10;
18.
19. switch(digit){
20. case 0: word[i++] = "zero"; break;
21. case 1: word[i++] = "one"; break;
22. case 2: word[i++] = "two"; break;
23. case 3: word[i++] = "three"; break;
24. case 4: word[i++] = "four"; break;
25. case 5: word[i++] = "five"; break;
26. case 6: word[i++] = "six"; break;
27. case 7: word[i++] = "seven"; break;
28. case 8: word[i++] = "eight"; break;
29. case 9: word[i++] = "nine"; break;
30.
31. }
32. }
33.
20.Cprogramtoconvertcurrencyornumberinword.
Conversion(Unit)
1.Cprogramforunitconversion.
String
1.Writeacprogramtoconvertthestringfromuppercaseto
lowercase.
2.Writeacprogramtoconvertthestringfromlowercaseto
uppercase.
3.Writeacprogramtodeletetheallconsonantsfromgiven
string.
4.Writeacprogramtocountthedifferenttypesofcharactersin
givenstring.
5.Writeacprogramtosortthecharactersofastring.
6.Writeacprogramforconcatenationtwostringswithoutusing
string.hheaderfile.
7.Writeacprogramtofindthelengthofastringusingpointer.
8.Writeacprogramwhichprintsinitialofanyname.
9.Writeacprogramtoprintthestringfromgivencharacter.
10. Write a c program to reverse a string
11. Reverse a string using recursion in c
12. String concatenation in c without using strcat
13. How to compare two strings in c without using strcmp
14. String copy without using strcpy in c
15.ConvertastringtoASCIIinc
Matrix
1.Writeacprogramforadditionoftwomatrices.
2.Writeacprogramforsubtractionoftwomatrices
3.Writeacprogramformultiplicationoftwomatrices.
4.Writeacprogramtofindoutsumofdiagonalelementofa
matrix.
5. Write a c program to find out transport of a matrix.
6. Write a c program for scalar multiplication of matrix.
7. C program to find inverse of a matrix
8. Lower triangular matrix in c
9. Upper triangular matrix in c
10. Strassen's matrix multiplication program in c
11.Cprogramtofinddeterminantofamatrix
File
1.Writeacprogramtoopenafileandwritesometextandclose
its.
2.Writeacprogramtodeleteafile.
3.Writeacprogramtocopyafilefromonelocationtoother
location.
4.Writeacprogramtocopyadataoffiletootherfile.
5.Writeacprogramwhichdisplaysourcecodeasaoutput.
6.Writeacprogramwhichwritesstringinthefile.
7.Writeacprogramwhichreadsstringfromfile.
8.Writeacprogramwhichwritesarrayinthefile.
9.Writeacprogramwhichconcatenatetwofileandwriteit
third file.
10. Write a c program to find out size of any file.
11. Write a c program to know type of file.
12. Write a c program to know permission of any file.
13.Writeacprogramtoknowlastdateofmodificationofany
file.
14.Writeacprogramtofindsizeanddriveofanyfile.
Complexnumber
1.Complexnumbersprograminc
2. Write a c program for addition and subtraction of two
complexnumbers.
3. Write a c program for multiplication of two complex
numbers.
4.Writeacprogramfordivisiontwocomplexnumbers.
Series
1.Writeacprogramtofindoutthesumofseries1+2+.+
n.
2.Writeacprogramtofindoutthesumofseries1^2+2^2+
.+n^2.
3.Writeacprogramtofindoutthesumofseries1^3+2^3+
.+n^3.
4.WriteacprogramtofindoutthesumofgivenA.P.
5.WriteacprogramtofindoutthesumofgivenG.P.
6.WriteacprogramtofindoutthesumofgivenH.P.
7.Writeacprogramtofindoutthesumofseries1+2+4+8
toinfinity.
Array
1.Writeacprogramtofindoutlargestelementofanarray.
2.Writeacprogramtofindoutsecondlargestelementofan
unsortedarray.
3.Writeacprogramtofindoutsecondsmallestelementofan
unsortedarray.
4.Writeacprogramwhichdeletestheduplicateelementofan
array.
5.Writeacprogramfordeleteanelementatdesiredpositionin
anarray.
6.Writeacprogramforinsertanelementatdesiredpositionin
an array.
7.Cprogramtofindlargestandsmallestnumberinanarray
Sorting
1.Writeacprogramforbubblesort.
2.Writeacprogramforinsertionsort.
3.Writeacprogramforselectionsort.
4.Writeacprogramforquicksort.
5.Writeacprogramforheapsort.
6.Writeacprogramformergesort.
7.Writeacprogramforshellsort.
Recursion
1.Writeacprogramtofindthesizeofintwithoutusingsizeof
operator.
2.Writeacprogramtofindthesizeofdoublewithoutusing
sizeofoperator.
3.Writeacprogramtofindthesizeofstructurewithoutusing
sizeofoperator.
4.Writeacprogramtofindthesizeofunionwithoutusing
sizeofoperator.
Usingpointer
1.Writeacprogramforconcatenationtwostringusingpointer.
Searching
1.Writeacprogramforlinearsearch.
2.Writeacprogramforbinarysearch.
3.Writeacprogramforbinarysearchusingrecursion.
Areaandvolume
1.Writeacprogramtofindtheareaofcircle.
2. Write a c program to find the area of any triangle.
3.Write a c program to find the area of equilateral triangle.
4.Writeacprogramtofindtheareaofrightangledtriangle.
5.Writeacprogramtofindtheareaofrectangle.
6. Write a c program to find the area of trapezium.
7.Write a c program to find the area of rhombus.
8.Writeacprogramtofindtheareaofparallelogram.
9.Writeacprogramtofindthevolumeandsurfaceareaof
cube.
10.Writeacprogramtofindthevolumeandsurfaceareaof
cuboids.
11.Write a c program to find the volume and surface area
ofcylinder.
12.Writeacprogramtofindthesurfaceareaandvolumeofa
cone.
13.Writeacprogramtofindthevolumeandsurfaceareaof
sphere.
14.Writeacprogramtofindtheperimeterofacircle,rectangle
and triangle.
Other
1.CprogramforATMtransaction.
2. Write a c program which passes one dimension array to
function.
3. Write a c program which passes two dimension array to
function.
4.Writeacprogramwhichtakespasswordfromuser.
5.Writeascanffunctionincwhichacceptsentencefromuser.
6.Writeascanffunctionincwhichacceptparagraphfromuser.
7.Writeacprogramtoprinttheallprimenumbersbetween1to
300.
8. Write a c program which passes structure to function.
9. Palindrome in c without using string function
10. How to get the ASCII value of a character in c
11. C program to get last two digits of year
12.Cprogramwithoutmainfunction