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