81) main(int
argc, char **argv)
{
printf("enter the character");
getchar();
sum(argv[1],argv[2]);
}
sum(num1,num2)
int num1,num2;
{
return num1+num2;
}
Answer:
Compiler
error.
Explanation:
argv[1]
& argv[2] are strings. They are passed to the function sum without
converting it to integer values.
82) #
include <stdio.h>
int one_d[]={1,2,3};
main()
{
int *ptr;
ptr=one_d;
ptr+=3;
printf("%d",*ptr);
}
Answer:
garbage
value
Explanation:
ptr
pointer is pointing to out of the array range of one_d.
83) #
include<stdio.h>
aaa() {
printf("hi");
}
bbb(){
printf("hello");
}
ccc(){
printf("bye");
}
main()
{
int (*ptr[3])();
ptr[0]=aaa;
ptr[1]=bbb;
ptr[2]=ccc;
ptr[2]();
}
Answer:
bye
Explanation:
ptr is
array of pointers to functions of return type int.ptr[0] is assigned to address
of the function aaa. Similarly ptr[1] and ptr[2] for bbb and ccc respectively.
ptr[2]() is in effect of writing ccc(), since ptr[2] points to ccc.
85) #include<stdio.h>
main()
{
FILE *ptr;
char i;
ptr=fopen("zzz.c","r");
while((i=fgetch(ptr))!=EOF)
printf("%c",i);
}
Answer:
contents
of zzz.c followed by an infinite loop
Explanation:
The
condition is checked against EOF, it should be checked against NULL.
86) main()
{
int i =0;j=0;
if(i && j++)
printf("%d..%d",i++,j);
printf("%d..%d,i,j);
}
Answer:
0..0
Explanation:
The value
of i is 0. Since this information is enough to determine the truth value of the
boolean expression. So the statement following the if statement is not
executed. The values of i and j remain
unchanged and get printed.
87) main()
{
int i;
i = abc();
printf("%d",i);
}
abc()
{
_AX = 1000;
}
Answer:
1000
Explanation:
Normally
the return value from the function is through the information from the
accumulator. Here _AH is the pseudo global variable denoting the accumulator.
Hence, the value of the accumulator is set 1000 so the function returns value
1000.
88) int
i;
main(){
int t;
for (
t=4;scanf("%d",&i)-t;printf("%d\n",i))
printf("%d--",t--);
}
//
If the inputs are 0,1,2,3 find the o/p
Answer:
4--0
3--1
2--2
Explanation:
Let
us assume some x= scanf("%d",&i)-t the values during execution
will be,
t i
x
4 0
-4
3 1
-2
2 2
0
89) main(){
int a= 0;int b = 20;char x =1;char y =10;
if(a,b,x,y)
printf("hello");
}
Answer:
hello
Explanation:
The comma
operator has associativity from left to right. Only the rightmost value is
returned and the other values are evaluated and ignored. Thus the value of last
variable y is returned to check in if. Since it is a non zero value if becomes
true so, "hello" will be printed.
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.
No comments:
Post a Comment