python入門python的基本語法
628
2025-04-01
2015年上半年 軟件設計師 上午試卷 綜合知識-2
與算術表達式"(a+(b-c))*d" 對應的樹是(21)。
答案: B
本題考查程序語言與數據結構基礎知識。
對算術表達式"(a+(b-c))*d"求值的運算處理順序是:先進行b-c,然后與a相加, 最后再與d相乘。只有選項B所示的二叉樹與其相符。
某進程有4個頁面,頁號為0~3,頁面變換表及狀態位、訪問位和修改位的含義如下圖所示。若系統給該進程分配了3個存儲塊,當訪問前頁面1不在內存時,淘汰表中頁號為(26) 的頁面代價最小。
A. 0 B. 1 C. 2 D. 3
答案: D
根據題意,頁面變換表中狀態位等于0和1分別表示頁面不在內存或在內存,所以0、2和3號頁面在內存。當訪問的頁面1不在內存時。系統應該首先淘汰未被訪問的頁面,因為根據程序的局部性原理最近未被訪問的頁面下次被訪問的概率更小;如果頁面最近都被訪問過,應該先淘汰未修改過的頁面。因為未修改過的頁面內存與輔存一致,故淘汰時無須寫回輔存,使系統頁面置換代價小。經上述分析,0、2和3號瓦面都是最近被訪問過的,但0和2號頁面都被修改過而3號頁面未修改過,故應該淘汰3號頁面。
嵌入式系統初始化過程主要有3個環節,按照自底向上、從硬件到軟件的次序依次為(27)。系統級初始化主要任務是(28)。
A. 片級初始化→系統級初始化→板級初始化
B. 片級初始化→板級初始化→系統級初始化
C. 系統級初始化→板級初始化→片級初始化
D. 系統級初始化→片級初始化→板級初始化
答案: B
本題考查應試者對嵌入式系統方面的基礎知識。
嵌入式系統初始化過程可以分為3個主要環節,按照自底向上、從硬件到軟件的次序依次為:片級初始化、板級初始化和系統級初始化。
片級初始化完成嵌入式微處理器的初始化,包括設置嵌入式微處理器的核心寄存器和控制寄存器、嵌入式微處理器核心工作模式和嵌入式微處理器的局部總線模式等。片級初始化把嵌入式微處理器從上電時的默認狀態逐步設置成系統所要求的工作狀態。這是一個純硬件的初始化過程。
板級初始化完成嵌入式微處理器以外的其他硬件設備的初始化。另外,還需設置某些軟件的數據結構和參數,為隨后的系統級初始化和應用程序的運行建立硬件和軟件環境。這是一個同時包含軟硬件兩部分在內的初始化過程。
系統初始化過程以軟件初始化為主,主要進行操作系統的初始化。BSP將對嵌入式微處理器的控制權轉交給嵌入式操作系統,由操作系統完成余下的初始化操作,包含加載和初始化與硬件無關的設備驅動程序,建立系統內存區,加載并初始化其他系統軟件模塊,如網絡系統、文件系統等。最后,操作系統創建應用程序環境,并將控制權交給應用程序的入口。
嵌入式系統初始化過程主要有3個環節,按照自底向上、從硬件到軟件的次序依次為(27)。系統級初始化主要任務是(28)。
A. 完成嵌入式微處理器的初始化
B. 完成嵌入式微處理器以外的其他硬件設備的初始化
C. 以軟件初始化為主,主要進行操作系統的初始化
D. 設置嵌入式微處理器的核心寄存器和控制寄存器工作狀態
答案: C
本題考查應試者對嵌入式系統方面的基礎知識。
嵌入式系統初始化過程可以分為3個主要環節,按照自底向上、從硬件到軟件的次序依次為:片級初始化、板級初始化和系統級初始化。
片級初始化完成嵌入式微處理器的初始化,包括設置嵌入式微處理器的核心寄存器和控制寄存器、嵌入式微處理器核心工作模式和嵌入式微處理器的局部總線模式等。片級初始化把嵌入式微處理器從上電時的默認狀態逐步設置成系統所要求的工作狀態。這是一個純硬件的初始化過程。
板級初始化完成嵌入式微處理器以外的其他硬件設備的初始化。另外,還需設置某些軟件的數據結構和參數,為隨后的系統級初始化和應用程序的運行建立硬件和軟件環境。這是一個同時包含軟硬件兩部分在內的初始化過程。
系統初始化過程以軟件初始化為主,主要進行操作系統的初始化。BSP將對嵌入式微處理器的控制權轉交給嵌入式操作系統,由操作系統完成余下的初始化操作,包含加載和初始化與硬件無關的設備驅動程序,建立系統內存區,加載并初始化其他系統軟件模塊,如網絡系統、文件系統等。最后,操作系統創建應用程序環境,并將控制權交給應用程序的入口。
某公司計劃開發一種產品,技術含量很高,與客戶相關的風險也很多,則最適于采用(29)開發過程模型。
A. 瀑布 B. 原型 C. 增量 D. 螺旋
答案: D
本題考查軟件過程模型的基礎知識。
瀑布模型將軟件生存周期各個活動規定為線性順序連接的若干階段的模型,規定了由前至后,相互銜接的固定次序,如同瀑布流水,逐級下落。這種方法是一種理想的開發模式,缺乏靈活性,特別是無法解決軟件需求不明確或不準確的問題。
原型模型從初始的原型逐步演化成最終軟件產品,特別適用于對軟件需求缺乏準確認識的情況。
增量開發是把軟件產品作為一系列的增量構件來設計、編碼、集成和測試,可以在增量開發過程中逐步理解需求。
螺旋將瀑布模型與快速原型模型結合起來,并且加入兩種模型均忽略了的風險分析,適用于復雜的大型軟件。
在敏捷過程的方法中(30)認為每一個不同的項目都需要一套不同的策略、約定和方法論。
A. 極限編程(XP)
B. 水晶法(Crystal)
C. 并列爭球法(Scrum)
D. 自適應軟件開發(ASD)
答案: B
本題考查敏捷方法的基礎知識。
在20世紀90年代后期,一些開發人員抵制產格化軟件開發過程,試圖強調靈活性在快速有效的軟件生產中的作用,提出了敏捷宣言,即個人和交互勝過過程和工具;可 以運行的軟件勝過面面俱到的文檔;與客戶合作勝過合同談判;對變化的反應勝過遵循計劃。基于這些基本思想,有很多敏捷過程的典型方法,其中:
極限編程XP是激發開發人員創造性、使得管理負擔最小的一組技術.。
水晶法Crystal認為每—個不同的項目都需要一套不同的策略、約定和方法論。
并列爭球法(Scram)使用迭代的方法,其中把每30天一次的迭代稱為個沖刺, 并按需求的優先級來實現產品多個自組織和自治小組并行地遞增實現產品,協調是通過簡短的日常情況會議進行。
自適應軟件開發(ASD)有六個基本的原則:
①在自適應軟件開發中,有一個使命作為指導,它設立了項目的目標,但不描述如何達到這個目標;
②特征被視為客戶鍵值的關鍵,因此,項目是圍繞著構造的構件來組織并實現特征;
③過程中的迭代是很重要的,因此重做與做同樣重要,變化也包含其中;
④變化不視為是一種更正,而是對軟件開發實際情況的調整;
⑤確定的交付時間迫使開發人員認真考慮每一個生產版本的關鍵需求;
⑥風險也包含其中,它使開發人員首先跟蹤最艱難的問題。
某模塊實現兩個功能:向某個數據結構區域寫數據和從該區域讀數據。該模塊的內聚類型為(32)內聚。
A. 過程
B. 時間
C. 邏輯
D. 通信
答案: D
本題考查軟件設計的基礎知識。
模塊獨立性是創建良好設計的一個重要原則,一般采用模塊間的耦合和模塊的內聚兩個準則來進行度量。耦合程度越低,內聚程度越高,則模塊的獨立性越好。
存在多種模塊內聚類型,從高到低依次為功能、通信、順序、過程、時間、邏輯和偶然內聚。
一個模塊內的幾個操作是相關的,而且必須以特定的次序執行,則該模塊的內聚類型為過程內聚。
模塊的各個功能的執行與時間有關,通常要求所有功能必須在同一時間段內執行, 則該模塊的內聚類型為時間內聚。
若一個模塊的各個部分只是通過代碼的邏輯結構相關聯,則該模塊的內聚類型為邏輯內聚。
把訪問或操作在同一數據結構的操作放在一個模塊中,則該模塊的內聚類型為通信內聚。
正式技術評審的目標是(33)。
A. 允許高級技術人員修改錯誤
B. 評價程序員的工作效率
C. 發現軟件中的錯誤
D. 記錄程序員的錯誤情況并與績效掛鉤
答案: C
本題考查軟件評審的基礎知識。
軟件評審的內容包括設計質量評審、程序質量評審和與運行環境接口的評審。評審的主要目標是為了發現軟件中的錯誤。
自底向上的集成測試策略的優點包括(34)。
A. 主要的設計問題可以在測試早期處理
B. 不需要寫驅動程序
C. 不需要寫樁程序
D. 不需要進行回歸測試
答案: C
本題考查軟件測試的基礎知識。
軟件測試分為單元測試、集成測試和系統測試。集成測試把模塊按系統設計說明書的要求組合起來進行測試。
存在多種組合的集成測試策略:自底向上、自頂向下、一次性集成、明治集成等。
其中,自底向上策略通過不斷合并底層模塊來測試更高層模塊的方式進行。在該方法中,需要寫驅動程序來調用待測試的底層模塊,主要的設計問題需要到測試后期才能發現。由于從最底層的模塊開始測試,因此過程中不需要寫樁模塊。當測試過程中發現錯誤時,需要進行回歸測試。
采用McCabe度量法計算下列程序圖的環路復雜性為(35)。
A. 2 B. 3 C. 4 D. 5
答案: C
本題考查軟件度量的基礎知識。
軟件復雜性主要表現在程序的復雜性,而程序的復雜性主要指模塊內程序的復雜性。McCabe度量法是一種度量程序復雜性的方法,該方法用程序圖來表示實際的程序, 如上圖所示,用環路數來表示程序復雜性,即V(G) = m-n + 2p,其中m和n分別表示圖中的邊數和頂點數,p為1。本題中,m=10, n=8,因此V(G) = 10-8+2=4。
向對象(38)選擇合適的面向對象程序設計語言,將程序組織為相互協作的對象集合,每個對象表示某個類的實例,類通過繼承等關系進行組織。
A. 分析 B. 設計 C. 程序設計 D. 測試
答案: C
本題考查面向對象的基本知識。
在采用面向對象技術開發系統時,主要步驟有面向對象分析、面向對象設計、面向對象程序設計和面向對象測試。
面向對象分析主要包括:認定對象、組織對象、描述對象間的相互作用、定義對象的操作、定義對象的內部信息。
面向對象設計是設計分析模型和實現相應源代碼。
面向對象程序設計選擇合適的面向對象程序設計語言,將程序組織為相互協作的對象集合,每個對象表示某個類的實例,類通過繼承等關系進行組織。
面向對象測試是盡可能早的開始進行系統測試,以發現系統中可能存在的錯誤并進行修復,進而保證系統質量。
UML中有4種關系:依賴、關聯、泛化和實現。(40)是一種結構關系,描述了一組鏈,鏈是對象之間的連接;(41)是一種特殊/一般關系,使子元素共享其父元素的結構和行為。
A. 依賴 B. 關聯 C. 泛化 D. 實現
答案: B
本題考査統一建模語言(UML)的基本知識。
UML是面向對象軟件的標準化建模語言,
由三個要素構成:UML的基本構造塊、支配這些構造塊如何放置在一起的規則和運用與整個語言的一些公共機制。
UML的詞匯表包含三種構造塊:事物、關系和圖。
事物是對模型中最具有代表性的成分的抽象;關系把事物結合在一起;圖聚集了相關的事物。其中關系包括4種:依賴、關聯、泛化和實現。
依賴(Dependency)是兩個事物間的語義關系,其中一個事物(獨立事物)發生變化會影響另一個事物(依賴事物)的語義。
關聯(Association)是一種結構關系,它描述了一組鏈,鏈是對象之間的連接。
泛化(Generalization)是一種特殊/一般關系,特殊元素(子元素)的對象可替代一般元素(父元素)的對象,用這種方法,子元素共享了父元素的結構和行為。
實現(Realization)是類元之間的語義關系,其中一個類元指定了由另一個類元保證執行的契約。
UML圖中,對新開發系統的需求進行建模,規劃開發什么功能或測試用例,采用(42)最適合。而展示交付系統的軟件組件和硬件之間的關系的圖是(43)。
A. 類圖 B. 對象圖 C. 用例圖 D. 交互圖
答案: C B
本題考查統一建模語言(UML)的基本知識。
UML中提供了多種建模系統需求的圖,體現系統的靜態方面和動態方面。
類圖(Class Diagram)展現了一組對象、接口、協作和它們之間的關系。
在面向對象系統的建模中,最常見的就是類圖,它給出系統的靜態設計視圖。
對象圖(Object Diagram)展現了某一時刻一組對象以及它們之間的關系。對象圖描述了在類圖中所建立的事物的實例的靜態快照,給出系統的靜態設計視圖或靜態進程視圖。
用例圖(Use Case Diagram)展現了一組用例、參與者(Actor)以及它們之間的關系。這個視圖主要支持系統的行為,即該系統在它的周邊環境的語境中所提供的外部可見服務。用例圖用于對一個系統的需求進行建模,包括說明這個系統應該做什么(從系統外部的一個視點出發), 而不考慮系統應該怎樣做。交互圖用于對系統的動態方面進行建模。一張交互圖表現的是一個交互,由一組對象和它們之間的關系組成,包含它們之間可能傳遞的消息。交互圖表現為序列圖、通信圖、交互概覽圖和時序圖,每種針對不同的目的,能適用于不同的情況。序列圖是強調消息時間順序的交互圖;通信圖是強調接收和發送消息的對象的結構組織的交互圖;交互概覽圖強調控制流的交互圖。
時序圖(Timing Diagram)關注沿著線性時間軸、生命線內部和生命線之間的條件改變。
部署圖(Deployment Diagram)是用來對面向對象系統的物理方面建模的方法,展現了運行時處理結點以及其中構件(制品)的配置。
組件圖(Component Diagram)展現了一組組件之間的組織和依賴。
下圖所示為(44)設計模式,屬于(45)設計模式,適用于(46)。
A. 代理(Proxy)
B. 生成器(Builder)
C. 組合(Composite)
D. 觀察者(Observer)
A. 創建型 B. 結構型 C. 行為 D. 結構型和行為
A. 表示對象的部分一整體層次結構時
B. 當一個對象必須通知其它對象,而它又不能假定其它對象是誰時
C. 當創建復雜對象的算法應該獨立于該對象的組成部分及其裝配方式時
D. 在需要比較通用和復雜的對象指針代替簡單的指針時
答案: C B A
本題考查設計模式的基本概念。
每一個設計模式都集中于一個特定的面向對象設計問題或設計要點,描述了什么時 候使用它,在另一些設計約束條件下是否還能使用,以及使用的效果和如何取舍。按照設計模式的目的可以分為創建型、結構型和行為型三大類。創建型模式與對象的創建有關;結構型模式處理類或對象的組合;行為型模式對類或對象怎樣交互和怎樣分配職責進行描述。每種設計模式都有其適應性,描述適用于解決的問題場合。
創建型模式包括 Factory Method、Abstract Factory、Builder、Prototype 和 Singleton。
結構型模式包括 Adapter (類)、Adapter (對象)、Bridge、Composite、Decorator、Fafade、 Flyweight 和 Proxy。
行為型模式包括 Interpreter、Template Method、Chain of Responsibility、 Command、Iterator、Mediator、Memento Observer State Strategy 和 Visitor。
Proxy模式的結構圖如下所示:
Proxy模式適用于在需要比較通用和復雜的對象指針代替簡單的指針的時候,常見情況有:遠程代理(Remote Proxy)為一個對象在不同地址空間提供據不代表;虛代理 (Virtual Proxy)根據需要創建開銷很大的對象;保護代理(Protection Proxy)控制對原始對象的訪問,用于對象應該有不同的訪問權限的時候;智能指引(Smart Reference) 取代了簡單的指針,它在訪問對象時執行一些附加操作。
Builder模式的結構圖如下所示:
Builder模式適用于當創建復雜對象的算法應該獨立于該對象的組成部分以及它們的裝配方式時;當構造過程必須允許被構造的對象有不同的表示時。
Composite模式的結構圖如下所示:
Composite模式適用于:想表示對象的部分-整體層次結構;希望用戶忽略組合對象與單個對象的不同,用戶將統一地使用組合結構中的所有對象。
Observer模式的結構圖如下所示:
Observer模式適用于:.當一個抽象模型有兩個方面,其中一個方面依賴于另一個方 面。將這兩者封裝在獨立地對象中以使它們可以各自獨立地改變和復用;當對一個對象的改變需要同時改變其他對象.而不知道具體有多少對象有待改變時;當一個對象必須通知其他對象,而它又不能假定其他對象是誰,即不希望這些對象是緊耦合的。
某些設計模式會引入總是被用作參數的對象。例如(47)對象是一個多態accept 方法的參數。
A. Visitor B. Command C. Memento D. Observer
答案: A
本題考查設計模式的概念,對行為模式進行比較。
很多行為模式注重封裝變化。當一個程序的某個方面的特征經常發生改變時,這些模式就定義一個封裝這個方面的對象。這樣,當該程序的其他部分依賴于這個方面時,它們都可以與此對象協作。一些模式引入總是被用作參數的對象。有些模式定義一些可作為令牌進行傳遞的對象,這些對象將在稍后被調用。
在Visitor模式中,一個Visitor對象是一個多態的accept操作的參數,這個操作作用于該Visitor對象訪問的對象。
在Command模式中,令牌代表一個請求;.在Memento模式中,它代表在一個對象在某個特定時刻的內部狀態。在這兩種情況下,令牌都可以有一個復雜的內部表示,但客戶并不會倉識到這一點。.在Observer .模式中,通過引入Observer和Subject對象來分布通信。
嵌入式 軟件開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。