0% found this document useful (0 votes)
48 views10 pages

Question Set 19 - C

The document contains examples of C code snippets demonstrating the use of pointers, arrays, structures, unions and typedefs. It also shows how to pass pointers to functions and return pointers from functions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views10 pages

Question Set 19 - C

The document contains examples of C code snippets demonstrating the use of pointers, arrays, structures, unions and typedefs. It also shows how to pass pointers to functions and return pointers from functions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

1. #include<stdio.h> 8.

int main(){
int main(){ char far *p,*q;
int a = 320; printf("%d %d",sizeof(p),sizeof(q));
char *ptr; }
ptr =( char *)&a; 9. int main(){
printf("%d ",*ptr); int a = 10;
} void *p = &a;
2. int main(){ int *ptr = p;
void (*p)(); printf("%u",*ptr);
int (*q)(); return 0;
int (*r)(); }
p = clrscr; 10. int main(){
q = getch; int register a;
r = puts; scanf("%d",&a);
(*p)(); printf("%d",a);
(*r)(" AIEMD "); return 0;
(*q)(); }
} //if a=25
3. int main(){ 11. int main(){
int i = 3; char arr[10];
int *j; arr = "world";
int **k; printf("%s",arr);
j=&i; return 0;
k=&j; }
printf("%u%u%d ",k,*k,**k); 12. int main(){
} int a,b,c,d;
4.int main(){ char *p = ( char *)0;
char far *p =(char far*)0x55550005; int *q = ( int *q)0;
char far *q =(char far*)0x53332225; float *r = ( float *)0;
*p = 80; double *s = 0;
(*p)++; a = (int)(p+1);
printf("%d",*q); b = (int)(q+1);
} c = (int)(r+1);
5. int main(){ d = (int)(s+1);
char *ptr1 = NULL; printf("%d %d %d %d",a,b,c,d);
char *ptr2 = 0;
strcpy(ptr1," c"); }
strcpy(ptr2,"questions"); 13. int main(){
printf("\n%s %s",ptr1,ptr2); int a = 5,b = 10,c;
} int *p = &a,*q = &b;
c = p - q;
printf("%d" , c);
6. int main(){ }
int huge *a =(int huge *)0x59990005; 14. unsigned long int (* avg())[3]{
int huge *b =(int huge *)0x59980015; static unsigned long int arr[3] =
if(a == b) {1,2,3};
printf("power of pointer"); return &arr;
else }
printf("power of c"); int main(){
} unsigned long int (*ptr)[3];
7. int main(){ ptr = avg();
register a = 25; printf("%d" , *(*ptr+2));
int far *p; return 0;
p=&a; }
printf("%d ",*p);
}
printf("%u",ptr);
15. int main(){ }
int * p , b; 22. typedef struct abc{
b = sizeof(p); int far*a;
printf("%d" , b); double b;
unsigned char c;
return 0; }ABC;
}
16. int main(){ int main(){
int i = 5 , j;
int *p , *q; ABC *ptr=(ABC *)1000;
p = &i;
q = &j; ptr=ptr+2;
j = 5; printf("%u",ptr);
printf("%d %d",*p,*q); }
} 23. typedef union abc{
char near*a;
17. int main(){ long double d;
int i = 5; unsigned int i;
int *p; }ABC;
p = &i;
printf(" %u %u", *&p , &*p); int main(){
}
ABC *ptr=(ABC *)1000;
18. int main(){
ptr=ptr-4;
int x=25; printf("%u",ptr);
int *ptr=&x; //statement one }
int **temp=&ptr; //statement two 24. int main(){
printf(“%d %d %d”.x.*ptr,**temp); int i = 100;
} printf("value of i:%d addresss of i :
19. int main(){ %u",i,&i);
i++;
int *ptr=( int *)1000; printf("\nvalue of i : %d addresss of i :
%u",i,&i);
ptr=ptr+1; }
printf("%u",ptr);
25. int main(){
} char far *p =(char far *)0x55550005;
20. int main(){ char far *q =(char far *)0x53332225;
*p = 25;
double *p=(double *)1000; (*p)++;
printf("%d",*q);
p=p+3; }
printf("%u",p);
} 26. int main(){
21. int main(){ int i = 3;
int *j;
float array[5]={1.1f,2.2f,3.3f}; int **k;
float(*ptr)[5]; j = &i;
k = &j;
ptr=&array; printf("%u %u %u",i,j,k);
printf("%u",ptr); }

ptr=ptr+1;
27. float * display(int,int); printf("%u %u\n",p,q);
int max=5; printf("Difference=%d",q-p);
int main(){
float *(*ptr)(int,int); }
ptr=display;
(*ptr)(2,2);
printf("%u",ptr); 33. int main(){
ptr=ptr+1; int i=5;
printf("%u",ptr); int *p=&i;
} int *q=(int *)2;
float * display(int x,int y){ printf("%d",p+q);
float f; }
f=x+y+max; 34. int main(){
return &f; int near*p=(int near*)0x0A0005555;
} int near*q=(int near*)0x0A2115555;
if(p==q)
28. int main(){ printf("Equql");
int *p=(int *)1000; else
int *temp; printf("Notequal");
temp=p; }
p=p+2; 35. int main(){
printf("%u %u\n",temp,p); int far*p=(int far*)0x0A0005555;
printf("difference= %d",p-temp); int far*q=(int far*)0x0A2115555;
} if(p==q)
29. int main(){ printf("Equql");
float *p=(float *)1000; else
float *q=(float *)2000; printf("Not equal");
printf("Difference= %d",q-p); }
} 36. int main(){
30. struct abc{ int huge*p=(int huge*)0x0A0005555;
signed char c; int huge*q=(int huge*)0x0A2113445;
short int i; if(p==q)
long double l; printf("Equql");
}; else
int main(){ printf("Not equal");
struct abc *p,*q; }
p=(struct abc *)1000; 37. int main(){
q=(struct abc *)2000; int i=5,j=10;
printf("Difference= %d",q-p); int *p=&i;
} int *q=&j;
31. typedef union xxx{ printf("%d",p|q);
char far * c; }
const volatile i; 38. int main(){
long int l; int near*far*huge* p;
}XXX; printf("%d",sizeof(p));
int main(){ printf(" %d",sizeof(*p));
XXX *p,*q; printf(" %d",sizeof(**p));
p=(XXX *)1000; }
q=(XXX *)2000; 39. int * function();
printf("Difference= %d",q-p); int main(){
} auto int *x;
32. int main(){ int *(*ptr)();
const volatile array[4]={0}; ptr=&function;
const volatile(*p)[4]=&array; x=(*ptr)();
const volatile(*q)[4]=&array; printf("%d",*x);
q++; }
q++;
int *function(){ int(*array[3])();
static int a=10; int(*(*ptr)[3])();
return &a; int main(){
} array[0]=display;
40. int find(char); array[1]=getch;
int(*function())(char); ptr=&array;
int main(){ printf("%d",(**ptr)());
int x; (*(*ptr+1))();
int(*ptr)(char); }
ptr=function(); int display(){
x=(*ptr)('A'); int x=5;
printf("%d",x); return x++;
} }
int find(char c){ 44. int main(){
return c; char
} *array[4]={"c","c++","java","sql"};
int(*function())(char){ char *(*ptr)[4]=&array;
return find; printf("%s ",++(*ptr)[2]);
} }
45. struct address{
41. char * call(int *,float *); char *name;
int main(){ char street[10];
intpin;
char *string; }cus={"A.Kumar","H-2",456003},*p=&cus;
int a=2; int main(){
float b=2.0l;
char *(*ptr)(int*,float *); printf("%s %s",p->name,(*p).street);
}
ptr=&call;
string=(*ptr)(&a,&b);
printf("%s",string); 46.
} 8. The operator used to get value at address stored in a pointer
char *call(int *i,float *j){ variable is
static char *str=" AIEMD "; A.* B. &
C. && D. ||
str=str+*i+(int)(*j);
return str; 47.
} What is (void*)0?
A.Representation of NULL pointer
42. char far * display(char far*); B. Representation of void pointer
int main(){ C. Error
D.None of above
char far* string="AIEMD";
char far *(*ptr)(char far *); 48.
Can you combine the following two statements into one?
ptr=&display;
string=(*ptr)(string); char *p;
printf("%s",string); p = (char*) malloc(100);
} A.char p = *malloc(100);
char far *display(char far * str){ B. char *p = (char) malloc(100);
char far * temp=str; C. char *p = (char*)malloc(100);
temp=temp+13; D.char *p = (char *)(malloc*)(100);
*temp='\0';
return str; 49.
} How many bytes are occupied by near, far and huge pointers
43. int display(); (DOS)?
A.near=2 far=4 huge=4 B. near=4 far=8 huge=8 p2+=1;
C. near=2 far=4 huge=8 D.near=4 far=4 huge=8 p3+=2;

50. printf("%s",(***ptr[0])[2]);
If a variable is a pointer to a structure, then which of the
following operator is used to access data members of the
structure through the pointer variable? return 0;
A.. B. & }
C. * D.->
57. #include<stdio.h>
51.
What would be the equivalent pointer expression for referring int main(){
the array element a[i][j][k][l]
A. ((((a+i)+j)+k)+l) B. *(*(*(*(a+i)+j)+k)+l) int x=10;
C. (((a+i)+j)+k+l) D. ((a+i)+j+k+l) int far *ptr;

ptr=&x;
52. printf("%d",sizeof(ptr));
A pointer is
A.A keyword used to create variables
B. A variable that stores address of an instruction return 0;
C. A variable that stores address of other variable }
D.All of the above
53. #include<stdio.h> 58. #include<stdio.h>
int main(){
char huge * far *p; int main(){
printf("%d %d
%d",sizeof(p),sizeof(*p),sizeof(**p)); int far *near*ptr;
printf("%d%d",sizeof(ptr),sizeof(*ptr
));
return 0;
}
54. #include<stdio.h> return 0;
int main(){ }

double near *p,far *q; 59. #include<stdio.h>


printf("%d %d
%d",sizeof(q),sizeof(p),sizeof(*p)); int main(){

int far *p,far *q;


return 0; printf("%d %d",sizeof(p) ,sizeof(q));
}
return 0;
55. What will be physical address of huge }
address 0X59994444? 60. #include<stdio.h>
int main(){
56. #include<stdio.h>
int main(){ int i;
char far *ptr=(char *)0xB800FFFA;
stati char
*s[3]={"math","phy","che"}; for(i=0;i<=10;i++){
typedef char *( *ppp)[3]; printf("%Fp \n",ptr);
static ppp p1=&s,p2=&s,p3=&s; ptr++;
char*(*(*array[3]))[3]={&p1,&p2,&p3}; }
char * (*(*(*ptr)[3]))[3]=&array;
printf("%p",a);
return 0;
}
return 0;
}

61. #include<stdio.h> 65. #include <stdio.h>

int main(){ int main(){


if(!NULL)
int far *p=(int *)0X70230000; printf("I know preprocessor");
int far *q=(int *)0XB0210000; else
int near *x,near*y; printf("I don't know preprocessor");

x=(int near *)p; return 0;


y=(int near *)q; }

if(x==y) 66. #include <string.h>


printf("Both pointer are equal"); #include <stdio.h>
else
printf("Both pointer are not equal"); int main(){
return 0;
} char *str=NULL;

strcpy(str,"c-pointer.blogspot.com");
62. #include<stdio.h> printf("%s",str);

int main(){
return 0;
int x=25; }
int near* ptr;
67. #include<stdio.h>
ptr=&x; int main(){
printf(“%d”,sizeof(ptr));
char c='A';
int i=4;
return 0; void *p;
} char *q=&c;
int *r=&i;
63. #include<stdio.h> p=q;
printf("%c",*(char *)p);
int main(){ p=r;
printf("%d",*(int*)p);
int near* near * ptr;
printf(“%d”,sizeof(ptr),sizeof(*ptr)); return 0;
}
68. #include<stdio.h>
return 0; #include <malloc.h>
int main(){

} void *ptr;
64. #include<stdio.h> printf("%d",*ptr);

int main(){
return 0;
int a=12; }
printf(“%d”,*(a++)+i));
}
69.#include <string.h>
#include<stdio.h> 74.

int main(){
void *ptr;
printf("%d",sizeof(ptr));

return 0;
}

70. main()
{ char *p="hai friends",*p1;
p1=p;
while(*p!='\0') ++*p++;
printf("%s %s",p,p1);
}

71. int I, b[]={1,2,3,4,5}, *p;


p=b;
++*p;
printf(“%d”,*p);
p+=2;
printf(“%d”,*p);
72. int fn(void)
void print(int , int(*)());
int i=10;
main()
{
int i=20;
printf(i,fn);
}
void print (int i,int (*fn() ) )
{
printf(“%d”,(*fn() ) );
}

int fn(void)
{
return (i-=5);
}

73. main()
{
void pa(int *a,int n)
it arr[5]={1,2,3,4,5};
pa(arr,5);
}

void pa(int *a, int n)


{
int i;
for(i=0;i<n;i++)
1. Main() *q=’M’; // Works Strcpy(p,n);
{ q=”Bye”; // Error Name[i]=p;
Char s1[]=”Hello”; }
Char s2[10]; 7. const char *const q=”Hello”; // pointer }
Char *p=”Good Morning”; is fixed string is fixed./
Char *q; *q=’M’; // Error.
s2=s1;//ERROR q=”Bye”; // Error. 10. void main()
q=p;//Works {
} int a[]={0,11,2,3,4,55,6};
int *i,*j;
2. Main() i=&a[1];
{ 8. Main() j=&a[5];
Char s1[]=”Hello”; { printf(“%d %d”,j-i,*j-*i);
Char *p=”Good Morning”; Char *name[6]; //Array of pointers to }
s1=”Bye”//Error string( 2-dimensional array of characters ) Ans: 4,because j & I are pointing to
p=”Bye”;//Works int i; locations that are 4 integers part.
} for(i=0;i<=5;i++) *j-*i=44
{
3. Char *q=”Hello”; // pointer is Printf(“\n Enter name”); 11. a[i],*(a+i), *(i+a) i[a] all notations
variable, So is string./ Scanf(“%s”,nami[i]); are same.( For one-dimensional)
*q=’M’; // Works } a[2][1] *(a[2]+1) *( *(a+2) +1) all
q=”Bye”; // Works } notations are same.( For Two-
dimensional)
4. const char *q=”Hello”; // string is This program does not work: when we are
fixed pointer is not./ declaring the array it is containing i) void main()
*q=’M’; // Error garbage value. {
q=”Bye”; // Works 9. #include”alloc.h” int i=1;
Char *name[6]; while(i<=32767)
5. char const *q=”Hello”; // string is fixed Char n[50]; {
pointer is not./ Int len,I;
printf(“%d”,i);
*q=’M’; // Error Char *p;
i=i+1;
q=”Bye”; // Works {
Printf(“\n enter the string”); }
Ans: Indefinite loop
Scanf(“%s”,n);
12. main()
6. char *const q=”Hello”; // pointer is Len=strlen(n);
{
fixed string is not./ p=malloc(len+1);
int a=10,b=20;
Swap(a,b); } Float *j,*k;
printf(“%d %d”,a,b); J=a;
} 16. main() K=a+4;
Swap(int a,int b) { J=j*2;
{ int i=-5,j=-2; K=k/2;
int t; fun(I,&j); Printf(“%f%f”,*j,*k);
t=a; printf(“%d %d”,I,j); }
a=b; } Error line no7 & 8.
b=t;
} fun(int I,int *j) Expression Meaning
{ int *p p is an integer pointer.
Output=a=10,b=20; i=i* i;
13. main() *j=*j * *j; int (*p)[3][4] p is a pointer to a 2 D array.
{ }
int a=10,b=20; Output= i=-5,j=4; int p[][3][4] p is a pointer to a 2 D array.
Swap(&a,&b);
printf(“%d %d”,a,b); 20. Main()
} {
17. Main() Int a[25];
Swap(int *a,int *b) { A[0]=100;
{ Printf(“%d A[24]=300;
int t; %d”,sizeof(NULL),sizeof(“”)); Printf(“%d----%d”,*n,*(n+24)+*(n+0));
t=*a; } }
*a=*b; Output= 2 1; Output= 100 300
*b=t; Because NULL define in “stdio.h” and
} “stddef.h”as #define NULL 0 and 0 is int 21. main()
then size is 2, and “” is ‘\0’ char then size {
Output=a=20,b=10; is 1; int b[]={10,20,30,40,50};
14. main() 18. Main() int I,*K;
{ { K=&b[4]-4;
int *p; Int *c; for(i=0;i<=4;i++)
int *fun();/*prototype declaration*/ C= check(10,20); {
p=fun(); Printf(“%u”,c); printf(“%d”,*k);
printf(“\n%u”,p); } K++;
printf(“%d”,*p); Check(int I,it j) }
} {
Int *p,*q;
int *fun() P=&I; Output= 10 20 30 40 50
{ Q=&j; 22. Main()
int i=10; If(i>45) {
return (&i); Return(p); Char a[]=”Visual c++”;
} Else Char *b=”Visual c++”;
Return(q); Printf(“%d %d
15.main() } “,sizeof(a),sizeof(b));
{ Error; Printf(“%d %d “,sizeof(*a),sizeof(*b));
int *p; Because function is int and return is }
int *fun();/*prototype declaration*/ address. Output: 11 2
p=fun(); *** Note: never work out: 1 1
printf(“\n%u”,p); 1) addition of two pointer. The array a is report to be of 11 byte
printf(“%d”,*p); 2) Multiplying a pointer with a because there is a ‘\0’ sitting at the end.
} number. And b is pointer hence its size is 2. *a and
3) Dividing a pointer with a *b both is character ‘V’.
int *fun() number. 23. int a[]={2,4,6,8,10};
{ 19. Main() int i;
static int i=10; { for(i=0;i<=4;i++)
return (&i); Float a[]={13.24,1.5,2.3,5.4,3.2}; {
*(a+i)=a[i] + i[a]; { Output: shaw
printf(“%d”,,*(a+i)); Int I;
} For(i=0;i<=4;i++) Page:154
{
Output: 4,8,12,16,20 *b=*b+1; 29. printf(“%c”,”abcdefgh”[4]);
24. main() b++; Output:e
{ }
int a[]={1,2,3,4,5},b=2,i; } 30. main()
for(i=0;i<5;i++) Output: 7 6 5 4 3 {
{ Page =99; Char s1[]=”Hello”;
F(a[i],&b); Char s2[]=”Hello”;
printf(“\n %d------%d”,a[i],b); If(s1= =s2)
} 26. main() Printf(“Equal.”);
} { Else
F(int x, int *y) Int a[]={0,1,2,3,4}; Printf(“UnEqual.”);
{ Int I,*p; }
x=*(y)+=2; For(p=a,i=0;p+i<=a+4;p++,i++) Output: Uneqal.
} Pri ntf(“%d”,*(p+i));
Output: 1 4 } 31. Char a[5]=”AIEMD”;
2 6 Printf(“%s”,a);
3 8 Output: 0 2 4
4 10 Page=102. 32. main()
5 12 {
27. Char a[]=”AIEMD”; char *a[]={ “Some Love one”,
25. main() Char *p=”DIATM”; Some Love Two”,
{ a=”DIATM”; “I love one”,
Int a[]={2,3,4,5,6}; p=”AIEMD”; “That is you”};
Change(a); printf(“%s %s”,a,p); printf(“%d %d”,sizeof(a),sizeof(a[1]);
For(i=4;i>=0;i++) }
Printf(“%d”,a[i]); output: Error because we may assign a
} new string to a pointer but not to an array. Output: 8 2
Page:175
Change(int *b) 28. printf(5+”Rabi shaw”);

You might also like