- 相關推薦
asp.net基礎筆試題全解完整答案
在平時的學習、工作中,我們最少不了的就是試題了,通過試題可以檢測參試者所掌握的知識和技能。什么樣的試題才是好試題呢?以下是小編為大家收集的asp.net基礎筆試題全解完整答案,希望對大家有所幫助。
asp.net基礎筆試題全解完整答案 1
1.面向對象的思想主要包括什么?
對向對象程序設計(OOP)思想:封裝、繼承、多態
封裝:用抽象的數據類型將數據和基于數據操作封裝在一起,數據被保護在抽象類型內部。
繼承:子類擁有父類的所有數據和操作。
多態:一個程序中同名的不同方法共存的情況。 有兩種形式的多態:重載與重寫。
2.什么是ASP.net中的用戶控件?
用戶控件就是.ascx,復合控件就是.DLL
3.什么叫應用程序域?什么是受管制的代碼?什么是強類型系統?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋?
應用程序域:一種邊界,它由公共語言運行庫圍繞同一應用程序范圍內創建的對象建立。
受管制的代碼:受管制的代碼是在CLR虛擬機中運行的代碼。
強類型系統: C# 是強類型語言;因此每個變量和對象都必須具有聲明類型。
裝箱和拆箱:
裝箱就是隱式的將一個值型轉換為引用型對象。比如:
int i=0;
Syste.Object obj=i;
這個過程就是裝箱!就是將i裝箱!
拆箱就是將一個引用型對象轉換成任意值型!比如:
int i=0;
System.Object obj=i;
int j=(int)obj;
這個過程前2句是將i裝箱,后一句是將obj拆箱!
值型就是在棧中分配內存,在申明的同時就初始化,以確保數據不為NULL;
引用型是在堆中分配內存,初始化為null,引用型是需要GARBAGE COLLECTION來回收內存的,值型不用,超出了作用范圍,系統就會自動釋放!
重載:類中的方法名相同,但參數的個數或類型不同
CTS(Common Type System)(通用類型系統) :描述了類型的定義和行為。
CLS( Common Language Specification) 通用語言規范
CLR ( Common Language Runtime ) 通用語言運行時
4.列舉一下你所了解的XML技術及其應用
xml可以用來做網頁(xslt) xml可以當作數據庫
5.值類型和引用類型的區別?寫出C#的樣例代碼。
值類型存在內存棧里面,引用類型存在內存堆里面
int i = 10; //值類型變量
class a = new class(); //定義類 引用類型
6.ADO.net中常用的對象有哪些?分別描述一下。
DataSet對象:表示內存中數據的緩存,可以把它想像成一個臨時的數據庫,它里可以存多個表
DataTable:而且是斷開式的,不用每進行一次操作就對數據庫進行更新,從而提高了效率。
DataReader對象:它與DataSet最大的'不同是有連接式的,每次對數據庫進行存取都會影響到數據庫。
Connection對象:用于連接數據庫的對象,表示到數據源的一個唯一的連接。
Command對象:表示要對數據庫執行的一個SQL語句或一個存儲過程。
DataAdapter對象:該對象是與DataSet配合使用的對象,用于把表填充到DataSet,和更新DataSet等
7.如何理解委托?
委托可以理解為函數指針
把方法或者函數包裝成一個對象引用,然后就可以作為參數傳遞。
8.C#中的接口和類有什么異同。
接口是負責功能的定義,項目中通過接口來規范類,操作類以及抽象類的概念!
而類是負責功能的具體實現!
9.。net中讀寫數據庫需要用到哪些類?他們的作用?
1、DataSet 用來無連接的儲存多個表的數據,并包含表與表之間的關聯關系
2、DataTable 用來存儲一個表的數據
3、SqlConnection 用來創建一個到數據庫的連接
4、SqlCommand 用來執行SQL語句
5、SqlDataReader 用來順序讀取數據
6、SqlDataAdapter 用來將數據填充到DataSet或DataTable
10.UDP連接和TCP連接的異同。
前者只管傳,不管數據到不到,無須建立連接.后者保證傳輸的數據準確,須要連接.
11.ASP.net的身份驗證方式有哪些?分別是什么原理?
Asp.net的身份驗證有有三種,分別是”Windows | Forms | Passport”驗證,WINDOWS一般在做企業內部OA的時候用的多一些,FORM一般是做網站用的多他是采用COOKIE機制來實現的,PASSPORT是微軟提供的一個WEBSERVICE。
12.進程和線程分別怎么理解?
進程和線程都是由操作系統所體會的程序運行的基本單元,系統利用該基本單元實現系統對應用的并發性。進程和線程的區別在于:簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.線程的劃分尺度小于進程,使得多線程程序的并發性高。
線程在執行過程中與進程還是有區別的。每個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。但是線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。
13.什么是code-Behind技術。
簡單的說就是代碼分離技術,也就是.net中的HTML代碼和程序代碼分別位于不同的文件,
14.活動目錄的作用。(答案不全 不好總結)
活動目錄是Windows平臺的一個核心的部件,活動目錄服務提供了一種管理組成網絡環境的各種對象的標志和關系的方法。
15..net中讀寫XML的類都歸屬于哪些命名空間?(不全 看功能而定)
SYSTEM.XML、SYSTEM.DATA、System.io
16.解釋一下UDDI、WSDL的意義及其作用。
UDDI:統一描述、發現和集成協議(UDDI, Universal Description, Discovery and Integration)是一套基于Web的、分布式的、為Web服務提供的信息注冊中心的實現標準規范,同時也包含一組使企業能將自身提供的Web服務注冊以使得別的企業能夠發現的訪問協議的實現標準。UDDI提供了一組基于標準的規范用于描述和發現服務,還提供了一組基于因特網的實現。
WSDL:描述Web服務的公共接口。這是一個基于XML的關于如何與Web服務通訊和使用的服務描述
17.什么是SOAP,有哪些應用。
SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分布式的環境中交換信息并執行遠程過程調用的協議,是一個基于XML的協議。
18.如何理解.net中的垃圾回收機制。
NET Framework 的垃圾回收器管理應用程序的內存分配和釋放。每次您使用 new 運算符創建對象時,運行庫都從托管堆為該對象分配內存。只要托管堆中有地址空間可用,運行庫就會繼續為新對象分配空間。但是,內存不是無限大的。最終,垃圾回收器必須執行回收以釋放一些內存。垃圾回收器優化引擎根據正在進行的分配情況確定執行回收的最佳時間。當垃圾回收器執行回收時,它檢查托管堆中不再被應用程序使用的對象并執行必要的操作來回收它們占用的內存。
19.常用的調用webservice方法有哪些?
vs.net里選擇添加web引用
20.C#中區別多態、重載、重寫的概念和語法結構2008年04月26日 星期六 18:11重寫是指重寫基類的方法,在基類中的方法必須有修飾符virtual,而在子類的方法中必須指明override。
格式:
基類中:
public virtual void myMethod()
{
}
子類中:
public override void myMethod()
{
}
重寫以后,用基類對象和子類對象訪問myMethod()方法,結果都是訪問在子類中重新定義的方法,基類的方法相當于被覆蓋掉了。
重載
用于在給定了參數列表和一組候選函數成員的情況下,選擇一個最佳函數成員來實施調用。
public void test(int x,int y){}
public void test(int x,ref int y){}
public void test(int x,int y,string a){}
重載特征:
I.方法名必須相同
II.參數列表必須不相同,與參數列表的順序無關
III.返回值類型可以不相同
=========================
但如果有泛型,就要注意了!
多態
c#的多態性主要體現在類的繼承上:
子類繼承父類的時候,可能出現同名但方法定義不同的情況,
所以在子類中會將原方法覆蓋,實現自身的要求.
using System;
class Employee
{
virtual public void CalculatePlay()
{
Console.WriteLine(“Employee”);
}
};
class SalariedEmployee: Employee
{
override public void CalculatePlay()
{
Console.WriteLine(“Salary”);
}
};
class PolyApp
{
public static void Main()
{
Employee baseE1 = new Employee();
baseE1.CalculatePlay();
Employee baseE2 = new SalariedEmployee();
baseE2.CalculatePlay();
SalariedEmployee s = new SalariedEmployee();
s.CalculatePlay();
}
};
asp.net基礎筆試題全解完整答案 2
1.編寫my_strcpy函數,實現與庫函數strcpy類似的功能,不能使用任何庫函數;
答:char *strcpy(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest == strSrc)
returnstrDest ;
char *tempptr = strDest ;
while( (*strDest++ = *strSrc++) != ‘’);
returntempptr ;
}
2. 頭文件中的ifndef/define/endif的作用?
答:防止該頭文件被重復引用。
3. #i nclude與#i nclude “file.h”的區別?
答:前者編譯器從標準庫路徑開始搜索file.h,而后者編譯器從用戶的工作路徑開始搜索file.h。
4. 在C++ 程序中調用被C 編譯器編譯后的函數,為什么要加extern“C”?
答:extern是C/C++語言中表明函數和全局變量作用范圍(可見性)的關鍵字,其聲明的函數和變量可以在本模塊或其它模塊中使用。
通常,在模塊的頭文件中對本模塊提供給其它模塊引用的函數和全局變量以關鍵字extern聲明。
5. 面向對象的三個基本特征,并簡單敘述之?
答:1)封裝:將客觀事物抽象成類,每個類對自身的數據和方法實行protection(private, protected,public)
2)繼承:實現繼承(指使用基類的屬性和方法而無需額外編碼的能力)、可視繼承(子窗體使用父窗體的外觀和實現代碼)、接口繼承(僅使用屬性和方法,實現滯后到子類實現)。
3)多態:允許將子類類型的指針賦值給父類類型的`指針。
6. 重載(overload)和重寫(overried,有的書也叫做“覆蓋”)的區別?
答:從定義上來說:
重載:是指允許存在多個同名函數,而這些函數的參數表不同(或許參數個數不同,或許參數類型不同,或許兩者都不同)。
重寫:是指子類重新定義復類虛函數的方法。
從實現原理上來說:
重載:編譯器根據函數不同的參數表,對同名函數的名稱做修飾,然后這些同名函數就成了不同的函數。
重寫:當子類重新定義了父類的虛函數后,父類指針根據賦給它的不同的子類指針,動態的調用屬于子類的該函數,這樣的函數調用在編譯期間是無法確定的(調用的子類的虛函數的地址無法給出)。
7. 多態的作用?
答:主要是兩個:1)隱藏實現細節,使得代碼能夠模塊化;擴展代碼模塊,實現代碼重用;2)接口重用,為了類在繼承和派生的時候,保證使用家族中任一類的實例的某一屬性時的正確調用。
8. 分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。
答:BOOL :if ( !a ) or if(a)
int :if ( a ==0)
float :const EXPRESSION EXP = 0.000001
if ( a < EXP && a >-EXP)
pointer : if ( a != NULL) or if(a == NULL)
9. 請說出const與#define 相比,有何優點?
答案:1) const 常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產生意料不到的錯誤。
2) 有些集成化的調試工具可以對const 常量進行調試,但是不能對宏常量進行調試。
10.簡述數組與指針的區別?
數組要么在靜態存儲區被創建(如全局數組),要么在棧上被創建。指針可以隨時指向任意類型的內存塊。
(1)修改內容上的差別
char a = “hello”;
a[0] = ‘X’;
char *p = “world”; // 注意p 指向常量字符串
p[0] = ‘X’; // 編譯器不能發現該錯誤,運行時錯誤
(2) 用運算符sizeof 可以計算出數組的容量(字節數)。sizeof(p),p 為指針得到的是一個指針變量的字節數,而不是p 所指的內存容量。C++/C 語言沒有辦法知道指針所指的內存容量,除非在申請內存時記住它。注意當數組作為函數的參數進行傳遞時,該數組自動退化為同類型的指針。
char a = “hello world”;
char *p = a;
cout< cout< 計算數組和指針的內存容量
voidFunc(char a[100])
{
cout< }
【asp.net基礎筆試題全解完整答案】相關文章:
CAD基礎試題「附答案」06-23
java基礎筆試題及答案10-18
2023年ps基礎試題及答案07-06
管理學基礎試題及答案08-27
護理學基礎試題及答案08-14
計算機基礎試題及答案10-10
文秘基礎知識試題及答案08-02
管理學基礎試題及答案09-18