Review 5 1. Trace the execution of the following program and show

advertisement
Review 5
1.
Trace the execution of the following program and show its output.
Line Number
1
void tester ( int num, int * pt)
2
{
3
* pt = * pt - num;
4
}
5
int main()
6
{
7
int tvalue = 20;
8
tester ( 4, & tvalue);
9
cout << endl << “tvalue = \t” << tvalue;
10
return 0;
11
}
2.
Trace the execution of the following program and show its output:
Line Number
1
void tester(int num, int *p1, int *p2)
2
{
3
num = num + 5;
4
*p1 = *p1 + 5;
5
*p2 = num ;
6
}
7
int main()
8
{
9
int i = 10, j, k, r, *ptr;
10
j = 15;
11
ptr = &j;
12
tester(i, ptr, &k);
13
cout << “\ni =\t” << i << “\nj =\t” << j
14
<< “\nk =\t” << k << “\nr
=\t” << r;
15
return(0);
16
}
3.
Write declaration statements to define the following arrays:
a.
Array scores of 20 double precision floating-point elements.
b.
Array numbers of 15 integer elements initialized with the values: 12, 4, 8, 40, -5,
10.
c.
Array name initialized with the string constant: “John Doe”.
4.
Show the memory representation of each of the following arrays (you should make up
memory addresses if they are needed):
a)
char letters[ 5];
b)
int numbers[5];
c)
char alist[8] = {‘A’, ‘B’, ‘C’, ‘D’, ‘E’};
d)
int numlist[8] = { 15, -10, 25, 30};
1
e)
f)
5.
int newlist[ ] = {10, 20, 30, 40, 50, 60};
char name1[10] = { “BE HAPPY ”};
Given the following definitions of array list and variables i and j :
int list[ 5] = { 5, 10, 15, 20, 25}, i = 5, j = 2;
a.
what is wrong with the statement: cin >> list[i];
b.
show the memory representation of array list after the execution of each of the
following statements:
1.
2.
3.
4.
5.
6.
7.
list[j - 2] = 7;
list[j]++;
list[- - j] = list[4] + 5;
i = 3;
j = 3;
list[i ++] = list[j + 1] + 10;
list[i] = 50;
6.
Given the following definition of array list:
int list[5] = {10, 20, 30, 40, 50};
Show the output of each of the following program segments:
a.
for(int j = 0 ; j < 5 ; j ++ )
b. for (int j = 4 ; j >= 0 ; j - - )
cout << endl << (list[j] + j );
cout << endl << list[j];
7.
Given the following definition of array list:
double list[10];
a.
write a program segment to read values into array list.
b.
write a program segment to compute the average of the elements of array list and
print it.
c.
write a program segment to look for the minimum value in array list and print it.
8.
Given the following definition of array letters:
char letters[10];
a.
write a program segment to read 10 letters of the alphabet into array letters.
b.
write a program segment to print the letters in array letters in reverse order. That
means, if the input is: A B C D E F G H I J, the output should be: J I H G F E D
C B A.
9.
Arrays list1, list2, and list3 are defined as follows:
int list1[5] = { 23, -12, 45, 9, 11}, list2[5] = {21, -4, 63, 21, -8}, list3[5];
a.
write a program segment to subtract each entry of array list2 from the
corresponding entry of array list1, and to store the result in the corresponding
entry of array list3.
b.
write a program segment to multiply each entry of array list1 by 5, and to store
the result in the corresponding entry of array list3.
10.
An array of integer values called numList[20] holds 20 values.
a.
write a program segment to add 5 to each positive or 0 value in the list, and to
subtract 3 from each negative value.
b.
write a program segment to add 10 to each even value in the list.
11.
a.
Write a function with function header int computeSumm(int list[ ], int size) that
receives as argument an array of integer values and its size, and computes and returns the
sum of the elements of the array.
b.
Write statement(s) to compute and print the sum of the elements of the array
numlist = {3, 5, 8, 2, 4 12, 32, 45, 2, 35}; (by calling the function in a.) and print the it.
12.
a.
Write a function with function header void addconst2(int list1[ ], int list2[ ], int
num, int size) to add num to each element of array list1 and to store the result to the
corresponding entry of array list2.
b.
Write statement(s) to add 50 to each element of array numlist and to store the
result in the corresponding entry of array resultlist by calling function addconst2()
defined in question 9a. Array numlist and resultlist are defined as follows:
int resultlist[10], numlist[10] = { 2, 4, 5, 10, 35, 4, 21, 50, 3, 45};
13.
An array named letterList holds 20 letters of the alphabet (not necessary all distinct).
Write a code segment to replace every occurrence of the letter ‘P’ in that list with the
letter ‘B’. That means, “PAPA . . .” becomes “BABA . . .”
14.
An array of 20 integer values called idList[20] is used to hold the Ids of 20 students, and
another array of double precision floating point values called scoreList[20] is used to hold their
test scores.
a.
Assuming that the test scores are not sorted, write a program segment to read a
test score, and to find out if it is in the list: if is in the list, output the ID of the student
with that test score; otherwise output a message saying that it is not in the list.
b.
Assuming that the test scores are sorted, write a program segment to read a test
score, and to find out (using binary search) if it is in the list: if is in the list, output the ID
of the student with that test score; otherwise output a message saying that it is not in the
list.
c.
Assuming that the test scores are sorted, write a program segment to read a test
score and to output the ID’s of all students with that test score. If there is no student with
that test score, it outputs a message saying that no student has that test score.
d.
Assuming that the test scores are not sorted, write a program segment to read a
test score and to find out and print the number of students with that test score.
15.
Write declaration statements to define the following two-dimensional arrays:
a.
array to hold 6 test scores (integer values) in a class of 20 students.
b.
array to hold the total sales (double precision values) made by 25 salesmen
in 10 cities.
c.
array to represent a page of a computer document that is formatted to hold
a maximum of 45 lines of text with a maximum of 65 characters per line.
16.
Given the following definitions of arrays table1, table2, and table3:
int table1[3][5] = {{1, 3, 5, 7, 9}, {0, 2, 4, 6, 8}, {1, 2, 3, 4, 5}},
table2[3][5], table3[10][10];
a.
what is the output of the following program segment?
for (int r = 0; r < 3 ; r ++)
{
cout << endl;
for (int c = 0 ; c < 5 ; c ++)
cout << ‘\t’ << table1[r][c] + 2;
}
b.
write a code segment to print the elements of array table1 row by row.
c.
write a code segment to print the elements of array table1 column by
column.
3
d.
e.
17.
a.
b.
c.
18.
a.
b.
c.
19.
a.
b.
20.
a.
b.
21.
a.
b.
write a code segment to add 5 to each element of array table1 and to store
the result in the corresponding element of array table2.
write a code segment to built array table3 such that the value for element
table[i][j] is i + j.
Write a code segment to read students’ test scores into the array that you
defined in question 1a.
Write a code segment to compute the average test score for each test and
print it.
Write a code segment to compute the average test score for each student
and print it.
Write a code segment to read total sales in the 10 cities for each salesman
into the array that you defined in question 1b.
Write a code segment to compute the sum of the total sales in each city
and print it.
Write a code segment to compute the sum of the total sales for each
salesman and print it.
Write the function with function header void addten(int table[][5], int row)
that receives a two-dimensional array with 5 columns and its number of
rows, and adds 10 to each element of that array.
Write a statement to add 10 to each element of array table1 defined in
question 2 by calling function addten.
Write the function with function header int computeTotal(int table[][5], int
row) that receives a two-dimensional array with 5 columns and its number
of rows, and computes the sum of all the elements of that array and returns
it.
Write statements to compute the sum of all the elements of array table1
defined in question 2 and print it by calling function computeTotal.
Write the function with function header void computeRowSum(int
table[][5], int list[], int row) that receives a two-dimensional array with 5
columns, a one- dimensional array, and the number of rows in the twodimensional array which is also the number of elements in the onedimensional array. This function computes the sum of the elements of the
array in each row, and stores the result in the corresponding element of the
one-dimensional array.
Given the definition of array result:
int result[3];
write a statement to compute the sum of each row of array table1
defined in question 2 and to store the result in the corresponding element
of array result.
Download