Find Output Of Program

Question 1 :

What will be the content of 'file.c' after executing the following program?

#include < stdio.h >
int main()
{
    FILE *fp1, *fp2;
    fp1=fopen("file.c", "w");
    fp2=fopen("file.c", "w");
    fputc('A', fp1);
    fputc('B', fp2);
    fclose(fp1);
    fclose(fp2);
    return 0;
}


A). B
B). A
B
C). B
B
D). Error in opening file 'file1.c'
Answer : Option A

Explanation :

Here fputc('A', fp1); stores 'A' in the file1.c then fputc('B', fp2); overwrites the contents of the file1.c with value 'B'. Because the fp1 and fp2 opens the file1.c in write mode.
Hence the file1.c contents is 'B'.


Question 2 :

What will be the output of the program ?

#include < stdio.h >
int main()
{
    int k=1;
    printf("%d == 1 is" "%s\n", k, k==1?"TRUE":"FALSE");
    return 0;
}


A). k == 1 is TRUE
B). 1 == 1 is TRUE
C). 1 == 1 is FALSE
D). K == 1 is FALSE
Answer : Option B

Explanation :

Step 1: int k=1; The variable k is declared as an integer type and initialized to '1'.
Step 2: printf("%d == 1 is" "%s\n", k, k==1?"TRUE":"FALSE"); becomes
=> k==1?"TRUE":"FALSE"
=> 1==1?"TRUE":"FALSE"
=> "TRUE"

Therefore the output of the program is 1 == 1 is TRUE


Question 3 :

What will be the output of the program ?

#include < stdio.h >
char *str = "char *str = %c%s%c; main(){ printf(str, 34, str, 34);}";

int main()
{
    printf(str, 34, str, 34);
    return 0;
}


A). char *str = "char *str = %c%s%c; main(){ printf(str, 34, str, 34);}"; main(){ printf(str, 34, str, 34);}
B). char *str = %c%s%c; main(){ printf(str, 34, str, 34);}
C). No output
D). Error in program
Answer : Option A

Question 4 :

If the file 'source.txt' contains a line "Be my friend" which of the following will be the output of below program?

#include < stdio.h >

int main()
{
    FILE *fs, *ft;
    char c[10];
    fs = fopen("source.txt", "r");
    c[0] = getc(fs);
    fseek(fs, 0, SEEK_END);
    fseek(fs, -3L, SEEK_CUR);
    fgets(c, 5, fs);
    puts(c);
    return 0;
}


A). friend
B). frien
C). end
D). Error in fseek();
Answer : Option C

Explanation :

The file source.txt contains "Be my friend".
fseek(fs, 0, SEEK_END); moves the file pointer to the end of the file.
fseek(fs, -3L, SEEK_CUR); moves the file pointer backward by 3 characters.
fgets(c, 5, fs); read the file from the current position of the file pointer.
Hence, it contains the last 3 characters of "Be my friend".
Therefore, it prints "end".


Question 5 :

What will be the output of the program ?

#include < stdio.h >

int main()
{
    float a=3.15529;
    printf("%2.1f\n", a);
    return 0;
}


A). 3.00
B). 3.15
C). 3.2
D). 3
Answer : Option C

Explanation :

float a=3.15529; The variable a is declared as an float data type and initialized to value 3.15529;
printf("%2.1f\n", a); The precision specifier tells .1f tells the printf function to place only one number after the .(dot).
Hence the output is 3.2


Question 6 :

What will be the output of the program ?

#include < stdio.h >
int main()
{
    printf("%c\n", ~('C'*-1));
    return 0;
}


A). A
B). B
C). C
D). D
Answer : Option B

Question 7 :

What will be the output of the program ?

#include < stdio.h >
int main()
{
    FILE *fp;
    unsigned char ch;
     /* file 'abc.c' contains "This is Indiaparinam " */
    fp=fopen("abc.c", "r");
    if(fp == NULL)
    {
        printf("Unable to open file");
        exit(1);
    }
    while((ch=getc(fp)) != EOF)
        printf("%c", ch);

    fclose(fp);
    printf("\n", ch);
    return 0;
}


A). This is Indiaparinam
B). This is
C). Infinite loop
D). Error
Answer : Option C

Explanation :

The macro EOF means -1.
while((ch=getc(fp)) != EOF) Here getc function read the character and convert it to an integer value and store it in the variable ch, but it is declared as an unsigned char. So the while loop runs infinitely.


Question 8 :

What will be the output of the program ?

#include < stdio.h >

int main()
{
    char *p;
    p="%d\n";
    p++;
    p++;
    printf(p-2, 23);
    return 0;
}


A). 21
B). 23
C). Error
D). No output
Answer : Option B

Question 9 :

What will be the output of the program ?

#include < stdio.h >
int main()
{
    FILE *ptr;
    char i;
    ptr = fopen("myfile.c", "r");
    while((i=fgetc(ptr))!=NULL)
        printf("%c", i);
    return 0;
}


A). Print the contents of file "myfile.c"
B). Print the contents of file "myfile.c" upto NULL character
C). Infinite loop
D). Error in program
Answer : Option C

Explanation :

The program will generate infinite loop. When an EOF is encountered fgetc() returns EOF. Instead of checking the condition for EOF we have checked it for NULL. so the program will generate infinite loop.


Question 10 :

What will be the output of the program ?

#include < stdio.h >

int main()
{
    printf("%%%%\n");
    return 0;
}


A). %%%%%
B). %%
C). No output
D). Error
Answer : Option B

Question 11 :

What will be the output of the program ?

#include < stdio.h >
int main()
{
    int a=250;
    printf("%1d\n", a);
    return 0;
}


A). 1250
B). 2
C). 50
D). 250
Answer : Option D

Explanation :

int a=250; The variable a is declared as an integer type and initialized to value 250.
printf("%1d\n", a); It prints the value of variable a.
Hence the output of the program is 250.


Question 12 :

What will be the output of the program ?

#include < stdio.h >

int main()
{
    FILE *fp;
    char ch, str[7];
    fp=fopen("try.c", "r"); /* file 'try.c' contains "This is Nagpur" */
    fseek(fp, 9L, SEEK_CUR);
    fgets(str, 5, fp);
    puts(str);
    return 0;
}


A). agpur
B). gpur
C). Nagp
D). agpu
Answer : Option D

Question 13 :

What will be the output of the program if value 25 given to scanf()?

#include < stdio.h >
int main()
{
    int i;
    printf("%d\n", scanf("%d", &i));
    return 0;
}


A). 25
B). 2
C). 1
D). 5
Answer : Option C

Explanation :

The scanf function returns the number of input is given.
printf("%d\n", scanf("%d", &i)); The scanf function returns the value 1(one).
Therefore, the output of the program is '1'.