ch7 Flashcards
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
7.1 A) int empNums[100]; B) float payRates[25]; C) long miles[14]; D) string cityNames[26]; E) double lightYears[1000];
7.2 What s wrong with the following array definitions? int readings[-1]; float measurements[4.5]; int size; string names[size];
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
7.3 What would the valid subscript values be in a four-element array of doubles?
7.3 0 through 3
7.4 What is the difference between an array s size declarator and a subscript?
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.
7.5 What is array bounds checking ? Does C++ perform it?
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.
7.6 What is the output of the following code?
int values[5], count;
for (count = 0; count
7.6 1 2 3 4 5
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; }
7.7 #include using namespace std; int main() { const int NUM_FISH = 20; int fish[NUM_FISH], count; cout > fish[count]; } return 0; }
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 .
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’};
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[];
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.
7.10 Given the following array definition:
int values[] = {2, 6, 10, 14};
What does each of the following display?
A) cout
7.10 A) 0
B) 3
C) 6
D) 14
7.11 Given the following array definition:
int nums[5] = {1, 2, 3};
What will the following statement display?
cout «_space;nums[3];
7.11 0
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
- 12
- 00
- 00
- 50
- 00
- 00
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
7.13 1 18 18 2 4 8 3 27 81 4 52 208 5 100 500
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;
7.14 No. An entire array cannot be copied in a single statement with the = operator. The array
must be copied element-by-element.
7.15 When an array name is passed to a function, what is actually being passed?
7.15 The address of the array.
7.16 When used as function arguments, are arrays passed by value?
7.16 No.
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
7.17 ABCDEFGH
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
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
7.19 Define a two-dimensional array of ints named grades. It should have 30 rows
and 10 columns.
7.19 int grades[30][10];
7.20 How many elements are in the following array?
double sales[6][4];
7.20 24
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.
7.21 sales[0][0] = 56893.12;
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.
7.22 cout «_space;sales[5][3];
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
7.23 int settings[3][5] = {{12, 24, 32, 21, 42},
{14, 67, 87, 65, 90},
{19, 1, 24, 12, 8}};
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}};
2 3 0 0
7 9 2 0
1 0 0 0
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
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];
7.27 What header file must you #include in order to define vector objects?
7.27 vector
7.28 Write a definition statement for a vector named frogs. frogs should be an
empty vector of ints.
7.28 vector frogs;
7.29 Write a definition statement for a vector named lizards. lizards should be a
vector of 20 floats.
7.29 vector lizards(20);
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’);
7.31 gators is an empty vector of ints. Write a statement that stores the value 27 in
gators.
- 31 vector gators;
gators. push_back(27);
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;
Short Answer
1. What is the difference between a size declarator and a subscript?
- 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.
- 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
- Why should a function that accepts an array as an argument, and processes that
array, also accept an argument specifying the array s size?
- Because, with the array alone the function has no way of determining the number of elements
it has.
- 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
- How do you define an array without providing a size declarator?
- By providing an initialization list. The array is sized to hold the number of values in the list.
- 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
- 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;
- 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.
- Assuming that numbers is an array of doubles, will the following statement display
the contents of the array?
cout «_space;numbers «_space;endl;
cout «_space;numbers «_space;endl;
the statement will not display the contents of array instead it display memory address
- Is an array passed to a function by value or by reference?
- By reference.
- 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
- How do you establish a parallel relationship between two or more arrays?
- By using the same subscript value for each array.
- 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
- 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?
- The second size declarator, which is for the number of columns.
- What advantages does a vector offer over an array?
- you do not have to declare the number of elements that a vector will have;
- if you add a value to a vector that is already full, the vector will automatically increase its size to accommodate the new data
Fill-in-the-Blank
15. The _________ indicates the number of elements, or values, an array can hold.
- size declarator
- The size declarator must be a(n) _________ with a value greater than _________.
integer / zero