Give the output of the programs in each case unless mentioned otherwise :1.
void main()
{
int d=5;
printf("%f",d);
}
Ans: Undefined
2.
void main()
{
int i;
for(i=1;i<4,i++)
switch(i)
case 1: printf("%d",i);break;
{
case 2:printf("%d",i);break;
case 3:printf("%d",i);break;
}
switch(i) case 4:printf("%d",i);
}
Ans: 1,2,3,4
3.
void main()
{
char *s="\12345s\n";
printf("%d",sizeof(s));
}
Ans: 6
4.
void main()
{
unsigned i=1; /* unsigned char k= -1 => k=255; */
signed j=-1; /* char k= -1 => k=65535 */
/* unsigned or signed int k= -1 =>k=65535 */
if(i<j)
printf("less");
else
if(i>j)
printf("greater");
else
if(i==j)
printf("equal");
}
Ans: less
5.
void main()
{
float j;
j=1000*1000;
printf("%f",j);
}
1. 1000000
2. Overflow
3. Error
4. None
Ans: 4
6.� How do you declare an array of N pointers to functions returning
���� pointers to functions returning pointers to characters?
Ans: The first part of this question can be answered in at least
������� three ways:
��� 1. char *(*(*a[N])())();
��� 2. Build the declaration up incrementally, using typedefs:
typedef char *pc;��� /* pointer to char */
typedef pc fpc();��� /* function returning pointer to char */
typedef fpc *pfpc;��� /* pointer to above */
typedef pfpc fpfpc();��� /* function returning... */
typedef fpfpc *pfpfpc;��� /* pointer to... */
pfpfpc a[N]; ������� /* array of... */
��� 3. Use the cdecl program, which turns English into C and vice
��� versa:
������� cdecl> declare a as array of pointer to function returning
����������� pointer to function returning pointer to char
������� char *(*(*a[])())()
��� cdecl can also explain complicated declarations, help with
��� casts, and indicate which set of parentheses the arguments
��� go in (for complicated function definitions, like the one
��� above).
��� Any good book on C should explain how to read these complicated
��� C declarations "inside out" to understand them ("declaration
��� mimics use").
��� The pointer-to-function declarations in the examples above have
��� not included parameter type information. When the parameters
��� have complicated types, declarations can *really* get messy.
��� (Modern versions of cdecl can help here, too.)
7. A structure pointer is defined of the type time . With 3 fields min,sec hours having pointers to intergers.
��� Write the way to initialize the 2nd element to 10.
8. In the above question an array of pointers is declared.
��� Write the statement to initialize the 3rd element of the 2 element to 10.
9.
int f()
void main()
{
f(1);
f(1,2);
f(1,2,3);
}
f(int i,int j,int k)
{
printf("%d %d %d",i,j,k);
}
What are the number of syntax errors in the above?
Ans: None.
10.
void main()
{
int i=7;
printf("%d",i++*i++);
}
Ans: 56
11.
#define one 0
#ifdef one
printf("one is defined ");
#ifndef one
printf("one is not defined ");
Ans: "one is defined"
12.
void main()
{
int count=10,*temp,sum=0;
temp=&count;
*temp=20;
temp=∑
*temp=count;
printf("%d %d %d ",count,*temp,sum);
}
Ans: 20 20 20
13. There was question in c working only on unix machine with pattern matching.
14. what is allocate()
Ans : It allocates and frees memory after use/after getting out of scope
15.
main()
{
static i=3;
printf("%d",i--);
return i>0 ? main():0;
}
Ans: 321
16.
char *foo()
{
char result[100]);
strcpy(result,"anything is good");
return(result);
}
void main()
{
char *j;
j=foo()
printf("%s",j);
}
Ans: anything is good.
17.
void main()
{
char *s[]={ "dharma","hewlett-packard","siemens","ibm"};
char **p;
p=s;
printf("%s",++*p);
printf("%s",*p++);
printf("%s",++*p);
}
Ans: "harma" (p->add(dharma) && (*p)->harma)
"harma" (after printing, p->add(hewlett-packard) &&(*p)->harma)
"ewlett-packard"