See these two answers for links to the standards documents. You can usually safely use the free late-draft versions as a reference instead of the rather expensive final documents. At least for C++ the differences between the two are (mostly) minor editorial details.
C
The C11 standard defines the following keywords in section 6.4.1:
auto if unsigned
break inline void
case int volatile
char long while
const register _Alignas
continue restrict _Alignof
default return _Atomic
do short _Bool
double signed _Complex
else sizeof _Generic
enum static _Imaginary
extern struct _Noreturn
float switch _Static_assert
for typedef _Thread_local
goto union
There is no convenient single list of operators, but they are not listed as keywords. Neither are any preprocessor directives.
C++
The C++14 standard defines the following keywords in section 2.12:
alignas continue friend register true
alignof decltype goto reinterpret_cast try
asm default if return typedef
auto delete inline short typeid
bool do int signed typename
break double long sizeof union
case dynamic_cast mutable static unsigned
catch else namespace static_assert using
char enum new static_cast virtual
char16_t explicit noexcept struct void
char32_t export nullptr switch volatile
class extern operator template wchar_t
const false private this while
constexpr float protected thread_local
const_cast for public throw
The alternative notations for some operators are are considered keywords as well:
and and_eq bitand bitor compl not
not_eq or or_eq xor xor_eq
The operator symbols are listed in section 2.13, but they are not called keywords. And like in C preprocessor symbols are not keywords either.
Your Professor’s list
Strictly according to the letter of the standards your professor is wrong. The snippet of the list in your question lists more than keywords. It looks more like a list of special words and symbols with a pre-defined meaning as tokens in the language or preprocessor.
That interpretation is not actually that far-fetched when you look at the half-explicit semi-definitions of what a keyword is in the two standards:
C11
The above tokens (case sensitive) are reserved (in translation phases 7 and 8) for use as
keywords, and shall not be used otherwise.
C++14
The identifiers shown in Table 4 are reserved for use as keywords (that is, they are unconditionally treated as keywords in phase 7) except in an attribute-token.