A: "You should be happy that she has at least given you a C." (This is correct although it could simply be the simple past "gave" because we presumably know when she gave you the C and what you got that C on; however, the present perfect is fine here as well because the speaker is not specifically telling us when you got the C and what you got the C on or in.)
For example: "I got a C on my report card." I know when I received my report card, so it wouldn't be in the present perfect unless I wanted to say, "I've gotten a C on my report card before."
B: "You are right; I should be happy that she has given me a C on the practice exam. But now that she has called off the actual exam, I don't know why I spent so much time being depressed about the practice exam."
Okay, B is more difficult only because "she has given me a C on the practice exam" makes more sense in the simple past, but it's not wrong; it's just unnecessary. It would not be correct by itself, but the emphasis is on "I should be happy" and the time in the past that you received the C on the practice exam is unimportant, so your choice is fine; however, I don't think I would ever say it that way, but I've heard it said that way and I know it's not incorrect; just unnecessary. I can't explain this one; for once, I'm stumped. I'll get back to you on this one.
I don't see how people determine the relevance in sentences such as "I just wanted to let you know that he has agreed to do it" when I think "agreed" would suffice. ANSWER: "he has agreed" is correct here because there is no mention of when he agreed to do it. "I just wanted to let you know that yesterday, he agreed to do it."
Also, in "he told me that the trip [had] been cancelled", why shouldn't it be "was cancelled"? I don't know, it feels like just about everything should be in present perfect. ANSWER: Present perfect is wrong here; Both past perfect and simple past are fine, however; it just depends on what he told you. Did he tell you, "The trip is cancelled" or "The trip has been cancelled"? They basically mean the same thing although "the trip is cancelled" could mean that he decided to cancel it right then and there in front of you, but it doesn't necessarily have to mean that; he could just mean the present perfect. It would be fine if it were written:
He told me, "The trip has been cancelled."
FumbleFinger's answer is well put. Follow his advice. He agrees with me for the most part and I completely agree with him.