5) Suppose you have declared an integer array named scores and you make the following method call:

TotalScores(scores, num : 1);
Of the following overloaded method definitions, which would execute?

a. TotalScores(int[] scores)
b. TotalScores(int[] scores, int num)
c. TotalScores(int[] scores, int num = 10, int code = 10)
d. The program would not compile.

2 answers

Here's another link:

http://msdn.microsoft.com/en-us/library/dd264739.aspx

And some relevant example code:
// Instance anotherExample sends an argument for the constructor's
// optional parameter.
ExampleClass anotherExample = new ExampleClass("Provided name");
anotherExample.ExampleMethod(1, "One", 1);
anotherExample.ExampleMethod(2, "Two");
anotherExample.ExampleMethod(3);

// The following statements produce compiler errors.

// An argument must be supplied for the first parameter, and it
// must be an integer.
//anExample.ExampleMethod("One", 1);
//anExample.ExampleMethod();

// You cannot leave a gap in the provided arguments.
//anExample.ExampleMethod(3, ,4);
//anExample.ExampleMethod(3, 4);

// You can use a named parameter to make the previous
// statement work.
anExample.ExampleMethod(3, optionalint: 4);

....

// The first parameter, required, has no default value assigned
// to it. Therefore, it is not optional. Both optionalstr and
// optionalint have default values assigned to them. They are optional.
public void ExampleMethod(int required, string optionalstr = "default string",
int optionalint = 10)
{
Console.WriteLine("{0}: {1}, {2}, and {3}.", _name, required, optionalstr,
optionalint);
}
b. TotalScores(int[] scores, int num)