Arjun Suresh (talk | contribs) |
Arjun Suresh (talk | contribs) |
||
Line 977: | Line 977: | ||
{ | { | ||
char a[100] = {0}; | char a[100] = {0}; | ||
− | printf("% | + | printf("%zu %zu",sizeof(a),strlen(a)); |
return 0; | return 0; | ||
Line 984: | Line 984: | ||
|type="{}" | |type="{}" | ||
/} | /} | ||
− | { | + | { 100 0 } |
− | {'''What is the output of the following program?''' | + | {'''What is the output of the following program?''' (Assume input is 10) |
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
#include<stdio.h> | #include<stdio.h> |
<quiz display="simple"> {What is the output of this program? <syntaxhighlight lang="c" >
int main() {
- char *ptr;
- char string[] = "How are you?";
- ptr = string;
- ptr += 4;
- printf("%s",ptr);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) How are you?
+(b) are you?
-(c) are
-(d) No output
{ Which of the following will print the value 2 for the above code? <syntaxhighlight lang="c">
int main() {
- int a[10][20][30] = {0};
- a[5][2][1] = 2;
- return 0;
} </syntaxhighlight> |type="()" /} -(a) printf("%d",*(((a+5)+2)+1));
-(b) printf("%d",***((a+5)+2)+1);
+(c) printf("%d",*(*(*(a+5)+2)+1));
-(d) None of these
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 5;
- int b = ++a * a++;
- printf("%d ",b);
- return 0;
} </syntaxhighlight> |type="()" /} -(a)25
-(b) 30
-(c) 36
+(d) Undefined Behavior
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 5;
- switch(a)
- {
- default:
- a = 4;
- case 6:
- a--;
- case 5:
- a = a+1;
- case 1:
- a = a-1;
- }
- printf("%d \n",a);
- return 0;
} </syntaxhighlight> |type="()" /} +(a) 5
-(b) 4
-(c) 3
-(d) None of these
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 2,b = 5;
- a = a^b;
- b = b^a;
- printf("%d %d",a,b);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 5 2
-(b) 2 5
-(c) 7 7
+(d) 7 2
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a[][3] = {1, 2, 3, 4, 5, 6};
- int (*ptr)[3] = a;
- printf("%d %d ", (*ptr)[1], (*ptr)[2]);
- ++ptr;
- printf("%d %d\n", (*ptr)[1], (*ptr)[2]);
- return 0;
} </syntaxhighlight> |type="()" /} +(a) 2 3 5 6
-(b) 2 3 4 5
-(c) 4 5 0 0
-(d) none of the above
{What is the output of the following program?
<syntaxhighlight lang="c">
void f(char**);
int main() {
- char *argv[] = { "ab", "cd", "ef", "gh", "ij", "kl" };
- f(argv);
- return 0;
} void f(char **p) {
- char *t;
- t = (p += sizeof(int))[-1];
- printf("%s\n", t);
} </syntaxhighlight> |type="()" /} -(a) ab
-(b) cd
-(c) ef
+(d) gh
{What is the output of the following program?
<syntaxhighlight lang="c">
int ripple(int n, ...) {
- int i, j, k;
- va_list p;
- k = 0;
- j = 0;
- va_start(p, n);
- for (; j < n; ++j)
- {
- i = va_arg(p, int);
- k += i;
- }
- va_end(p);
- return k;
} int main() {
- printf("%d\n", ripple(2, 5, 7));
- return 0;
} </syntaxhighlight> |type="()" /} +(a) 12
-(b) 5
-(c) 7
-(d) 15
{What is the output of the following program?
<syntaxhighlight lang="c">
int counter(int i) {
- static int count = 0;
- count = count + i;
- return count;
}
int main() {
- int i, j;
- for (i = 0; i <= 5; i++)
- j = counter(i);
- printf("%d\n", j);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 10
+(b) 15
-(c) 6
-(d) 7
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- const int x = 5;
- const int *ptrx;
- ptrx = &x;
- *ptrx = 10;
- printf("%d\n", x);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 5
-(b) 10
+(c) Compile Error
-(d) Garbage value
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int i;
- i = x*x*x;
- printf("%d",i);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 125
+(b) 13
-(c) 17
-(d) None of above
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- char c=125;
- c=c+10;
- printf("%d",c);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 135
-(b) +INF
+(c) -121
-(d) -8
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int i=10;
- static int x=i;
- if(x==i)
- printf("Equal");
- else if(x>i)
- printf("Greater");
- else
- printf("Lesser");
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Equal
-(b) Greater
-(c) Lesser
+(d) Compile Error
{Consider the following code segment:
<syntaxhighlight lang="c">
int *f1() {
- int x = 10;
- return &x;
} int *f2() {
- int *ptr;
- *ptr = 10;
- return ptr;
} int *f3() {
- int *ptr;
- ptr = (int*) malloc(sizeof (*ptr));
- return ptr;
} </syntaxhighlight> Which of these functions uses pointers incorrectly? |type="()" /} +(a) f3 only
-(b) f1 and f3
-(c) f1 and f2
-(d) f1, f2, and f3
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int i = 3;
- int j;
- j = sizeof(++i + ++i);
- printf("i=%d j=%d\n", i, j);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) i=4 j=4
+(b) i=3 j=4
-(c) i=5 j=4
-(d) the behavior is undefined
{ What is the output of the following program?
<syntaxhighlight lang="c">
void f1(int*, int); void f2(int*, int); void (*p[2])(int*, int);
int main() {
- int a = 3;
- int b = 5;
- p[0] = f1;
- p[1] = f2;
- p[0](&a, b);
- printf("%d %d ", a, b);
- p[1](&a, b);
- printf("%d %d\n", a, b);
- return 0;
}
void f1(int *p, int q) {
- int tmp = *p;
- *p = q;
- q = tmp;
} void f2(int *p, int q) {
- int tmp = *p;
- *p = q;
- q = tmp;
} </syntaxhighlight> |type="()" /} +(a) 5 5 5 5
-(b) 3 5 3 5
-(c) 5 3 3 5
-(d) none of the above
{What is the output of the following program?
<syntaxhighlight lang="c">
void e(int);
int main() {
- int a = 3;
- e(a);
- putchar('\n');
- return 0;
} void e(int n) {
- if (n > 0)
- {
- e(--n);
- printf("%d ", n);
- e(--n);
- }
} </syntaxhighlight> |type="()" /} +(a)0 1 2 0
-(b) 0 1 2 1
-(c) 1 2 0 1
-(d) 0 2 1 1
{ Consider the following code segment:
<syntaxhighlight lang="c">
typedef int (*test)(float*, float*);
test tmp;
</syntaxhighlight>
What is the type of tmp?
|type="()"
/} -(a) function taking two pointer-to-float arguments and returning pointer to int
-(b) pointer to int
+(c) pointer to function taking two pointer-to-float arguments and returning int
-(d) none of the above
{ What is the output of the following program?'
<syntaxhighlight lang="c">
int main() {
- char p;
- char buf[10] = {1, 2, 3, 4, 5, 6, 9, 8};
- p = (buf + 1)[5];
- printf("%d\n", p);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 5
-(b) 6
+(c) 9
-(d) none of the above
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- struct node
- {
- int a;
- int b;
- int c;
- };
- struct node s = { 3, 5, 6 };
- struct node *pt = &s;
- printf("%d\n", *((int*)pt+1));
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 3
+(b) 5
-(c) 6
-(d) 7
{What is the output of the following program?
<syntaxhighlight lang="c">
int main(void) {
- char a[5] = { 1, 2, 3, 4, 5 };
- char *ptr = (char*)(&a + 1);
- printf("%d %d\n", *(a + 1), *(ptr - 1));
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Compile Error
-(b) 2 1
+(c) 2 5
-(d) none of the above
{What is the output of the following program?
<syntaxhighlight lang="c">
void foo(int[][3]);
int main(void) {
- int a[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
- foo(a);
- printf("%d\n", a[2][1]);
- return 0;
}
void foo(int b[][3]) {
- ++b;
- b[1][1] = 9;
} </syntaxhighlight> |type="()" /} -(a) 8
+(b) 9
-(c) 7
-(d) none of the above
{Consider the following function:
<syntaxhighlight lang="c">
int foo(int x, int n)
{
- int val = 1;
- if (n > 0)
- {
- if (n % 2 == 1)
- val *= x;
- val *= foo(x * x, n / 2);
- }
- return val;
} </syntaxhighlight>
What function of x and n is computed by foo? |type="()" /} +(a) $x^n$
-(b) $x×n$
-(c) $n^x$
-(d) none of the above
{What is the output of the following program? <syntaxhighlight lang="c">
int main() {
- int a = 0;
- switch(a)
- {
- default:
- a = 4;
- case 6:
- a--;
- case 5:
- a = a+1;
- case 1:
- a = a-1;
- }
- printf("%d \n",a);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 5
-(b) 4
+(c) 3
-(d) 0
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 2;
- if(a == (1,2))
- printf("Hello");
- if(a == 1,2)
- printf("World");
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Hello
-(b) World
+(c) HelloWorld
-(d) Compile Error
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 1,2;
- int b = (1,2);
- if(a == b)
- printf("Equal");
- else
- printf("Not Equal");
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Equal
-(b) Not Equal
-(c) Compiler Dependent
+(d) Compile Error
{What is the output of the following program?
<syntaxhighlight lang="c">
void foo(char *);
int main() {
- char *string = "Hello";
- foo(string);
- printf("%s",string);
- return 0;
}
void foo(char *a) {
- while(*a)
- {
- *a += 1;
- a++;
- }
} </syntaxhighlight> |type="()" /} -(a) Hello
-(b) Ifmmp
-(c) Compile Error
+(d) Segmentation fault
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- char s[] = "Hello World";
- int i = 0;
- while(*(s++))
- i++;
- printf("%d",i);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Segmentation Fault
+(b) Compile Error
-(c) 12
-(d) 0
{What is the output of the following program?
<syntaxhighlight lang="c">
int a = 10; int main() {
- fun();
- fun();
- return 0;
}
int fun() {
- static int a = 1;
- printf("%d ",a);
- a++;
- return 0;
} </syntaxhighlight> |type="()" /} +(a) 1 2
-(b) 1 1
-(c) 10 11
-(d) 10 10
{What is the output of the following program?
<syntaxhighlight lang="c">
int begin() {
- printf("Hello\n");
- return 0;
} </syntaxhighlight> |type="()" /} +(a) Hello
-(b) Link error
-(c) Segmentation fault
-(d) Compiler error
{Consider the following program:
<syntaxhighlight lang="c">
int main() {
- int a[10][20][30]={0};
- printf("%ld",&a+1 - &a);
- return 0;
} </syntaxhighlight> What is the output of this program? |type="{}" /} { 1 }
{Consider the following program:
<syntaxhighlight lang="c">
int main() {
- int a[10][20][30] = {0};
- int *b = a;
- int *c = a+1;
- printf("%ld", c-b);
- return 0;
} </syntaxhighlight> What is the output of this program? (You may ignore compiler warnings) |type="{}" /} { 600 }
{ What is the output of the following program? <syntaxhighlight lang="c">
int* fun();
int main() {
- int *a = fun();
- printf("%d",*a);
- return 0;
} int* fun() {
- int *a =(int*) malloc(sizeof(int));
- *a = 10;
- return a;
} </syntaxhighlight> |type="{}" /} { 10 }
{ What is the output of the following program? <syntaxhighlight lang="c">
int main() {
- int *a = fun();
- printf("%d",a);
- return 0;
} int fun() {
- int a = 10;
- return a;
} </syntaxhighlight> |type="{}" /} { 10 }
{What is the output of the following program? <syntaxhighlight lang="c">
int main() {
- char string[] = "Hello";
- printf("%zu %zu",sizeof(string),strlen(string));
- return 0;
} </syntaxhighlight> |type="{}" /} { 6 5 }
{ What is the output of the following program? <syntaxhighlight lang="c">
int main() {
- float a = 0.5;
- if(a == 0.5)
- printf("Yes");
- else
- printf("No");
- return 0;
} </syntaxhighlight> |type="{}" /} { Yes }
{What is the output of the following program? <syntaxhighlight lang="c">
void foo(char *);
int main() {
- char a[100] = {0};
- printf("%zu %zu",sizeof(a),strlen(a));
- return 0;
} </syntaxhighlight> |type="{}" /} { 100 0 }
{What is the output of the following program? (Assume input is 10)
<syntaxhighlight lang="c">
int main() {
- int a;
- printf("%d",scanf("%d",&a));
- return 0;
} </syntaxhighlight> |type="{}" /} { 1 }
{If the binary equivalent of 5.375 in normalised form is 0100 0000 1010 1100 0000
0000 0000 0000, what will be the output of the following program?
<syntaxhighlight lang="c">
int main() {
- float a=5.375;
- char *p;
- int i;
- p = (char*)&a;
- for(i=0; i<2; i++)
- printf("%x ", (unsigned char)(p[i]^p[3-i]));
- return 0;
} </syntaxhighlight> |type="{}" /} { 40ac }
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- char str[] = {'a','b','c','\0'};
- str[0] -= 32;
- printf("%s",str);
- return 0;
} </syntaxhighlight> |type="{}" /} { Abc }
</quiz>
1. What is the following function doing? <syntaxhighlight lang="c"> int foo(int n) {
- int sum = 0;
- while(n > 0)
- {
- n = n & n-1;
- sum++;
- }
- return sum;
} </syntaxhighlight> Ans:
2. What is the following function doing? <syntaxhighlight lang="c"> int foo(int a, int b) {
- int c = a, d = b;
- while(a != b)
- {
- if(a < b)
- a = a+c;
- else
- b = b+d;
- }
- return a;
} </syntaxhighlight> Ans:
43. What is the following function doing? <syntaxhighlight lang="c"> int foo( int a, int b) {
- int c = a-b;
- c = c&(0x80000000);
- return (!c)*a +(!!c)*b;
} </syntaxhighlight> Ans:
44. What is the following function doing? <syntaxhighlight lang="c"> unsigned fun(unsigned a, unsigned b) {
- int i;
- unsigned j = 0;
- for(i = 0; i < 32; i++)
- {
- j <<= 1;
- j += !!(a & 0x80000000);
- a <<= 1;
- if(j >=b)
- {
- j -= b;
- a++;
- }
- }
- return a;
} </syntaxhighlight> Ans:
45. What is the following function doing? <syntaxhighlight lang="c"> unsigned fun(unsigned int a) {
- unsigned int i, x = 0, y = 0, z = 0;
- for(i = 0; i < 16; i++)
- {
- y <<= 2;
- y += !!(a & 0x80000000) << 1;
- y += !!(a & 0x40000000);
- a <<= 2;
- x = x + (x&1);
- x <<= 1;
- z <<= 1;
- if(x + 1 <= y)
- {
- x++;
- z++;
y-=x;
- }
- }
- return z;
} </syntaxhighlight> Ans:
46. Write the code to dynamically allocate a 2-D array of size m x n.
Ans:
47. Declare a pointer to a function accepting an integer and returning void.
Ans:
48. Write the condition so that the below code outputs <math>\unicode{x201C}</math>Hello World<math>\unicode{x201D}</math>. <syntaxhighlight lang="c">
int main() {
- if(<condition>)
- {
printf("Hello ");
- }
- else
- {
printf("World\n");
- }
- return 0;
} </syntaxhighlight> Ans:
49. Write a one line code to check if a number is a power of 2.
Ans:
50. Write a one line code to invert the last four bits of an integer.
Ans:
<quiz display="simple"> {What is the output of this program? <syntaxhighlight lang="c" >
int main() {
- char *ptr;
- char string[] = "How are you?";
- ptr = string;
- ptr += 4;
- printf("%s",ptr);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) How are you?
+(b) are you?
-(c) are
-(d) No output
{ Which of the following will print the value 2 for the above code? <syntaxhighlight lang="c">
int main() {
- int a[10][20][30] = {0};
- a[5][2][1] = 2;
- return 0;
} </syntaxhighlight> |type="()" /} -(a) printf("%d",*(((a+5)+2)+1));
-(b) printf("%d",***((a+5)+2)+1);
+(c) printf("%d",*(*(*(a+5)+2)+1));
-(d) None of these
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 5;
- int b = ++a * a++;
- printf("%d ",b);
- return 0;
} </syntaxhighlight> |type="()" /} -(a)25
-(b) 30
-(c) 36
+(d) Undefined Behavior
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 5;
- switch(a)
- {
- default:
- a = 4;
- case 6:
- a--;
- case 5:
- a = a+1;
- case 1:
- a = a-1;
- }
- printf("%d \n",a);
- return 0;
} </syntaxhighlight> |type="()" /} +(a) 5
-(b) 4
-(c) 3
-(d) None of these
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 2,b = 5;
- a = a^b;
- b = b^a;
- printf("%d %d",a,b);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 5 2
-(b) 2 5
-(c) 7 7
+(d) 7 2
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a[][3] = {1, 2, 3, 4, 5, 6};
- int (*ptr)[3] = a;
- printf("%d %d ", (*ptr)[1], (*ptr)[2]);
- ++ptr;
- printf("%d %d\n", (*ptr)[1], (*ptr)[2]);
- return 0;
} </syntaxhighlight> |type="()" /} +(a) 2 3 5 6
-(b) 2 3 4 5
-(c) 4 5 0 0
-(d) none of the above
{What is the output of the following program?
<syntaxhighlight lang="c">
void f(char**);
int main() {
- char *argv[] = { "ab", "cd", "ef", "gh", "ij", "kl" };
- f(argv);
- return 0;
} void f(char **p) {
- char *t;
- t = (p += sizeof(int))[-1];
- printf("%s\n", t);
} </syntaxhighlight> |type="()" /} -(a) ab
-(b) cd
-(c) ef
+(d) gh
{What is the output of the following program?
<syntaxhighlight lang="c">
int ripple(int n, ...) {
- int i, j, k;
- va_list p;
- k = 0;
- j = 0;
- va_start(p, n);
- for (; j < n; ++j)
- {
- i = va_arg(p, int);
- k += i;
- }
- va_end(p);
- return k;
} int main() {
- printf("%d\n", ripple(2, 5, 7));
- return 0;
} </syntaxhighlight> |type="()" /} +(a) 12
-(b) 5
-(c) 7
-(d) 15
{What is the output of the following program?
<syntaxhighlight lang="c">
int counter(int i) {
- static int count = 0;
- count = count + i;
- return count;
}
int main() {
- int i, j;
- for (i = 0; i <= 5; i++)
- j = counter(i);
- printf("%d\n", j);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 10
+(b) 15
-(c) 6
-(d) 7
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- const int x = 5;
- const int *ptrx;
- ptrx = &x;
- *ptrx = 10;
- printf("%d\n", x);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 5
-(b) 10
+(c) Compile Error
-(d) Garbage value
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int i;
- i = x*x*x;
- printf("%d",i);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 125
+(b) 13
-(c) 17
-(d) None of above
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- char c=125;
- c=c+10;
- printf("%d",c);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 135
-(b) +INF
+(c) -121
-(d) -8
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int i=10;
- static int x=i;
- if(x==i)
- printf("Equal");
- else if(x>i)
- printf("Greater");
- else
- printf("Lesser");
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Equal
-(b) Greater
-(c) Lesser
+(d) Compile Error
{Consider the following code segment:
<syntaxhighlight lang="c">
int *f1() {
- int x = 10;
- return &x;
} int *f2() {
- int *ptr;
- *ptr = 10;
- return ptr;
} int *f3() {
- int *ptr;
- ptr = (int*) malloc(sizeof (*ptr));
- return ptr;
} </syntaxhighlight> Which of these functions uses pointers incorrectly? |type="()" /} +(a) f3 only
-(b) f1 and f3
-(c) f1 and f2
-(d) f1, f2, and f3
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int i = 3;
- int j;
- j = sizeof(++i + ++i);
- printf("i=%d j=%d\n", i, j);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) i=4 j=4
+(b) i=3 j=4
-(c) i=5 j=4
-(d) the behavior is undefined
{ What is the output of the following program?
<syntaxhighlight lang="c">
void f1(int*, int); void f2(int*, int); void (*p[2])(int*, int);
int main() {
- int a = 3;
- int b = 5;
- p[0] = f1;
- p[1] = f2;
- p[0](&a, b);
- printf("%d %d ", a, b);
- p[1](&a, b);
- printf("%d %d\n", a, b);
- return 0;
}
void f1(int *p, int q) {
- int tmp = *p;
- *p = q;
- q = tmp;
} void f2(int *p, int q) {
- int tmp = *p;
- *p = q;
- q = tmp;
} </syntaxhighlight> |type="()" /} +(a) 5 5 5 5
-(b) 3 5 3 5
-(c) 5 3 3 5
-(d) none of the above
{What is the output of the following program?
<syntaxhighlight lang="c">
void e(int);
int main() {
- int a = 3;
- e(a);
- putchar('\n');
- return 0;
} void e(int n) {
- if (n > 0)
- {
- e(--n);
- printf("%d ", n);
- e(--n);
- }
} </syntaxhighlight> |type="()" /} +(a)0 1 2 0
-(b) 0 1 2 1
-(c) 1 2 0 1
-(d) 0 2 1 1
{ Consider the following code segment:
<syntaxhighlight lang="c">
typedef int (*test)(float*, float*);
test tmp;
</syntaxhighlight>
What is the type of tmp?
|type="()"
/} -(a) function taking two pointer-to-float arguments and returning pointer to int
-(b) pointer to int
+(c) pointer to function taking two pointer-to-float arguments and returning int
-(d) none of the above
{ What is the output of the following program?'
<syntaxhighlight lang="c">
int main() {
- char p;
- char buf[10] = {1, 2, 3, 4, 5, 6, 9, 8};
- p = (buf + 1)[5];
- printf("%d\n", p);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 5
-(b) 6
+(c) 9
-(d) none of the above
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- struct node
- {
- int a;
- int b;
- int c;
- };
- struct node s = { 3, 5, 6 };
- struct node *pt = &s;
- printf("%d\n", *((int*)pt+1));
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 3
+(b) 5
-(c) 6
-(d) 7
{What is the output of the following program?
<syntaxhighlight lang="c">
int main(void) {
- char a[5] = { 1, 2, 3, 4, 5 };
- char *ptr = (char*)(&a + 1);
- printf("%d %d\n", *(a + 1), *(ptr - 1));
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Compile Error
-(b) 2 1
+(c) 2 5
-(d) none of the above
{What is the output of the following program?
<syntaxhighlight lang="c">
void foo(int[][3]);
int main(void) {
- int a[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
- foo(a);
- printf("%d\n", a[2][1]);
- return 0;
}
void foo(int b[][3]) {
- ++b;
- b[1][1] = 9;
} </syntaxhighlight> |type="()" /} -(a) 8
+(b) 9
-(c) 7
-(d) none of the above
{Consider the following function:
<syntaxhighlight lang="c">
int foo(int x, int n)
{
- int val = 1;
- if (n > 0)
- {
- if (n % 2 == 1)
- val *= x;
- val *= foo(x * x, n / 2);
- }
- return val;
} </syntaxhighlight>
What function of x and n is computed by foo? |type="()" /} +(a) $x^n$
-(b) $x×n$
-(c) $n^x$
-(d) none of the above
{What is the output of the following program? <syntaxhighlight lang="c">
int main() {
- int a = 0;
- switch(a)
- {
- default:
- a = 4;
- case 6:
- a--;
- case 5:
- a = a+1;
- case 1:
- a = a-1;
- }
- printf("%d \n",a);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) 5
-(b) 4
+(c) 3
-(d) 0
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 2;
- if(a == (1,2))
- printf("Hello");
- if(a == 1,2)
- printf("World");
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Hello
-(b) World
+(c) HelloWorld
-(d) Compile Error
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a = 1,2;
- int b = (1,2);
- if(a == b)
- printf("Equal");
- else
- printf("Not Equal");
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Equal
-(b) Not Equal
-(c) Compiler Dependent
+(d) Compile Error
{What is the output of the following program?
<syntaxhighlight lang="c">
void foo(char *);
int main() {
- char *string = "Hello";
- foo(string);
- printf("%s",string);
- return 0;
}
void foo(char *a) {
- while(*a)
- {
- *a += 1;
- a++;
- }
} </syntaxhighlight> |type="()" /} -(a) Hello
-(b) Ifmmp
-(c) Compile Error
+(d) Segmentation fault
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- char s[] = "Hello World";
- int i = 0;
- while(*(s++))
- i++;
- printf("%d",i);
- return 0;
} </syntaxhighlight> |type="()" /} -(a) Segmentation Fault
+(b) Compile Error
-(c) 12
-(d) 0
{What is the output of the following program?
<syntaxhighlight lang="c">
int a = 10; int main() {
- fun();
- fun();
- return 0;
}
int fun() {
- static int a = 1;
- printf("%d ",a);
- a++;
- return 0;
} </syntaxhighlight> |type="()" /} +(a) 1 2
-(b) 1 1
-(c) 10 11
-(d) 10 10
{What is the output of the following program?
<syntaxhighlight lang="c">
int begin() {
- printf("Hello\n");
- return 0;
} </syntaxhighlight> |type="()" /} +(a) Hello
-(b) Link error
-(c) Segmentation fault
-(d) Compiler error
{Consider the following program:
<syntaxhighlight lang="c">
int main() {
- int a[10][20][30]={0};
- printf("%ld",&a+1 - &a);
- return 0;
} </syntaxhighlight> What is the output of this program? |type="{}" /} { 1 }
{Consider the following program:
<syntaxhighlight lang="c">
int main() {
- int a[10][20][30] = {0};
- int *b = a;
- int *c = a+1;
- printf("%ld", c-b);
- return 0;
} </syntaxhighlight> What is the output of this program? (You may ignore compiler warnings) |type="{}" /} { 600 }
{ What is the output of the following program? <syntaxhighlight lang="c">
int* fun();
int main() {
- int *a = fun();
- printf("%d",*a);
- return 0;
} int* fun() {
- int *a =(int*) malloc(sizeof(int));
- *a = 10;
- return a;
} </syntaxhighlight> |type="{}" /} { 10 }
{ What is the output of the following program? <syntaxhighlight lang="c">
int main() {
- int *a = fun();
- printf("%d",a);
- return 0;
} int fun() {
- int a = 10;
- return a;
} </syntaxhighlight> |type="{}" /} { 10 }
{What is the output of the following program? <syntaxhighlight lang="c">
int main() {
- char string[] = "Hello";
- printf("%zu %zu",sizeof(string),strlen(string));
- return 0;
} </syntaxhighlight> |type="{}" /} { 6 5 }
{ What is the output of the following program? <syntaxhighlight lang="c">
int main() {
- float a = 0.5;
- if(a == 0.5)
- printf("Yes");
- else
- printf("No");
- return 0;
} </syntaxhighlight> |type="{}" /} { Yes }
{What is the output of the following program? <syntaxhighlight lang="c">
void foo(char *);
int main() {
- char a[100] = {0};
- printf("%lu %lu",sizeof(a),strlen(a));
- return 0;
} </syntaxhighlight> |type="{}" /} { 1 }
{What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- int a;
- printf("%d",scanf("%d",&a));
- return 0;
} </syntaxhighlight> |type="{}" /} { 1 }
{If the binary equivalent of 5.375 in normalised form is 0100 0000 1010 1100 0000
0000 0000 0000, what will be the output of the following program?
<syntaxhighlight lang="c">
int main() {
- float a=5.375;
- char *p;
- int i;
- p = (char*)&a;
- for(i=0; i<2; i++)
- printf("%x ", (unsigned char)(p[i]^p[3-i]));
- return 0;
} </syntaxhighlight> |type="{}" /} { 40ac }
{ What is the output of the following program?
<syntaxhighlight lang="c">
int main() {
- char str[] = {'a','b','c','\0'};
- str[0] -= 32;
- printf("%s",str);
- return 0;
} </syntaxhighlight> |type="{}" /} { Abc }
</quiz>
1. What is the following function doing? <syntaxhighlight lang="c"> int foo(int n) {
- int sum = 0;
- while(n > 0)
- {
- n = n & n-1;
- sum++;
- }
- return sum;
} </syntaxhighlight> Ans:
2. What is the following function doing? <syntaxhighlight lang="c"> int foo(int a, int b) {
- int c = a, d = b;
- while(a != b)
- {
- if(a < b)
- a = a+c;
- else
- b = b+d;
- }
- return a;
} </syntaxhighlight> Ans:
43. What is the following function doing? <syntaxhighlight lang="c"> int foo( int a, int b) {
- int c = a-b;
- c = c&(0x80000000);
- return (!c)*a +(!!c)*b;
} </syntaxhighlight> Ans:
44. What is the following function doing? <syntaxhighlight lang="c"> unsigned fun(unsigned a, unsigned b) {
- int i;
- unsigned j = 0;
- for(i = 0; i < 32; i++)
- {
- j <<= 1;
- j += !!(a & 0x80000000);
- a <<= 1;
- if(j >=b)
- {
- j -= b;
- a++;
- }
- }
- return a;
} </syntaxhighlight> Ans:
45. What is the following function doing? <syntaxhighlight lang="c"> unsigned fun(unsigned int a) {
- unsigned int i, x = 0, y = 0, z = 0;
- for(i = 0; i < 16; i++)
- {
- y <<= 2;
- y += !!(a & 0x80000000) << 1;
- y += !!(a & 0x40000000);
- a <<= 2;
- x = x + (x&1);
- x <<= 1;
- z <<= 1;
- if(x + 1 <= y)
- {
- x++;
- z++;
y-=x;
- }
- }
- return z;
} </syntaxhighlight> Ans:
46. Write the code to dynamically allocate a 2-D array of size m x n.
Ans:
47. Declare a pointer to a function accepting an integer and returning void.
Ans:
48. Write the condition so that the below code outputs <math>\unicode{x201C}</math>Hello World<math>\unicode{x201D}</math>. <syntaxhighlight lang="c">
int main() {
- if(<condition>)
- {
printf("Hello ");
- }
- else
- {
printf("World\n");
- }
- return 0;
} </syntaxhighlight> Ans:
49. Write a one line code to check if a number is a power of 2.
Ans:
50. Write a one line code to invert the last four bits of an integer.
Ans: