Answer:
Here is the C++ program. 
#include <iostream> //to use input output functions
using namespace std; // to access objects like cin cout
 
 void chessboard(int N){ // function that takes a number N as parameter generates corresponding board
 int i, j; 
 string black = "B"; // B for black squares
 string white = "W"; // W for white squares
 for(i=1;i<=N;i++){ //iterates through each column of the board
 for(j=1;j<=N;j++){ //iterates through each row of the board
 if((i+j)%2==0) // if sum of i and j is completely divisible by 2
 cout<<black<<" "; //displays B when above if condition is true
 else //if (i+j)%2 is not equal to 0
 cout<<white<<" "; } // displays W when above if condition is false
 cout<<endl; } } //prints the new line 
 
int main(){ //start of the main function
 int num; //declares an integer num
 cout << "Enter an integer representing the size of the chessboard: "; //prompts user to enter size of chess board
 cin >> num; //reads value of num from user
 chessboard(num); } //calls chessboard function to display N lines consist of N space-separated characters representing the chessboard pattern
Step-by-step explanation:
The function works as follows:
Lets say that N = 2
two string variables black and white are declared. The value of black is set to "B" and value of white is set to "W" to return a chessboard pattern in B and W squares.
The outer loop for(i=1;i<=N;i++) iterates through each column of the chess board. The inner loop for(j=1;j<=N;j++) iterates through each row of chess board. 
At first iteration of outer loop:
N = 2
outer loop:
i=1
i<=N is true because i=1 and 1<=2
So the program enters the body of the outer for loop. It has an inner for loop:
for(j=1;j<=N;j++) 
At first iteration of inner loop:
j = 1
j<=N is true because j=1 and 1<=2
So the program enters the body of the inner for loop. It has an if statement:
if((i+j)%2==0) this statement works as:
if(1+1) % 2 == 0 
(1+1 )% 2 takes the mod of 1+1 with 2 which gives the remainder of the division. 
2%2 As 2 is completely divisible by 2 so 2%2 == 0
Hence the if condition evaluates to true. So the statement in if part executes:
cout<<black<<" "; 
This prints B on the output screen with a space. 
B
The value of j is incremented to 1. 
j = 2
At second iteration of inner loop:
j = 2
j<=N is true because j=2 and 2=2
So the program enters the body of the inner for loop. It has an if statement:
if((i+j)%2==0) this statement works as:
if(1+2) % 2 == 0 
(1+2 )% 2 takes the mod of 1+2 with 2 which gives the remainder of the division. 
3%2 As 3 is not completely divisible by 2
Hence the if condition evaluates to false. So the statement in else part executes:
cout<<white<<" "; 
This prints W on the output screen with a space.
B W 
The value of j is incremented to 1.
j = 3
Now 
j<=N is false because j=3 and 3>2
So the loop breaks and program moves to the outer loop to iterate through the next row.
At second iteration of outer loop:
N = 2
outer loop:
i=2
i<=N is true because i=2 and 2 = 2
So the program enters the body of the outer for loop. It has an inner for loop:
for(j=1;j<=N;j++) 
At first iteration of inner loop:
j = 1
j<=N is true because j=1 and 1<=2
So the program enters the body of the inner for loop. It has an if statement:
if((i+j)%2==0) this statement works as:
if(2+1) % 2 == 0 
(2+1 )% 2 takes the mod of 2+1 with 2 which gives the remainder of the division. 
3%2 As 3 is not completely divisible by 2 
Hence the if condition evaluates to false. So the statement in else part executes:
cout<<white<<" "; 
This prints W on the output screen with a space. 
B W
W 
The value of j is incremented to 1. 
j = 2
At second iteration of inner loop:
j = 2
j<=N is true because j=2 and 2=2
So the program enters the body of the inner for loop. It has an if statement:
if((i+j)%2==0) this statement works as:
if(2+2) % 2 == 0 
(2+2 )% 2 takes the mod of 2+2 with 2 which gives the remainder of the division. 
4%2 As 4 is completely divisible by 2 so 4%2 == 0
Hence the if condition evaluates to false. So the statement in if part executes:
cout<<black<<" "; 
This prints B on the output screen with a space.
B W 
W B 
The value of j is incremented to 1.
j = 3
Now 
j<=N is false because j=3 and 3>2
So the loop breaks and program moves to the outer loop. The value of outer loop variable i is incremented to 1 so i = 3 
N = 2
outer loop:
i=3
i<=N is false because i=3 and 3>2
So this outer loop ends. 
Now the output of this program is:
B W 
W B 
Screenshot of this program along with its output is attached.