资源描述
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 status 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 computation 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 regarding 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 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 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 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.
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 multiple 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
Multiple 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 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 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 exponent
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 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 _controlfp().
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
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 television 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-point 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 the 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 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 compiler 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? (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 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
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 printf() 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)
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 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 following 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 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
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 instruction (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 code 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 following 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. 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 0x10000
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 names 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[]) {
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 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 )
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 processors.
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. 12
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 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 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 256, 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 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 (*factorialfunc)(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 (int 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 the 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 * 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;
int 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
展开阅读全文