C Programming :: Input / Output

6. Which files will get closed through the fclose() in the following program?
#include

int main()
{
FILE *fs, *ft, *fp;
fp = fopen(“A.C”, “r”);
fs = fopen(“B.C”, “r”);
ft = fopen(“C.C”, “r”);
fclose(fp, fs, ft);
return 0;
}
A. “A.C” “B.C” “C.C”
B. “B.C” “C.C”
C. “A.C”
D. Error in fclose()
Answer: Option D

Explanation:

Extra parameter in call to fclose().

7. On executing the below program what will be the contents of ‘target.txt’ file if the source file contains a line “To err is human”?
#include

int main()
{
int i, fss;
char ch, source[20] = “source.txt”, target[20]=”target.txt”, t;
FILE *fs, *ft;
fs = fopen(source, “r”);
ft = fopen(target, “w”);
while(1)
{
ch=getc(fs);
if(ch==EOF)
break;
else
{
fseek(fs, 4L, SEEK_CUR);
fputc(ch, ft);
}
}
return 0;
}
A. r n
B. Trh
C. err
D. None of above
Answer: Option B

Explanation:

The file source.txt is opened in read mode and target.txt is opened in write mode. The file source.txt contains “To err is human”.

Inside the while loop,

ch=getc(fs); The first character(‘T’) of the source.txt is stored in variable ch and it’s checked for EOF.

if(ch==EOF) If EOF(End of file) is true, the loop breaks and program execution stops.

If not EOF encountered, fseek(fs, 4L, SEEK_CUR); the file pointer advances 4 character from the current position. Hence the file pointer is in 5th character of file source.txt.

fputc(ch, ft); It writes the character ‘T’ stored in variable ch to target.txt.

The while loop runs three times and it write the character 1st and 5th and 11th characters (“Trh”) in the target.txt file.

View Answer Discuss in Forum C Compiler Report
8.
To scan a and b given below, which of the following scanf() statement will you use?
#include

float a;
double b;
A. scanf(“%f %f”, &a, &b);
B. scanf(“%Lf %Lf”, &a, &b);
C. scanf(“%f %Lf”, &a, &b);
D. scanf(“%f %lf”, &a, &b);
Answer: Option D

Explanation:

To scan a float value, %f is used as format specifier.

To scan a double value, %lf is used as format specifier.

Therefore, the answer is scanf(“%f %lf”, &a, &b);

9. Out of fgets() and gets() which function is safe to use?
A. gets()
B. fgets()
Answer: Option B

Explanation:

Because, In fgets() we can specify the size of the buffer into which the string supplied will be stored.
View Answer Discuss in Forum C Compiler Report
10.
Consider the following program and what will be content of t?
#include

int main()
{
FILE *fp;
int t;
fp = fopen(“DUMMY.C”, “w”);
t = fileno(fp);
printf(“%d\n”, t);
return 0;
}
A. size of “DUMMY.C” file
B. The handle associated with “DUMMY.C” file
C. Garbage value
D. Error in fileno()
Answer: Option B

Explanation:

fp = fopen(“DUMMY.C”, “w”); A file DUMMY.C is opened in write mode and returns the file pointer to fp

t = fileno(fp); returns the handle for the fp stream and it stored in the variable t

printf(“%d\n”, t); It prints the handle number.