通信与计算机类求职面试题--English篇

Embedded System Engineer Interview


Can structures be passed to the functions by value?
Why cannot arrays be passed by values to functions?
Advantages and disadvantages of using macro and inline functions?

What happens when recursion functions are declared inline?
Scope of static variables?
Difference between object oriented and object based languages?
Multiple inheritance - objects contain howmany multiply inherited ancestor?
What are the 4 different types of inheritance relationship?
How would you find out the no of instance of a class?
Is java a pure object oriented language? Why?
Order of constructor and destructor call in case of multiple inheritance?
Can u have inline virtual functions in a class?
When you inherit a class using private keyword which members of base class are visible to the derived class?
What is the output of printf("\nab\bcd\ref"); -> ef
#define cat(x,y) x##y concatenates x to y. But cat(cat(1,2),3) does not expand but gives preprocessor warning. Why?
Can you have constant volatile variable? Yes, you can have a volatile pointer?
++*ip increments what? it increments what ip points to
Operations involving unsigned and signed – unsigned will be converted to signed
a+++b -> (a++)+b
malloc(sizeof(0)) will return – valid pointer
main() {fork();fork();fork();printf("hello world"); } – will print 8 times.
Array of pts to functions – void (*fptr[10])()
Which way of writing infinite loops is more efficient than others? there are 3ways.
# error – what it does?
How is function itoa() written?
Who to know wether systemuses big endian or little endian format and how to convert among them?
What is interrupt latency?
What is forward reference w.r.t. pointers in c?
How is generic list manipulation function written which accepts elements of any kind?
What is the difference between hard real-time and soft real-time OS?
What is interrupt latency? How can you recuce it?
What is the differnce between embedded systems and the system in which rtos is running?
How can you define a structure with bit field members?
What are the features different in pSOS and vxWorks?
How do you write a function which takes 2 arguments - a byte and a field in the byte and returns the value of the field in that byte?
What are the different storage classes in C?
What are the different qualifiers in C?
What are the different BSD and SVR4 communication mechanisms


C Language Programmer Interview


A frequent reader of this site sent this in.
No answers, but a nice set of questions. Consider getting Kernighan and Ritchie title if you find many things puzzling here.

