ch7 Flashcards

1
Q

7.1 De ne the following arrays:
A) empNums, a 100-element array of ints
B) payRates, a 25-element array of floats
C) miles, a 14-element array of longs
D) cityName, a 26-element array of string objects
E) lightYears, a 1,000-element array of doubles

A
7.1 A) int empNums[100];
B) float payRates[25];
C) long miles[14];
D) string cityNames[26];
E) double lightYears[1000];
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
7.2 What s wrong with the following array definitions?
int readings[-1];
float measurements[4.5];
int size;
string names[size];
A

7.2 int readings[-1]; // Size declarator cannot be negative
float measurements[4.5]; // Size declarator must be an integer
int size;
string names[size]; // Size declarator must be a constant

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

7.3 What would the valid subscript values be in a four-element array of doubles?

A

7.3 0 through 3

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

7.4 What is the difference between an array s size declarator and a subscript?

A

7.4 The size declarator is used in the array declaration statement. It specifies the number of
elements in the array. A subscript is used to access an individual element in an array.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

7.5 What is array bounds checking ? Does C++ perform it?

A

7.5 Array bounds checking is a safeguard provided by some languages. It prevents a program
from using a subscript that is beyond the boundaries of an array. C++ does not perform
array bounds checking.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

7.6 What is the output of the following code?
int values[5], count;
for (count = 0; count

A
7.6 
1
2
3
4
5
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
7.7 The following program skeleton contains a 20-element array of ints called fish.
When completed, the program should ask how many sh were caught by shermen
1 through 20, and store this data in the array. Complete the program.
#include 
using namespace std;
int main()
{
const int NUM_FISH = 20;
int fish[NUM_FISH];
// You must finish this program. It should ask how
// many fish were caught by fishermen 1-20, and
// store this data in the array fish.
return 0;
}
A
7.7 #include 
using namespace std;
int main()
{
const int NUM_FISH = 20;
int fish[NUM_FISH], count;
cout > fish[count];
}
return 0;
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

7.8 De ne the following arrays:
A) ages, a 10-element array of ints initialized with the values 5, 7, 9, 14, 15,
17, 18, 19, 21, and 23.
B) temps, a 7-element array of floats initialized with the values 14.7, 16.3,
18.43, 21.09, 17.9, 18.76, and 26.7.
C) alpha, an 8-element array of chars initialized with the values J , B , L, A,
* , $ , H , and M .

A

7.8 A) int ages[10] = {5, 7, 9, 14, 15, 17, 18, 19, 21, 23};
B) float temps[7] = {14.7, 16.3, 18.43, 21.09, 17.9, 18.76, 26.7};
C) char alpha[8] = {‘J’, ‘B’, ‘L’, ‘A’, ‘*’, ‘$’, ‘H’, ‘M’};

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

7.9 Is each of the following a valid or invalid array definition? (If a definition is
invalid, explain why.)
int numbers[10] = {0, 0, 1, 0, 0, 1, 0, 0, 1, 1};
int matrix[5] = {1, 2, 3, 4, 5, 6, 7};
double radii[10] = {3.2, 4.7};
int table[7] = {2, , , 27, , 45, 39};
char codes[] = {‘A’, ‘X’, ‘1’, ‘2’, ‘s’};
int blanks[];

A

7.9 The definition of numbers is valid.
The declaration of matrix is invalid because there are too many values in the initialization list.
The definition of radii is valid.
The definition of table is invalid. Values cannot be skipped in the initialization list.
The definition of codes is valid.
The definition of blanks is invalid. An initialization list must be provided when an array
is implicitly sized.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

7.10 Given the following array definition:
int values[] = {2, 6, 10, 14};
What does each of the following display?
A) cout

A

7.10 A) 0
B) 3
C) 6
D) 14

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

7.11 Given the following array definition:
int nums[5] = {1, 2, 3};
What will the following statement display?
cout &laquo_space;nums[3];

A

7.11 0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

7.12 What is the output of the following code? (You may need to use a calculator.)
double balance[5] = {100.0, 250.0, 325.0, 500.0, 1100.0};
const double INTRATE = 0.1;
cout

