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