導航:首頁 > 源碼編譯 > 國二考試調用編譯器運算選擇題

國二考試調用編譯器運算選擇題

發布時間:2025-02-05 09:35:59

A. 計算機二級C語言考試內容有那些

C語言考試內容如下:

一、C 語言程序的結構

1. 程序的構成,main 函數和其他函數。

2. 頭文件,數據說明,函數的開始和結束標志以及程序中的注釋。

3. 源程序的書寫格式。

4. C 語言的風格。

二、數據類型及其運算

1.C 的數據類型(基本類型,構造類型,指針類型,無值類型)及其定義方法。

2. C 運算符的種類、運算優先順序和結合性。

3. 不同類型數據間的轉換與運算。

4. C 表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規則。

三、基本語句

1. 表達式語句,空語句,復合語句。

2. 輸入輸出函數的調用,正確輸入數據並正確設計輸出格式。

四、選擇結構程序設計

1. 用 if 語句實現選擇結構。

2. 用 switch 語句實現多分支選擇結構。

3. 選擇結構的嵌套。

五、循環結構程序設計

1. for 循環結構。

2. while 和 do-while 循環結構。

3. continue 語句和 break 語句。

4. 循環的嵌套。

六、數組的定汪扮義和引用

1. 一維數組和二維數組的定義、初始化和數組元素的引用。

2. 字元串與字元數組。

七、函數

1. 庫函數的正確調用。

2. 函數的定義方法。

3. 函數的類型和返回值。

4. 形式參數與實際參數,參數值的傳遞。

5. 函數的正確調用,嵌套調用,遞歸調用。

6. 局部變數和全局變數。

7. 變數的存儲類別(自動,靜態,寄存器,外部),變數的作用域和生存期。

八、編譯預處理

1. 宏定義和調用(不帶參數的宏,帶參數的宏)。

2. 「文件包含」處理。

九、指針

1. 地址與指針變數的概念,地址運算符與間址運算符。

2. 一維、二維數組和字元串的地址以及指向變數、數組、字元串、函數、結構體的指針變數的定義。通過指針引用以上各類型數據。

3. 用指針作函數參數。

4. 返回地址值的函數。

5. 指針數組,指向指針的指針。

十、結構體(即「結構」)與共同體(即「聯合」)

1. 用 typedef 說明一耐陵亮個新類型。

2. 結構體和共用體類型數據的定義和成員的引用。

3. 通過結構體構成鏈表,單向鏈表的建立,結點昌寬數據的輸出、刪除與插入。

十一、位運算

1. 位運算符的含義和使用。

2. 簡單的位運算。

十二、文件操作

1. 文件類型指針

2. 文件的打開與關閉

3. 文件的讀寫

拓展資料:

C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。全國計算機等級考試有二級c語言這個考試的項目。

考試要求:

1. 熟悉Visual C++6. 0集成開發環境。2. 掌握結構化程序設計的方法,具有良好的程序設計風格。3. 掌握程序設計中簡單的數據結構和演算法並能閱讀簡單的程序。4. 在Visual C++6. 0集成環境下,能夠編寫簡單的C程序,並具有基本的糾錯和調試程序的能力。

參考鏈接:網路-二級C語言

B. 如何在c++定義一個學生類以實現平均成績的計算和查詢功能

