FOCP - FUNCTIONS AND POINTERS (Unit 5)–2 Marks with answers


UNIT V – 2 Marks


Handling of Character Strings – User-defined Functions – Definitions – Declarations - Call by reference – Call by value – Structures and Unions – Pointers – Arrays – The Preprocessor – Developing a C Program : Some Guidelines.

1. What is meant by Recursive function?

If a function calls itself again and again, then that function is called Recursive function.

2. What is an array?

An array is a group of similar data types stored under a common name. int a[10];

Here a[10] is an array with 10 values.

3. What is a Pointer? How a variable is declared to the pointer? (MAY 2009)

Pointer is a variable which holds the address of another variable.

Pointer Declaration:

datatype *variable-name;


int *x, c=5;


4. What are the uses of Pointers?

· Pointers are used to return more than one value to the function

· Pointers are more efficient in handling the data in arrays

· Pointers reduce the length and complexity of the program

· They increase the execution speed

· The pointers saves data storage space in memory

5. What is the output of the program?

main() junk(int i, int j)

{ {

int i=5;j=2; i=i*j; junk(i,j); j=i*j; printf(“\n %d %d”,i,j); }



1. 2


6. What are * and & operators means?

‘*’ operator means ‘value at the address’

‘&’ operator means ‘address of’

7. What is meant by Preprocessor?

Preprocessor is the program, that process our source program before the compilation.

8. How can you return more than one value from a function?

A Function returns only one value. By using pointer we can return more than one value.

9. Is it possible to place a return statement anywhere in ‘C’ program?

Yes. The return statement can occur anywhere.

10. What are the main elements of an array declaration?

· Array name

· Type and

· Size

11. List the header files in ‘C’ language.

<stdio.h> contains standard I/O functions

<ctype.h> contains character handling functions

<stdlib.h> contains general utility functions

<string.h> contains string manipulation functions

<math.h> contains mathematical functions

<time.h> contains time manipulation functions

12. What are the steps involved in program development life cycle?

1. Program Design

2. Program Coding

3. Program Testing & Debugging

13. What are the types of errors occurred in C program?

1. Syntax errors

2. Runtime errors

3. Logical errors

4. Latent errors

14. What is testing?

Testing is the process of executing the program with sample or tested data.

15. What are the types of testing?

· Human testing

· Computer based testing

16. How do you define enumerated data type?

enum mar_status

{ single,married,widow }; enum mar_status person1,person2; person1=married;

Here the person1 is assigned to value zero.

17. What is meant by debugging?

Debugging is the process of locating and isolating the errors.

18. Specify any five syntax error messages.

· Missing semicolon

· Missing braces

· Missing quotes

· Improper comment characters

· Undeclared variables

19. What are the pre-processor directives?

· Macro Inclusion

· Conditional Inclusion

· File Inclusion

20. What is dynamic memory allocation?

Allocating the memory at run time is called as dynamic memory allocation.

21. What are the various dynamic memory allocation functions?

malloc() - Used to allocate blocks of memory in required size of bytes.

free() - Used to release previously allocated memory space.

calloc() - Used to allocate memory space for an array of elements.

realloac() - Used to modify the size of the previously allocated memory space.

22. What is the deference between declaring a variable and defining a variable?

· Declaring a variable means describing its type to the compiler but not allocating any space for it.

· Defining a variable means declaring it and also allocating space to hold the variable.

A variable Can also be initialized at the time it is defined. To put it simply, a declaration says to the compiler,

· “Some where in the program there will be a variable with this name, and this is the kind of data

· Type it is.” On the other hand, a definition says, “Right here is this variable with this name and

· This data type”. Note that a variable can be declared any number of times, but it must be defied

· Exactly once. For this reason, definitions do not belong in header files, where they might get #included into more than one place in a program.

23. Why does n++ execute than n=n+1?

The expression n++ requires a single machine instruction such as INR to carry

out the increment operation whereas; n+1 requires more instructions to carry out this operation.

24. Why is it necessary to give the size of an array in an array declaration?

When an array is declared, the compiler allocates a base address and reserves enough space in the memory for all the elements of the array. The size is required to allocate the required space. Thus, the size must be mentioned.

25. Where in memory are variables stored?

Variables can be stored in several places in memory, depending on their lifetime.

(1) Variables that are defined outside any function (whether of global or file static scope), and variables that are defined inside a function as static variables, exist for the lifetime of the program’s execution. These variables are stored in the data segment. The data segment is a fixed-size area in memory set aside for these variables.

(2) Variables that are the arguments functions exist only during the execution of that function. These variables are stored on the stack. The stack is an area of memory that starts out as small and

grows automatically up to some predefined limit.

(3) The third area is the one that does not actually store variables but can be used to store data pointed to by variables. Pointer variables that are assigned to the result of a call to the function malloc() contain the address of a dynamically allocated area of memory. This memory is in an area called the heap.

26. What is an heap memory?

The heap is another area that starts out as small and grows, but it grows only when

the programmer explicitly calls malloc() or other memory allocation functions, such as calloc(). The heap can share a memory segment with either the data segment or the stack, or

it can have its own segment, it all depends on the compiler options and operating system. The heap, like the stack, has a limit on how much it can grow, and the same rules apply as to how that limit is determined.

27. What is the difference between an array and pointer?

Difference between arrays and pointers are as follows.



1.Array allocates space


2.It cannot be resized.

3.It cannot be reassigned.

4.Size of(array name) gives the number of bytes occupied by the array.

1.Pointer is explicitly assigned to point to

an allocated space.

2.It can be resized using realloc ().

3.Pointers can be reassigned.

4.Sezeof(pointer name) returns the number of bytes used to store the pointer variable.

27. What is the purpose of the function main()? (MAY 2009)

The function main () invokes other functions within it. It is the first function to be called when the program starts execution.

Some salient points about main() are as follows:

1. It is the starting function .

2. It returns an int value to the environment that called the program.

3. Recursive call is allowed for main() also.

4. It is a user-defined function.

5. Program exection ends when the closing brace of the function main() is reached.

6. It has two arguments (a) argument count and (b)argument vector (reprensents strings passed.)

7. Any user-defined name can also be used as parameters for main() instead of argc and argv

28. What is dangling pointer?

In C, a pointer may be used to hold the address of dynamically allocated memory.

After this memory is freed with the free() function, the pointer itself will still contain the address of the released block. This is referred to as a dangling pointer. Using the pointer in this state is a serious programming error. Pointer should be assigned NULL after freeing memory to avoid this bug.

29. Compare arrays and structures.

Comparison of arrays and structures is as follows.



An array is a collection of data items of same data type.

Arrays can only be declared. There is no keyword for arrays.

An array name represents the address of the starting element.

An array cannot have bit fields.

A structure is a collection of data items of different data types.

Structures can be declared and defined. The deyword for structures is struct.

A structrure name is known as tag. It is a shorthand notation of the declaration.

A structure may contain bit fields.

30. Compare structures and unions.



Every member has its own memory.

The keyword used is struct.

All members occupy separate memory location, hence different interpretations of the same memory location are not possible. Consumes more space compared to union.

All members use the same memory.

The keyword used is union. Different interpretations for the same memory location are possible.

Conservation of memory is possible.

31. Is it better to use a macro or a function?

Macros are more efficient (and faster) than function, because their corresponding code is inserted directly at the point where the macro is called. There is no overhead involved in using a macro like there is in placing a call to a function.

However, macros are generally small and cannot handle large, complex coding constructs. In cases where large, complex constructs are to handled, functions are more suited, additionally; macros are expanded inline, which means that the code is replicated for each occurrence of a macro.

32. List the characteristics of Arrays.

All elements of an array share the same name, and they are distinguished form one

another with help of an element number.

Any particular element of an array can be modified separately without disturbing other elements.

33. What are the types of Arrays?

1.One-Dimensional Array

2. Two-Dimensional Array

3. Multi-Dimensional Array

34. What is the use of ‘\0’ character?

When declaring character arrays (strings), ‘\0’ (NULL) character is automatically added

at end. The ‘\0’ character acts as an end of character array.

35. Define sscanf() and sprint() functions.

The sscanf():

This function allows to read character from a character Array and writes to another array. Similar to scanf(), but instead of reading from standard input, it reads from an array.

The sprintf():

This function writes the values of any data type to an array of characters.

36. Define Strings.


The group of characters, digit and symnbols enclosed within quotes is called as Stirng

(or) character Arrays. Strings are always terminated with ‘\0’ (NULL) character. The compiler automatically adds ‘\0’ at the end of the strings.


char name[]={‘C’,’O’,’L’,’L’,’E’,’G’,’E’,’E’,’\0’};

The character of a string are stored in contiguous memory locations as follows:









1000 1001 1002 1003 1004 1005 1006 1007

37. What is the use of ‘typedef’’?

It is used to create a new data using the existing type. Syntax: typedef data type name;


typedef int hours: hours hrs;/* Now, hours can be used as new datatype */

38. What is ‘C’ functions? Why they are used?

A function is a self-contained block (or) a sub-program of one or more statements that

performs a special task when called. To perform a task repetitively then it is not necessary to re-write the particular block of the program again and again. The function defined can be used for any number of times to perform the task.

39. Differentiate library functions and User-defined functions.

Library Functions

User-defined Functions

a) Library functions are pre-defined set of

