Home || Course Outline || Course Description || Lab Hours ||FAQ || Midterm Review|| Final ReviewCSE 10 SUMMER 1997
MIDTERM EXAM: DISCUSSION EXAMPLES
A) C++ FUNDAMENTALS (Given code segments) 1) Are these syntactically OK (will compile)? void fa (void) { cout << "hi"; /* ho */ } void fb (void) { cout << "hi"; // ho } int main(void) { int it = 100, & r; const int BIG; const int BIGGER = 10; const int BIGGEST = it; it = BIGGER; BIGGER = it; }
B) LOOPS 1) Write a for loop to print the same output as while loop below. a) Write a do loop to print the same output as while loop below. b) What gets printed if it was "while ( i = 5 )" instead ? int i = 1; while ( i < 5 ) { ++i; cout << i << endl; }
C) DECISIONS 1) Write an if else to print same output as switch statement below. int i = 3, sum = 0 ; switch ( i ) { case 1: case 2: sum++; break; case 3: sum--; default: cout << i << endl; break; }
D) FUNCTIONS 1) What is missing? a) What gets printed now? b) Is "i" in fn() same as in main()? c) Write fn() to be an inline function. d) Write fn() to be assigned a default initializer of 1. e) Write fn() to be an overloaded function accepting a formal parameter type float. f) What makes an overloaded function? #includeint main(void) { int i = 1; i = fn (i ); cout << i << endl; cout << fn(i) << endl; } int fn ( int i ) { return(i + 2); } 2) Are these legal? int fn (int i = 0, int j, int k = 2); fn (1, 2, int k = 3);
E) POINTERS 1) What gets printed? #includevoid swap ( int *p, int *q ); void sort ( int *pA, int *pB); int main ( void ) { int dogA = 2, dogB = 4, *p, *q; p = &dogA; q = &dogB; cout << *p * 2 << " " << 4 * *p << " " << *q - *p << endl; sort( &dogA, &dogB ); cout << dogA << " " << dogB << endl; return 0; } void swap ( int *p, int *q ) { int tmp; tmp = *p; *p = *q; *q = tmp ; } void sort ( int *pA, int *pB ) { if ( *pA < *pB ) swap (pA, pB); }
F) REFERENCE TYPES 1) What gets printed? int i = 3, &r = i; ++i; cout << i << " " << r << endl; 2) What gets printed? #includeinline void fn ( int & r ) { r = 2; } int main(void) { int i = 1; fn (i); cout << i << endl; return 0; }
G) C++ ARRAYS 1)What gets printed? #includevoid fn(int a1[]); void swap(int & r1, int & r2); int main ( void ) { int i, qa[] = {7, 8, 9}; fn(qa); return 0; } void fn( int a1[] ) { int i, j; for ( i = 0 ; i < 3 ; ++i ) for ( j = i + 1; j < 3 ; ++j ) if ( a1[i] < a1[j] ) { swap ( a[i], a[j] ); cout << a[i] << " " << a[j] << endl; } cout << endl; } void swap(int &r1, int &r2) { int tmp; tmp = r1; r1 = r2; r2 = tmp; }
H) C++ NULTI-D ARRAYS 1) How would you handle 3-D array? (3 for loops) What gets printed? #includevoid fill ( int jet[][2]); void save ( int st ); int main ( void ) { int i, j, plane[3][2] = { 1, 1, 1, 2, 2, 2}; fill ( plane ); save ( plane[0][0] ); for (i = j = 0; i < 3 ; ++i ) cout << plane[i][j] << endl; return 0; } void fill ( int jet[][2] ) { int i, j; for ( i = 0 ; i < 3 ; ++i ) for ( j = 0 ; j < 2 ; ++j ) if ( i == 0 || j == 0 ) jet[i][j] *= 2; } void save ( int st ) { st = 99; }