What does static variable mean?
What is a pointer?
What is a structure?
What are the differences between structures and arrays?
In header files whether functions are declared or defined?
What are the differences between malloc() and calloc()?
What are macros? What are the advantages and disadvantages?
Difference between pass by reference and pass by value?
What is static identifier?
Where are the auto variables stored?
Where does global, static, local, register variables, free memory and C Program instructions get stored?
Difference between arrays and linked list?
What are enumerations?
Describe about storage allocation and scope of global, extern, static, local and register variables?
What are register variables? What are the advantage of using register variables?
What is the use of typedef?
Can we specify variable field width in a scanf() format string? If possible how?
Out of fgets() and gets() which function is safe to use and why?
Difference between strdup and strcpy?
What is recursion?
Differentiate between a for loop and a while loop? What are it uses?
What are the different storage classes in C?
Write down the equivalent pointer expression for referring the same element a[i][j][k][l]?
What is difference between Structure and Unions?
What the advantages of using Unions?
What are the advantages of using pointers in a program?
What is the difference between Strings and Arrays?
In a header file whether functions are declared or defined?
What is a far pointer? where we use it?
How will you declare an array of three function pointers where each function receives two ints and returns a float?
What is a NULL Pointer? Whether it is same as an uninitialized pointer?
What is a NULL Macro? What is the difference between a NULL Pointer and a NULL Macro?
What does the error ‘Null Pointer Assignment’ mean and what causes this error?
What is near, far and huge pointers? How many bytes are occupied by them?
How would you obtain segment and offset addresses from a far address of a memory location?
Are the expressions arr and *arr same for an array of integers?
Does mentioning the array name gives the base address in all the contexts?
Explain one method to process an entire string as one unit?
What is the similarity between a Structure, Union and enumeration?
Can a Structure contain a Pointer to itself?
How can we check whether the contents of two structure variables are same or not?
How are Structure passing and returning implemented by the complier?
How can we read/write Structures from/to data files?
What is the difference between an enumeration and a set of pre-processor # defines?
What do the ‘c’ and ‘v’ in argc and argv stand for?
Are the variables argc and argv are local to main?
What is the maximum combined length of command line arguments including the space between adjacent arguments?
If we want that any wildcard characters in the command line arguments should be appropriately expanded, are we required to make any special provision? If yes, which?
Does there exist any way to make the command line arguments available to other functions without passing them as arguments to the function?
What are bit fields? What is the use of bit fields in a Structure declaration?
To which numbering system can the binary number 1101100100111100 be easily converted to?
Which bit wise operator is suitable for checking whether a particular bit is on or off?
Which bit wise operator is suitable for turning off a particular bit in a number?
Which bit wise operator is suitable for putting on a particular bit in a number?
Which bit wise operator is suitable for checking whether a particular bit is on or off?
Which one is equivalent to multiplying by 2?
Left shifting a number by 1
Left shifting an unsigned int or char by 1?
Write a program to compare two strings without using the strcmp() function.
Write a program to concatenate two strings.
Write a program to interchange 2 variables without using the third one.
Write programs for String Reversal. The same for Palindrome check.
Write a program to find the Factorial of a number.
Write a program to generate the Fibonacci Series?
Write a program which employs Recursion?
Write a program which uses command line arguments.
Write a program which uses functions like strcmp(), strcpy(), etc.
What are the advantages of using typedef in a program?
How would you dynamically allocate a one-dimensional and two-dimensional array of integers?
How can you increase the size of a dynamically allocated array?
How can you increase the size of a statically allocated array?
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?
Which function should be used to free the memory allocated by calloc()?
How much maximum can you allocate in a single call to malloc()?
Can you dynamically allocate arrays in expanded memory?
What is object file? How can you access object file?
Which header file should you include if you are to develop a function which can accept variable number of arguments?
Can you write a function similar to printf()?
How can a called function determine the number of arguments that have been passed to it?
Can there be at least some solution to determine the number of arguments passed to a variable argument list function?
How do you declare the following:
An array of three pointers to chars
An array of three char pointers
A pointer to array of three chars
A pointer to function which receives an int pointer and returns a float pointer
A pointer to a function which receives nothing and returns nothing
What do the functions atoi(), itoa() and gcvt() do?
Does there exist any other function which can be used to convert an integer or a float to a string?
How would you use qsort() function to sort an array of structures?
How would you use qsort() function to sort the name stored in an array of pointers to string?
How would you use bsearch() function to search a name stored in array of pointers to string?
How would you use the functions sin(), pow(), sqrt()?
How would you use the functions memcpy(), memset(), memmove()?
How would you use the functions fseek(), freed(), fwrite() and ftell()?
How would you obtain the current time and difference between two times?
How would you use the functions randomize() and random()?
How would you implement a substr() function that extracts a sub string from a given string?
What is the difference between the functions rand(), random(), srand() and randomize()?
What is the difference between the functions memmove() and memcpy()?
How do you print a string on the printer?
Can you use the function fprintf() to display the output on the screen?


Some good C++ questions to ask a job applicant.


How do you decide which integer type to use?
What should the 64-bit integer type on new, 64-bit machines be?
 

What’s the best way to declare and define global variables?
What does extern mean in a function declaration?
What’s the auto keyword good for?
I can’t seem to define a linked list node which contains a pointer to itself.
How do I declare an array of N pointers to functions returning pointers to functions returning pointers to characters?
How can I declare a function that returns a pointer to a function of its own type?
My compiler is complaining about an invalid redeclaration of a function, but I only define it once and call it once. What’s happening?
What can I safely assume about the initial values of variables which are not explicitly initialized?
Why can’t I initialize a local array with a string?
What is the difference between char a[] = “string"; and char *p = “string"; ?
How do I initialize a pointer to a function?
 


