C Programming

Find Output of Program

Programming & Coding Exercise Mode

Find Output of Program

Practice and master this topic with our carefully crafted questions.

3 Questions
5 Minutes
0% Completed
QUEST ? !
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
Correct Answer: Option D

Correct Answer: D. 250

Consider the following C program:

#include<stdio.h>

int main()
{
    int a = 250;
    printf("%1d\n", a);
    return 0;
}

Note: The question contains an extra non-printable character after %1d. The intended format string is:

printf("%1d\n", a);

The format specifier:

%1d
  • %d prints an integer.
  • 1 specifies the minimum field width.
  • If the number requires more than one character, the entire number is printed.

Since 250 requires three characters, the minimum field width of 1 has no effect.

Therefore, the output is:

250
  • A. 1250
    Incorrect. The field width does not become part of the output.
  • B. 2
    Incorrect. %1d does not limit the number of digits printed.
  • C. 50
    Incorrect. The format specifier does not truncate the value.
  • D. 250
    Correct. A field width specifies only the minimum width, not the maximum.

Exam Fact:
For integer format specifiers, the field width in %wd specifies the minimum number of character positions. If the integer is wider than the specified width, printf() prints the entire value without truncation.

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
Correct Answer: Option D

Correct Answer: D. agpu

Consider the following C 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;
}

The file contains:

This is Nagpur

Let's number the characters:

Index : 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Chars : T h i s _ i s _ N a  g  p  u  r
  • When the file is opened, the file pointer is at the beginning (index 0).
  • fseek(fp, 9L, SEEK_CUR); moves the file pointer 9 bytes forward from the current position, placing it at the character:
    a
    
  • fgets(str, 5, fp); reads at most 4 characters (because one byte is reserved for the terminating '\0').
  • The characters read are:
    a g p u
    
  • puts(str); prints:
    agpu
    
  • A. agpur
    Incorrect. fgets(str, 5, fp) reads at most four characters.
  • B. gpur
    Incorrect. Reading starts from 'a', not 'g'.
  • C. Nagp
    Incorrect. The file pointer is positioned at 'a', not 'N'.
  • D. agpu
    Correct. The file pointer starts at 'a', and fgets() reads the next four characters.

Exam Fact:
fseek(fp, offset, SEEK_CUR) moves the file pointer relative to its current position. Also, fgets(str, n, fp) reads at most n - 1 characters and appends a null character ('\0').

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
Correct Answer: Option C

Correct Answer: C. 1

Consider the following C program:

#include<stdio.h>

int main()
{
    int i;

    printf("%d\n", scanf("%d", &i));

    return 0;
}

The scanf() function returns the number of input items successfully read and assigned.

Here, the format string contains only one conversion specifier:

"%d"

If the user enters:

25
  • scanf() successfully reads the integer 25.
  • It stores the value in the variable i.
  • Since exactly one input item is successfully assigned, scanf() returns 1.

Therefore, the statement:

printf("%d\n", scanf("%d", &i));

prints:

1
  • A. 25
    Incorrect. The value 25 is stored in i, but the program prints the return value of scanf(), not i.
  • B. 2
    Incorrect. Only one input item is read and assigned.
  • C. 1
    Correct. scanf() returns the number of successfully matched and assigned input items.
  • D. 5
    Incorrect. The number of digits entered does not affect the return value.

Exam Fact:
The return value of scanf() is the number of input items successfully assigned. It returns EOF if an input failure occurs before any assignment is made. Always check the return value of scanf() to ensure that the expected input was successfully read.

Previous 1 2
Page 2 of 2