- Consider the following program:
12345678#include <stdio.h>int main(){int a[10][20][30]={0};printf("%ld",&a+1 - &a);return 0;} - Consider the following program:
1234567891011#include <stdio.h>int main(){int a[10][20][30] = {0};int *b = a;int *c = a+1;printf("%ld", c-b);return 0;}What is the output of this program? (You may ignore compiler warnings) - What is the output of the following program?
1234567891011121314151617#include <stdio.h>#include <stdlib.h>int* fun();int main(){int *a = fun();printf("%d",*a);return 0;}int* fun(){int *a =(int*) malloc(sizeof(int));*a = 10;return a;} - What is the output of the following program?
12345678910111213#include <stdio.h>int main(){int *a = fun();printf("%d",a);return 0;}int fun(){int a = 10;return a;} - What is the output of the following program?
12345678910#include <stdio.h>#include <string.h>int main(){char string[] = "Hello";printf("%zu %zu",sizeof(string),strlen(string));return 0;} - What is the output of the following program?
1234567891011#include <stdio.h>int main(){float a = 0.5;if(a == 0.5)printf("Yes");elseprintf("No");return 0;} - What is the output of the following program?
1234567891011#include <stdio.h>#include <string.h>void foo(char *);int main(){char a[100] = {0};printf("%zu %zu",sizeof(a),strlen(a));return 0;} - What is the output of the following program? (Assume input is 10)
12345678#include <stdio.h>int main(){int a;printf("%d",scanf("%d",&a));return 0;} - If the binary equivalent of 5.375 in normalised form is 01000000 10101100 00000000 00000000, what will be the output of the following program?
12345678910111213#include <stdio.h>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;} - What is the output of the following program?
123456789#include <stdio.h>int main(){char str[] = {'a','b','c','\0'};str[0] -= 32;printf("%s",str);return 0;}
Questions from Datatypes
- Consider an implementation where int is 4 bytes and long int is 8 bytes. Which of the following initializations are correct?
12345678910#include <stdio.h>int main(){long int a = 0x7fffffff * 0x7ffffff;long int b = 0x7ffffffff * 0x7ffffff;long int c = 0x7fffffff * 0x7fffffff;long int d = 0x7fffffff * 0x7fffffffl;printf("a = %ld, b = %ld, c = %ld, d = %ld\n", a, b, c, d);return 0;} - Consider an implementation where int is 4 bytes and long int is 8 bytes. What will be the output of the following code?
12345678#include <stdio.h>int main(){int i = 0;size_t a = sizeof i, b = sizeof (long);printf("a = %zd, b = %zd\n", a, b); //If %zd is given the compiler will automatically give it the correct type whether short, long or normal. This is useful for special data types like size_t whose size is implementation specificreturn 0;} - What will be the output of the following code?
12345678#include <stdio.h>int main(){unsigned int a = 5;if(a > -1)printf("5 is > -1\n");return 0;} - What will be printed by the following code?
123456789#include <stdio.h>int main(){char buff[255] = "abc\pee";printf("%s", buff);return 0;} - What will be printed by the following code?
12345678#include <stdio.h>int main(){char buff[255] = "\0";printf("%s", buff);return 0;} - What will be the output of the following code? (Assume a 64 bit machine/compiler)
12345678910#include <stdio.h>int main(){char *p = "Hello World";char q[] = "Hello World";printf("%zd %zd", sizeof p, sizeof *p);printf("\n");printf("%zd %zd", sizeof q, sizeof *q);return 0;} - What will be the output of the following code?
1234567891011121314151617181920212223242526272829303132333435363738#include <stdio.h>int main(){{char a = 5;int b = 5;if(a == b)printf("char and int compared equal\n"); }{int a = 5;long int b = 5;if(a == b)printf("int and long compared equal\n");}{float a = 5.0;double b = 5.0;if(a == b)printf("float and double compared equal\n");}{float a = 5.2;double b = 5.2;if(a == b)printf("float and double again compared equal\n");}{float a = 5.2;if(a == 5.2)printf("float compared equal with constant\n");}{double a = 5.2;if(a == 5.2)printf("double compared equal with constant\n");}return 0;}
Questions from Pointers
- What will be the output of the following code?
12345678#include <stdio.h>int main(){int a = 5;int* p = &a;printf("%d", ++*p);} - What will be the output of the following code?
12345678#include <stdio.h>int main(){char a[] = "Hello World";char* p = &a;printf("%s", p+2 );} - What will be the output of the following code?
12345678#include <stdio.h>int main(){int a;int* p = &a;printf("%zu", sizeof( *(char*)p ));} - Is the following code legal?
1234567891011121314#include <stdio.h>int main(){int a = 1;if((char*) &a){printf("My machine is little endian");}else{printf("My machine is big endian\n");}} - What will be the output of the following code?
1234567#include <stdio.h>int main(){int *a = (int*) 1;printf("%d", a);} - What will be the output of the following code?
123456789#include <stdio.h>int main(){int a = 1, *p, **pp;p = &a;pp = p;printf("%d", **pp);} - What will be the output of the following code?
123456789#include <stdio.h>int main(){int a = 1, *p, **pp;p = &a;pp = p;printf("%d", *pp);} - Assuming a little endian machine, what will be the output of the following program?
12345678910111213141516171819202122#include <stdio.h>fun(int a){char *arr[] = {"0000", "0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};unsigned char* p = (unsigned char*) &a ;p+=3;int i;for(i = 0; i < sizeof a; i++) { int d = (*p)>>4;printf("%s", arr[d]);d = (*p) & 0xf;printf("%s ", arr[d]);p--;}}int main(){int a;scanf("%d", &a);fun(a);}
Some codes
- What is the following function doing?
12345678910int foo(int n){int sum = 0;while(n > 0){n = n & n-1;sum++;}return sum;} - What is the following function doing?
123456789101112int foo(int a, int b){int c = a, d = b;while(a != b){if(a < b)a = a+c;elseb = b+d;}return a;} - What is the following function doing?
123456int foo( int a, int b){int c = a-b;c = c&(0x80000000);return (!c)*a +(!!c)*b;} - What is the following function doing?
12345678910111213141516unsigned 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;} - What is the following function doing?
123456789101112131415161718192021unsigned 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;} - Write the code to dynamically allocate a 2-D array of size m x n.
- Declare a pointer to a function accepting an integer and returning void.
- Write the condition so that the below code outputs Hello World.
1234567891011121314#include <stdio.h>int main(){if(){printf("Hello ");}else{printf("World\n");}return 0;} - Write a one line code to check if a number is a power of 2.
- Write a one line code to invert the last four bits of an integer.
16,859 total views, 17 views today