1 / 31

REACH TEST REVIEW

CECS 121 EXAM 2. REACH TEST REVIEW. Function Prototypes & Definitions. Function Prototype Syntax return-type function_name ( arg_type arg1, ..., arg_type argN );

alma
Download Presentation

REACH TEST REVIEW

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CECS 121 EXAM 2 REACH TEST REVIEW

  2. Function Prototypes & Definitions • Function Prototype Syntax return-type function_name ( arg_type arg1, ..., arg_typeargN); • Function Prototypes tell you the data type returned by the function, the data type of parameters, how many parameters, and the order of parameters • Function definitions implement the function prototype • Where are function prototypes located in the program? • Where do you find function definitions?

  3. Function Prototypes • Function Prototypes are placed after preprocessor directives and before the main(){} function. • Function Definitions are self contained outside of the main(){} function

  4. Calling Functions • #include <stdio.h> • int mult ( int x, int y ); • main() { • int x; • int y; • printf( "Please input two numbers to be multiplied: " ); • scanf( "%d", &x ); • scanf( "%d", &y ); • printf( "The product of your two numbers is %d\n", mult( x, y ) ); • getchar(); • } • int mult (int x, int y) • { • return(x * y); • }

  5. Calling Functions • #include <stdio.h> • void print_char( char *, int); • main() { • char name[20]=“Keith Ahern”; • print_char(name, 3); • getchar(); • } • void print_char (char *name, int x) • { • printf(“The character specified is: %c”, name[x-1]); • }

  6. What’s Wrong with This Code? • #include <stdio.h> • Void printReportHeader(); • main() • { • printReportHeader; • } • void printReportHeader() • { • printf(“\n Column1\tColumn2\tColumn3\tColumn4 \n”) • }

  7. Variable Scope • Variable scope defines the life time of a variable • Local Scope: defined within functions and loses scope after function is finished. Can reuse in other functions (ex. p.123) • Global Scope: defined outside of functions and can be accessed by multiple functions

  8. Can You Pick Out the Local and Global Variables? • #include <stdio.h> • void printNumbers(); • int iNumber; • main() { • int x; • for(x=0, x<10,x++){ • printf(“\n Enter a number:”); • scanf(“%d”, &iNumber); • printNumbers(); • } • } • void printNumbers() • { • printf(“\n Your number is: %d \n”, iNumber); • }

  9. How to Declare a One-Dimensional Array • Can you declare a one-dimensional array made up of 10 integers? • data_type name[size_of_array] • Answer: intiArray[10]; • How to declare an Array • intiArray[10]; • float fAverages[30]; • char cName[19]; 18 characters and 1 null character

  10. How to Initialize a 1-D Array • Why do we initialize? Because memory spaces may not be cleared from previous values when arrays are created • Can initialize an array directly • Example int iArray[5]={0,1,2,3,4}; • Can initialize an array with a loop such as FOR()

  11. Example of Initializing an Array Using a For() Loop • #include <stdio.h> • main() • { • int x; • int iArray[5]; • for( x=0; x < 5 ; x++) • { • iArray[x] = 0; • } • }

  12. Printing Arrays • Can you add code that will print out the value of each element of iArray? • #include <stdio.h> • main() • { • int x; • int iArray[5]; • for( x=0; x < 5 ; x++) • { • iArray[x] = 0; • } • }

  13. Answer • #include <stdio.h> • main() • { • int x; • int iArray[5]; • for( x=0; x < 5 ; x++) • { • iArray[x] = 0; • } • for(x=0 ; x<5; x++) • { • printf(“\n The value of iArray index %d is %d \n”, x, iArray[x]); • } • }

  14. Accessing the elements in an array • How do you search through an array?

  15. #include <stdio.h> • main() • { • int x; • int iValue; • int iFound = -1; • int iArray[5]; • for( x=0; x < 5 ; x++) • iArray[x] = (x+x); • printf(“\n Enter value to search for:”); • scanf(“%d”, &iValue); • for(x=0 ; x<5; x++) • { • if( iArray[x] ==iValue){ • iFound =x; • break; • ) • } • if(iFound >-1) • printf(“\n I found your search value in element %d \n”, iFound); • else • printf(“\n Sorry, your search value was not found \n”); • }

  16. 2-D Arrays • Declaring: • data_type name[size_dim_1][size_dim_2] • int double_array[20][10] • Accessing: • printf(“Element 2,5 is: %d”, double_array[2][5]);

  17. 2-D Arrays • Initializing: Use a second, nested FOR() loop • #include <stdio.h> • main() • { • int x, y, double_array[10][20] • for( x=0; x < 10 ; x++) • { • for(y=0 ; x<5; x++) • { • double_array[x][y] = 0; • }

  18. 2-D Arrays • Passing to a function: • #include <stdio.h> • void custom_func(int [][2]) • main() • { • int double_array[2][2]={{1,2},{3,4}}; • custom_func(array); • system(“pause”); • } • custom_function(int temp[][2]) • { • printf(“Test: %d, %d, %d”, temp[0][0],temp[0][1],temp[1][1]) • } • OUTPUT: Test: 1, 2, 4

  19. POINTERS • Pointers are variables that contain memoryaddresses as their values. • A variable name directly references a value. • A pointer indirectly references a value. Referencing a value through a pointer is called indirection. • A pointer variable must be declared before it can be used. • ALL Arrays are Pointers! Winter Quarter

  20. POINTERS • Examples of pointer declarations: FILE *fptr; int *a; float *b; char *c; • The asterisk, when used as above in the declaration, tells the compiler that the variable is to be a pointer, and the type of data that the pointer points to, but NOT the name of the variable pointed to. Winter Quarter

  21. POINTERS • Consider the statements: #include <stdio.h> int main ( ) { FILE *fptr1 , *fptr2 ; /* Declare two file pointers */ int *aptr ; /* Declare a pointer to an int */ float *bptr ; /* Declare a pointer to a float */ int a ; /* Declare an int variable */ float b ; /* Declare a float variable */ Winter Quarter

  22. Use of & and * • When is & used? • When is * used? • & -- "address operator" which gives or produces the memory address of a data variable • * -- "dereferencing operator" which provides the contents in the memory location specified by a pointer Winter Quarter

  23. Pointers and Functions • If instead of passing the values of the variables to the called function, we pass their addresses, so that the called function can change the values stored in the calling routine. This is known as "call by reference" since we are referencing the variables. • The following shows a swap function modified from a "call by value" to a "call by reference". Note that the values are now actually swapped when the control is returned to main function. Winter Quarter

  24. Pointers • Unary operator (&) – “Address of” int x=10; int *xptr; xptr = &x; //xptr now points to x • Indirection operator (*) int x, y = 10; int *xptr; xptr = &y; x = *xptr //copies value of y into x

  25. #include <stdio.h> void swap ( int *, int *) ; int main ( ) { int a = 5, b = 6; printf("a=%d b=%d\n",a,b) ; swap (&a, &b) ; printf("a=%d b=%d\n",a,b) ; return 0 ; } void swap( int *a, int *b ) { int temp; temp= *a; *a= *b; *b = temp ; printf ("a=%d b=%d\n", *a, *b); } Results: a=5 b=6 a=6 b=5 a=6 b=5 Pointers with Functions (example) Winter Quarter

  26. Const Pointers • To avoid accidently changing the value the pointer points to: Use const void custom(const int *); main(){} void custom(const int *) { }

  27. Strings • Strings are character arrays that have a special set of functions for handling their data as complete sentences or “strings” of characters. • Since a string is an array it is also a pointer. • Character literals are expressed with a single quote: char example=‘a’; • String literals are expressed with double quote: char example[10]=“Keith”;

  28. Declaring Strings & Size • When determining the maximum length your string variable needs to be it is important to consider a NULL Character: “\0” char example[10]=“Keith”; example[0] -> K example[1] -> e example[2] -> i example[3] -> t example[4] -> h example[5] -> \0

  29. Manipulating Strings

  30. Questions?

  31. References • TEXTBOOK RESOURCE: C Programming for the Absolute Beginner 2nd Edition by Michael Vine • www.cprogramming.com

More Related