+ All Categories

mcq1

Date post: 24-Nov-2014
Category:
Upload: mbrodyag
View: 123 times
Download: 3 times
Share this document with a friend
Popular Tags:
26
1 . The machine code generated from source code by a compiler (a) can be easily inspected to check the correctness of the compiler (b) associates variable values with their names (c) executes more quickly than the source code (d) does not preserve all the information given in the source code Correct answer is (d ) Your score on this question is: 7.14 Feedbac k: See section 1.1.3 of the course notes. 2 . Consider the following fragment of C++ source code. 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? I. The input statement will always take the same amount of time to execute. II. The output statement will always be executed immediately after the input statement. III. If x and y are both positive, an integer greater than both will be printed. (a) none (b) II and III only (c) II only (d) I and II only Correct answer is (a ) Your score on this question is: 0.00 Feedbac k: See section 1.1.1 of the course notes. 3 . When debugging using Visual C++, which of the following are possible through the Watch window? I. The program's execution can be stopped.
Transcript
Page 1: mcq1

1. The machine code generated from source code by a compiler

 (a) can be easily inspected to check the correctness of the compiler

 (b) associates variable values with their names

 (c) executes more quickly than the source code

 (d) does not preserve all the information given in the source codeCorrect answer is (d)Your score on this question is:7.14Feedback:

   See section 1.1.3 of the course notes.   

2. Consider the following fragment of C++ source code.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?

I. The input statement will always take the same amount of time to execute.II. The output statement will always be executed immediately after the input statement.

III. If x and y are both positive, an integer greater than both will be printed.

 (a) none

 (b) II and III only

 (c) II only

 (d) I and II onlyCorrect answer is (a)Your score on this question is:0.00Feedback:

   See section 1.1.1 of the course notes.   

3. When debugging using Visual C++, which of the following are possible through the Watch window?

I. The program's execution can be stopped.II. The value of an arbitrary C expression can be calculated.

III. The value of a program variable can be set.

 (a) III only

 (b) II only

 (c) I, II, and III.

 (d) II and III onlyCorrect answer is (d)Your score on this question is:7.14Feedback:

   See section 1.2.3 of the course notes.   

4. In Visual C++, a Win32 Console Application is

 (a) built by using sophisticated "Application Wizards"

 (b) the status window of the Visual C++ environment

Page 2: mcq1

 (c) a program that is able to control the operating system of a windows computer

 (d) the simplest type of application Visual C++ can generateCorrect answer is (d)Your score on this question is:7.14Feedback:

   See section 1.2.1 of the course notes.   

5. When executing a function callee(), which of the following are true regarding the value of the frame pointer?

I. It marks the top of the stack frame of the function that invoked callee().II. It marks the bottom of the stack frame of callee()

III. It is the top of the stack.

 (a) III only

 (b) I and II only

 (c) II only

 (d) I onlyCorrect answer is (b)Your score on this question is:0.00Feedback:

   See section 1.4.2 of the course notes.   

6. Consider the following program.int i;int j = 1;int callee(int number) { int plusone; plusone = number + 1; return plusone;}int main (int argc, char *argv[]) { if (j == 1) return callee(i); return j;}Which of the following are allocated in the activation record immediately after the function callee() is invoked?

 (a) i only.

 (b) plusone only.

 (c) plusone and number only.

 (d) i, j and number only.Correct answer is (c)Your score on this question is:7.14Feedback:

   See section 1.4.2 of the course notes.   

7. Consider the following program.int square(int * arg) { int n = * arg; return n * n;

Page 3: mcq1

}int main (int argc, char * argv[]) { int arg = strtol(argv[1], NULL, 0); return square(arg);}When it is executed with the argument 5, the variable n is allocated to

 (a) many addresses neither of which are known to the compiler.

 (b) many addresses chosen by the compiler.

 (c) exactly one address chosen by the compiler.

 (d) exactly one address not known to the compiler.Correct answer is (d)Your score on this question is:0.00Feedback:

   See section 1.4.1 of the course notes.   

8. What is printed as a result of execution of the following program?#include <stdio.h>void callee(int * count) { (*count)++;}int main (int argc, char *argv[]) { int count = 4; callee(&count); printf("%d", count); return 0;}

 (a) 4

 (b) 8

 (c) 5

 (d) It cannot be determined from the information given.Correct answer is (c)Your score on this question is:7.14Feedback:

   See section 1.4.1 of the course notes.   

