Answers for Technical Questions in c30oct
Transcript of Answers for Technical Questions in c30oct
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 1/28
ANSWERS FOR TECHNICAL QUESTIONS IN C
1. What does static variable mean?
When a variable is declared to static it will be initialized thedefault value zero. It is local to the block in which it is declared.
The lifetime persists for each and every function call.
2. What is a pointer?
A pointer is also called a reference of a particular data type.
But instead of storing some value it stores the address of a
particular variable. This address can be initialized by using ‚&‛
operator. Eg: int a = &b;3. What is a structure?
Structure is a special type of user defined data structure
which comprises of a collection of certain type predefined data
types like int, char, float etc. It is an entity which comprises of
many atoms.
4. What are differences between structure and array?
Arrays are group of data of same data type, whereas
structure is combination of entities of different data types. Size of
array needs to be declared initially itself whereas structure can be
done both initially and dynamically.
5. In header files whether functions are declared or defined?
Inside header files the functions are defined and they are not
declared. This is also a type of structure definition.
6. What are the differences between malloc() and calloc()?
malloc() takes a single argument(memory required in bytes),
while calloc() needs 2 arguments(number of variables to allocate
memory, size in bytes of a single variable). Secondly, malloc()
doesnot initialize the memory allocated, while calloc() initializes
the allocated memory to ZERO. The difference b/w malloc and
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 2/28
calloc are: 1. malloc() allocates byte of memory where as
calloc()allocates block of memory.
7. What are macros? What are its advantages and disadvantages?
Macros are short form for macro definition. These macronames are handled by the pre processor and it replaces the
corresponding definition. Macros increase the speed of execution
whereas they also increase the size of the program.
8. Differences between pass by reference and pass by value
Whenever we call a function if we pass the value of the
variable with it, it is called call by value. Whereas, if we pass the
address were the variable is stored it is called, call by reference.9. What is static identifier?
In C the names of variables, functions, labels etc are named
as identifiers. Similarly static is also an identifier which is used to
initialize value to some data types.
10. Where is the auto variables stored?
Even if variables are not declared auto by default they are
taken to be auto. When initialized auto variables are stored in thememory it is local to the block in which it is declared, its default
value is garbage.
11. Where does global, static, local, register variables, free
memory and c Program instructions get stored?
Local Variables are stored in Stack. Register variables are
stored in Register. Global & static variables are stored in data
segment. The memory created dynamically are stored in HeapAnd the C program instructions get stored in code segment.
12. Difference between arrays and linked list?
Arrays are initialized statically whereas linked list is
initialized dynamically using pointers. Arrays are easy to create
and use but creating linked list is tough. Arrays must be
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 3/28
contiguous memory locations but in linked list they can be at
different places.
13. What are enumerations?
Enumeration is the process by which we can declare whatvalues a particular variable of a defined data type can take.
14. Describe about storage allocation and scope of global,
extern, static, local and register variables?
The extern storage type is used to allow a source module
within a C program to access a variable declared in another
source module.
Static variables are only accessible within the code block thatdeclared them, and additionally if the variable is local, rather than
global, they retain their old value between subsequent calls to the
code block.
Register variables are stored within CPU registers where
ever possible, providing the fastest possible access to their values.
15. What are register variables? What are the advantages of
using register variables?
Register variables is another type of storage class in C. When
declared of this type it gets stored inside the CPU registers.
Whenever we are going to use a variable at many places it is
useful in declaring it as register because it will increase the speed
of execution.
16. What is the use of typedef?
Typedef is used in re declaring the variables. When ever big
variable declarations are present they can be substituted using
typedef. Eg: typedef unsigned long int TWO;. Whenever we want
to use unsigned long int we can just use TWO. Eg: TWO var1,
var2;
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 4/28
17. Can we specify variable field width in a scanf() format
string? If possible how?
Yes we can specify variable filed width within a scanf format
string. An example is here we restrict string of length greater thansize 20 using this statement. scanf(‚%20s‛, address).
18. Out of fgets() and gets() which function is safe to use and
why?
Out of fgets() and gets(), fgets() is safer because of the
following reason. Fgets() reads from the file buffer until the
beginning of a new line or until EOF. Whereas, in gets() it is the
users work to specify length and gets() also has the danger ofoverrunning.
19. Difference between strdup() and strcpy()?
Strcpy() is used to copy one string to another in his case we
have to pass two values source and destination. Whereas. In
strdup() it duplicates the string and source and destination values
need not be passed.
20. What is recursion?The processes were a particular function calls itself again
and again until a condition is meet is called as recursion. For
example the factorial value can be calculated using recursive
functions.
21. Differentiate between for loop and a while loop?
We have to initialize values outside the while loop check
condition and then increment inside the while loop. Whereas allthree steps can be done together inside a single for loop.
22. What are different storage classes in C?
C provides four storage types; ‘extern’, ‘static’, ‘auto’ and
‘register’.
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 5/28
23. Write down the equivalent pointer expression for referring
the same element a[i][j][k][l]?
a[i] == *(a+i)
a[i][j] == *(*(a+i)+j)a[i][j][k] == *(*(*(a+i)+j)+k)
a[i][j][k][l] == *(*(*(*(a+i)+j)+k)+l)
24. What is the difference between structure and union?
Both structure and union are almost similar. But the main
difference is how they are stored. In structures many memory
locations are grouped together. In unions a single memory
location is split into many.25. What is the advantage of using unions?
Advantage of using union is that it reduces machine
dependency. We no longer have to worry about the size of an int,
long, float etc.
26. What are the advantages of using pointers in a program?
The advantages of using pointers in programs are, they help
in dynamic allocation of variables, they also help in efficientmemory utilization ways, etc.
27. What is the difference between Strings and Arrays?
Strings are used to handle a set of character, handling strings
is a very important concept. Arrays are nothing but storing of
entities of same data type in contiguous memory location. Strings
are handles as a array of characters.
28. It is a repeated question29. What is a far pointer? Where we use it?
Far pointers are the normalized pointers of four bytes which
are used to access the main memory of the computer ...it can
access both the data segment and code segment thus by
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 6/28
modifying the offset u can modify refer two different addresses
but refer to the same memory
30. float (*fnp[3])(int, int);
31.What is NULL pointer? Whether it is same as anuninitialized pointer?
Usually a pointer is initialized to NULL. this is to tell that it
is still doesn't have valid address. Uninitialized pointer can
contain any value (just like any other uninitialized variable),
which we call garbage.
32.What is NULL macro? What is the difference between aNULL pointer & a NULL macro?
NULL is a macro which contains the value 0 (on most
implementations). this is the one used to initialize a pointer to
NULL.
33.What does the error ‘Null Pointer Assignment’ mean and
what causes this error?
Null pointer assignment:This error is displayed when a value is stored to an
uninitialized pointer. The program may appear to work properly.
34.What is near,far,huge pointers?How many bytes are occupied
by them?
near pointer:
<type> near <pointer definition> ;
The first version of near declares a pointer to be one word with arange of
64K.
This type modifier is usually used when compiling in the
medium, large, or
huge memory models to force pointers to be near.
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 7/28
Example:
char near *s;
int (near *ip)[10];
When near is used with a function declaration, Turbo C++generates function
code for a near call and a near return.
far pointers:
Forces pointers to be far, generates function code for a far call and
a far
return.
Syntax:þ <type> far <pointer definition> ;
The first version of far declares a pointer to be two words with a
range of
1 megabyte. This type modifier is usually used when compiling in
the tiny,
small, or compact models to force pointers to be far.
Examples:char far *s;
void * far * p;
When far is used with a function declaration, Turbo C++
generates function
code for a far call and a far return.
huge pointer:
Syntax: <type> huge <pointer-definition> ;The huge pointer is similar to the far pointer except for two
additional
features.
1. Its segment is normalized during pointer
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 8/28
arithmetic so that pointer comparisons are
accurate.
2.Huge pointers can be incremented without
suffering from segment wraparound.35.How would you obtain segment and offset address from a far
address of a memory location?The segment and offset address can be calculated by means of
using the function FP_SEG().The parameter to the function is fp
which is the file pointer.It is given as FP_SEG(fp).This function
returns the segment and offset address of the given memory
location.36.Are the expressions arr and &arr same for an array of
integers?
The __expression arr and &arr are same for an array of
integers.
37.Does mentioning the array name gives the base address in all
the contexts?
No, not in all contexts. Following is the list of exceptions.
An expression of type ‚array of type‛ is converted to type
‚pointer to type‛ unless:
* it is the operand of the sizeof operator, or
* it is the operand of the address-of (&) operator, or
* it is a string literal used to initialize an array.
38. Explain one method to process an entire string as one unit?
Strlen()-This function counts the number of charcters
present in a string.
Ex:
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 9/28
main()
{
char arr*+=‛London‛;
int len;len=strlen(arr);
printf(‚string = %s length=%d‛,arr,len);
}
Output:
String= London length=6
39. What is the similarity between a structure, union and
enumeration?The similarity between a structure, union and enumeration
is all the three are defined by the user.
40. Can a structure contain a pointer to itself?
Yes, structure can contain a pointer to itself.typedef struct node {
char *item;
struct node *next;
} *NODEPTR;
41.How can we check whether the contents of twostructure variables are same or not?
Two variables of the same structure type can be compared in
same way as ordinary variables.
If person1 & person2 belongs to same structure the following
operations are valid.
Operation Meaning
Person1=person2 Assign person2 to person1
Person1==person2 Compare all members of
person1 &person2 & return 1 if
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 10/28
they are equal, zero otherwise.
Person1!=person2 Return 1 if all the member are
not equal, zero otherwise.
42. How are structure passing and returning implemented by
compiler?
When structures are passed as arguments to functions, the
entire structure is typically pushed on the stack, using as many
words as are required.
43. How can we read/write structures from/to data files?
We ca n read/write structures from/to data files by usingfscanf()&fprintf().
44. What is the difference between enumeration and a set of
preprocessor #defines?
#define have a global scope whereas the scope of enum can
either be global (if declared outside all function) or local (if
declared inside a function).
45. What do the ‘c’ and ‘v’ in argc and argv stand for? Argc-argument count
Argv-argument vector
46. Are the variables argc and argv are local to main?
Yes, the variables argc and argv are local to main.
47.
48. It is the command interpreter’s job to do the expansion.
49.50. What are bitfields?What is the use of bitfields in structure
declaration?
A bit field is an element of a structure that is defined in
terms of bits.Using a special type of struct definition, you can
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 11/28
declare a structure element that can range from 1 to 16 bits in
length.
For example, this struct
struct bit_field {int bit_1 : 1;
int bits_2_to_5 : 4;
int bit_6 : 1;
int bits_7_to_16 : 10;
} bit_var;
51. To which numbering system can the binary number
1101100100111100 be easily converted to?Hexadecimal Numbering System.
52. Which bitwise operator is suitable for checking whether a
particular bit is on or off?
Bitwise AND Operator.
53. Which bitwise operator is suitable for turning off a
particular bit in a number?
Bitwise AND Operator.54. Which bitwise operator is suitable for putting on a
particular bit in a number?
Bitwise OR Operator.
55. Which bitwise operator is suitable for checking whether a
particular bit is on or off?
Bitwise AND Operator.
56.Which is equivalent to multiplying by 2:Left shifting a
number by 1 or left shifting an unsigned int or char by 1?
Left shifting a number by 1 is equivalent to multiplying by 2.
It is always safe to use unsigned integer operands for bitwise
operations, so the second statement will hold good.
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 12/28
57. Write a program to compare two strings without using the
strcmp() function?
58.Write a program to concatenate two string?
Program:#include<stdio.h>
void main()
{
char source*+=‛folks!‛;
char target*30+=‛Hello‛;
strcat(target,source);
printf(‚\nsource string=%s‛,source); printf(‚\ntarget string=%s‛,target);
}
59.Write a program to interchange two variables without using
the third one?
Program:
#include<stdio.h>
void main(){int a,b;
printf("ENTER THE VALUE OF A : ");
scanf("%d",&a);
printf("ENTER THE VALUE OF B : ");
scanf("%d",&b);
if (a>b)
{a=a-b; b=a+b;
a=b-a;
}
else
{b=b-a;
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 13/28
a=b+a;
b=a-b;}
printf ("A = %d \nB = %d",a,b);
}
60.Write a program for String reversal & palindrome check?
Program:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main(){
char str1[20],str2[20];
clrscr();
printf("\nEnter the string: ");
scanf("%s",&str1);
strcpy(str2,str1);
strrev(str1);61. Write a program to find the Factorial of a number
#include <stdio.h>
#define VALUE 6
int i,j;
void main()
{
j=1;for (i=1; i<=VALUE; i++)
j=j*i;
printf("The factorial of %d is %d\n",VALUE,j);}
62.Write a program to generate the Fibinocci Series
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 14/28
#include <stdio.h>
main()
{ int fib[24];
int i;fib[0] = 0;
fib[1] = 1;
for(i = 2; i < 24; i++)
fib[i] = fib[i-1] + fib[i-2];
for (i = 0; i < 24; i++)
printf("%3d %6d\n", i, fib[i]);
} 63.Write a program which employs Recursion
Program to display first four multiples of a number
#include<stdio.h>
#include<conio.h>
Void multi();
Void main()
{Int I;
Clrscr();
Multi(10);
Getch();
}
Void multi(int n)
{If(n<10000)
{
Multi(n*10);
}
Printf(‚\n%d‛,n);
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 15/28
}
Output:
10000
1000100
10
64.Write a program which uses Command Line Arguments
Weight Conversion with Command Line Argument
#include <stdio.h>
void print_converted(int pounds)/* Convert U.S. Weight to Imperial and International
Units. Print the results */
{ int stones = pounds / 14;
int uklbs = pounds % 14;
float kilos_per_pound = 0.45359;
float kilos = pounds * kilos_per_pound;
printf(" %3d %2d %2d %6.2f\n",
pounds, stones, uklbs, kilos);
}
main(int argc,char *argv[])
{ int pounds;
if(argc != 2)
{ printf("Usage: convert weight_in_pounds\n");exit(1);
}
sscanf(argv[1], "%d", £s); /* Convert String to int */
printf(" US lbs UK st. lbs INT Kg\n");
print_converted(pounds);
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 16/28
}
65.Write a program which uses functions like strcmp(), strcpy()?
etc#include <stdio.h> /* stdin, printf, and fgets */
#include <string.h> /* for all the new-fangled string functions */
/* this function is designed to remove the newline from the end of
a string
entered using fgets. Note that since we make this into its own
function, we
could easily choose a better technique for removing the newline.Aren't
functions great? */
void strip_newline( char *str, int size )
{
int i;
/* remove the null terminator */for ( i = 0; i < size; ++i )
{
if ( str[i] == '\n' )
{
str[i] = '\0';
/* we're done, so just exit the function by returning */return;
}
}
/* if we get all the way to here, there must not have been a
newline! */
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 17/28
}
int main()
{
char name[50];char lastname[50];
char fullname[100]; /* Big enough to hold both name and
lastname */
printf( "Please enter your name: " );
fgets( name, 50, stdin );
/* see definition above */
strip_newline( name, 50 );/* strcmp returns zero when the two strings are equal */
if ( strcmp ( name, "Alex" ) == 0 )
{
printf( "That's my name too.\n" );
}
else
{ printf( "That's not my name.\n" );
}
// Find the length of your name
printf( "Your name is %d letters long", strlen ( name ) );
printf( "Enter your last name: " );
fgets( lastname, 50, stdin );
strip_newline( lastname, 50 );fullname[0] = '\0';
/* strcat will look for the \0 and add the second string starting
at
that location */
strcat( fullname, name ); /* Copy name into full name */
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 18/28
strcat( fullname, " " ); /* Separate the names by a space */
strcat( fullname, lastname ); /* Copy lastname onto the end of
fullname */
printf( "Your full name is %s\n",fullname );getchar();
return 0;
}
66.What are the advantages of using typedef in a program?
A good programming practice is using typedef while instantiatingtemplate classes. Then throughout the program, one can use the typedef
name. There are two advantages:
typedef's are very useful when "templates of templates" come into
usage. For example, when instantiating an STL vector of int's, you
could use:typedef vector<int, allocator<int> >
INTVECTOR ;
If the template definition changes, simply change the typedef definition. For example, currently the definition of template class
vector requires a second parameter.typedef vector<int, allocator<int> >
INTVECTOR ;
INTVECTOR vi1 ;
67.How would you dynamically allocate a one-dimensional and
two-dimensional array of integers?
int **arrayPtr;
int numRows, numCols;
printf("Enter values for numRows and numCols\n");
scanf("%d",&numRows);
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 19/28
scanf("%d",&numCols);
/* Create space for first array (array of pointers to each row). */
arrayPtr = (int **) malloc(numRows*sizeof(int));
/* Loop through first array and create space for according tonumber of columns.*/
for(rowIndex=0;rowIndex < numRows;rowIndex++)
arrayPtr[rowIndex] = malloc(numCols*sizeof(int));
The easiest way to create a dynamically allocated array is to first
dynamically allocate an array of pointers, of length equal to the
number of rows desired, and then have each entry in that array
point to a dynamically allocated array of length equal to thenumber of columns.
The following example allocates a dynamic array of characters
with eight rows and 5 columns.
main()
{
char **myArray; // eek, char ** because myArray is a pointer to
a // pointer to a character (an array of arrays...)
myArray = new char * [8]; // allocate the rows
for (int row = 0; row < 8; row++) // now allocate the columns
myArray[i] = new char [5];
}
68.How can you increase the size of a dynamically allocated
array?
Realloc() function is used to resize the memory block,which is
already allocated.
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 20/28
Syntax: ptr_var=realloc(ptr_var,new_size);
69.How can you increase the size of a statically allocated array?
Required amount of memory is allocated to program elementsat start of the program. memory value is fixed and identified
by compiler at compile time. So statically allocated memory
size cannot be resized.
70.When reallocating memory if any other pointers point into
the same piece of memory do you have to readjust these other
pointers or do they get readjusted automatically?
If you have a pointer to a malloc'd section of memory and you
realloc it, the pointer still points to the right addrss, but the actual
address *may* change.
71.Which function should be used to free the memory allocated
by calloc()?
The Free() function
Syntax: free(ptr_var);
72.How much maximum can you allocate in a single call to
malloc()?
Depending upon the amount of free memory in the ram,the
size is allocated to malloc in single call. To check whether
requested memory is available the following program is used..
Int ptr*;Prt=(int*)malloc(5*sizeof(int));
If (prt==NULL)
{
Printf(‚required memory not available‛);
Getch();exit(0);
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 21/28
}
73.Can you dynamically allocate arrays in expanded memory?
======74.What is object file? How can you access object file?
The compiler compiles the error free source code and coverts
them into byte code format and this file is called the object file.
Thus the text editor produces .c source files, which go to the
compiler, which produces .obj object files, which go to the
linker, which produces .exe executable file75.Which header file should you include if you are to develop a
function which can accept variable number of arguments?
Stat.h
76.Can you write a function similar to printf()?
The library function sprintf() is similar to printf() only the
formatted output is written to a memory area rather thandirectly to standard output. It is particularly useful when it is
necessary to construct formatted strings in memory for
subsequent transmission over a communications channel or to
a special device
main()
{
char buf[128];double x = 1.23456;
char *spos = buf;
int i = 0;
sprintf(buf,"x = %7.5lf",x);
while(i<10) puts(spos+i++);
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 22/28
}
OUTPUT:
x = 1.23456
= 1.23456= 1.23456
1.23456
1.23456
.23456
23456
3456
45656
77.How can a called function determine the number of
arguments that have been passed to it?
Depending upon the number of arguments passed the called
function will be selected accordingly.
Ex: a)void volume(int length,int breath,int height)
b)void volume(int length,int breath)When a=volume(2,3) then [b] will be called. If a=volume(3,6,7)
then [a] will be called.
78.Can there be at least some solution to determine the number
of arguments passed to a variable argument list function?
79.How do you declare the following:o An array of three pointers to chars
char *name[] = { "Dave","Bert","Alf" };
o An array of three char pointers
o A pointer to array of three chars
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 23/28
o A pointer to function which receives an int pointer
and returns a float pointer
o A pointer to a function which receives nothing and
returns nothing
80.What do the functions atoi(), itoa() and gcvt() do?
gcvtConvert floating point value to string
* itoaConvert integer to string
atoiConvert string to integer
81.Does there exist any other function which can be used to
convert an integer or a float to a string? ecvtConvert floating point value to string
* fcvtConvert floating point value to string
82.How would you use qsort() function to sort an array of
structures?
qsort will sort an array of elements. This is a wild function that
uses a pointer to another function that performs the required
comparisons.Library : stdlib.h
Prototype : void qsort(void *base,
size_t num,
size_t size,
int (*comp_func)(const void *, const void *))
83.How would you use qsort() function to sort the name stored
in an array of pointers to string?
void *qsort(const void *base, size_t nmemb,
size_t size,
int (*compar)(const void *, const void *));
void Person_dbase::list(Listtype type)
{
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 24/28
switch (type)
{
case list_by_name:
qsort(pp, n, sizeof(Person), (pif2vp)cmpname); break;
case list_by_birthday:
qsort(pp, n, sizeof(Person), (pif2vp)cmpdate);
break;
} // list the sorted Person-database
}
84.How would you use bsearch() function to search a name
stored in array of pointers to string?
void *bsearch(const void *key, const void *base,
size_t nmemb, size_t size,
int (*compar)(const void *, const void *));
85.How would you use the functions sin(), pow(), sqrt()?
#include <math.h>
sin():
double sin(double x);
sin()- gives the trignometrical sin value of x which is in radian.
pow():
double sqrt(double x);
sqrt() returns the non-negative square root of x. The value of x
must
not be negative.
sqrt():
float powf(float x, float y);
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 25/28
pow() returns x^y. If x is 0.0, y must be positive. If x is
negative, y must be an integer.
86.How would you use the functions memcpy(), memset(),memmove()?
Declaration: memcpy():
void *memcpy(void *str1, const void *str2, size_t n);
Copies n characters from str2 to str1. If str1 and str2 overlap the
behavior is undefined.
Declaration: memset(): void *memset(void *str, int c, size_t n);
Copies the character c (an unsigned char) to the first n characters
of the string pointed to by the argument str.
Declaration: memmove():
void *memmove(void *str1, const void *str2, size_t n);
Copies n characters from str2 to str1. If str1 and str2 overlap theinformation is first completely read from str1 and then written
to str2 so that the characters are copied correctly.
87.How would you use the functions fseek(), fread(), fwrite()
and ftell()?
Fseek():
int fseek(FILE *stream, long offset, int mode);The function sets the file-position indicator for the stream stream
(as specified by offset and mode), clears the end-of-file indicator
for the stream, and returns zero if successful.
Fread():
size_t fread(void *ptr, size_t size, size_t nelem, FILE *stream);
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 26/28
The function reads characters from the input stream stream and
stores them in successive elements of the array whose first
element has the address (char *)ptr until the function stores
size*nelem characters or sets the end-of-file or error indicator. Itreturns n/size, where n is the number of characters it read. If n is
not a multiple of size, the value stored in the last element is
indeterminate. If the function sets the error indicator, the file-
position indicator is indeterminate.
Fwrite():
size_t fwrite(const void *ptr, size_t size, size_t nelem, FILE
*stream);The function writes characters to the output stream stream,
accessing values from successive elements of the array whose first
element has the address (char *)ptr until the function writes
size*nelem characters or sets the error indicator. It returns n/size,
where n is the number of characters it wrote. If the function sets
the error indicator, the file-position indicator is indeterminate.
Ftell():long ftell(FILE *stream);
The function returns an encoded form of the file-position
indicator for the stream stream or stores a positive value in errno
and returns the value -1. For a binary file, a successful return
value gives the number of bytes from the beginning of the file.
For a text file, target environments can vary on the representation
and range of encoded file-position indicator values.88.How would you obtain the current time and difference
between two times?
BY USING TIMERELATED FUNCTIONS
Time() - Gets current system time as long integer
Difftime - Computes the difference between two times
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 27/28
89.How would you use the functions randomize() and
random()?int randno = random(n);
It then returns a random whole number in the range 0 to n-1
BY using randomize() - Initializes random number generation
with a random value based on time.
90.How would you implement a substr() function that extracts a
sub string from a given string?
substr(s,p)-- return substring of s starting at position p
91.What is the difference between the functions rand(),
random(), srand() and randomize()?
srand ... Sets a new random seed for rand
rand ... returns a pseudo-random number (using the
seed from srand
call)random and srandom are pretty mucht the same as rand and
srand but the
have a better alorithm -> the numbers are more
random
randomize is probably a Borland specific function
92.What is the difference between the functions memmove()
and memcpy()?
memmove() – Copies n characters from str2 to str1. If str1 and
str2 overlap the behavior is undefined
memcpy() – Copies n characters from str2 to str1. If str1 and
str2 overlap the information is first completely read from str1
8/3/2019 Answers for Technical Questions in c30oct
http://slidepdf.com/reader/full/answers-for-technical-questions-in-c30oct 28/28
and then written to str2 so that the characters are copied
correctly
93.How do you print a string on the printer?
BY USING: stdprn()-[standard printer] function.94.Can you use the function fprintf() to display the output on
the screen?
yes it is possible as