C Programming - Library Functions

6.
What will be the output of the program?
#include<stdio.h>
#include<string.h>

int main()
{
    char dest[] = {97, 97, 0};
    char src[] = "aaa";
    int i;
    if((i = memcmp(dest, src, 2))==0)
        printf("Got it");
    else
        printf("Missed");
    return 0;
}
Missed
Got it
Error in memcmp statement
None of above
Answer: Option
Explanation:

memcmp compares the first 2 bytes of the blocks dest and src as unsigned chars. So, the ASCII value of 97 is 'a'.

if((i = memcmp(dest, src, 2))==0) When comparing the array dest and src as unsigned chars, the first 2 bytes are same in both variables.so memcmp returns '0'.
Then, the if(0=0) condition is satisfied. Hence the output is "Got it".


7.
What will function gcvt() do?
Convert vector to integer value
Convert floating-point number to a string
Convert 2D array in to 1D array.
Covert multi Dimensional array to 1D array
Answer: Option
Explanation:

The gcvt() function converts a floating-point number to a string. It converts given value to a null-terminated string.


#include <stdlib.h>
#include <stdio.h>

int main(void)
{
	char str[25];
	double num;
	int sig = 5; /* significant digits */

	/* a regular number */
	num = 9.876;
	gcvt(num, sig, str);
	printf("string = %s\n", str);

	/* a negative number */
	num = -123.4567;
	gcvt(num, sig, str);
	printf("string = %s\n", str);

	/* scientific notation */
	num = 0.678e5;
	gcvt(num, sig, str);
	printf("string = %s\n", str);

	return(0);
}

Output:
string = 9.876
string = -123.46
string = 67800


8.
What will be the output of the program?
#include<stdio.h>

int main()
{
    int i;
    char c;
    for(i=1; i<=5; i++)
    {
        scanf("%c", &c); /* given input is 'a' */
        printf("%c", c);
        ungetc(c, stdin);
    }
    return 0;
}
aaaa
aaaaa
Garbage value.
Error in ungetc statement.
Answer: Option
Explanation:

for(i=1; i<=5; i++) Here the for loop runs 5 times.

Loop 1:
scanf("%c", &c); Here we give 'a' as input.
printf("%c", c); prints the character 'a' which is given in the previous "scanf()" statement.
ungetc(c, stdin); "ungetc()" function pushes character 'a' back into input stream.

Loop 2:
Here the scanf("%c", &c); get the input from "stdin" because of "ungetc" function.
printf("%c", c); Now variable c = 'a'. So it prints the character 'a'.
ungetc(c, stdin); "ungetc()" function pushes character 'a' back into input stream.

This above process will be repeated in Loop 3, Loop 4, Loop 5.