Saves Scores of an Arithmetic Quiz
I'd recommend a few things:


PEP8
List comprehensions
str.format
with
Slices


But I'll show how they can make your code nicer.

Using str.format you can easily create name.
Alternately, if you don't want to use str.join:

name = '{} {}'.format(first_name, last_name)
name = ' '.join([first_name, last_name])


Using a list comprehension you can reduce the amount of code to create the rows_data.

rows_data = [row for row in csv.reader(scan)]


Using with you can remove the file.close calls.
This can lead to a very small amount of code to read the rows_data.

with open(class_file_names[int(math_class) - 1], 'r+') as scan:
    rows_data = [row for row in csv.reader(scan)]


I'll touch on PEP8, class_file_names should be all caps, so CLASS_FILE_NAMES as it's a constant.
You should also have a space either side of most operators, the largest exception are commas.

Finally slices makes your x code much easier to read.
To get the first three items in a list you can use list[:3] where for two you can use list[:2].
combining these together you can overwrite your existing scores with ease:

x[:3] = [str(score)] + x[:2]


Also your max code may be wrong as it may use the max from the string representation,
not from what the numbers mean.
And on the second test, you will average as if there has been three tests, where there has been two.

In all I'd use:

CLASS_FILE_NAMES = ['Class 1.csv', 'Class 2.csv', 'Class 3.csv']
FIELDNAMES = ['Student Name', 'Oldest Score', 'Older Score',
              'Latest Score', 'Average', 'Highest']

file_name = CLASS_FILE_NAMES[int(math_class) - 1]
name = '{} {}'.format(first_name, last_name)
with open(file_name, 'r+') as scan:
    rows_data = [row for row in csv.reader(scan)]

with open(file_name, 'w', newline="") as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=FIELDNAMES)
    writer.writeheader()
    name_found = False
    for x in rows_data[1:]:
        if x[0] == name:
            x[:3] = [str(score)] + x[:2]
            nums = [int(x) for x in x[:3]]
            x[4] = sum(nums) / 3
            x[5] = max(nums)
            nameFound = True
        writer.writerow({
            'Student Name': x[0],
            'Latest Score': x[1],
            'Older Score': x[2],
            'Oldest Score': x[3],
            'Average': x[4],
            'Highest': x[5]})

    if not name_found:
        writer.writerow({
            'Student Name': name,
            'Latest Score': score,
            'Older Score': '0',
            'Oldest Score': '0',
            'Average': score,
            'Highest': score})

input("Test complete! Press anything to close.")