Pages

Tuesday

C Aptitude Questions with Answers Part 18

90)
main(){ 
 unsigned int i; 
 for(i=1;i>-2;i--) 
            printf("c aptitude"); 
} 

Explanation:
i is an unsigned integer. It is compared with a signed value. Since the both types doesn't match, signed is promoted to unsigned value. The unsigned equivalent of -2 is a huge value so condition becomes false and control comes out of the loop.

91) In the following pgm add a stmt in the function fun such that the address of 'a' gets stored in 'j'.
main(){ 
  int * j; 
  void fun(int **); 
  fun(&j); 
 } 
 void fun(int **k) { 
  int a =0; 
  /* add a stmt here*/ 
 } 

Answer:
*k = &a
Explanation:
The argument of the function is a pointer to a pointer.

92) What are the following notations of defining functions known as?
i.      int abc(int a,float b) {
                  /* some code */ 
 } 
ii.    int abc(a,b) 
        int a; float b; {
              /* some code*/ 
            } 

Answer:
i. ANSI C notation
ii. Kernighan & Ritche notation


93)
main() {
char *p; 
p="%d\n"; 
             p++; 
             p++; 
             printf(p-2,300); 
} 

Answer:
300
Explanation:
The pointer points to % since it is incremented twice and again decremented by 2, it points to '%d\n' and 300 is printed.

94)
main(){ 
 char a[100]; 
 a[0]='a';a[1]]='b';a[2]='c';a[4]='d'; 
 abc(a); 
} 
abc(char a[]){ 
                     a++; 
      printf("%c",*a); 
 a++; 
 printf("%c",*a); 
} 

Explanation:
The base address is modified only in function and as a result a points to 'b'
then after incrementing to 'c' so bc will be printed.

95)
func(a,b) 
int a,b; {
 return( a= (a==b) ); 
} 
main() {
int process(),func(); 
printf("The value of process is %d !\n ",process(func,3,6)); 
} 
process(pf,val1,val2) 
int (*pf) (); 
int val1,val2; 
{ 
return((*pf) (val1,val2)); 
 } 

Answer:
The value if process is 0 !
Explanation:
The function 'process' has 3 parameters - 1, a pointer to another function 2 and 3, integers. When this function is invoked from main, the following substitutions for formal parameters take place: func for pf, 3 for val1 and 6 for val2. This function returns the result of the operation performed by the function 'func'. The function func has two integer parameters. The formal parameters are substituted as 3 for a and 6 for b. since 3 is not equal to 6, a==b returns 0. therefore the function returns 0 which in turn is returned by the function 'process'.

No comments:

Post a Comment