1、Multiple Choice Quiz 1 1. Which of t he following Visual C++ objects are contained within a "Project"? (a) I. Files II. Visual C++ Solutions III. Flow charts a. I only b. I, II and III c. II only d. II and III only Which is the start point of a Windows program (d) a. the s
2、tatus window of the Visual C++ environment b. built by using sophisticated "Application Wizards" c. a program that is able to control the operating system of a windows computer d. the simplest type of application Visual C++ can generate 3. Which of the following is able to describe a computati
3、on at the highest level of abstraction? (a) a. C++ code b. logic Gates c. machine code d. C code 4. Consider the following fragment of C++ source code. (c) String msg; unsigned int x; int y; cin >> msg >> x >> y; cout << x + y; Which of the following is (are) true regar
4、ding execution of the segment? 1. The input statement will always take the same amount of time to execute. 2. The output statement will always be executed immediately after the input statement. 3. If x and y are both positive, an integer greater than both will be printed. a. II and III
5、only b. I and II only c. none d. II only 5. Integrated programming environments make it difficult to mix and match tools from different sources. This is (b) a. good, because tools from different sources cannot be made to interact with each other b. bad, because no single vendor is likely
6、to be the source of all the best tools c. bad, because all the tools will then have the same user interface d. good, because it ensures compilation is not done incrementally by accident 6. Compared to a sequence of machine code instructions, a fragment of C code (a) a. may describe the same
7、algorithm b. is the native way to program most computers c. describes the actions of the computer, not just of the CPU d. does not engage any transistors during its execution 7. Which of the following does a debugger do? (c) 1. Analyze the source code to find programming errors.
8、2. Decode machine code generated by a compiler. 3. Stop execution of a program. a. I, II, and III. b. I and III only c. II and III only d. III only 8. When using a debugger to find the cause of a program's incorrect behavior, (a) a. it is often necessary to start the program multip
9、le times under the debugger b. the faulty code fragment must first be identified c. the program is usually executed to the point at which the behavior occurs and then executed backwards to find the cause d. it is fastest to start by stopping the debugger long before the behavior appears Mu
10、ltiple Choice Quiz 2 1. In a computer with 4-byte words, which of the following C expressions tests whether ptr contains the address of a word? (c) I. (ptr & 3) == 0 II. (ptr | 3) == 0 III. (ptr % 4) == 0 a. III only b. I only c. I and III only d. II only 2. What happens in a C
11、program when an addition would cause integer overflow? (a) a. An incorrect result is produced and execution continues. b. An exception-handler is called with the two operands as parameters. c. Execution is terminated. d. The correct value is coerced to a floating point number. 3. In
12、C, what is the following binary number in hexadecimal? (a) 11010101 a. 0xD5 b. 0x5D c. 0xB5 d. 0xAB 4. What is the purpose of the exponent in floating point numbers? (c) a. to specify the base as binary, octal, or hexadecimal b. the mantissa is raised to the power of the expon
13、ent c. to indicate where the decimal or binary point should be d. to specify the superscript 5. How is -10 (decimal) represented in an 8-bit 2's complement binary format? (a) a. 11110110 b. 11110101 c. 10001010 d. 11111010 6. In C, using default floating point settings, what
14、 happens when a floating-point computation results in an overflow? (c) a. An erroneous value is computed and execution continues. b. Program execution is halted. c. A special value "infinity" is computed, testable with _finite(). d. An exception is raised unless disabled by calling _con
15、trolfp(). 7. What is the value of the following C expression? (c) 0x1234 & 0x5432 a. 0x1111 b. 0x6666 c. 0x1030 d. 0x5636 8. Which of the following numerical operations is most likely to lead to loss of precision? (c) a. Floating-point multiplication b. Integer addition
16、c. Floating-point addition d. Integer multiplication 9. Which of the following could be represented by one bit of information? (c) a. the color of a single pixel on a true-color computer display b. an ASCII character c. the position of a light switch d. the current channel of a tel
17、evision receiver 10. Which of the following statements about floating-point numbers in C is true? (a) I. Floating-point numbers are often only approximations of real numbers. II. A 32-bit float only approximates decimal fractions, but a 64-bit double represents them exactly. III. Floating-po
18、int numbers can represent any rational real number but not irrationals. a. I only b. I and III only c. II only d. I and II only 11. How is 46 (decimal) represented in an 8-bit 2's complement binary format? (a) a. 00101110 b. 01000110 c. 00011110 d. 00101100 12. What is t
19、he value of the following C expression? (d) 0x1234 ^ 0x5432 (这是XOR运算) a. 0x1030 b. 0x5434 c. 0x5636 d. 0x4606 Multiple Choice Quiz 3 1:The program counter contains (D) a. the number of CPU instructions a program has executed so far b. the number of times a program has been
20、 executed c. the amount of memory a program is currently using d. the address of the CPU instruction that is about to be fetched 2: Which of the following is a good reason (are good reasons) to equip the CPU with small amounts of fast memory? (a) I.To make the design of the compi
21、ler simpler II.To make some CPU instructions smaller III.To make some CPU instructions faster a. II and III only b. I, II, and III c. III only d. II only 3. Which of the following must be true if a program is stopped at a specific line within the Visual C++ debugger?
22、 (D) I. There is at least one breakpoint enabled. II. There is a breakpoint enabled on that line. III. There is a breakpoint enabled on the line preceding that line. a. I only b. I and II only c. I and III only d. none 4: Programs compiled for an Intel Pentium processor
23、 do not execute properly on a SPARC processor from Sun Microsystems because (B) a. copyrights regarding code cannot be violated b. the operation codes understood by the two processors are different c. the assembly mnemonics for the same "opcode" are different in the two processors
24、 d. the memory of a SPARC CPU is numbered from top to bottom 5: Within Visual C++, which of the following will reveal the value of variable when the program is stopped at a breakpoint? (B) I. Placing the mouse pointer over the variable name in the source file window. II. Inserting a prin
25、tf() in the program. III. Typing the variable name on the "Watch" window. a. III only b. I and III only c. I, II, and III d. II and III only 6: Immediately after the CPU executes an instruction that is neither a branch nor a jump instruction, the program counter (B)
26、 a. remains unchanged b. is incremented to point to the following instruction c. has a value that cannot be determined without further information d. is incremented by one 7: A CPU register is a word of CPU memory that (C) a. houses a critical variable for the duration of
27、 the execution of a program b. records the results of periodic CPU diagnostics c. is explicitly loaded and unloaded from normal memory by compiler-generated instructions d. is automatically loaded when a CPU instruction refers to a word of normal memory 8: Which of the followi
28、ng computations may be performed by exactly one CPU instruction? (A) 1. a = 5; 2. a = b + c * 5; 3. for (i = 0; i < 10; i += a[i++]); a. I only b. II only c. I, II, and III d. I and II only 9: Suppose that, using a tool such as the memory window of Visual C++, we found
29、 that a certain set of contiguous memory locations contained the integer 0xC605CD623A8365000000. What could these memory locations hold? (D) 1. the integer 0xC605CD623A8365000000 2. a string 3. a CPU instruction a. I only b. III only c. I and II only d. I, II, and III
30、10: A branch instruction (A) a. sets the program counter to one of two possible values b. increases the program counter by a fixed amount c. sets the program counter to one of many possible values d. unconditionally sets the program counter to its operand 11:A jump instruct
31、ion (D) a. changes the program counter only if its operand is equal to zero b. changes a pointer to point to the next element of an array c. increases the program counter d. unconditionally sets the program counter to its operand 12:The machine code generated from source c
32、ode by a compiler (C) a. associates variable values with their names b. executes more quickly than the source code c. does not preserve all the information given in the source code d. can be easily inspected to check the correctness of the compiler 13: Which of the followin
33、g are true of the effect that optimizations have on the machine code generated by compilers? (B) I. The resulting code will be faster and/or smaller. II. The resulting code will be clearer. III. The resulting code will be harder to debug. a. I, II, and III b. I and III only c.
34、I and II only d. I only Multiple Choice Quiz 4 1:In C, assuming that an int takes 4 bytes, if array a is declared as follows and a has the value 0x10000, what is the value of the expression a + 2? (D) (a是array的首地址) int a[12]; a. 0x10004 b. 8 plus the contents of location 0
35、x10000 c. 0x10002 d. 0x10008 2:The Visual C++ Memory window displays (A) a. the contents of memory, interpreted in one of several ways, without the associated variable names b. the names and values of variables in memory, interpreted in one of several ways c. the name
36、s and values of variables in memory, interpreted as 32-bit integers no matter what the variables' types d. the contents of memory, interpreted as 32-bit integers, without the associated variable names 3:Consider the following code fragment. int a; int b; int main(int argc, char *argv[])
37、 { int c; int d; ... /* some code */ } Which of the following must be true? (B) a. The value of *d is closer to the value of *c than to the value of *a. b. The value of &d is closer to the value of &c than to the value of &a. c. The values of *a and *b are closer to each
38、 other than the values of *c and *d. d. The values of &a and &b are closer to each other than the values of &c and &d. 4:Consider the following code. char a[100]; a[99] = *((char *) (((int) &a[0]) + 4)) If integers are 32 bits wide, which of the following values is equal to a[99]? ( A
39、 ) a. a[4] b. the integer stored in the bytes a[4], a[5], a[6] and a[7] c. a[3] d. a[0] + 4 5:Which of the following statements about alignment within C struct's is true? ( D) I. Alignment may cause the allocation of unused space. II. Alignment is required by all modern p
40、rocessors. III. Alignment can help processors access data more efficiently. a. I, II, and III b. I only c. II and III only d. I and III only 6:In C, assuming that an int takes 4 bytes, how many bytes are required to represent the following array? ( C) int a[12]; a. 1
41、2 b. 52 c. 48 d. 44 7:Given the following declaration and initialization of s, what is the value of the expression s[6]? (D) char s[] = "string"; a. '\n' b. an unpredictable value c. 'g' d. '\0' 8:Given the address of a C struct at runtime, how is
42、the address of a member element in the struct determined? (C) a. A linear search is made from the base address of the struct. b. The element name is looked up in a symbol table. c. A constant offset associated with the member is added to the address. d. The struct consists of
43、an array of pointers to the elements of the struct. 9:In one computer, the bytes with addresses A, A+1, A+2 and A+3 contain the integer 256, and the variable declared with int * a; has the value A. In a different computer, the bytes with addresses B, B+1, B+2 and B+3 also contain the integer 2
44、56, and the variable declared with int * b has the value B. Which of the following are necessarily true? (A) The contents of A+1 are equal to the contents of B+1. The contents of A+1 are equal to the contents of B+2. *a == *b a. III only b. I only c. II and III only d. I
45、and III only 10:We want the variable factorialfunc to hold the address of the first instruction of the following function: (B) int factorial(int n) { if (n == 1) return n; return n * factorial(n -1); } How would we declare the variable? a. int (int) * factorialfunc b. int (*factor
46、ialfunc)(int); c. factorial() * factorialfunc; d. we can't: C cannot extract the addresses of instructions. Multiple Choice Quiz 5 1:Consider the program given below. #include int callee(void) { int count = 5; printf("%d ", (int) &count); return count; } int main (in
47、t argc, char *argv[]) { int count = 4; count = callee(); printf("%d ", (int) &count); return 0; } Which of the following describes the output of the program? (A) a. Two different integers are printed, and the value of neither can be determined from t
48、he information given. b. One integer is printed twice, and its value cannot be determined from the information given. c. 5 is printed twice on the same line. d. 5 and 4 are printed, in that order on the same line. 2: What does the following program print? (D) int callee(int
49、 * count) { count++; return *count; } a. 8 b. 4 c. 5 d. cannot be determined from the information given. int callee(int * count) { count++; return *count; } int main (int argc, char *argv[]) { int count = 4; in
50、t retval; retval = callee(&count); printf("%d", retval); return 0; } 3: At which of the following times is an activation record created? (C) I. When a program starts executing. II.Every time a function is invoked. III.When a variable is declared. a. III o






