挑战一下吧!C#测试开发工程师英语面试题

1. Given a rectangular (cuboidal for the puritans) cake with a rectangular piece removed (any size or orientation), how would you cut the remainder of the cake into two equal halves with one straight cut of a knife?
2. Given an array of size N in which every number is between 1 and N, determine if there are any duplicates in it.  You are allowed to destroy the array if you like.
3. Write a routine to draw a circle (x ** 2 + y ** 2 = r ** 2) without making use of any floating point computations at all.
4. What is wrong with the following code?
char* getHello()
{    string s=”Hello”;
    return s;
}
int main(int argc, char** argv)
{
    printf(“%s”,geHello());
}
Answer: getHello is returning local variable which is illegal outside the scope of it.
5. Find the nearest common parent for given two nodes in tree.
6. Write a routine that prints out a 2-D array in spiral order!
7. Given a list of numbers ( fixed list) Now given any other list, how can you efficiently find out if there is any element in the second list that is an element of the first list (fixed list).
 
8 Difference between ref and out
A variable passed as an out argument need not be initialized. However, the out parameter must be assigned a value before the method returns.
  An argument passed to a ref parameter must first be initialized. Compare this to an ‘out ‘ parameter, whose argument does not have to be explicitly initialized before being passed to an out parameter.
9  CLR ,CTS, CLS
CLR:Common Language Runtime it is above the operating system it is haveing jiterinside so it will convert MSIL code into operating system nativecode.
  CTS:It is haveing information of all the data types of different languages it is componet of  CLR
 CLS:It is haveing set of rules of different languages and their specifications it is also a component of CL
 What is CLR?
The .NET Framework provides a runtime environment called the Common Language Runtime or CLR (similar to the Java Virtual Machine or JVM in Java), which handles the execution of code and provides useful services for the implementation of the program. CLR takes care of code management at program execution and provides various beneficial services such as memory management, thread management, security management, code verification, compilation, and other system services. The managed code that targets CLR benefits from useful features such as cross-language integration, cross-language exception handling, versioning, enhanced security, deployment support, and debugging.
10  What is CTS?

Common Type System (CTS) describes how types are declared, used and managed in the runtime and facilitates cross-language integration, type safety, and high performance code execution.
11. What is CLS?

The CLS is simply a specification that defines the rules to support language integration in such a way that programs written in any language, yet can interoperate with one another, taking full advantage of inheritance, polymorphism, exceptions, and other features. These rules and the specification are documented in the ECMA proposed standard document, “Partition I Architecture”,
12. What is strong name?

A name that consists of an assembly’s identity—its simple text name, version number, and culture information (if provided)—strengthened by a public key and a digital signature generated over the assembly.

13. What is Application Domain?
The primary purpose of the AppDomain is to isolate an application from other applications. Win32 processes provide isolation by having distinct memory address spaces. This is effective, but it is expensive and doesn’t scale well. The .NET runtime enforces AppDomain isolation by keeping control over the use of memory – all memory in the AppDomain is managed by the .NET runtime, so the runtime can ensure that AppDomains do not access each other’s memory. Objects in different application domains communicate either by transporting copies of objects across application domain boundaries, or by using a proxy to exchange messages.

14  What is Global Assembly Cache (GAC) and what is the purpose of it?
Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. The global assembly cache stores assemblies specifically designated to be shared by several applications on the computer. You should share assemblies by installing them into the global assembly cache only when you need to.

15. What is Reflection in .NET?

All .NET compilers produce metadata about the types defined in the modules they produce. This metadata is packaged along with the module (modules in turn are packaged together in assemblies), and can be accessed by a mechanism called reflection. The System.Reflection namespace contains classes that can be used to interrogate the types for a module/assembly.

16. What is the managed and unmanaged code in .net?
The .NET Framework provides a run-time environment called the Common Language Runtime, which manages the execution of code and provides services that make the development process easier. Compilers and tools expose the runtime’s functionality and enable you to write code that benefits from this managed execution environment. Code that you develop with a language compiler that targets the runtime is called managed code; it benefits from features such as cross-language integration, cross-language exception handling, enhanced security, versioning and deployment support, a simplified model for component interaction, and debugging and profiling services

17. What are Namespaces?
The namespace keyword is used to declare a scope. This namespace scope lets you organize code and gives you a way to create globally-unique types. Even if you do not explicitly declare one, a default namespace is created. This unnamed namespace, sometimes called the global namespace, is present in every file. Any identifier in the global namespace is available for use in a named namespace. Namespaces implicitly have public access and this is not modifiable.
18. What are the access-specifiers available in c#?
Private, Protected, Public, Internal, Protected Internal.

19. Advantage of ADO.Net?

* ADO.NET Does Not Depend On Continuously Live Connections
    * Database Interactions Are Performed Using Data Commands
    * Data Can Be Cached in Datasets
    * Datasets Are Independent of Data Sources
    * Data Is Persisted as XML
    * Schemas Define Data Structures
20. What is Remoting?
The process of communication between different operating system processes, regardless of whether they are on the same computer. The .NET remoting system is an architecture designed to simplify communication between objects living in different application domains, whether on the same computer or not, and between different contexts, whether in the same application domain or not.

21 white box and black box testing?
White box testing strategy deals with the internal logic and structure of the code. White box testing is also called as glass, structural. In order to implement white box testing, the tester has to deal with the code and hence is needed to possess knowledge of coding and logic
Black-box test design is usually described as focusing on testing functional requirements. The test designer selects valid and invalid input and determines the correct output. There is no knowledge of the test object’s internal structure
22 valuetype and reference in c#
Value Type:
In value type the value is stored on the stack and can be used directly. This means the copy of the value is stored and not the reference to the value. Value type cannot be null, default value for this is zero [0]. Memory of variables in value type is automatically freed.
The value of value types are stored on the managed stack, and can be used directly. This means that the value is stored, and not a reference to the value. This also means that each value type has its own copy of the data. Reference Types on the other hand has a reference to the data, and several variables can reference the same data.
   Reference Types
In contrast to value types, the value of a reference types is allocated on the heap.
This means the actual value is stored and not the copy of it. Reference type can be null and memory of the variables are not automatically freed , it needs a garbage collector to do this.
delegate
Defines a reference type that can encapsulate one or more methods with a specific function prototype. Delegates provide the underlying mechanism (acting as a kind of pointer to member function) for events in the common language runtime component model.

上一篇:[转]QT 4.8 静态库编译方法


下一篇:es5 and es6