9. Consider the following segment of C source code.int a = 8;int b = *&a;What is the value of variable b at the end of execution of the segment?

 (a) a

 (b) (int) &a

 (c) &a

 (d) (int) &bCorrect answer is (a)Your score on this question is:7.14Feedback:    See section 1.3.2 of the course notes.

   

Page 4: mcq1

10. The Visual C++ Memory window displays

 (a) the names and values of variables in memory, interpreted as 32-bit integers no matter what the variables' types

 (b) the contents of memory, interpreted as 32-bit integers, without the associated variable names

 (c) the contents of memory, interpreted in one of several ways, without the associated variable names

 (d) the names and values of variables in memory, interpreted in one of several waysCorrect answer is (c)Your score on this question is:7.14Feedback:

   See section 1.3.3 of the course notes.   

11. A jump instruction

 (a) increases the program counter

 (b) unconditionally sets the program counter to its operand

 (c) changes the program counter only if its operand is equal to zero

 (d) changes a pointer to point to the next element of an arrayCorrect answer is (b)Your score on this question is:0.00Feedback:

   See section 1.5.2 of the course notes.   

12. Programs compiled for an Intel Pentium processor do not execute properly on a SPARC processor fromSun Microsystems because

 (a) copyrights regarding code cannot be violated

 (b) the operation codes understood by the two processors are different

 (c) the memory of a SPARC CPU is numbered from top to bottom

 (d) the assembly mnemonics for the same "opcode" are different in the two processorsCorrect answer is (b)Your score on this question is:7.14Feedback:

   See section 1.5.1 of the course notes.   

13. 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?

I. the integer 0xC605CD623A8365000000II. a string

III. a CPU instruction

 (a) I and II only

 (b) I only

 (c) I, II, and III

 (d) III only

Page 5: mcq1

Correct answer is (c)Your score on this question is:7.14Feedback:

   See section 1.5.1 of the course notes.   

14. How many return addresses does a C function have as a program executes?

 (a) as many as the number of return statements within the function

 (b) one

 (c) two, one for each branch

 (d) as many as the number of times it is invokedCorrect answer is (d)Your score on this question is:0.00Feedback:    See section 1.5.2 of the course notes.

   

Go to top of assessment.Total score: 64.29

Your performance was as follows:1. Which of the following does a debugger do?

I. Analyze the source code to find programming errors.II. Decode machine code generated by a compiler.

III. Stop execution of a program.

 (a) I, II, and III.

 (b) III only

 (c) I and III only

 (d) II and III onlyCorrect answer is (d)Your score on this question is:7.14Feedback:

   See section 1.1.3 of the course notes.   

2. Which of the following Visual C++ objects are contained within a "Project"?I. FilesII. Visual C++ Solutions

III. Flow charts

 (a) II only

 (b) I, II and III

 (c) I only

 (d) II and III onlyCorrect answer is (c)Your score on this question is:7.14Feedback:

   See section 1.1.4 of the course notes.

Page 6: mcq1

   

3. Within Visual C++, which of the following will reveal the value of a variable when the program is stopped at a breakpoint?

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) I, II, and III

 (b) I and III only

 (c) II and III only

 (d) III onlyCorrect answer is (b)Your score on this question is:0.00Feedback:

   See section 1.2.3 of the course notes.   

4. When using a debugger to find the cause of a program's incorrect behavior,

 (a) it is often necessary to start the program multiple times under the debugger

 (b) the program is usually executed to the point at which the behavior occurs and then executed backwards to find the cause

 (c) the faulty code fragment must first be identified

 (d) it is fastest to start by stopping the debugger long before the behavior appearsCorrect answer is (a)Your score on this question is:7.14Feedback:

   See section 1.2.4 of the course notes.   

5. What does the following program print?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;}

 (a) 8

 (b) 5

 (c) 4

 (d) cannot be determined from the information given.Correct answer is (d)Your score on this question is:0.00Feedback:    See section 1.4.1 of the course notes.

   

Page 7: mcq1

6. When executing a function callee(), which of the following are true regarding the value of the frame pointer?

I. It marks the top of the stack frame of the function that invokedcallee().II. It marks the bottom of the stack frame of callee()

III. It is the top of the stack.

 (a) I only

 (b) II only

 (c) III only

 (d) I and II onlyCorrect answer is (d)Your score on this question is:7.14Feedback:    See section 1.4.2 of the course notes.

   

