2. A string constant is a sequence of characters enclosed in a pair of double quotation marks.
3.a Because' \n' is a character constant, it takes up 1 byte of memory.
4. b "1"is a string. Actually, two characters are stored as' 1' and' \0', and each character constant accounts for one byte, so' 1' accounts for two bytes. This is why A and A are different. '
According to the answer to the last question, it is obvious that "ABC" takes up 4 bytes.
6. The expression of a long integer constant is usually followed by an L, taking 4 bytes, and the value range is-2147483648-2147483647.
7. the general form of c macro definition # definition N 3 there is no space between an option n and 3 in this question; Option b has no #; C option identifier is n _1; There cannot be spaces between the options 1 and 3.
8.b macro replacement is to replace the string as it is. If you want to get (2+3)*(2+3), you must change it to (R)*(R).
9.b There is nothing to say. It is stored in memory in binary form.
The 10.b character variable can only store integer constants between 0 and 255. Otherwise, they will overflow.
1 1.a self-addition and self-subtraction operators are right-handed, so i-i is equivalent to (I-)-I; The solution of this expression is to perform the whole operation according to the value before self-subtraction, and then self-subtraction, that is, 3-3 = 0; Then the value of I becomes 2. Under the extended description: int k = 3;; The expression k++ k ++ k++ is equivalent to the expression (k++)+(k++)+(k++), with a value of 9 and a value of 6. If it is (++k)+(++k)+(++k), then the value of this expression is 18, and the value of k is 6.
12.A a++ b++ c++ is equivalent to (a++)+(b++)+(c++), and it is easy to get the value of this expression 6.
13.d This is a relational expression 10! =9 is true, that is, 1. (The result of relational expression is false, that is, 0 is true, that is, 1, just these two results. )