一.中間件的定義與作用
1.什麼是中間件?
圖片摘自公眾號「筋斗雲與自動駕駛」
筆者在交流中發現,不同的人對中間件的理解並不一樣,甚至可以說,到現在,這個概念還是模糊不清的。比如:
(1)有的人認為中間件僅指位於OS內核之上、功能軟體之下的那部分組件,為上層提供進程管理、升級管理等服務;而有的人則認為中間件還應包括功能軟體和應用軟體中間的那部分(參見上圖)。按茅海燕的說法,前者是「通用中間件」,而後者是「專用中間件」。本文中提到的「中間件」,若不做專門說明,便特指「通用中間件」。
(2)有一些人提到的自動駕駛中間件,包括了AUTOSAR(又分為AUTOSAR CP和AUTOSAR AP),還有一些人口中的中間件,特指ROS2、Cyber RT、DDS等。
(3)未動科技VP蕭猛認為,「中間」一詞是相對的,當有多層堆疊的時候,每一層都是其上下兩層的中間層,因此,在用「中間件」這個詞的時候,我們需要特別指明它究竟位於「哪兩層之間」。按蕭猛的說法,當我們稱「ROS/ROS2 為中間件」時,其含義與 「AUTOSAR AP為中間件」並不是對等的關系。
(4)Vector產品專家蔡守群說,他理解的中間件,「是給App開發提供功能支撐的,對外是沒有功能表徵的;但是站在操作系統內核的角度,中間件跟App並沒有本質的區別」。
2.中間件的作用
汪浩偉說:「專用中間件原本是應用程序的一部分,只是很多公司做自動駕駛都需要用到,就被抽象出來了。」
那麼,它究竟有什麼用?
畢曉鵬認為,自動駕駛中間件最主要的作用是:對下,它能夠去適配不同的OS內核和架構;對上,它能夠提供一個統一的標准介面,負責各類應用軟體模塊之間的通信以及對底層系統資源的調度。
據畢曉鵬解釋,前者,使開發者們無需考慮底層的OS內核是什麼,也無需考慮硬體環境是什麼,即不僅實現了應用軟體與OS的解耦,也實現了應用軟體與硬體的解耦;而後者則確保了數據能夠安全實時地傳輸、資源進行合理的調度。
為什麼要通過中間件來支持軟硬體解耦?畢曉鵬解釋道:
我開發一個應用軟體,其中很多內容都是與具體應用邏輯無關的,包括數據通信、通信安全、系統資源調度等,比如,有十個進程需要數據交互,完全沒有必要在十個程序的軟體代碼里各自進行實現和配置。針對這種情況,我們就可以把重復的部分抽象成一種服務,單獨封成一層東西(這就是中間件),並提供統一的庫、介面和配置方法,供上層去調用。這樣的話,有一部分人專門去做中間件的,而做上層應用的人也不需要考慮跟底層交互的事情。
舉例說,如果要做一個自動泊車系統,它有各個模塊或業務邏輯獨立的不同軟體,在進行通信、數據交互,或者調用底層資源時,只需要中間件的一個介面就可以實現,其他事情不需要考慮,這樣開發人員就可以專注於自己的業務邏輯。
又比如,一個攝像頭需要感知前面的車道線、紅綠燈等,開發人員就專門做紅綠燈和車道線檢測演算法,與外界的數據交互只需要使用中間件的通信服務(例如訂閱攝像頭信息,發布檢測結果),而不必關心數據從哪裡來、發給誰。
Nullmax紐勱科技系統平台總監苗乾坤博士在此前的一篇文章中寫道:
「晶元算力大幅增長,攝像頭像素呈翻倍之勢,激光雷達出現在更多新車規劃上……沒有誰能夠斷言車上的感測器應該有多少,又或者是將來的汽車還會增加哪些硬體,但所有人都知道硬體的變化將會來得更加猛烈。
「所以我們也可以看到,汽車對軟硬體架構的要求也越來越高,既要能滿足當下的需求,還要具備相當的前瞻性、兼容性和擴展性,能夠支持接下來軟硬體升級換代、增減模塊的需求。而自動駕駛的中間件,就正是這樣一個可以按需調整、滿足各樣需求的現代溫室。
「在早期開發中,中間件可以化整為零,將巨大的軟體工程分解成若干小任務,分散解決。在後期應用時,它又可以化零為整,像拼積木一樣,根據需求將一個個模塊組合成一個整體,嚴絲合縫。」
在春節前的一場直播中,東軟睿馳產品銷售總監安志鵬說,在軟硬體解耦、模塊化管理後,再遇到問題,就不用整個系統都改,只改相對應的部分就行了。這樣,軟體的可復用程度就極大地提升了,同時,驗證的工作量也會減少許多,整體開發效率也會因此提升。
相反,沒有中間件的話,應用層就得直接調用操作系統的介面,後期要是換了操作系統,應用層的代碼和演算法可能就要推倒重來。
簡言之,中間件通過對計算平台、感測器等資源進行抽象,對演算法、子系統、功能採取模塊化的管理,並提供統一介面,讓開發人員能夠專注於各自業務層面的開發,無需了解無關細節。
按東軟睿馳產品銷售總監安志鵬的說法,搞AUTSOAR這樣的中間件,並不是只對OEM有利,「零部件供應商的選擇面也大了——應用做好了,下面的軟體、晶元可以選好幾家供應商的,要比傳統的開發模式快很多,因而,零部件供應商也是受益者」。
用蕭猛的話說,中間件最直接的好處就是「為上層屏蔽底層的復雜性」,軟體開發人員可以忽略晶元、感測器等硬體的差異,從而高效、靈活地將上層應用及功能演算法在不同平台上實現、迭代、移植。蕭猛認為,中間件可以看做是自動駕駛應用背景下的一項「新基建」。
(圖片摘自馮占軍博士的《AUTOSAR對基礎軟體開發是喜還是憂?》一文。AUTOSAR只是中間件的一種,但這里寫的「AUTOSAR開發優勢」基本也適用於其他中間件。)
不過,站在開發者的角度看,中間件的意義也未必全部是正面的。如馮占軍博士在《AUTOSAR對基礎軟體開發是喜還是憂?》一文中就提到了如下兩點:
底層軟體工程師變成了工具人,「只要你去點點滑鼠,用工具配合就可以了」,很多原本由自己做的測試也改由供應商來做,進而導致工程師的成就感嚴重降低;時間久了,工程師從0到1開發的能力也會降低。
(圖片摘自馮占軍博士的文章。盡管文章說的是Autosar,但實際上這些問題在ROS等其他中間件的使用過程中也會存在。)
對軟體工程師來說,中間件造成的「能力退化」這一問題幾乎是無解的。但馮占軍博士認為,「如果這個中間件在開發過程中,有使用公司的工程師深度參與,提出需求並一起實施,會好一些」。
此外,殷瑋在一篇文章提到,使用AUTOSAR這樣的中間件,Tier 1們應該是很不情願的,「因為不到增加了成本,還有可能逐步淪為硬體生產商」。但這個也不能說是中間件的鍋,在軟體定義汽車大大趨勢下,這幾乎是必然的。
二.常見的基本概念
1. AUTOSAR CP 與 AUTOSAR AP
在所有的中間件方案中,最著名的非AUTOSAR莫屬了。
嚴格地說,AUTOSAR並非特指由某一家軟體公司開發出來的某款操作系統或中間件產品,而是由全球的主要汽車生產廠商、零部件供應商、軟硬體和電子工業等企業共同制定的汽車開放式系統架構標准。不過,在實踐中,各公司基於AUTOSAR標准開發出來的中間件也被被稱為「AUTOSAR」。
當前,AUTOSAR可分為Classic Platform和Adaptive Platform兩個平台,兩者分別被簡稱為AUTOSAR CP與AUTOSAR AP。
簡單地說,AUTOSAR CP主要跑在8bit、16bit、32bit的MCU上,對應傳統的車身控制、底盤控制、動力系統等功能,如果涉及到自動駕駛的話,AUTOSAR CP可能無法實現;而AUTOSAR AP主要跑在64bit以上的高性能MPU/SOC上,對應自動駕駛的高性能電子系統。
嚴格地說,AUTOSAR CP並不只是個「中間件」,它是相當於「OS內核+中間件」的一套完整的「操作系統」。 AUTOSAR CP定義了基本的上層任務調度、優先順序調度等。
在基於分布式架構的ADAS功能中,AUOTSAR CP便是最常見的「操作系統」。在AUTOSAR的生態形成後,很多晶元廠商的MCU上標配的就是AUTOSAR CP,主機廠沒有什麼選擇權。
由於分布式架構下的晶元主要是MCU,因此,便有了「AUTOSAR CP主要跑在MCU上」的說法。
在分布式架構下,不同的功能對應著不同的MCU,而每一個MCU上都需要跑一套AUTOSAR CP,若感測器的類型比較多,則僅ADAS相關功能就需要很多套AUTOSAR CP,那怎麼收費呢?
常規的做法是:根據MCU的類型來收費——如果MCU是兩個異構的MCU,那AUTOSAR CP就按兩套來收費;如果MCU是同構的,那AUTOSAR CP就按一套來收費。
隨著EE架構從分布式向集中式演進、晶元由MCU向SOC演進,計算量及通信量成數量級地上升,另外,多核處理器、GPU、FPGA以及專用加速器的需求,還有OTA等,都超出了AUTOSAR CP的支持范圍。
(圖片摘自安志鵬的直播課)
2017年,為更好地滿足集中式架構+SOC時代的高等級自動駕駛對中間件的需求,AUTOSAR聯盟推出了通信能力更強、軟體可配置性更靈活、安全機制要求更高的AUTOSAR AP平台。
需要強調的是,不同於AUTOSAR CP自身已經包含了基於OSEK標準的OS,AUTOSAR AP只是一個跑在Lunix、QNX等基於POSIX標準的OS上面的中間件——它自身並不包含OS。
結合aFakeProgramer於2020年發表在CSDN上的《為什麼要用AP?Adaptive AutoSAR到底給企業提供了一些什麼?》一文及東軟睿馳安志鵬在2022年春節前的一場直播中講的內容,AUTOSAR CP與AUTOSAR AP最主要的區別有如下幾點:
1).編程語言不同——AUTOSAR CP基於C語言,而AUTOSAR AP基於C++語言;
2).架構不同——AUTOSAR CP 採用的是FOA架構(function-oriented architecture),而AUTOSAR AP採用的則是SOA架構(service-oriented architecture);
3).通信方式不同——AUTOAR CP採用的是基於信號的靜態配置通信方式(LIN\CAN...通信矩陣),而AUTOSAR AP採用的是基於服務的SOA動態通信方式(SOME/IP);
4).連接關系不同——在AUTOSAR CP中,硬體資源的連接關系受限於線束的連接,而在AUTOSAR AP中,硬體資源間的連接關系虛擬化,不局限於通信線束的連接關系;
5).調度方式不同——AUTOSAR CP採用固定的任務調度配置,模塊和配置在發布前進行靜態編譯、鏈接,按既定規則順序執行,而AUTOSAR CP則支持多種動態調度策略,服務可根據應用需求動態載入,並可進行單獨更新。
6).代碼執行和地址空間不同——AUTOSAR CP中,大部分代碼靜態運行在ROM,所有application共用一個地址空間,而在AUTOSAR AP中,應用載入到RAM運行,每個application獨享(虛擬)一個地址空間。
這些區別,帶給AUTOSAR AP的優勢有如下幾點——
1).ECU更加智能:基於SOA通信使得AP中ECU可以動態的同其他ECU同其他ECU進行連接,提供或獲取服務;
2).更強大的計算能力:基於SOA架構使得AP能夠更好地支持多核、多ECU、多SoCs並行處理,從而提供更強大的計算能力;
3).更加安全:基於SOA架構使得AP中各個服務模塊獨立,可獨立載入,IAM管理訪問許可權;
4).敏捷開發:Adaptive AUTOSAR服務不局限於部署在ECU本地可分布於車載網路中,使得系統模塊可靈活部署,後期也能靈活獨立更新(FOTA);
5).高通信帶寬:可實現基於Ethernet等高通信帶寬的匯流排通信;
6).更易物聯:基於乙太網的SOA通信,更易實現無線、遠程、雲連接,方便部署V-2-X應用。
(圖片摘自東軟睿馳)
當然了,在某些方面,AUTOSAR AP與AUTOSAR CP相比是有一些「劣勢」的。比如,AUTOSAR CP的時延可低至微秒級、功能安全等級達到了ASIL-D,硬實時;而AUTOSAR AP的時延則在毫秒級,功能安全等級則為ASIL-B,軟實時。
上述區別也導致了兩者應用領域的不同:AUTOSAR CP一般應用在對實時性和功能安全要求較高、對算力要求較低的場景中,如引擎控制、制動等傳統ECU;而AUTOSAR則應用在對實時性和功能安全有一定要求,但對算力要求更高的場景中,如ADAS、自動駕駛,以及在動態部署方面追求較高自由度的信息娛樂場景。
盡管AUTOSAR AP有種種優點,但總的來說,它目前還不夠成熟——主要是信息安全及UCM等模塊不成熟。量產車上裝AUTOSAR AP的不少,但主要用在娛樂場景,真正用在自動駕駛場景的還很少。
此外,由於SOC+MCU組合的現象會長期存在,因而,在今後相當長一段時間內,AUTOSAR AP都不可能徹底取代AUTOSAR CP——最常見的分工會是,需要高算力的工作交給AUTOSAR AP,而需要高實時性的工作則交給AUTOSAR CP。
(圖片摘自超星未來)
2.ROS 2
ROS是機器人操作系統(Robot Operating System)的英文縮寫,原生的ROS本是機器人OS,並不能直接滿足無人駕駛的所有需求,用作自動駕駛中間件的是ROS 2。
ROS 2與ROS 1的主要區別如下:
(1).ROS 1主要構建於Linux系統之上,主要支持Ubuntu;ROS 2採用全新的架構,底層基於DDS(Data Distribution Service)通信機制,支持實時性、嵌入式、分布式、多操作系統,ROS 2支持的系統包括Linux、windows、Mac、RTOS,甚至是單片機等沒有操作系統的裸機。
(2).ROS 1的通訊系統基於TCPROS/UDPROS,強依賴於master節點的處理;ROS 2的通訊系統是基於DDS,取消了master,同時在內部提供了DDS的抽象層實現,有了這個抽象層,用戶就可以不去關注底層的DDS使用了哪個商家的API。
(3).ROS運行時要依賴roscore,一旦roscore出現問題就會造成較大的系統災難,同時由於安裝與運行體積較大,對很多低資源系統會造成負擔;ROS2基於DDS進行數據傳輸,而DDS基於RTPS的去中心化的通信框架,這就去除了對roscore的依賴,系統的穩定性強,對資源的消耗也得到了降低。
(4).由於ROS 缺少Qos機制,topic的穩定性與質量難以保證;ROS2則提供了Qos機制,對通信的實時性、完整性、歷史追溯等功能有了支持,這便大幅加強了框架功能,避免了高速系統難以適用等問題。
不過,ROS2的QoQ配置較為復雜,目前主要是國外一些專業的大學或實驗室在使用,國內僅有極少數公司在嘗試;此外,ROS 2的生態成熟度遠不如ROS,這也給推廣應用帶來了不便。
跟AUTOSAR AP一樣,ROS 2也是跑在soc晶元上、用於滿足高等級自動駕駛的需求的。不過,蕭猛在去年的一批文章中卻特別強調:當我們稱 「ROS/ROS2 為中間件」時,其含義與 「AUTOSAR AP為 中間件」並不是對等的關系。
蕭猛的文章稱:
當我們說 AutoSar是中間件時,這個中間件是很明確的 L.BSW層語義,即處於計算機OS與車載ECU特定功能實現之間,為 ECU功能實現層屏蔽掉特定處理器和計算機OS相關的細節,並提供與車輛網路、電源等系統交互所需的基礎服務;
ROS/ROS2 是作為機器人開發的應用框架,在機器人應用和計算機OS之間提供了通用的中間層框架和常用軟體模塊(ROS Package),而且, ROS團隊認為這個框架做得足夠好,可以稱作操作系統(OS)了。
ROS 2盡管在功能上跟AUTOSAR AP有不少重疊之處,但兩者的思路是不一樣的:
(1).從表現形式上看,AUTOSAR AP首先是一套標准,這個標準定義了一系列基礎平台組件,每個平台組件定義了對應用的標准介面,但沒有定義實現細節,和平台組件之間的交互介面(這些部分留給AUTOSAR AP供應商實現);ROS2則從一開始就是代碼優先,每個版本都有完整的代碼實現,也定義有面向應用標准API介面。
(2)AUTOSAR AP從一開始就面向ASIL-B應用;ROS 2不是根據ASIL的標准設計的,ROS 2實現功能安全的解決方案是,把底層換為滿足ASIL要求的RTOS和商用工具鏈(編譯器)。
ROS 2「過不了車規」似乎已成為一個很廣泛的行業共識。但在蕭猛看來,ROS2本來就不是為實時域設計的,如果一定要把實時性要求高的車輛控制演算法運行在 ROS2中,「那是軟體設計的錯誤,而不是ROS2的問題」。
蕭猛認為,只要能補齊 L.BSW層所需要完成的所有功能、補齊 A 軸所有切面要求的特性,ROS 2就能用於自動駕駛量產車。如前段時間剛拿到采埃孚等多家巨頭投資的Apex.AI公司基於ROS 2定製開發的Apex.OS就已經通過了最高等級的ASIL D認證。
蕭猛說:「這實際上是基於 ROS 2的架構去實現一套 AUTOSAR AP 規范。這可以成為一個單獨的產品,投入時間+人+錢可以開發出來,只是看有沒有必要,值不值得」。
在具體的實踐中,ROS 2跟AUTOSAR AP存在直接競爭關系——盡管對用戶來說,並不存在嚴格意義上的「二選一」問題,但通常來說,若選了ROS 2,就不會選AUTOSAR AP了;若選了AUTOSAR AP,就不會選ROS 2了。
3. CyberRT
Cyber RT是網路Apollo開發出來的中間件,在Apollo 3.5中正式發布。Cyber RT和ROS2是比較像的, 其底層也是使用了一個開源版本的DDS。
網路最早用的是ROS 1,但在使用的過程中逐漸發現了ROS 1存在「若ROS Master出故障了,則任何兩個節點之間的通信便受到影響」的問題,所以就希望使用一個「沒有中間節點」的通信中間件來代替ROS 1,那時還沒有ROS2,所以自己去做了一個Cyber RT。
為了解決 ROS 遇到的問題,Cyber RT刪除了master機制,用自動發現機制代替,這個通信組網機制和汽車網路CAN完全一致。此外,Cyber RT的核心設計將調度、任務從內核空間搬到了用戶空間。
(圖片出處:https://blog.csdn.net/xhtchina/article/details/118151673)
其相對於其他系統,Cyber RT的一大優勢是,專為無人架駛設計。網路已將Cyber RT開源,某互聯網巨頭的自動駕駛團隊使用的中間件便是網路開源出來的Cyber RT。
Cyber RT跟ROS 2之間也存在競爭關系。
在談到AUTOSAR AP、ROS 2與Cyber RT這些中間件的關系時,Vector產品專家蔡守群的解釋是:
「不需要很機械地去分類,你可以把AUTOSAR AP, ROS和Cyber RT都想像成一個提供一組中間件的超市,用戶可以按需從不同的超市購買,並不是說從一個超市買過一個中間件,就不能從其他超市買了。
蔡守群說:AUTOSAR AP中也包含了對ROS介面的支持。說不準哪天ROS和Cyber RT就會加入AUTOSAR AP的組件,或者 AUTOSAR AP會引入Cyber RT的組件。
4.DDS(通信中間件)
(1)什麼是DDS?
在自動駕駛領域,中間件的功能涉及到通信、模塊升級、任務調度、執行管理,但其最主要的功能就是通信。當前市場上,無論是Cyber RT還是 ROS,基本上90%的功能就是通信,狹義上說就是通信中間件。
通信中間可以分成開源和閉源的兩種。開源的為OPEN DDS、FAST DDS、Cyclone等,閉源的就RTI的DDS和Vector的SOME/IP。DDS的全稱為Data Distribution Service ,指一種數據分發服務標准,由對象管理組織(OMG)制定。
DDS能夠實現低延遲、高可靠、高實時性的數據融合服務,能夠從根本上降低軟體的耦合性、復雜性,提高軟體的模塊化特性。高等級自動駕駛現在基本上都在探索依靠DDS來解決異構通信、低時延等CP解決不了的挑戰。
融合了DDS的汽車軟體能夠更好地運行在下一代汽車的體系架構中,更能降低開發的成本、縮短研發的時間,更快地將產品推向市場。
(2)DDS與ROS 2、AUTOSAR AP之間的關系
ROS 2和Cyber RT的底層都使用了開源的DDS,將DDS作為最重要的通信機制。但也有自動駕駛公司的工程師認為,DDS可以起到替代ROS 2的作用,站在用戶的角度看,兩者之間其實存在「二選一」的關系。
AUTOSAR CP里一直沒有包含跟DDS有關的東西,但AUTOSAR AP在 2018年3月的最新版(版本18-10)里開始支持DDS標准。將DDS與AUTOSAR AP結合使用,不僅可以保證和擴展AUTOSAR AP系統內部互操作性的功能,而且還可以將其開放給來自不同的生態系統(即ROS 2)。
從工程角度來看,將AUTOSAR和DDS結合起來的最大優勢是,功能域和網路拓撲不再是對手,而是車輛中的盟友。網路拓撲結構能夠更好地適應車輛的物理約束,功能域在物理車輛的頂部提供了一個靈活的覆蓋層,這就是所謂的分區體系結構。
當然,DDS僅是通信中間件的一種。關於各類通信中間件之間的異同,我們將在本系列的第二篇做更詳細的闡釋。
三.AUTOSAR AP的地位正在弱化?
盡管AUTOSAR是當下最有名的自動駕駛中間件,但《九章智駕》在對諸多中間件廠商們的調研中得出一個結論:AUTOSAR在產業鏈中的地位可能正在弱化。 當然了,那些專注於AUTOSAR系統的廠商們並不認同這一觀點。
我們在上文已經提到,隨著EE架構從分布式向集中式演進、MCU被SOC取代,CP AUTSAR被AUTOSAR AP、ROS 2和Cyber RT等取代已是大勢所趨,在下文,我們主要談的是「AUTOSAR AP的地位會不會弱化」。
2021年12月中旬,兩家AUTOSAR發起公司大陸集團、豐田聯合採埃孚、捷豹路虎、沃爾沃、海拉等多家汽車行業龍頭企業宣布投資車載操作系統初創公司Apex.AI,而Apex.AI的主力產品Apex.OS則是基於ROS 2發展起來的。
拿到了Apex.AI公司15%股權的采埃孚方面在接受媒體采訪時說:「這意味著,我們可以為客戶提供AUTOSAR AP的替代方案。」
盡管AUTOSAR AP已經有了標准,但還沒有落地。安波福、采埃孚、大陸這些公司提供的方案,仍然是基於AUTOSAR CP標準的介面。事實上,越來越多的OEM不太想完全用AUTOSAR去解決智能駕駛操作系統的問題。
不僅特斯拉沒有用AUTOSAR AP,國內的幾大造車新勢力也沒有用(他們用的是AUTOSAR CP+DDS)。甚至,連一些正在轉型的傳統車企也沒打算用AUTOSAR AP。
從產業鏈中各方的反應來看,AUTOSAR AP「地位不穩」的原因主要有以下幾個:
1.使用成本太高
馮占軍博士在《AUTOSAR對基礎軟體開發是喜還是憂?》一文中透露,AUTOSAR的費用通常是「幾百萬起」,並且,針對不同的域控制器、不同的晶元需要「重復收費」,一般小廠根本吃不消。「可能還沒有什麼產出,幾百萬就花出去了」。
除購買成本高外,畢曉鵬和蕭猛都提到,AUTOSAR前期的學習難度很大、學習成本也非常高。為了學會如何使用AUTOSAR,企業甚至不得不專門培訓一批人,如果受培訓的人臨時離職了,那培訓費用就打了水漂。
2.效率不高
畢曉鵬認為,AUTOSAR AP的配置非常多,它是通過配置加上一部分代碼去實現自己的功能,但配置多了之後,效率不高,而且代碼臃腫。
3.靜態部署與動態部署的理念沖突
畢曉鵬博士提到,AUTOSAR AP其實是從AUTOSAR CP發展而來的,AUTOSAR CP是靜態部署,只適用於相對簡單的業務邏輯和功能,其代碼是固化的,有點像以前的功能手機——功能無法改變,不可能往裡面再加一個APP;但AUTOSAR AP有點像現在的智能手機,軟體開發人員開發一個APP,跨平台就可以用不同手機上了,這種動態部署的理念和之前的靜態部署概念不甚相同,而其方法論卻是基於靜態部署衍生而來的,因此在實踐層面會遇到不少問題。
4.無法滿足智能網聯的需求
由於雲端跟車端所使用的操作系統不一樣,AUTOSAR只能負責車內的通信,不能支持車端到雲端的通信,因而無法支持車路協同場景(車端跟雲端的通信,是通過MQTT、kafka等中間件來實現的)。除此之外,AUTOSAR能否兼容車輛網聯化中需要用到的數據平台、通信平台和地圖平台,也存在很大的疑問。
畢曉鵬說,在發現了這些問題後,有一些OEM開始逐漸放棄AUTOSAR架構,「轉而自己去研發一套更適合動態部署、成本較低的新型軟體架構」。
傳統車廠是從使用CP過來的,所以在慣性上,他們可能還會考慮AP是否適合智能駕駛,但慢慢地也在嘗試轉型。如奧迪和TTTech合作做的通信中間件——zFAS,也沒有採用AP。
不同於AUTOSAR CP已經是非常標准化的東西,大家用起來沒什麼問題,AUTOSAR AP現在的標准也不是很完善,每年也在更新,具體AP能發展成什麼樣,這個誰也不知道,大家更多也是觀望的態度。
畢曉鵬認為,AUTOSAR標准並不能很好地支撐自動駕駛應用和創新的發展,因此,我們有必要建立一套更適合中國智能駕駛發展、且自主可控的技術架構和生態體系。
蕭猛認為,由於從AUTOSAR CP到AUTOSAR AP一脈相承,一些已經對AUTOSAR形成路徑依賴的公司會堅持使用AUTOSAR AP,但在經歷過招人難、開發周期長等教訓之後,他們有可能轉向ROS 2。
當然,以AUTOSAR為主業的公司,顯然不會認可上述「涉嫌唱衰」AUTOSAR AP的觀點的。
比如,Vector蔡守群就認為,AUTOSAR AP只會越來越重要,因為它是順應車載技術不斷發展的一套規范,覆蓋面會越來越廣。
東軟睿馳茅海燕也認為,要將整車域控制器和智駕域控制器合並到統一的中央計算平台上,沒有AUTOSAR AP的支持很難搞定。「不是每家公司都能像特斯拉一樣自己從頭搭建系統的,目前,最好的工具還是AUTOSAR AP」。

C. 懸賞80分:計算機等級考試,VF的評分該怎麼來實現。

二級(Visual FoxPro資料庫程序設計)考試大綱
公共基礎知識
基本要求
1. 掌握演算法的基本概念。
2. 掌握基本數據結構及其操作。
3. 掌握基本排序和查找演算法。
4. 掌握逐步求精的結構化程序設計方法。
5. 掌握軟體工程的基本方法,具有初步應用相關技術進行軟體開發的能力。
6. 掌握資料庫的基本知識,了解關系資料庫的設計。
考試內容
1. 具有資料庫系統的基礎知識。
2. 基本了解面向對象的概念。
3. 掌握關系資料庫的基本原理。
4. 掌握資料庫程序設計方法。
5. 能夠使用Visual FoxPro建立一個小型資料庫應用系統。
考試內容
一、Visual Foxpro基礎知識
1. 基本概念:
資料庫,數據模型,資料庫管理系統,類和對象,事件,方法。
2. 關系資料庫:
(1) 關系資料庫:關系模型,關系模式,關系,元組,屬性,域,主關鍵字和外部關鍵字。
(2) 關系運算:選擇、投影、連接。
(3) 資料庫的一致性和完整性:實體完整性、域完整性、參照完整性。
3. Visual FoxPro系統特點與工作方式:
(1) Windows版本資料庫的特點。
(2) 數據類型和主要文件類型。
(3) 各種設計器和向導。
(4) 工作方式:交互方式(命令方式、可視化操作)和程序運行方式。
4. Visual Foxpro的基本數據元素:
(1) 常量,變數,表達式。
(2) 常用函數:字元處理函數,數值計算函數,日期時間函數,數據類型轉換函數,測試函數。
二、Visual FoxPro資料庫的基本操作
1. 資料庫和表的建立、修改與有效性檢驗:
(1) 表結構的建立與修改。
(2) 表記錄的瀏覽、增加、刪除與修改。
(3) 創建資料庫,向資料庫添加或移出表。
(4) 設定欄位級規則和記錄級規則。
(5) 表的索引:主索引,候選索引,普通索引,唯一索引。
2. 多表操作:
(1) 選擇工作區。
(2) 建立表之間的關聯,一對一的關聯,一對多的關聯。
(3) 設置參照完整性。
(4) 建立表間臨時關聯。
3. 建立視圖與數據查詢:
(1) 查詢文件的建立、執行與修改。
(2) 視圖文件的建立、查看與修改。
(3) 建立多表查詢。
(4) 建立多表視圖。
三、關系資料庫標准語言SQL
1. SQL的數據定義功能:
(1) CREATE TABLE-SQL。
(2) ALTER TABLE-SQL。
2. SQL的數據修改功能:
(1) DELETE-SQL。
(2) INSERT-SQL。
(3) UPDATE-SQL。
3. SQL的數據查詢功能:
(1) 簡單查詢。
(2) 嵌套查詢。
(3) 連接查詢。
內連接
外連接:左連接,右連接,完全連接
(4)分組與計算查詢。
(5) 集合的並運算。
四、項目管理器、設計器和向導的使用
1. 使用項目管理器:
(1) 使用「數據」選項卡。
(2) 使用「文檔」選項卡。
2. 使用表單設計器:
(1) 在表單中加入和修改控制項對象。
(2) 設定數據環境。
3. 使用菜單設計器:
(1) 建立主選項。
(2) 設計子菜單。
(3) 設定菜單選項程序代碼。
4. 使用報表設計器:
(1) 生成快速報表。
(2) 修改報表布局。
(3) 設計分組報表。
(4) 設計多欄報表。
5. 使用應用程序向導。
6. 應用程序生成器與連編應用程序。
五、Visual FoxPro程序設計
1. 命令文件的建立與運行:
(1) 程序文件的建立。
(2) 簡單的互動式輸入、輸出命令。
(3) 應用程序的調試與執行。
2. 結構化程序設計:
(1) 順序結構程序設計。
(2) 選擇結構程序設計。
(3) 循環結構程序設計。
3. 過程與過程調用:
(1) 子程序設計與調用。
(2) 過程與過程文件。
(3) 局部變數和全局變數,過程調用中的參數傳遞。
4. 用戶定義對話框(MESSAGEBOX)的使用。
考試方式
1. 筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。
2. 上機考試:90分鍾,滿分100分。
(1) 基本操作。
(2) 簡單應用。
(3) 綜合應用。

----------------------------------------
如何應考二級FoxBASE+語言

1998年,根據我國計算機應用水平的實際情況,教育部考試中心頒布了新的考試大綱。新大綱中關於二級FoxBASE語言考試部分變化不大。今後,適應我國計算機應用水平的發展,教育部考試中心將會不斷更新考試大綱,可能在近幾年內會以二級FoxPro考試取代目前的二級FoxBASE考試。
在全國計算機等級考試的各個級別的各種類別、語言的考試中,二級FoxBASE考試逐漸成為應試人員最多的一門考試,發展趨勢之快是其它門考試所不能及的。但應試人數的增多並不代表這門考試較其它容易過關,尤其上機考試部分的編程題,對於非計算機專業的考生來說是有一定的難度的。因此,在進行考前復習時,要有重點、有針對性。至於什麼是重點、要針對什麼復習,我們通過對近幾年來二級FoxBASE考試的試卷作的一些分析研究,又參考新大綱中有關二級FoxBASE的考綱和模擬考題,提出下面一些分析結果供大家參考。

首先,分析筆試試卷。筆試考試時間兩小時,考題分單項選擇題和填空題,其中單項選擇題有50題,前40題每題1分,後10題每題2分;而填空題共有20個空(不是20題),每空2分。考試內容涉及了兩大部分:
第一部分是計算機的基礎知識與基本操作。
在以往幾次筆試中這一部分共佔30分(選擇題第1-20題,填空題第1-5空),新大綱頒布後,如果僅根據大綱中提供的模擬試題,這一部分可能會減至25分(選擇題減少5題)。其主要由以下幾個方面內容組成:
DOS的基本操作,佔10分以上。需要注意的是,這一方面題大部分題型靈活多變,要求我們熟練掌握文件、目錄、路徑的使用和常用命令的基本格式及其參數(注意命令格式中重定向符>和>>的使用和區別)。
計算機的常用數制及其轉換;數據基本單位,包括位、字、節以及漢字編碼的概念和有關運算,例如點陣漢字所佔位元組數的運算,佔5分以上。這一方面題要求我們熟練掌握這些轉換和運算的公式,不妨在復習時列一個公式表出來以便重點記憶。
特別提一下,①、②兩方面的內容通常是有關這一部分的填空題5個空所涉及的內容。
多媒體技術、計算機網路的一般知識;WINDOWS的基本操作。這三部分是新大綱中新增內容,每部分至少會有1-2分的題,因為是首次考,我想暫時主要考的是它們的基本概念和一些基本組成、特點等等。
其它內容。例如計算機的基本構成、計算機的使用注意、病毒的常識等等。
③、④兩方面對應的考題多為基本概念和基本常識題,復習時通常只要針對書中有關內容進行多次仔細閱讀,使我們能留下較深刻的印象,不必死記硬背。

第二部分是資料庫語言程序設計。
這一部分考題中選擇題與填空題相比難易度和題型都區別較大,因此我分開來分析。
一、選擇題。
它主要含有以下三個方面:
資料庫系統及FoxBASE+的基礎知識。這一方面題所涉及的都是一些固定不變的概念,包括:資料庫、資料庫管理系統、資料庫系統、資料庫模型的概念及其相互關系;關系資料庫中的關系術語和關系運算,特別是幾種關系運算在FoxBASE+中的體現;FoxBASE+的系統性能與工作方式等。
表達式和函數的單獨應用以及它們的組合應用。對於表達式,應掌握各類型表達式的組成以及它們所涉及的運算符、運算符的優先順序別、運算規則等;對於函數,要仔細閱讀每個常用函數的有關組成,包括:函數名、函數的自變數的個數、每個自變數的類型、函數值的運算、函數值的類型等,其中應特別注意以下三類:一些比較難於理解的函數,如宏替換函數&;一些容易出錯的函數,如求余數函數MOD();一些很少使用的函數,如文件測試函數FILE()。只有熟練掌握了以上這些基礎,仔細理解書中有關這些表達式和函數的例題,才能對這一方面的題應付自如。
命令的簡單應用。這里的命令是廣義的,還包含有與程序有關的命令和語句、SET命令等。如同上面所說的函數一樣,在熟練掌握常用命令的格式和功能之餘,也要求我們了解那些不常用命令,另外就是許多命令的格式中含有的可選項的使用。
與填空題比較起來,選擇題較簡單,但涉及的知識面相當廣,許多我們平常學習時容易忽略的知識點都有可能在它之中出現。
二、填空題。
它主要有兩種類型的題:命令序列的填空題和程序填空題,每種題型又分三種方式:補充填空,即命令序列或程序中缺失的整條命令語句填空;完整填空,即序列或程序中某條命令語句不完整,對缺失部分填空;結果填空,即對序列或程序的運行結果進行填空。
就我認為,做填空題中最大的難點是閱讀量大,雖說與資料庫有關的空只有15個,但往往會有10組(個)左右的命令序列和程序需要閱讀,
這中間還包括理解題意和瀏覽有關的資料庫文件等。與選擇題相反,它所涉及的知識點與面較小,都是一些常用命令和與程序有關的常用命令語句,這中間難一點的是多重資料庫操作,其次就是與子程序和過程文件有關的內容,還有用SET命令進行開關狀態的設置和環境參數的設置,比如說顏色的設置等,偶爾也會出現一些較偏一點的函數和命令填空,例如函數FILE()、匯總命令TOTAL等等。閱讀程序和命令序列沒有什麼竅門,只有能熟練掌握資料庫的命令,並進行大量的習題練習,培養出進行快速、准確閱讀的能力,考試才能作出正確的思考和判斷,填寫正確的結果。
以上是我對筆試考試的分析,應考時要注意時間的分配,不要在某一小題、某一空上浪費過多時間。
接下來,分析上機考試的試卷。上機考試時間一小時,由考試系統自動計時,考題共三大題:
第一大題:操作系統考試題。分數30分,含五或六小題,涉及的DOS命令以DOS 5.0為基準,理論上包括所有的內部和外部命令,當然,一些具有進攻性的命令除外,例如磁碟格式化命令FORMAT、硬碟分區命令FDISK等能導致軟體系統被破壞的命令。在以往幾次考試中,只考過以下六個命令:建目錄命令MD、刪目錄命令RD、刪文件命令DEL、文件復制(或文件順序連接)命令COPY、文件更名命令REN、設置文件屬性命令ATTRIB,現在依舊不排除會考其它命令的可能。這一大題考的是對DOS命令及其命令參數的使用,因此在考試時要依題意做出正確的命令及命令參數,以期得到正確的結果;如果做某一題時確實發現與這一題相關的源文件或目錄不存在(這種情況很少存在),只要命令和參數輸入正確,即使得不到正確結果,同樣給分。
通過我對近幾次考試的觀察,現提出應考時的幾點竅門:
對於上面六個命令,除了復制命令外,其它五個命令輸入完後回車,若操作系統沒有任何提示出現,往往就表示這一答案正確。對於復制命令,根據題目要求,若系統提示中有「x file(s) copied」(翻譯為:x個文件被復制),多數時候可以認為答案正確。
對於刪除X子目錄下的Y子目錄的考題時,應首先檢查Y子目錄下是否有下一級文件,如沒有,可以直接用RD命令,若出錯,應首先檢查目錄名是否輸錯。
另外還有幾點注意:
假若這一題要求產生新的文件或目錄,而你將新文件名或目錄名輸錯,那隻好看你發現沒有,系統是不會提示的。
考題中除非有特別提示,做題時能用上面六個命令做到的,就不要使用其它命令,例如說使用DELTREE命令來刪除目錄或文件、使用XCOPY命令來復制文件等,否則可能這一題無分。最為重要的是考試時不可脫離考生目錄,切記。
第二大題:程序修改考試題。分數30分,僅一道題,需修改的源程序存放在MODI1.PRG文件中。二級各語言考試的程序修改題中共有三種題型:填空、填寫語句和改錯,但在以往二級FoxBASE+語言的幾次考試中只使用了改錯這一種題型,其餘兩種考試中出現的較少。
在做程序修改題時,首先要找出程序的修改點。這一點不難做到,因為在源程序中提供了幾行這樣的注釋行:「***found***」或「***FOUND***」,稱為標識行,用來標識修改點所在,指出修改點就是它下面幾行語句中的某一行,而且就我注意往往是它下面的第一行。有幾個標識行就有幾個修改點,一般來說源程序中有三處。找到修改點後,知道了哪一行語句需修改,再根據題意以及上下關系來修改就容易多了。如果是屬於改錯語句,大多數時候它所給出的命令動詞都是對的,需要修改的只是該命令根據上下文所應有的范圍、表達式以及條件不正確;少數時候正好反過來,僅需修改命令動詞。
最後當程序修改完畢以後,必須要運行該程序,判斷其運行結果是否符合題意:若正確,即可認為修改題滿分;若不正確,返回去再修改,直至正確。實在做不出來,考試評分系統也會檢測修改點,評估有幾個修改點正確,並按比例給分。
做程序修改題中有幾個注意點:
一般不允許增或刪行數(包括空行),修改點所在行只能修改或填寫一個或幾個地方。
不能刪除或移動標識行,否則將會直接影響考生這部分的成績。
對於運行結果,它可能在屏幕上直接有顯示,也可能沒有顯示,而是直接存放在結果輸出文件中,這時需要去打開該文件來檢查運行結果。
第三大題:程序設計考試題。分數40分,也是僅一道題,其部分源程序存放在文件PROG1.PRG中,不過多數時候這個所謂「部分」可以說沒有。程序設計題只有一種題型:編寫部分程序、過程或函數。
考試時,考生必須首先要理解試題,分析出試題要求做什麼,然後進行編程,最後必須運行程序以得到運行結果並存放到指定的結果輸出文件中,編程題的評分規則是判定最終的運行結果,按正確結果的多少按比例進行給分。
在近幾次的考試中,編程題都是對資料庫的操作題,而且越來越接近實際應用,不過非常簡單化。這些編程題中,總要要求有一個庫文件用來存放最終的結果,稱之為結果輸出文件。需要注意的是這個結果輸出文件有時在考題中已經提供,有時要求在程序中通過已有的庫文件產生,有時又要在編程前用CREATE命令建立。後兩種情況對於考生是很有利的,當你的程序無法得到最終的正確結果時,只要你產生了這個結果輸出文件就會得到一定的分數。
編程前,首先要做三件事:閱讀並分析試題、仔細瀏覽試題中所涉及的資料庫文件的庫結構和看一下庫記錄。其實由於上機考試是無紙無筆操作,光考記憶一下子是記不了這全部內容,因此這三件事是在編程過程中常常要做的。
接下來就是進行編程及調試。觀察近幾次考試的編程題,編出來的程序其主體多涉及到多重資料庫操作以及循環嵌套和分支嵌套,尤其是它們的混合使用,由於題目中往往是要求對庫記錄的數據進行修改,因而在程序中最常使用的命令是欄位替換命令REPLACE。
能獨立編寫程序非一日之功,雖有各種竅門,要想化為己用,還的靠大量的練習。
上機考試時要注意心理狀態和時間分配。心理上,即使做不到當作一次普通的上機練習,也起碼應把它當作一次普通的筆試類考試,只不過這個試卷是一台計算機罷了;時間上,前兩大題花20多分鍾足以,剩下時間用於編程題,如果直到最後10分鍾編程題還未編完,甚或還沒有頭緒,最好先返回去仔細檢查前兩大題,確保這兩題沒有錯誤,以便得到或接近60分,再回頭來編寫程序並運行使自己能夠得到部分的最終正確結果,例如就產生一個上文所說的結果輸出文件(無結果數據)也行,而不要去強求編完全部程序後再來產生一個有結果數據的結果輸出文件,正確與否還不得而知。
以上所有就是我分析幾年來全國計算機等級考試二級FoxBASE語言考試得到的一點心得,希望能給廣大考生應考提供有益的幫助。

閱讀全文

與國二考試調用編譯器運算選擇題相關的資料

熱點內容
android非阻塞socket 瀏覽:358
編譯系統概念 瀏覽:450
天眼通app能做什麼 瀏覽:555
魅族手機怎麼加密圖庫 瀏覽:8
rpa編譯器 瀏覽:570
車載雲伺服器記錄 瀏覽:738
四川金星壓縮機製造有限公司 瀏覽:53
移動平台圖片壓縮演算法 瀏覽:35
銀行項目java 瀏覽:569
怎樣將pdf轉換為ppt 瀏覽:595
純凈伺服器怎麼開服 瀏覽:286
比澤爾壓縮機如何換油 瀏覽:818
編譯鏈接如何生成exe 瀏覽:74
jre編譯運行環境 瀏覽:271
怎麼解壓鏡像系統 瀏覽:190
程序員求助國企 瀏覽:838
雲伺服器網址租用多少錢 瀏覽:942
行車記錄儀安卓版怎麼用 瀏覽:500
java是不是數字 瀏覽:183
php模擬瀏覽器環境 瀏覽:353