Problem 1: 78% more common issues octal (050) shifts (19 >> 4) worth remembering | cannot reduce number of 1's & cannot increase number of 1's Problem 2: 77% stuff after the . always increases 10011001 = 1001.1001 = (-7) + 1/2 + 1/16 Problem 3: 91% sorry about the "three" Problem 4: 85% be sure to compute the carry -- even if you don't store it CF: the carry OF: did you add two numbers of one sign and get a result of anothe sign? SF: the leftmost big ZF: result was 0 Problem 5: 86% The range is not symmetric. There are more negatives than positives Problem 6: 50% [unexpectedly low] Unsigned numbers are positive! Problem 7: 47% Master the powers of two ki is 2**10, Mi is 2**20, Gi is 2**30 ki * ki is Mi ! log(..) is a small number log(1267650600228229401496703205376) is 100 Problem 8: 51% Google "makefile tutorial" http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/ ls public_html argv[0] is "ls" and argv[1] is "public_html" Problem 9: 37% (yikes) lots of empty space in both C and Java you do not --- routeType == "NC" routeType.equals("NC) in Java !strcmp(routeType, "NC") in C routeType[0] == 'N' && routeType[1] == 'C' && routeType[2] == '\0' master the scanf and printf look at the 2nd page of the "cheat sheet" C printf is like Java printf C printf is like C scanf scanf returns the number of read items testing ==EOF reliable only with one item is being read Problem 10: 81% fill in *all* the combinations on the side http://web.stanford.edu/class/cs103/tools/truth-table-tool/ https://www.youtube.com/watch?v=moHkk_89UZE YouTube vides with -> (implies) are for logicians You can split output lines You cannot join output lines from different sources Problem 11: 75% (more like 75% with 10 points and 25% with 0 points) canonical sum of products http://www.cs.unca.edu/brock/classes/Fall2016/csci255/notes/canonical.ods http://electronics-course.com/sum-of-products write the products (minterms) on the side and sum them together For example, A' B' C for row | 0 0 1 | 1 if you are thinking, you are in trouble if you are using XOR, you are in trouble if you are looking for the most efficient solution, you are way too picky Problem 12: 61% if p is an int *, it either points to a int or is NULL (or is "undefined") p can *not* point to another int * ++ and -- are tricky... ++p returns the updated value of p p++ returns the original value of p It's the same as in Java (except Java has not pointers) both ++p and p++ increment p to the "next" element of the array pointers incrementation defined only for pointers to array elements P[i] is *(P+i) be careful! btw, *(p++) + *(p++) is "undefined" in C/C++