Perfect reminder of why I don't use C / C++ anymore. I had a teacher (highschool, IIRC) who made similar exams... He had the gall to call his course "computer science." I called it a waste of time, effort, and brainpower. I hate to think about how many computer-loving students he ruined.
OP, you did your students a disservice. You should've just assigned a "practicum" exam instead.
I learned programming in C. I really think it is important to learn all the data structures internal functioning (coding your own linked lists or hash-tables), learning how memory in a program really works, what is the difference between a 4 byte-type variable versus a 1 byte one, etc
1. I learned the two languages contemporaneously. They were commonly referred to as C / C++. I used C mostly for embedded/systems programming. I don't know what "real" C++ means... but to be fair, the last time I really used it was pre-STL.
2. OK. (I didn't make that claim, did I?) C / C++ has it's uses. I use it when I have to (embedded systems, systems programming, and performance). But I don't use it willingly.
I TA'd a course in C for EE's. It was fine. I think it probably helped them in many ways. Anecdote: My favorite course as an undergrad was building our own wire-wrapped 8086 computer. You quickly learn to appreciate assembly (versus manually loading registers), and then quickly learn to appreciate the C compiler.