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