A
  1. 12
  2. 00
  3. 00
  4. 50
  5. 00
  6. 00
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
7.13 What is the output of the following code? (You may need to use a calculator.)
const int SIZE = 5;
int time[SIZE] = {1, 2, 3, 4, 5},
speed[SIZE] = {18, 4, 27, 52, 100},
dist[SIZE];
for (int count = 0; count
A
7.13 
1 18 18
2 4 8
3 27 81
4 52 208
5 100 500
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

7.14 Given the following array definitions
double array1[4] = {1.2, 3.2, 4.2, 5.2};
double array2[4];
will the following statement work? If not, why?
array2 = array1;

A

7.14 No. An entire array cannot be copied in a single statement with the = operator. The array
must be copied element-by-element.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

7.15 When an array name is passed to a function, what is actually being passed?

A

7.15 The address of the array.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

7.16 When used as function arguments, are arrays passed by value?

A

7.16 No.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q
7.17 What is the output of the following program? (You may need to consult the
ASCII table in Appendix B.)
#include 
using namespace std;
// Function prototypes
void fillArray(char [], int);
void showArray(const char [], int);
int main ()
{
const int SIZE = 8;
char prodCode[SIZE] = {'0', '0', '0', '0', '0', '0', '0', '0'};
fillArray(prodCode, SIZE);
showArray(prodCode, SIZE);
return 0;
}
// Definition of function fillArray.
// (Hint: 65 is the ASCII code for 'A')
void fillArray(char arr[], int size)
{
char code = 65;
for (int k = 0; k
A

7.17 ABCDEFGH

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q
7.18 The following program skeleton, when completed, will ask the user to enter 10
integers, which are stored in an array. The function avgArray, which you must
write, is to calculate and return the average of the numbers entered.
#include 
using namespace std;
// Write your function prototype here
int main()
{
const int SIZE = 10;
int userNums[SIZE];
cout > userNums[count];
}
cout
A
7.18 (The entire program is shown here.)
#include 
using namespace std;
// Function prototype here
double avgArray(int []);
int main()
{
const int SIZE = 10;
int userNums[SIZE];
cout > userNums[count];
}
cout
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

7.19 Define a two-dimensional array of ints named grades. It should have 30 rows
and 10 columns.

A

7.19 int grades[30][10];

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

7.20 How many elements are in the following array?

double sales[6][4];

A

7.20 24

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

7.21 Write a statement that assigns the value 56893.12 to the first column of the first
row of the array defined in Question 7.20.

A

7.21 sales[0][0] = 56893.12;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

7.22 Write a statement that displays the contents of the last column of the last row of
the array defined in Question 7.20.

A

7.22 cout &laquo_space;sales[5][3];

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

7.23 Define a two-dimensional array named settings large enough to hold the table
of data below. Initialize the array with the values in the table.
12 24 32 21 42
14 67 87 65 90
19 1 24 12 8

A

7.23 int settings[3][5] = {{12, 24, 32, 21, 42},
{14, 67, 87, 65, 90},
{19, 1, 24, 12, 8}};

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

7.24 Fill in the table below so it shows the contents of the following array:
int table[3][4] = {{2, 3}, {7, 9, 2}, {1}};

A

2 3 0 0
7 9 2 0
1 0 0 0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
``` 7.25 Write a function called displayArray7. The function should accept a twodimensional array as an argument and display its contents on the screen. The function should work with any of the following arrays: int hours[5][7]; int stamps[8][7]; int autos[12][7]; int cats[50][7]; ```
7.25 void displayArray7(int arr[][7], int rows) { for (int x = 0; x
26
7.26 A video rental store keeps DVDs on 50 racks with 10 shelves each. Each shelf holds 25 DVDs. Define a three-dimensional array large enough to represent the store s storage system.
7.26 int vidNum[50][10][25];
27
7.27 What header file must you #include in order to define vector objects?
7.27 vector
28
7.28 Write a definition statement for a vector named frogs. frogs should be an empty vector of ints.
7.28 vector frogs;
29
7.29 Write a definition statement for a vector named lizards. lizards should be a vector of 20 floats.
7.29 vector lizards(20);
30
7.30 Write a definition statement for a vector named toads. toads should be a vector of 100 chars, with each element initialized to 'Z'.
7.30 vector toads(100, 'Z');
31
7.31 gators is an empty vector of ints. Write a statement that stores the value 27 in gators.
7. 31 vector gators; | gators. push_back(27);
32
7.32 snakes is a vector of doubles, with 10 elements. Write a statement that stores the value 12.897 in element 4 of the snakes vector.
7.32 snakes[4] = 12.897;
33
Short Answer | 1. What is the difference between a size declarator and a subscript?
1. The size declarator is used in a definition of an array to indicate the number of elements the array will have. A subscript is used to access a specific element in an array.
34
2. Look at the following array definition. int values[10]; How many elements does the array have? What is the subscript of the first element in the array? What is the subscript of the last element in the array? Assuming that an int uses four bytes of memory, how much memory does the array use?
10 zero 9 40 bytes of memory
35
3. Why should a function that accepts an array as an argument, and processes that array, also accept an argument specifying the array s size?
3. Because, with the array alone the function has no way of determining the number of elements it has.
36
4. Consider the following array definition: int values[5] = { 4, 7, 6, 8, 2 }; What does each of the following statements display? cout
will display value2; will display value 14; will display value 8
37
5. How do you define an array without providing a size declarator?
5. By providing an initialization list. The array is sized to hold the number of values in the list.
38
6. Look at the following array definition. int numbers[5] = { 1, 2, 3 }; What value is stored in numbers[2]? What value is stored in numbers[4]?
given an array definition. int numbers[5] = {1, 2, 3}; the value stored in numbers[2] is 3. the value stored in number[4] is 0, because it's value not initialized
39
7. Assuming that array1 and array2 are both arrays, why is it not possible to assign the contents of array2 to array1 with the following statement? array1 = array2;
7. Because an array name without brackets and a subscript represents the array’s beginning memory address. The statement shown attempts to assign the address of array2 to array1, which is not permitted.
40
8. Assuming that numbers is an array of doubles, will the following statement display the contents of the array? cout << numbers << endl;
cout << numbers << endl; the statement will not display the contents of array instead it display memory address
41
9. Is an array passed to a function by value or by reference?
9. By reference.
42
10. When you pass an array name as an argument to a function, what is actually being passed?
passing array name to function will pass address of array of integers
43
11. How do you establish a parallel relationship between two or more arrays?
11. By using the same subscript value for each array.
44
12. Look at the following array definition. double sales[8][10]; How many rows does the array have? How many columns does the array have? How many elements does the array have? Write a statement that stores a number in the last column of the last row in the array.
double sales[8][10]; array has 8 rows array has 10 columns array has 80 elements sales[7][9]=52.61, stores the number in the last column of the last row in the array
45
13. When writing a function that accepts a two-dimensional array as an argument, which size declarator must you provide in the parameter for the array?
13. The second size declarator, which is for the number of columns.
46
14. What advantages does a vector offer over an array?
1. you do not have to declare the number of elements that a vector will have; 2. if you add a value to a vector that is already full, the vector will automatically increase its size to accommodate the new data
47
Fill-in-the-Blank | 15. The _________ indicates the number of elements, or values, an array can hold.
15. size declarator
48
16. The size declarator must be a(n) _________ with a value greater than _________.
integer / zero
49
17. Each element of an array is accessed and indexed by a number known as a(n) _________.
17. subscript
50
18. Subscript numbering in C++ always starts at _________.
zero
51
19. The number inside the brackets of an array definition is the _________, but the number inside an array s brackets in an assignment statement, or any other statement that works with the contents of the array, is the _________.
19. size declarator, subscript
52
20. C++ has no array _________ checking, which means you can inadvertently store data past the end of an array.
bounds
53
21. Starting values for an array may be specified with a(n) _________ list.
21. initialization
54
22. If an array is partially initialized, the uninitialized elements will be set to _________.
zero
55
23. If the size declarator of an array definition is omitted, C++ counts the number of items in the _________ to determine how large the array should be.
23. initialization list
56
24. By using the same _________ for multiple arrays, you can build relationships between the data stored in the arrays.
subscript
57
25. You cannot use the _________ operator to copy data from one array to another in a single statement.
25. =
58
26. Any time the name of an array is used without brackets and a subscript, it is seen as _________.
array's beginning memory address
59
27. To pass an array to a function, pass the _________ of the array.
27. address, or name
60
28. A(n) _________ array is like several arrays of the same type put together.
two dimensional
61
29. It s best to think of a two-dimensional array as having _________ and _________.
29. rows, columns
62
30. To define a two-dimensional array, _________ size declarators are required.
two
63
31. When initializing a two-dimensional array, it helps to enclose each row s initialization list in _________.
31. braces
64
32. When a two-dimensional array is passed to a function the _________ size must be specified.
column
65
33. The ____________________ is a collection of programmer-defined data types and algorithms that you may use in your programs
33. Standard Template Library (or STL)
66
34. The two types of containers defined by the STL are ___________ and ______________.
sequence containers / associative containers
67
35. The vector data type is a(n) ______________ container.
35. sequence
68
36. To define a vector in your program, you must #include the ____________ header file.
vector
69
37. To store a value in a vector that does not have a starting size, or that is already full, use the ________________ member function.
37. push_back
70
38. To determine the number of elements in a vector, use the _____________ member function.
size
71
39. Use the ________________ member function to remove the last element from a vector.
39. pop_back
72
40. To completely clear the contents of a vector, use the ___________ member function.
clear
73
Algorithm Workbench 41. names is an integer array with 20 elements. Write a for loop that prints each element of the array.
41. for (int i = 0; i < 20; i++) | cout << names[i] << endl;
74
42. The arrays numberArray1 and numberArray2 have 100 elements. Write code that copies the values in numberArray1 to numberArray2.
const int size = 100; for(int i =0; i
75
43. In a program you need to store the identification numbers of 10 employees (as ints) and their weekly gross pay (as doubles). A) De ne two arrays that may be used in parallel to store the 10 employee identi cation numbers and gross pay amounts. B) Write a loop that uses these arrays to print each employee s identi cation number and weekly gross pay.
``` 43. const int SIZE = 10; int id[SIZE]; // To hold ID numbers double weeklyPay[SIZE]; // To hold weekly pay // Display each employee's gross weekly pay. for (int i = 0; i ```
76
44. Define a two-dimensional array of integers named grades. It should have 30 rows and 10 columns.
int grades[30][10];
77
45. In a program you need to store the populations of 12 countries. A) Define two arrays that may be used in parallel to store the names of the countries and their populations. B) Write a loop that uses these arrays to print each country s name and its population.
``` 45. const int SIZE = 12; // A string array to hold the country names string countries[SIZE]; // An array to hold populations long populations[SIZE]; // Display each country's name and population. for (int i = 0; i ```
78
46. The following code totals the values in two arrays: numberArray1 and numberArray2. Both arrays have 25 elements. Will the code print the correct sum of values for both arrays? Why or why not? int total = 0; // Accumulator int count; // Loop counter // Calculate and display the total of the first array. for (count = 0; count
see
79
47. Look at the following array definition. int numberArray[9][11]; Write a statement that assigns 145 to the rst column of the rst row of this array. Write a statement that assigns 18 to the last column of the last row of this array.
47. numberArray[0][0] = 145; | numberArray[8][10] = 18;
80
``` 48. values is a two-dimensional array of float s with 10 rows and 20 columns. Write code that sums all the elements in the array and stores the sum in the variable total . ```
int row, col; float total = 0.0; for (row = 0; row < 10; row ++) { for(col = 0; col <20; col++) total +=value[row][col];
81
49. An application uses a two-dimensional array defined as follows. int days[29][5]; Write code that sums each row in the array and displays the results. Write code that sums each column in the array and displays the results.
``` 49. const int NUM_ROWS = 29; const int NUM_COLS = 5; int row, col, // Loop counters total; // Accumulator // Display the sum of each row. for (row = 0; row ```
82
True or False | 50. T F An array s size declarator can be either a literal, a named constant, or a variable.
f as array size declarator must be a constant integer expression with a value greater than zero. it can be either a literal or a named constant
83
51. T F To calculate the amount of memory used by an array, multiply the number of elements by the number of bytes each element uses.
t
84
52. T F The individual elements of an array are accessed and indexed by unique numbers.
t
85
53. T F The first element in an array is accessed by the subscript 1.
f
86
54. T F The subscript of the last element in a single-dimensional array is one less than the total number of elements in the array.
t
87
55. T F The contents of an array element cannot be displayed with cout .
f
88
56. T F Subscript numbers may be stored in variables.
t
89
57. T F You can write programs that use invalid subscripts for an array.
t
90
58. T F Arrays cannot be initialized when they are defined. A loop or other means must be used.
f | as array can be initialized when they are defined
91
59. T F The values in an initialization list are stored in the array in the order they appear in the list.
t
92
60. T F C++ allows you to partially initialize an array.
t
93
61. T F If an array is partially initialized, the uninitialized elements will contain "garbage".
f
94
62. T F If you leave an element uninitialized, you do not have to leave all the ones that follow it uninitialized.
f | all the elements followed it are un initialized as will
95
63. T F If you leave out the size declarator of an array definition, you do not have to include an initialization list.
f
96
``` 64. T F The uninitialized elements of a string array will automatically be set to the value "0" . ```
t
97
65. T F You cannot use the assignment operator to copy one array s contents to another in a single statement.
t
98
66. T F When an array name is used without brackets and a subscript, it is seen as the value of the first element in the array.
f | an array name without brackets and a subscript indicates array's beginning memory address
99
67. T F To pass an array to a function, pass the name of the array.
t
100
68. T F When defining a parameter variable to hold a single-dimensional array argument, you do not have to include the size declarator.
f | as size declarator must be specified in order to process elements in function
101
69. T F When an array is passed to a function, the function has access to the original array.
t
102
70. T F A two-dimensional array is like several identical arrays put together.
t
103
71. T F It s best to think of two-dimensional arrays as having rows and columns.
t
104
72. T F The first size declarator (in the declaration of a two-dimensional array) represents the number of columns. The second size definition represents the number of rows.
f, as first size declarator represents the number of rows and second represents the number of columns
105
73. T F Two-dimensional arrays may be passed to functions, but the row size must be specified in the definition of the parameter variable.
f
106
74. T F C++ allows you to create arrays with three or more dimensions.
t
107
75. T F A vector is an associative container.
f
108
76. T F To use a vector, you must include the vector header file.
t
109
77. T F vectors can report the number of elements they contain.
t
110
78. T F You can use the [] operator to insert a value into a vector that has no elements.
f | only using function push_back(value) we can insert data to vector
111
79. T F If you add a value to a vector that is already full, the vector will automatically increase its size to accommodate the new value.
t
112
Find the Error Each of the following definitions and program segments has errors. iLocate as many as you can. 80. int size; double values[size];
must be provided with initial value and used in next statement
113
81. int collection[-20];
81. The size declarator cannot be negative.
114
``` 82. int table[10]; for (int x = 0; x < 20; x++) { cout << "Enter the next value: "; cin >> table[x]; } ```
invalid access of array
115
83. int hours[3] = 8, 12, 16;
83. The initialization list must be enclosed in braces.
116
84. int numbers[8] = {1, 2, , 4, , 5};
two of initialization values are left out
117
85. float ratings[];
85. For the array to be implicitly sized there must be an initialization list.
118
86. char greeting[] = {'H', 'e', 'l', 'l', 'o'}; | cout << greeting;
a null terminator must be specified in the intialization list
119
87. int array1[4], array2[4] = {3, 6, 9, 12}; | array1 = array2;
87. The assignment operator cannot be used to assign the contents of one array to another, in a single statement.
120
``` 88. void showValues(int nums) { for (int count = 0; count < 8; count++) cout << nums[count]; } ```
the function should have a parameter to hold array elements and size parameter must also be there
121
``` 89. void showValues(int nums[4][]) { for (rows = 0; rows < 4; rows++) for (cols = 0; cols < 5; cols++) cout << nums[rows][cols]; } ```
89. The parameter must specify the number of columns, not the number of rows.