functions that are defined in C


b) User can only use the function but cannot change (or) modify this function.

a) The User-defined functions are the

functions defined by the user according to his/her requirement.

b) User can use this type of function.

User can also modify this function.

40. What are the steps in writing a function in a program.

a) Function Declaration (Prototype declaration):

Every user-defined functions has to be declared before the main(). b) Function Callings:

The user-defined functions can be called inside any functions like main(), user-defined function, etc.

c) Function Definition:

The function definition block is used to define the user-defined functions with statements.

41. What is a use of ‘return’ Keyword?

The ‘return’ Keyword is used only when a function returns a value.

42. Give the syntax for using user-defined functions in a program.

Syntax for using user-defined functions in a program


function declaration; function definition;

main()                                                                main()

{                                                                          {



function calling;


function calling;





function definition;

43. Classify the functions based on arguments and return values.

Depending on the arguments and return values, functions are classified into four types.

a) Function without arguments and return values.

b) Function with arguments but without return values. c) Function without arguments but with return values. d) Function with arguments and return values.

44. Distinguish between Call by value Call by reference.

Call by value

Call by reference.

a) In call by value, the value of actual

agreements is passed to the formal arguments and the operation is done on formal arguments.

b) Formal arguments values are photocopies of actual arguments values.

c) Changes made in formal arguments valued do not affect the actual arguments values.

a) In call by reference, the address of

actual argurment values is passed to formal argument values.

b) Formal arguments values are pointers to the actual argument values.

c) Since Address is passed, the changes made in the both arguments values are permanent.