Q. What is pure virtual function?
A class is made abstract by declaring one or more of its virtual functions to be pure. A pure virtual function is one with an initializer of = 0 in its declaration

Q. Write a Struct Time where integer m, h, s are its members
struct Time
{
int m;
int h;
int s;
};

how do you traverse a Btree in Backward in-order?
Process the node in the right subtree
Process the root
Process the node in the left subtree

Q. What is the two main roles of Operating System?
As a resource manager
As a virtual machine

Q. In the derived class, which data member of the base class are visible?
In the public and protected sections.

What is a modifier? A modifier, also called a modifying function is a member function that
changes the value of at least one data member. In other words, an
operation that modifies the state of an object. Modifiers are also
known as ‘mutators’. Example: The function mod is a modifier in the
following code snippet:

class test
{
    int x,y;
    public:
     test()
     {
         x=0; y=0;
     }
 void mod()
     {
        x=10;
        y=15;
     }
};


What is an accessor? An accessor is a class operation that
does not modify the state of an object. The accessor functions need to
be declared as const operations
Differentiate between a template class and class template.
Template class: A generic definition or a parameterized class not
instantiated until the client provides the needed information. It’s
jargon for plain templates. Class template: A class template specifies
how individual classes can be constructed much like the way a class
specifies how individual objects can be constructed. It’s jargon for
plain classes.
When does a name clash occur? A name clash occurs
when a name is defined in more than one place. For example., two
different class libraries could give two different classes the same
name. If you try to use many class libraries at the same time, there is
a fair chance that you will be unable to compile or link the program
because of name clashes.
Define namespace. It is a feature in C++ to
minimize name collisions in the global name space. This namespace
keyword assigns a distinct name to a library that allows other
libraries to use the same identifier names without creating any name
collisions. Furthermore, the compiler uses the namespace signature for
differentiating the definitions.
What is the use of ‘using’ declaration.
A using declaration makes it possible to use a name from a namespace without the scope operator.
What is an Iterator class? A class that is used to
traverse through the objects maintained by a container class. There are
five categories of iterators: input iterators, output iterators,
forward iterators, bidirectional iterators, random access. An iterator
is an entity that gives access to the contents of a container object
without violating encapsulation constraints. Access to the contents is
granted on a one-at-a-time basis in order. The order can be storage
order (as in lists and queues) or some arbitrary order (as in array
indices) or according to some ordering relation (as in an ordered
binary tree). The iterator is a construct, which provides an interface
that, when called, yields either the next element in the container, or
some value denoting the fact that there are no more elements to
examine. Iterators hide the details of access to and update of the
elements of a container class.
The simplest and safest iterators are those that permit read-only access to the contents of a container class.
List out some of the OODBMS available. GEMSTONE/OPAL
of Gemstone systems, ONTOS of Ontos, Objectivity of Objectivity Inc,
Versant of Versant object technology, Object store of Object Design,
ARDENT of ARDENT software, POET of POET software.
List out some of the object-oriented methodologies. Object Oriented Development (OOD) (Booch 1991,1994), Object
Oriented Analysis and Design (OOA/D) (Coad and Yourdon 1991), Object
Modelling Techniques (OMT) (Rumbaugh 1991), Object Oriented Software
Engineering (Objectory) (Jacobson 1992), Object Oriented Analysis (OOA)
(Shlaer and Mellor 1992), The Fusion Method (Coleman 1991).
What is an incomplete type? Incomplete types
refers to pointers in which there is non availability of the
implementation of the referenced location or it points to some location
whose value is not available for modification.

 int *i=0x400  // i points to address 400
 *i=0;        //set the value of memory location pointed by i.

Incomplete types are otherwise called uninitialized pointers.

What is a dangling pointer?
A dangling pointer arises when you use the address of an object after
its lifetime is over. This may occur in situations like returning
addresses of the automatic variables from a function or using the
address of the memory block after it is freed. The following
code snippet shows this:

class Sample
{
public:
        int *ptr;
        Sample(int i)
        {
         ptr = new int(i);
        }
         ~Sample()
        {
         delete ptr;
        }
        void PrintVal()
        {
         cout << “The value is ” << *ptr;
        }
};
 void SomeFunc(Sample x)
{
 cout << “Say i am in someFunc ” << endl;
}
 int main()
{
 Sample s1 = 10;
 SomeFunc(s1);
 s1.PrintVal();
}

In the above example when PrintVal() function is
called it is called by the pointer that has been freed by the
destructor in SomeFunc.

Differentiate between the message and method.
Message:

Objects communicate by sending messages to each other.
A message is sent to invoke a method.
Method

Provides response to a message.
It is an implementation of an operation.
What is an adaptor class or Wrapper class?
A class that has no functionality of its own. Its member functions hide
the use of a third party software component or an object with the
non-compatible interface or a non-object-oriented implementation.
What is a Null object? It is an object of some
class whose purpose is to indicate that a real object of that class
does not exist. One common use for a null object is a return value from
a member function that is supposed to return an object with some
specified properties but cannot find such an object.
What is class invariant? A class invariant is a
condition that defines all valid states for an object. It is a logical
condition to ensure the correct working of a class. Class invariants
must hold when an object is created, and they must be preserved under
all operations of the class. In particular all class invariants are
both preconditions and post-conditions for all operations or member
functions of the class.
What do you mean by Stack unwinding? It is a
process during exception handling when the destructor is called for all
local objects between the place where the exception was thrown and
where it is caught.
Define precondition and post-condition to a member function.
Precondition: A precondition is a condition that must be true on entry
to a member function. A class is used correctly if preconditions are
never false. An operation is not responsible for doing anything
sensible if its precondition fails to hold. For example, the interface
invariants of stack class say nothing about pushing yet another element
on a stack that is already full. We say that isful() is a precondition
of the push operation. Post-condition: A post-condition is a condition
that must be true on exit from a member function if the precondition
was valid on entry to that function. A class is implemented correctly
if post-conditions are never false. For example, after pushing an
element on the stack, we know that isempty() must necessarily hold.
This is a post-condition of the push operation.
What are the conditions that have to be met for a condition to be an invariant of the class?
The condition should hold at the end of every constructor.
The condition should hold at the end of every mutator (non-const) operation.
What are proxy objects? Objects that stand for other objects are called proxy objects or surrogates.

template <class t="">
class Array2D
{
 public:
        class Array1D
        {
         public:
          T& operator[] (int index);
          const T& operator[] (int index)const;
        };
         Array1D operator[] (int index);
        const Array1D operator[] (int index) const;
};

The following then becomes legal:

Array2D<float>data(10,20);
cout<<data[3][6];     //  fine

Here data[3] yields an Array1D object
and the operator [] invocation on that object yields the float in
position(3,6) of the original two dimensional array. Clients of the
Array2D class need not be aware of the presence of the Array1D class.
Objects of this latter class stand for one-dimensional array objects
that, conceptually, do not exist for clients of Array2D. Such clients
program as if they were using real, live, two-dimensional arrays. Each
Array1D object stands for a one-dimensional array that is absent from a
conceptual model used by the clients of Array2D. In the above example,
Array1D is a proxy class. Its instances stand for one-dimensional
arrays that, conceptually, do not exist.

Name some pure object oriented languages. Smalltalk, Java, Eiffel, Sather.
Name the operators that cannot be overloaded. sizeof, ., .*, .->, ::, ?: Salam in the comments notes that -> can be overloaded.
What is a node class? A node class is a class that,
relies on the base class for services and implementation,
provides a wider interface to the users than its base class,
relies primarily on virtual functions in its public interface
depends on all its direct and indirect base class
can be understood only in the context of the base class
can be used as base for further derivation
can be used to create objects.
A node class is a class that has added new services or functionality beyond the services inherited from its base class.

