計算機考研面試題目.doc_第1頁
計算機考研面試題目.doc_第2頁
計算機考研面試題目.doc_第3頁
計算機考研面試題目.doc_第4頁
計算機考研面試題目.doc_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

8086/8088的內(nèi)部中斷主要有5種。 (1) 除法錯中斷 (2) 單步中斷 (3) 斷點中斷 (4) 溢出中斷 (5)用戶自定義的軟件中斷在8086/8088內(nèi)存的開始1K字節(jié)建立了一個中斷向量表,每個中斷向量由4個字節(jié)組成,低兩位是IP值,高兩位是CS值,這個CS:IP地址表示當(dāng)相應(yīng)中斷發(fā)生時,中斷處理程序的入口地址。關(guān)閉中斷標(biāo)識,重要數(shù)據(jù)入棧,處理中斷服務(wù)功能(你要實現(xiàn)的功能),數(shù)據(jù)出棧,恢復(fù)中斷標(biāo)識,開中斷.ExtJS不同其他的javaScript庫,ExtJS為您的開發(fā)夯實了基礎(chǔ),只需幾行代碼,你就可以制作出豐富的用戶界面。Ext庫是對雅虎YUI的一個拓展,提供了它所不支持的特性:良好的API,真實的控件。雖然YUI致力于用戶界面,但是它卻沒有提供許多有用的功能。Ext的產(chǎn)生源自于開發(fā)者、開源貢獻者們將YUI擴展成一個強大的客戶端應(yīng)用程序庫的努力。Ext提供了一個簡單豐富的用戶界面,如同桌面程序一般。這使得開發(fā)者能夠把精力更多的轉(zhuǎn)移到實現(xiàn)應(yīng)用的功能上。Ext官網(wǎng)上的示例會讓你知道它是如何的不可思議:/deploy/dev/examples/。Ext讓通過如下的方式來讓web應(yīng)用的開發(fā)變的十分簡單:提供簡單的,跨瀏覽器的控件,如:窗口、表格、表單。這些組件都是能夠適應(yīng)市場上的主流瀏覽器的。我們不需要做任何改動。用戶是通過EventManager來和瀏覽器做交互的,相應(yīng)的事件有:用戶的鍵盤輸入,鼠標(biāo)擊打,瀏覽器監(jiān)聽(窗口改變大小,改變字體)等等;在和用戶交互時不需要刷新頁面,一切在后臺進行。它允許你從服務(wù)器通過AJAX來獲取或者提交數(shù)據(jù)并且在第一時間執(zhí)行你的反饋。JavaEEMVC:開始是存在于桌面程序中的,M是指業(yè)務(wù)模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計數(shù)據(jù)可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。1-2Hibernate 是一個實現(xiàn)數(shù)據(jù)持久化的工具項目,它可以被嵌入到J2EE服務(wù)器中使用,也可以直接從客戶端調(diào)用,通常的使用方式是將Hibernate嵌入到Tomcat和JBoss等服務(wù)器中使用。簡單的說就是在表的記錄與與表對應(yīng)的持久化類的實例之間進行轉(zhuǎn)換。Spring:Spring 表示是一個開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性??蚣艿闹饕獌?yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個組件,同時為 J2EE 應(yīng)用程序開發(fā)提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能范圍:任何Java應(yīng)用簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。輕量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類??刂品崔D(zhuǎn)Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進了松耦合。當(dāng)應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。面向切面Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(auditing)和事務(wù)(transaction)管理)進行內(nèi)聚性的開發(fā)。應(yīng)用對象只實現(xiàn)它們應(yīng)該做的完成業(yè)務(wù)邏輯僅此而已。它們并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支持。容器Spring包含并管理應(yīng)用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。框架Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。MVCSpring的作用是整合,但不僅僅限于整合,Spring 框架可以被看做是一個企業(yè)解決方案級別的框架??蛻舳税l(fā)送請求,服務(wù)器控制器(由DispatcherServlet實現(xiàn)的)完成請求的轉(zhuǎn)發(fā),控制器調(diào)用一個用于映射的類HandlerMapping,該類用于將請求映射到對應(yīng)的處理器來處理請求。HandlerMapping 將請求映射到對應(yīng)的處理器Controller(相當(dāng)于Action)在Spring 當(dāng)中如果寫一些處理器組件,一般實現(xiàn)Controller 接口,在Controller 中就可以調(diào)用一些Service 或DAO 來進行數(shù)據(jù)操作 ModelAndView 用于存放從DAO 中取出的數(shù)據(jù),還可以存放響應(yīng)視圖的一些數(shù)據(jù)。 如果想將處理結(jié)果返回給用戶,那么在Spring 框架中還提供一個視圖組件ViewResolver,該組件根據(jù)Controller 返回的標(biāo)示,找到對應(yīng)的視圖,將響應(yīng)response 返回給用戶。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。 JAVAEE:是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值。核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循架構(gòu)的不同平臺之間,存在良好兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。 Struts:struts是開源軟件。使用Struts的目的是為了幫助我們減少在運用MVC設(shè)計模型來開發(fā)Web應(yīng)用的時間。如果我們想混合使用Servlets和JSP的優(yōu)點來建立可擴展的應(yīng)用,struts是一個不錯的選擇。它采用MVC模式,能夠很好地幫助java 開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計,將MVC模式分離顯示邏輯和業(yè)務(wù)邏輯的能力發(fā)揮得淋漓盡致。Structs 框架的核心是一個彈性的控制層,基于如 Java Servlets,JavaBeans,ResourceBundles與XML等標(biāo)準(zhǔn)技術(shù),以及 Jakarta Commons 的一些類庫。 JSON:JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C, C+, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。JSON 可以將 JavaScript 對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個字符串,或者在異步應(yīng)用程序中將字符串從 Web 客戶機傳遞給服務(wù)器端程序。 AJAX:在基于數(shù)據(jù)的應(yīng)用中,用戶需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨立于實際網(wǎng)頁的服務(wù)端取得并且可以被動態(tài)地寫入網(wǎng)頁中,給緩慢的Web應(yīng)用體驗著色使之像桌面應(yīng)用一樣。Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持異步請求的技術(shù)。簡而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請求并處理響應(yīng),而不阻塞用戶。AJAX不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強的Web應(yīng)用程序的技術(shù)。對計算機科學(xué)的認(rèn)識本專業(yè)是計算機硬件與軟件相結(jié)合、面向系統(tǒng)、側(cè)重應(yīng)用的寬口徑專業(yè)。通過基礎(chǔ)教學(xué)與專業(yè)訓(xùn)練,培養(yǎng)基礎(chǔ)知識扎實、知識面寬、工程實踐能力強,具有開拓創(chuàng)新意識,在計算機科學(xué)與技術(shù)領(lǐng)域從事科學(xué)研究、教育、開發(fā)和應(yīng)用的高級人才。當(dāng)今計算機技術(shù)正朝著巨型化、微型化、網(wǎng)絡(luò)化和智能化方向發(fā)展。當(dāng)今計算機科學(xué)發(fā)展趨勢,可以把它分為三維考慮。一維是是向高的方向。性能越來越高,速度越來越快,主要表現(xiàn)在計算機的主頻越來越高。像前幾年我們使用的都是286、386、主頻只有幾十兆。美國另一項計劃的目標(biāo)是2010年左右推出每秒一千萬億次并行計算機(Petaflops計算機),其處理機將采用超導(dǎo)量子器件,每個處理機每秒100億次,共用10萬個處理機并行。 另一個方向就是向“廣”度方向發(fā)展,計算機發(fā)展的趨勢就是無處不在,以至于像“沒有計算機一樣”。近年來更明顯的趨勢是網(wǎng)絡(luò)化與向各個領(lǐng)域的滲透,即在廣度上的發(fā)展開拓。 第三個方向是向深度方向發(fā)展,即向信息的智能化發(fā)展。網(wǎng)上有大量的信息,怎樣把這些浩如煙海的東西變成你想要的知識,這是計算科學(xué)的重要課題,同時人機界面更加友好。目前計算機思維的方式與人類思維方式有很大區(qū)別,人機之間的間隔還不小。人類還很難以自然的方式,如語言、手勢、表情與計算機打交道,計算機難用已成為阻礙計算機進一步普及的巨大障礙。估計5-10年內(nèi)手寫和口語輸入將逐步成為主流的輸入方式。手勢(特別是啞語手勢)和臉部表情識別也已取得較大進展。使人沉浸在計算機世界的虛擬現(xiàn)實(Virtual Reality)技術(shù)是近幾年來發(fā)展較快的技術(shù),21世紀(jì)將更加迅速的發(fā)展。1.C的結(jié)構(gòu)體和C+結(jié)構(gòu)體的區(qū)別 1.1 C的結(jié)構(gòu)體內(nèi)不允許有函數(shù)存在,C+允許有內(nèi)部成員函數(shù),且允許該函數(shù)是虛函數(shù)。所以C的結(jié)構(gòu)體是沒有構(gòu)造函數(shù)、析構(gòu)函數(shù)、和this指針的。 1.2 C的結(jié)構(gòu)體對內(nèi)部成員變量的訪問權(quán)限只能是public,而C+允許public,protected,private三種。 1.3 C語言的結(jié)構(gòu)體是不可以繼承的,C+的結(jié)構(gòu)體是可以從其他的結(jié)構(gòu)體或者類繼承過來的。 以上都是表面的區(qū)別,實際區(qū)別就是面向過程和面向?qū)ο缶幊趟悸返膮^(qū)別: C的結(jié)構(gòu)體只是把數(shù)據(jù)變量給包裹起來了,并不涉及算法。 而C+是把數(shù)據(jù)變量及對這些數(shù)據(jù)變量的相關(guān)算法給封裝起來,并且給對這些數(shù)據(jù)和類不同的訪問權(quán)限。 C語言中是沒有類的概念的,但是C語言可以通過結(jié)構(gòu)體內(nèi)創(chuàng)建函數(shù)指針實現(xiàn)面向?qū)ο笏枷搿?.C+的結(jié)構(gòu)體和C+類的區(qū)別 2.1 C+結(jié)構(gòu)體內(nèi)部成員變量及成員函數(shù)默認(rèn)的訪問級別是public,而c+類的內(nèi)部成員變量及成員函數(shù)的默認(rèn)訪問級別是private。 2.2 C+結(jié)構(gòu)體的繼承默認(rèn)是public,而c+類的繼承默認(rèn)是private。靜態(tài)鏈接庫、動態(tài)鏈接庫與COM組件的區(qū)別1.動態(tài)鏈接庫與靜態(tài)鏈接庫的區(qū)別。 1.1 靜態(tài)鏈接庫作為代碼的一部分,在編譯時被鏈接。 1.2 動態(tài)鏈接庫有兩種使用方式:一種是靜態(tài)加載,即在應(yīng)用程序啟動時被加載;一種是動態(tài)加載,即是該動態(tài)鏈接庫在被使用時才被應(yīng)用程序加載。2.動態(tài)鏈接庫和COM組件的區(qū)別 2.1 動態(tài)鏈接庫的表現(xiàn)形式只能是dll變態(tài)該名的除外, COM組件的表現(xiàn)形式可以是dll也可以是exe。 注:其實字體、驅(qū)動等也算是動態(tài)鏈接庫的一種,這里略去. 2.2 動態(tài)鏈接庫的生成和編譯器及系統(tǒng)相關(guān),在Windows/Linux下系統(tǒng),需要分別編譯才能使用。 COM組件是二進制編碼,在Windows和Linux下可以直接使用,不需要重新編譯。 2.3 COM組件是按照COM規(guī)范實現(xiàn)的dll或者exe;動態(tài)鏈接庫是一個可以導(dǎo)出函數(shù)的函數(shù)集合。 2.4 動態(tài)鏈接庫只能在本機被調(diào)用,COM組件支持分布式使用。MAC地址是不能通過IP來查詢的!局域網(wǎng)如何根據(jù)ip查maccmdping ip地址arp -a即使ping不通,只要他機開著,都可以看到MAC!顯示和修改“地址解析協(xié)議 (ARP)”緩存中的項目。ARP 緩存中包含一個或多個表,它們用于存儲 IP 地址及其經(jīng)過解析的以太網(wǎng)或令牌環(huán)物理地址。計算機上安裝的每一個以太網(wǎng)或令牌環(huán)網(wǎng)絡(luò)適配器都有自己單獨的表。如果在沒有參數(shù)的情況下使用,則 arp 命令將顯示幫助信息。-a InetAddr -N IfaceAddr顯示所有接口的當(dāng)前 ARP 緩存表。要顯示特定 IP 地址的 ARP 緩存項,請使用帶有 InetAddr 參數(shù)的 arp -a,此處的 InetAddr 代表 IP 地址。如果未指定 InetAddr,則使用第一個適用的接口。要顯示特定接口的 ARP 緩存表,請將 -N IfaceAddr 參數(shù)與 -a 參數(shù)一起使用,此處的 IfaceAddr 代表指派給該接口的 IP 地址。-N 參數(shù)區(qū)分大小寫。BIOSBIOS設(shè)置程序是儲存在BIOS芯片中的,BIOS芯片是主板上一塊長方形或正方形芯片,只有在開機時才可以進行設(shè)置。BIOS是:直譯過來后中文名稱就是基本輸入輸出系統(tǒng)。其實,它是一組固化到計算機內(nèi)主板上一個ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、系統(tǒng)設(shè)置信息、開機后自檢程序和系統(tǒng)自啟動程序。 其主要功能是為計算機提供最底層的、最直接的硬件設(shè)置和控制。數(shù)學(xué)中的梯度是什么意思?在向量微積分中,標(biāo)量場的梯度是一個向量場。標(biāo)量場中某一點上的梯度指向標(biāo)量場增長最快的方向,梯度的長度是這個最大的變化率。更嚴(yán)格的說,從歐氏空間Rn到R的函數(shù)的梯度是在Rn某一點最佳的線性近似。在這個意義上,梯度是雅戈比矩陣的一個特殊情況。 在單變量的實值函數(shù)的情況,梯度只是導(dǎo)數(shù),或者,對于一個線性函數(shù),也就是線的斜率。 梯度一詞有時用于斜度,也就是一個曲面沿著給定方向的傾斜程度??梢酝ㄟ^取向量梯度和所研究的方向的點積來得到斜度。梯度的數(shù)值有時也被成為梯度。 如果你是問在純數(shù)學(xué)中的作用,那就是反映那個量變化的有多劇烈;多元微積分中則還反映在哪個方向上變化最劇烈.云計算云計算1是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動態(tài)易擴展且經(jīng)常是虛擬化的資源。定義:“云計算是通過網(wǎng)絡(luò)提供可伸縮的廉價的分布式計算能力”。云計算代表了以虛擬化技術(shù)為核心、以低成本為目標(biāo)的動態(tài)可擴展網(wǎng)絡(luò)應(yīng)用基礎(chǔ)設(shè)施,是近年來最有代表性的網(wǎng)絡(luò)計算技術(shù)與模式。云計算是:分布式計算 、并行計算 、效用計算 、3網(wǎng)絡(luò)存儲 、虛擬化 、負(fù)載均衡 等傳統(tǒng)計算機和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。云計算是通過使計算分布在大量的分布式計算機上,而非本地計算機或遠程服務(wù)器中,企業(yè)數(shù)據(jù)中心的運行將與互聯(lián)網(wǎng)更相似。這使得企業(yè)能夠?qū)①Y源切換到需要的應(yīng)用上,根據(jù)需求訪問計算機和存儲系統(tǒng)。好比是從古老的單臺發(fā)電機模式轉(zhuǎn)向了電廠集中供電的模式。它意味著計算能力也可以作為一種商品進行流通,就像煤氣、水電一樣,取用方便,費用低廉。最大的不同在于,它是通過互聯(lián)網(wǎng)進行傳輸?shù)?。網(wǎng)格計算:分布式計算的一種,由一群松散耦合的計算機組成的一個超級虛擬計算機,常用來執(zhí)行一些大型任務(wù);效用計算:IT資源的一種打包和計費方式,比如按照計算、存儲分別計量費用,像傳統(tǒng)的電力等公共設(shè)施一樣;算法的時間復(fù)雜度一個算法花費的時間與算法中語句的執(zhí)行次數(shù)成正比例。一個算法中的語句執(zhí)行次數(shù)稱為語句頻度或時間頻度。記為T(n)。計算方法1. 一般情況下,算法的基本操作重復(fù)執(zhí)行的次數(shù)是模塊n的某一個函數(shù)f(n),因此,算法的時間復(fù)雜度記做:T(n)=O(f(n)分析:隨著模塊n的增大,算法執(zhí)行的時間的增長率和 f(n) 的增長率成正比,所以 f(n) 越小,算法的時間復(fù)雜度越低,算法的效率越高。2. 在計算時間復(fù)雜度的時候,先找出算法的基本操作,然后根據(jù)相應(yīng)的各語句確定它的執(zhí)行次數(shù),再找出 T(n) 的同數(shù)量級(它的同數(shù)量級有以下:1,log(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n) = 該數(shù)量級,若 T(n)/f(n) 求極限可得到一常數(shù)c,則時間復(fù)雜度T(n) = O(f(n)十種程序設(shè)計語言 PASCAL、C、Ada FORTRAN、BASIC、Visual Basic、Java、C+、Go 、Delphi、F# SQL、PowerBuilder、static全局變量與普通的全局變量有什么區(qū)別?全局變量(外部變量)的說明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式, 靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲方式。 這兩者在存儲方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序, 當(dāng)一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效, 在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用, 因此可以避免在其它源文件中引起錯誤。從以上分析可以看出, 把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域, 限制了它的使用范圍。static函數(shù)與普通函數(shù)作用域不同。僅在本文件。只在當(dāng)前源文件中使用的函數(shù)應(yīng)該說明為內(nèi)部函數(shù)(static),內(nèi)部函數(shù)應(yīng)該在當(dāng)前源文件中說明和定義。對于可在當(dāng)前源文件以外使用的函數(shù),應(yīng)該在一個頭文件中說明,要使用這些函數(shù)的源文件要包含這個頭文件static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他文件單元中被引用;static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結(jié)果值;static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內(nèi)存中只有一份,普通函數(shù)在每個被調(diào)用中維持一份拷貝C語言中講講static變量和static函數(shù)有什么作用static關(guān)鍵字有兩種意思,你看上下文來判斷1,表示變量是靜態(tài)存儲變量 表示變量存放在靜態(tài)存儲區(qū). 2,表示該變量是內(nèi)部連接 (這種情況是指該變量不在任何之內(nèi),就象全局變量那樣,這時候加上static) ,也就是說在其它的.cpp文件中,該變量是不可見的(你不能用).當(dāng)static加在函數(shù)前面的時候 表示該函數(shù)是內(nèi)部連接,之在本文件中有效,別的文件中不能應(yīng)用該函數(shù). 不加static的函數(shù)默認(rèn)為是全局的. 也就是說在其他的.cpp中只要申明一下這個函數(shù),就可以使用它. 1、static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別? 答:全局變量(外部變量)的說明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式, 靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲方式。 這兩者在存儲方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,當(dāng)一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效, 在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用, 因此可以避免在其它源文件中引起錯誤。 從以上分析可以看出, 把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域, 限制了它的使用范圍。 static函數(shù)與普通函數(shù)作用域不同。static函數(shù)僅在本文件中使用。只在當(dāng)前源文件中使用的函數(shù)應(yīng)該說明為內(nèi)部函數(shù)(static),內(nèi)部函數(shù)應(yīng)該在當(dāng)前源文件中說明和定義。對于可在當(dāng)前源文件以外使用的函數(shù),應(yīng)該在一個頭文件中說明,要使用這些函數(shù)的源文件要包含這個頭文件 static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他文件單元中被引用; static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結(jié)果值; static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內(nèi)存中只有一份,普通函數(shù)在每個被調(diào)用中維持一份拷貝2、如何引用一個已經(jīng)定義過的全局變量? 答:extern 可以用引用頭文件的方式,也可以用extern關(guān)鍵字,如果用引用頭文件方式來引用某個在頭文件中聲明的全局變理,假定你將那個變寫錯了,那么在編譯期間 會報錯,如果你用extern方式引用時,假定你犯了同樣的錯誤,那么在編譯期間不會報錯,而在連接期間報錯。3、全局變量可不可以定義在可被多個.C文件包含的頭文件中?為什么? 答:可以,在不同的C文件中以static形式來聲明同名全局變量。 可以在不同的C文件中聲明同名的全局變量,前提是其中只能有一個C文件中對此變量賦初值,此時連接不會出錯。比較兩個浮點數(shù)大小在計算機中表示一個浮點數(shù),其結(jié)構(gòu)如下: 尾數(shù)部分(定點小數(shù)) 階碼部分(定點整數(shù))是2的指數(shù)形式來表示小數(shù)。因此一個小數(shù)用浮點數(shù)來表示,肯定是有誤差的。比如說兩個運算過程,它們的結(jié)果都是2,但是由于浮點運算過程不一樣,它結(jié)果可能有差異,比如說可能一個結(jié)果為2,一個結(jié)果為1.9999999999.因此用=號來比較,會得出錯誤的結(jié)果,浮點數(shù)比較相等的時候,用兩個數(shù)的相減,當(dāng)小于一個比較小的值時,就認(rèn)為相等。3D打印3D打印,即快速成型技術(shù)的一種,它是一種以數(shù)字模型文件為基礎(chǔ),運用粉末狀金屬或塑料等可粘合材料,通過逐層打印的方式來構(gòu)造物體的技術(shù)。3D打印通常是采用數(shù)字技術(shù)材料打印機來實現(xiàn)的。常在模具制造、工業(yè)設(shè)計等領(lǐng)域被用于制造模型,后逐漸用于一些產(chǎn)品的直接制造,已經(jīng)有使用這種技術(shù)打印而成的零部件。該技術(shù)在珠寶、鞋類、工業(yè)設(shè)計、建筑、工程和施工(AEC)、汽車,航空航天、牙科和醫(yī)療產(chǎn)業(yè)、教育、地理信息系統(tǒng)、土木工程、槍支以及其他領(lǐng)域都有所應(yīng)用。1而所謂的3D打印機與普通打印機工作原理基本相同,只是打印材料有些不同,普通打印機的打印材料是墨水和紙張,而3D打印機內(nèi)裝有金屬、陶瓷、塑料、砂等不同的“打印材料”,是實實在在的原材料,打印機與電腦連接后,通過電腦控制可以把“打印材料”一層層疊加起來,最終把計算機上的藍圖變成實物。通俗地說,3D打印機是可以“打印”出真實的3D物體的一種設(shè)備,比如打印一個機器人、打印玩具車,打印各種模型,甚至是食物等等。之所以通俗地稱其為“打印機”是參照了普通打印機的技術(shù)原理,因為分層加工的過程與噴墨打印十分相似。這項打印技術(shù)稱為3D立體打印技術(shù)。2大數(shù)據(jù) 分析新數(shù)據(jù)源的業(yè)務(wù)需求數(shù)據(jù)挖掘需要人工智能、數(shù)據(jù)庫、機器語言和統(tǒng)計分析知識等很多跨學(xué)科的知識。再者,數(shù)據(jù)挖掘的出現(xiàn)需要條件,第一個條件:海量的數(shù)據(jù);第二個條件:計算機技術(shù)大數(shù)據(jù)量的處理能力;第三個條件:計算機的存儲與運算能力;第四個條件:交叉學(xué)科的發(fā)展。大數(shù)據(jù)只是數(shù)據(jù)挖掘的出現(xiàn)的一個條件。更為復(fù)雜的新數(shù)據(jù)已經(jīng)出現(xiàn),而且生成的速度達到了前所未有的程度社交網(wǎng)絡(luò)數(shù)據(jù)、網(wǎng)絡(luò)日志、存檔數(shù)據(jù)和傳感器數(shù)據(jù)都屬于人們在分析中關(guān)注的新數(shù)據(jù)源盡管傳統(tǒng)環(huán)境不斷發(fā)展,但如今出現(xiàn)了許多更為復(fù)雜的新數(shù)據(jù)類型,企業(yè)需要分析這些數(shù)據(jù)類型,以便充實其已知信息。此外,這些新數(shù)據(jù)的生成速度遠遠超過了以往的紀(jì)錄。客戶和潛在客戶正在社交網(wǎng)絡(luò)和評論網(wǎng)站中創(chuàng)建大量的新數(shù)據(jù)。此外,在線新聞項目、氣象數(shù)據(jù)、競爭對手網(wǎng)站內(nèi)容,甚至是數(shù)據(jù)市場如今都已經(jīng)成為可供企業(yè)使用的候選數(shù)據(jù)源。在企業(yè)內(nèi)部,隨著客戶轉(zhuǎn)變?yōu)橐栽诰€渠道作為開展商業(yè)交易及與企業(yè)互動的首選方法,網(wǎng)絡(luò)日志也在不斷增加。分析所用的存檔數(shù)據(jù)再次增多,為監(jiān)測和優(yōu)化業(yè)務(wù)運營而部署的傳感器網(wǎng)絡(luò)和機器數(shù)量也越來越多。結(jié)果就生成了大量新數(shù)據(jù)源、快速增加的數(shù)據(jù)量和迅速增加的新數(shù)據(jù)流,需要分析所有這些新數(shù)據(jù)。在信息量如此龐大的背景下,為找尋關(guān)鍵問題的答案,現(xiàn)在的企業(yè)戰(zhàn)略對于信息管理和利用能力的依賴性更勝于以往。伴隨著井噴式的數(shù)據(jù)增長,孤立的數(shù)據(jù)存儲是造成信息管理和集成成本激增的主要原因。面對著分散于不同數(shù)據(jù)庫的孤立數(shù)據(jù),企業(yè)主管無法確保自己能夠全面掌握客戶、產(chǎn)品和供應(yīng)商的情況。孤立的信息同樣也令遵守行業(yè)或政府法規(guī)的難度加大。在信息集成戰(zhàn)略和技術(shù)的幫助下,能夠在正確時間從任意來源檢索數(shù)據(jù),編排格式后再提供給企業(yè)內(nèi)外的任意目標(biāo)。信息集成能夠幫助企業(yè)執(zhí)行許多關(guān)鍵任務(wù),其中包括將多個來源的數(shù)據(jù)加載到倉庫當(dāng)中,整合應(yīng)用程序?qū)嵗?,以及將不同部門和分部的信息關(guān)聯(lián)起來。通過將企業(yè)信息整合成單一來源(不論信息存儲于什么位置),企業(yè)能夠快速處理信息,縮短停機時間,減少客戶服務(wù)問題,并在盡量不影響性能的情況下分配信息。IBM 信息集成解決方案用于集成及轉(zhuǎn)化數(shù)據(jù)和內(nèi)容,進而提供權(quán)威、一致、及時、完整的信息,并且在數(shù)據(jù)的整個生命周期內(nèi)控制數(shù)據(jù)質(zhì)量。其近線性的無縫擴展能力以及以元數(shù)據(jù)為驅(qū)動的設(shè)計能夠幫助企業(yè)將不同數(shù)據(jù)庫統(tǒng)一成單一的整合信息庫,以及識別和更正不準(zhǔn)確或冗余的數(shù)據(jù)。給你解釋一下這些術(shù)語:云計算:就是個炒得很熱的商業(yè)概念,其實說白了就是將計算任務(wù)轉(zhuǎn)移到服務(wù)器端,用戶只需要個顯示器就行了,不過服務(wù)器的計算資源可以轉(zhuǎn)包。當(dāng)然,要想大規(guī)模商業(yè)化,這里還有些問題,特別是隱私保護問題。大數(shù)據(jù):說白了就是數(shù)據(jù)太多了。如今幾兆的數(shù)據(jù)在20年前也是大數(shù)據(jù)。但如今所說的大數(shù)據(jù)特殊在哪呢?如今的問題是數(shù)據(jù)實在是太多了,這已經(jīng)超過了傳統(tǒng)計算機的處理能力(區(qū)別與量子計算機),所以對于大數(shù)據(jù)我們不得不用一些折衷的辦法(比如數(shù)據(jù)挖掘),就是說沒必要所有數(shù)據(jù)都需要精確管理,實際上有效數(shù)據(jù)很有限,用數(shù)據(jù)挖掘的方法把這些有限的知識提取出來就行了。此外,數(shù)據(jù)抽樣,數(shù)據(jù)壓縮也是解決大數(shù)據(jù)問題的一些策略。數(shù)據(jù)挖掘:從數(shù)據(jù)中提取潛在知識,這些知識可以描述或者預(yù)測數(shù)據(jù)的特性。有代表性的數(shù)據(jù)挖掘任務(wù)包括關(guān)聯(lián)規(guī)則分析、數(shù)據(jù)分類、數(shù)據(jù)聚類等,這些你在任一本數(shù)據(jù)挖掘教材都可以了解。下面我說說和大數(shù)據(jù)的區(qū)別:數(shù)據(jù)挖掘只是大數(shù)據(jù)處理的一個方法。馬云所說的大數(shù)據(jù),或者如今商業(yè)領(lǐng)域所說的大數(shù)據(jù),實際上指的就是數(shù)據(jù)挖掘,其實真正所謂大數(shù)據(jù),或者Science雜志中提到的大數(shù)據(jù),或者奧巴馬提出的大數(shù)據(jù)發(fā)展戰(zhàn)略,我的理解是,這些都遠遠大于數(shù)據(jù)挖掘的范疇,當(dāng)然數(shù)據(jù)挖掘是其中很重要的一個方法。真正目的是如何將大數(shù)據(jù)進行有效管理。機器學(xué)習(xí):這個詞很虛,泛指了一大類計算機算法。重點是學(xué)習(xí)這個詞,如果想讓計算機有效學(xué)習(xí),目前絕大多數(shù)方法都采用了迭代的方法。所以在科研界,只要是采用了這種迭代并不斷逼近的策略,一般都可以歸到機器學(xué)習(xí)的范疇。此外,所謂學(xué)習(xí),肯定要知道學(xué)什么,這就是所謂訓(xùn)練集,從訓(xùn)練集數(shù)據(jù)中計算機要學(xué)到其中的某個一般規(guī)律,然后用一些別的數(shù)據(jù)(即測試集)來看看學(xué)得好不好,之后才能用于實際應(yīng)用。所以,選取合適的訓(xùn)練集也是個學(xué)問。模式識別:意思就是模式的識別。模式多種多樣,可以是語言,可以是圖像,可以是事物一些有意義的模塊,這些都算。所以總體來說,模式識別這個詞我是覺得有點虛,倒是具體的人臉圖像識別、聲音識別等,這些倒是挺實在的。也許是我不太了解吧。另外說說你的其他問題。傳統(tǒng)分析方法不包括數(shù)據(jù)挖掘。對于數(shù)據(jù)分析這塊我不是很了解,不過可以肯定的是,傳統(tǒng)分析都有一定的分析方向,比如我就想知道這兩個商品的關(guān)聯(lián)情況,那我查查數(shù)據(jù)庫就行了。數(shù)據(jù)挖掘雖說有些歷史,不過也挺時髦的,它是自動將那些關(guān)聯(lián)程度大的商品告訴你,這期間不需要用戶指定數(shù)據(jù)分析的具體對象。如果想應(yīng)對大數(shù)據(jù)時代,數(shù)據(jù)挖掘這門課是少不了的。此外對數(shù)據(jù)庫,特別是并行數(shù)據(jù)庫、分布式數(shù)據(jù)庫,最好了解點。至于機器學(xué)習(xí)和模式識別,這些總的來說和數(shù)據(jù)挖掘關(guān)系不太大,除了一些特殊的領(lǐng)域外??傊拍钔?,但大數(shù)據(jù)還很不成熟,無論從研究上還是商業(yè)化上。我目前在作大數(shù)據(jù)背景下的算法研究,說實話,目前基本沒有拓展性非常強的算法,所以未來大數(shù)據(jù)的發(fā)展方向,我也挺迷茫。PS:將數(shù)據(jù)挖掘應(yīng)用于商業(yè),最最重要的就是如何確定挖掘角度,這需要你對具體應(yīng)用的領(lǐng)域知識非常了解,需要你有非常敏銳的眼光。至于數(shù)據(jù)挖掘的具體算法,這些就交給我們專門搞研究的吧?。▽λ惴ǖ睦斫庖埠苤匾?,這可以把算法拓展到你的應(yīng)用領(lǐng)域)直方圖灰度直方圖的定義灰度直方圖是灰度級的函數(shù),描述圖像中該灰度級的像素個數(shù)(或該灰度級像素出現(xiàn)的頻率):其橫坐標(biāo)是灰度級,縱坐標(biāo)表示圖像中該灰度級出現(xiàn)的個數(shù)(頻率)。 【OpenCV】數(shù)字圖像灰度直方圖灰度直方圖是數(shù)字圖像中最簡單且有用的工具,這一篇主要總結(jié)OpenCV中直方圖CvHistogram的結(jié)構(gòu)和應(yīng)用?;叶戎狈綀D的定義灰度直方圖是灰度級的函數(shù),描述圖像中該灰度級的像素個數(shù)(或該灰度級像素出現(xiàn)的頻率):其橫坐標(biāo)是灰度級,縱坐標(biāo)表示圖像中該灰度級出現(xiàn)的個數(shù)(頻率)。一維直方圖的結(jié)構(gòu)表示為高維直方圖可以理解為圖像在每個維度上灰度級分布的直方圖。常見的是二維直方圖。如紅-藍直方圖的兩個分量分別表示紅光圖像的灰度值和藍光圖像灰度值的函數(shù)。其圖像坐標(biāo)(Dr,Db)處對應(yīng)在紅光圖像中具有灰度級Dr同時在藍光圖像中具有灰度級Db的像素個數(shù)。這是基于多光譜每個像素有多個變量的數(shù)字圖像,二維中對應(yīng)每個像素統(tǒng)計個變量。OpenCV中的直方圖CvHistogram注意我們在上面理解直方圖的意義時更多把他想象成一幅“圖”,繼而理解圖中橫坐標(biāo),縱坐標(biāo)的意義。而在OpenCV中,應(yīng)該更多把直方圖看做“數(shù)據(jù)結(jié)構(gòu)”來理解。OpenCV中用CvHistogram表示多維直方圖(/index.php/Cv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86#CvHistogram):cpp view plaincopy1 typedef struct CvHistogram 2 3 int type; 4 CvArr* bins; /存放每個灰度級數(shù)目的數(shù)組指針 5 float threshCV_MAX_DIM2; /均勻直方圖 6 float* thresh2; /非均勻直方圖 7 CvMatND mat; /直方圖數(shù)組的內(nèi)部數(shù)據(jù)結(jié)構(gòu) 8 9 CvHistogram; 這個結(jié)構(gòu)看起來簡單(比IplImage*元素少多了。)其實并不太好理解。第一個成員type用來指定第二個成員bins的類型。OpenCv中常見到CvArr*的接口,可以用以指定諸如CvMat、CvMatND、IplImage的類型,其實CvArr*的是一個指向void的指針。在函數(shù)內(nèi)部有時需要得到確切的指向類型,這就需要type來指定。thresh用來指定統(tǒng)計直方圖分布的上下界。比如0 255表示用來統(tǒng)計圖像中像素分別在灰度級0 255區(qū)間的分布情況,CV_MAX_DIM對應(yīng)直方圖的維數(shù),假如設(shè)定二維紅-藍直方圖的thresh為0 255;100 200,就是分別統(tǒng)計紅色圖像灰度級在0 255以及藍色圖像在灰度級100 200的分布情況。thresh用以指定均勻直方圖的分布,我們按每個像素理解自然是“均勻分布”,其實也可以統(tǒng)計像素在幾個區(qū)間的分布。如果統(tǒng)計像素在2個區(qū)間的分布,則對應(yīng)0 255的上下界,均勻分布統(tǒng)計的區(qū)間即0 127 127 255分布的概率,這也是為什么thresh第二個維數(shù)默認(rèn)為2會自動均分上下界;而thresh2指定非均勻的分布,這就需要指定每個區(qū)間的上下界,如果要統(tǒng)計直方圖在區(qū)間(0,10,100,255)的分布,那需要指定thresh2的一個維度為0 10 100 255,所以用float*形式表示。mat簡單說就是存儲了直方圖的信息,即我們統(tǒng)計的直方圖分布概率。創(chuàng)建直方圖 cvCreateHist()OpenCV中用cvCreateHist()創(chuàng)建一個直方圖:cpp view plaincopy10 CvHistogram* cvCreateHist( 11 int dims, /直方圖維數(shù) 12 int* sizes,/直翻圖維數(shù)尺寸 13 int type, /直方圖的表示格式 14 float* ranges=NULL, /圖中方塊范圍的數(shù)組 15 int uniform=1 /歸一化標(biāo)識 16 ); size數(shù)組的長度為dims,每個數(shù)表示分配給對應(yīng)維數(shù)的bin的個數(shù)。如dims=3,則size中用s1,s2,s3分別指定每維bin的個數(shù)。type有兩種:CV_HIST_ARRAY 意味著直方圖數(shù)據(jù)表示為多維密集數(shù)組 CvMatND; CV_HIST_TREE 意味著直方圖數(shù)據(jù)表示為多維稀疏數(shù)組 CvSparseMat。ranges就是那個復(fù)雜的不好理解的thresh的范圍,他的內(nèi)容取決于uniform的值。uniform為0是均勻的,非0時不均勻。計算圖像直方圖的函數(shù)為CalcHist():cpp view plaincopy17 void cvCalcHist( 18 IplImage* image, /輸入圖像(也可用CvMat*) 19 CvHistogram* hist, /直方圖指針 20 int accumulate=0, /累計標(biāo)識。如果設(shè)置,則直方圖在開始時不被清零。 21 const CvArr* mask=NULL /操作 mask, 確定輸入圖像的哪個象素被計數(shù) 22 ); 要注意的是這個函數(shù)用來計算一張(或多張)單通道圖像的直方圖,如果要計算多通道,則用這個函數(shù)分別計算圖像每個單通道。實踐:一維直方圖下面實踐一下用OpenCV生成圖像的一維直方圖cpp view plaincopy23 int main( ) 24 25 IplImage * src= cvLoadImage(baboon.jpg); 26 IplImage* gray_plane = cvCreateImage(cvGetSize(src),8,1); 27 cvCvtColor(src,gray_plane,CV_BGR2GRAY); 28 29 int hist_size = 256; /直方圖尺寸 30 int hist_height = 256; 31 float range = 0,255; /灰度級的范圍 32 float* ranges=range; 33 /創(chuàng)建一維直方圖,統(tǒng)計圖像在0 255像素的均勻分布 34 CvHistogram* gray_hist = cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1); 35 /計算灰度圖像的一維直方圖 36 cvCalcHist(&gray_plane,gray_hist,0,0); 37 /歸一化直方圖 38 cvNormalizeHist(gray_hist,1.0); 39 40 int scale = 2; 41 /創(chuàng)建一張一維直方圖的“圖”,橫坐標(biāo)為灰度級,縱坐標(biāo)為像素個數(shù)(*scale) 42 IplImage* hist_image = cvCreateImage(cvSize(hist_size*scale,hist_height),8,3); 43 cvZero(hist_image); 44 /統(tǒng)計直方圖中的最大直方塊 45 float max_value = 0; 46 cvGetMinMaxHistValue(gray_hist, 0,&max_value,0,0); 47 48 /分別將每個直方塊的值繪制到圖中 49 for(int i=0;ihist_size;i+) 50 51 float bin_val = cvQueryHistValue_1D(gray_hist,i); /像素i的概率 52 int intensity = cvRound(bin_val*hist_height/max_value); /要繪制的高度 53 cvRectangle(hist_image, 54 cvPoint(i*scale,hist_height-1), 55 cvPoint(i+1)*scale - 1, hist_height - intensity), 56 CV_RGB(255,255,255); 57 58 cvNamedWindow( GraySource, 1 ); 59 cvShowImage(GraySource,gray_plane); 60 cvNamedWindow( H-S Histogram, 1 ); 61 cvShowImage( H-S Histogram, hi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論