If all you want is to list each visible name in the current directory, add c to the end of the list, and view the result in less:
printf '%s\n' * c | less
The rest of this answer deals with creating a separate list of filenames, adding something to that list and then either using it as arguments to less, or viewing the list in less (depending on how we interpret the question).
You may use an array to store the names of all visible files in the current directory:
names=( * )
You may add things to the end of an array:
names+=( c )
... or in one go when you set the array's initial values:
names=( * c )
You may use the elements in the array as arguments to less:
less -- "${names[@]}"
(The -- is used to ensure that less interprets the arguments as filenames and not as options. This matters if any filename starts with a dash.)
Or, you may list the elements of the names array using less:
printf '%s\n' "${names[@]}" | less
Doing the same things but using the list of positional parameters in place of a named array:
set -- * set -- "$@" c
... or,
set -- * c
Then calling less with these elements as arguments:
less -- "$@"
Or, listing the positional parameters with less:
printf '%s\n' "$@" | less
Note that the quoting in all the above commands is important. Quoting "$@" and "${names[@]}" like this ensures that the shell expands them as lists of individually quoted elements.
c. What isc?