AmbitionBox
Discover Best Places to work in India
Discover best places to work
Compare & find best workplace
Bring your workplace to life
Highlight your company's perks
Read reviews for 6L+ companies
Rate your former or current company
Discover salaries for 8L+ companies
Calculate your take home salary
Check your market value
Help other jobseekers
Read interviews for 90K+ companies
Interviews questions for 1K+ colleges
Contribute your interview questions
C Programming
How many bytes of memory will the following code reserve?
#include < stdio . h >#include < stdlib . h >int main() { int *p; p = (int *)malloc(256 * 256); if(p == NULL) printf("Allocation failed"); return0; }
65536
Allocation failed
Error
No output
Option B
Hence 256*256 = 65536 is passed to malloc() function which can allocate upto 65535. So the memory allocation will be failed in 16 bit platform (Turbo C in DOS). If you compile the same program in 32 bit platform like Linux (GCC Compiler) it may allocate the required memory.
Point out the error in the following program.
#include#include < stdlib . h >int main() { int *a[3]; a = (int*) malloc ( sizeof (int) *3); free(a); return0; }
Error: unable to allocate memory
Error: We cannot store address of allocated memory in a
Error: unable to free memory
No error
We should store the address in a[i]
#include#include < stdlib . h >int main() { char *ptr; *ptr = (char)malloc(30); strcpy(ptr, "RAM"); printf("%s", ptr); free(ptr); return0; }
Error: in strcpy() statement.
Error: in *ptr = (char)malloc(30);
Error: in free(ptr);
ptr = (char*)malloc(30);
How will you free the memory allocated by the following program?
#include#include#define MAXROW 3#define MAXCOL 4int main() { int **p, i, j; p = (int **) malloc(MAXROW * sizeof(int*)); return0; }
memfree(int p);
dealloc(p);
malloc(p, 0);
free(p);
Answer:Option D
What will the function rewind() do?
Reposition the file pointer to a character reverse.
Reposition the file pointer stream to end of file.
Reposition the file pointer to begining of that line.
Reposition the file pointer to begining of file.
Option D
rewind() takes the file pointer to the beginning of the file. so that the next I/O operation will take place at the beginning of the file.Example: rewind(FilePointer);
What will be the output of the program?
#include < stdio . h >#includeint main() { float i = 2.5; printf("%f, %d", floor(i), ceil(i)); return0; }
2, 3
2.000000, 3
2.000000, 0
2, 0
Answer :
Option C
Explanation :
Both ceil() and floor() return the integer found as a double. floor(2.5) returns the largest integral value(round down) that is not greater than 2.5. So output is 2.000000. ceil(2.5) returns 3, while converting the double to int it returns '0'. So, the output is '2.000000,
#include < stdio . h >int main() { int i; i = scanf("%d %d", &i, &i); printf("%d\n", i); return0; }
1
2
Garbage value
Error: cannot assign scanf to variable
scanf() returns the number of variables to which you are provding the input. i = scanf("%d %d", &i, &i); Here Scanf() returns 2. So i = 2. printf("%d\n", i); Here it prints 2.
#include < stdio . h >int main() { int i; char c; for(i=1; i <= 5; i++) { scanf("%c", &c); /* given input is 'b' */ ungetc(c, stdout); printf("%c", c); ungetc(c, stdin); } return0; }
bbbb
bbbbb
b
Error in ungetc statement.
The ungetc() function pushes the character c back onto the named input stream, which must be open for reading. This character will be returned on the next call to getc or fread for that stream. One character can be pushed back in all situations. A second call to ungetc without a call to getc will force the previous character to be forgotten.
#include < stdio . h >#includeint main() { char *i = "55.555"; int result1 = 10; float result2 = 11.111; result1 = result1+atoi(i); result2 = result2+atof(i); printf("%d, %f", result1, result2); return0; }
55, 55.555
66, 66.666600
65, 66.666000
55,55
Function atoi() converts the string to integer. Function atof() converts the string to float. result1 = result1+atoi(i); Here result1 = 10 + atoi(55.555); result1 = 10 + 55; result1 = 65; result2 = result2+atof(i); Here result2 = 11.111 + atof(55.555); result2 = 11.111 + 55.555000; result2 = 66.666000; So the output is "65, 66.666000" .
Join India’s largest community to research company culture
Are you a student or working professional?
Student/Never worked
I am a student/I have never worked
Working Professional
I am working/I have worked before
What are your preferred job locations?
Popular Cities
Other Cities
Follow your preferred designations/job profiles
Suggestions based on your job profile
vs
Similar Companies