90)
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'.
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?
Answer:
i. ANSI C notation
ii. Kernighan & Ritche notation
93)
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)
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)
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'.
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'.