Concept:
In C programming, many executable statements end with a semicolon.
However, not every line in a C program requires a semicolon.
Preprocessor directives are handled before compilation and do not use semicolons.
Step 1: Examine Statement-I.
Statement-I says:
\[
\text{Every program statement must end with a semicolon}.
\]
This is not true.
Examples:
\[
if(x>0)
\]
\[
while(i<10)
\]
\[
for(i=0;i<10;i++)
\]
These control statements themselves do not end with a semicolon.
Hence Statement-I is false.
Step 2: Examine Statement-II.
Compiler directives include:
\[
\#include
\]
\[
\#define PI\;3.14
\]
These preprocessor directives do not terminate with semicolons.
Hence Statement-II is true.
Step 3: Determine the correct option.
Statement-I is false.
Statement-II is true.
Therefore,
\[
\boxed{\text{Statement-I is false, but Statement-II is true}}
\]
Hence option (D) is correct.