7. Consider the following function.int factorial(int n) { if (n == 1) return n; return n * factorial(n - 1);}How many activation records are "popped" when it is invoked by the expression factorial(4)?

 (a) 4

 (b) 5

 (c) 1

 (d) 0Correct answer is (a)Your score on this question is:7.14Feedback:

   See section 1.4.2 of the course notes.   

8. Consider the following program.int i;int * jp = &i;int main(int i, char * argv[]) { printf("%d %d\n", (int) &i, (int) jp);}Which of the following describes what it prints?

 (a) two very different integers

 (b) nothing: it will not compile because it is ambiguous

 (c) two values, one 4 greater than the other

 (d) two integers that are exactly the sameCorrect answer is (a)Your score on this question is:7.14Feedback:    See section 1.4.1 of the course notes.

   

Page 8: mcq1

9. 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 toa[99]?

 (a) a[3]

 (b) a[0] + 4

 (c) a[4]

 (d) the integer stored in the bytes a[4], a[5], a[6] and a[7]Correct answer is (c)Your score on this question is:7.14Feedback:    See section 1.3.5 of the course notes.

   

10. Consider the following segment of a C program.int i = 99;int a[100];i = a[i + 1];Which of the following is true of the segment?

 (a) i will have the value of the last element of the array a at the end of any execution of the segment.

 (b) Execution will fail because a has the wrong size.

 (c) When executed, the program will be prematurely terminated by the operating system because of an illegal memory access.

 (d) i will have the value 99 at the end of any execution of the segment.Correct answer is (d)Your score on this question is:7.14Feedback:    See section 1.3.5 of the course notes.

   

11. Which of the following is a good reason (are good reasons) to equip the CPU with small amounts of fast memory?

I. To make the design of the compiler simplerII. To make some CPU instructions smaller

III. To make some CPU instructions faster

 (a) II and III only

 (b) III only

 (c) I, II, and III

 (d) II onlyCorrect answer is (a)Your score on this question is:7.14Feedback:    See section 1.5.3 of the course notes.

   

12. The program counter contains

 (a) the amount of memory a program is currently using

Page 9: mcq1

 (b) the address of the CPU instruction that is about to be executed

 (c) the number of times a program has been executed

 (d) the number of CPU instructions a program has executed so farCorrect answer is (b)Your score on this question is:0.00Feedback:    See section 1.5.2 of the course notes.

   

13. Immediately after the CPU executes an instruction that is neither a branch nor a jump instruction, the program counter

 (a) is incremented by one

 (b) has a value that cannot be determined without further information

 (c) remains unchanged

 (d) is incremented to point to the following instructionCorrect answer is (d)Your score on this question is:0.00Feedback:    See section 1.5.2 of the course notes.

   

14. Which of the following computations may be performed by exactly one CPU instruction?I. a = 5;II. a = b + c * 5;

III. for (i = 0; i < 10; i += a[i++]);

 (a) I and II only

 (b) II only

 (c) I only

 (d) I, II, and IIICorrect answer is (c)Your score on this question is:7.14

View Assessment Result: Multiple-Choice Quiz 1

Your performance was as follows:

1.

Which of the following is able to describe a computation at the highest level of abstraction?

Page 10: mcq1

(a) logic Gates

(b) C++ code

(c) C code

(d) machine code

Correct answer is (b)

Your score on this question is: 0.00

Feedback:

See section 1.1.2 of the course notes.

2.

Which of the following does a debugger do?

Analyze the source code to find programming errors.

Decode machine code generated by a compiler.

Stop execution of a program.

(a) I, II, and III.

(b) III only

(c) II and III only

(d) I and III only

Page 11: mcq1

Correct answer is (c)

Your score on this question is: 7.14

Feedback:

See section 1.1.3 of the course notes.

3.

When using a debugger to find the cause of a program's incorrect behavior,

(a) it is fastest to start by stopping the debugger long before the behavior appears