What is an orthogonal base class?
If two base classes have no overlapping methods or data they are said
to be independent of, or orthogonal to each other. Orthogonal in the
sense means that two classes operate in different dimensions and do not
interfere with each other in any way. The same derived class may
inherit such classes with no difficulty.
What is a container class? What are the types of container classes?
A container class is a class that is used to hold objects in memory or
external storage. A container class acts as a generic holder. A
container class has a predefined behavior and a well-known interface. A
container class is a supporting class whose purpose is to hide the
topology used for maintaining the list of objects in memory. When a
container class contains a group of mixed objects, the container is
called a heterogeneous container; when the container is holding a group
of objects that are all the same, the container is called a homogeneous
container.


Cisco System Software Engineer Interview

What will print out?
main()
{
        char *p1=“name”;
        char *p2;
        p2=(char*)malloc(20);
        memset (p2, 0, 20);
        while(*p2++ = *p1++);
        printf(“%sn”,p2);

}

Answer:empty string.

What will be printed as the result of the operation below:

main()
{
    int x=20,y=35;
    x=y++ + x++;
    y= ++y + ++x;
    printf(“%d%dn”,x,y);
}

Answer : 5794

What will be printed as the result of the operation below:

main()
{
    int x=5;
    printf(“%d,%d,%dn”,x,x< <2,x>>2);
}

Answer: 5,20,1

What will be printed as the result of the operation below:

#define swap(a,b) a=a+b;b=a-b;a=a-b;
void main()
{
    int x=5, y=10;
    swap (x,y);
    printf(“%d %dn”,x,y);
    swap2(x,y);
    printf(“%d %dn”,x,y);
}

int swap2(int a, int b)
{
    int temp;
    temp=a;
    b=a;
    a=temp;
    return 0;

}

Answer: 10, 5
10, 5

What will be printed as the result of the operation below:

main()
{
    char *ptr = ” Cisco Systems”;
    *ptr++; printf(“%sn”,ptr);
    ptr++;
    printf(“%sn”,ptr);
}

Answer:Cisco Systems
isco systems

What will be printed as the result of the operation below:

main()
{
    char s1[]=“Cisco”;
    char s2[]= “systems”;
    printf(“%s”,s1);
}
Answer: Cisco

What will be printed as the result of the operation below:

main()
{
    char *p1;
    char *p2;
    p1=(char *)malloc(25);
    p2=(char *)malloc(25);

    strcpy(p1,”Cisco”);
    strcpy(p2,“systems”);
    strcat(p1,p2);

    printf(“%s”,p1);

}

Answer: Ciscosystems

The following variable is available in file1.c, who can access it?:

static int average;

Answer: all the functions in the file1.c can access the variable.

WHat will be the result of the following code?

#define TRUE 0 // some code
while(TRUE)
{

    // some code

}

Answer: This will not go into the loop as TRUE is defined as 0.

What will be printed as the result of the operation below:

int x;
int modifyvalue()
{
    return(x+=10);
}
int changevalue(int x)
{
    return(x+=1);
}

void main()
{
    int x=10;
    x++;
    changevalue(x);
    x++;
    modifyvalue();
    printf("First output:%dn",x);

    x++;
    changevalue(x);
    printf("Second output:%dn",x);
    modifyvalue();
    printf("Third output:%dn",x);

}

Answer: 12 , 13 , 13

What will be printed as the result of the operation below:

main()
{
    int x=10, y=15;
    x = x++;
    y = ++y;
    printf(“%d %dn”,x,y);
}

Answer: 11, 16

What will be printed as the result of the operation below:

main()
{
    int a=0;
    if(a==0)
        printf(“Cisco Systemsn”);
        printf(“Cisco Systemsn”);
}

Answer: Two lines with “Cisco Systems” will be print



作者:Gavin(整理)   更新日期:2006-08-26
来源:upsdn.net   浏览次数:

相关文章

相关评论   发表评论