(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 often necessary to start the program multiple times under the debugger

Correct answer is (d)

Your score on this question is: 7.14

Feedback:

See section 1.2.4 of the course notes.

Page 12: mcq1

4.

In Visual C++, a Win32 Console Application is

(a) built by using sophisticated "Application Wizards"

(b) the simplest type of application Visual C++ can generate

(c) a program that is able to control the operating system of a windows computer

(d) the status window of the Visual C++ environment

Correct answer is (b)

Your score on this question is: 7.14

Feedback:

See section 1.2.1 of the course notes.

5.

Consider the following program.

int i;

int * jp = &i;

int main(int i, char * argv[]) {

printf("%d %d\n", (int) &i, (int) jp);

}

Which of the following describes what it prints?

Page 13: mcq1

(a) two integers that are exactly the same

(b) nothing: it will not compile because it is ambiguous

(c) two very different integers

(d) two values, one 4 greater than the other

Correct answer is (c)

Your score on this question is: 7.14

Feedback:

See section 1.4.1 of the course notes.

6.

Consider the function factorial() defined as follows.

int factorial(int n) {

if (n == 1) return n;

return n * factorial(n - 1);

}

How many activation records of factorial are allocated by invocation of the expression factorial(4)?

(a) 5

(b) 1

(c) 4

Page 14: mcq1

(d) 0

Correct answer is (c)

Your score on this question is: 7.14

Feedback:

See section 1.4.2 of the course notes.

7.

Consider the following function.

int factorial(int n) {

if (n == 1) return n;

return n * factorial(n - 1);

}

How many activation records are "popped" when it is invoked by the expression factorial(4)?

(a) 4

(b) 0

(c) 1

(d) 5

Correct answer is (a)

Your score on this question is: 7.14

Page 15: mcq1

Feedback:

See section 1.4.2 of the course notes.

8.

Consider the following program.

int square(int * arg) {

int n = * arg;

return n * n;

}

int main (int argc, char * argv[]) {

int arg = strtol(argv[1], NULL, 0);

return square(arg);

}

When it is executed with the argument 5, the variable n is allocated to

(a) many addresses neither of which are known to the compiler.

(b) exactly one address not known to the compiler.

(c) exactly one address chosen by the compiler.

(d) many addresses chosen by the compiler.

Correct answer is (b)

Your score on this question is: 7.14

Page 16: mcq1

Feedback:

See section 1.4.1 of the course notes.

9.

Consider the following segment of a C program.

int i = 99;

int a[100];

i = a[i + 1];

Which of the following is true of the segment?

(a) i will have the value 99 at the end of any execution of the segment.

(b) i will have the value of the last element of the array a at the end of any execution of the segment.

(c) When executed, the program will be prematurely terminated by the operating system because of an illegal memory access.

(d) Execution will fail because a has the wrong size.

Correct answer is (a)

Your score on this question is: 7.14

Feedback:

See section 1.3.5 of the course notes.

Page 17: mcq1

10.

In a computer in which both addresses and integers are 32 bits wide, how many bytes of memory will the compiler allocate for following code fragment?

int a;

int * b = &a;

(a) 32

(b) 4

(c) 8

(d) 0

Correct answer is (c)

Your score on this question is: 7.14

Feedback:

See section 1.3.2 of the course notes.

11.

Immediately after the CPU executes an instruction that is neither a branch nor a jump instruction, the program counter

(a) remains unchanged

Page 18: mcq1

(b) has a value that cannot be determined without further information

(c) is incremented to point to the following instruction

(d) is incremented by one

Correct answer is (c)

Your score on this question is: 7.14

Feedback:

See section 1.5.2 of the course notes.

12.

How many return addresses does a C function have as a program executes?

(a) two, one for each branch

(b) as many as the number of return statements within the function

(c) as many as the number of times it is invoked

(d) one

Correct answer is (c)

Your score on this question is: 7.14

Feedback:

See section 1.5.2 of the course notes.

Page 19: mcq1

13.

Consider the following pseudo-instructions.

0x40B7D8 i = i - 1

0x40B7E0 branch-if-not-zero 0x40B7D8

Which of the following code fragments do the instructions encode?

if (i != 0) i = i -1;

while (--i);

do { i = i - 1; } while (i);

(a) II only

(b) I only

(c) II and III only

(d) III only

Correct answer is (c)

Your score on this question is: 7.14

Feedback:

See section 1.5.2 of the course notes.

14.

Page 20: mcq1

We want the variable factorialfunc to hold the address of the first instruction of the following function:

int factorial(int n) {

if (n == 1) return n;

return n * factorial(n -1);

}

How would we declare the variable?

(a) we can't: C cannot extract the addresses of instructions.

(b) int (*factorialfunc)(int);

(c) int (int) * factorialfunc

(d) factorial() * factorialfunc;

Correct answer is (b)

Your score on this question is: 7.14

Feedback:

See section 1.5.2 of the course notes.

Go to top of assessment.

Total score: 92.86

© Copyright 2008 iCarnegie, Inc. All rights reserved.


Recommended