- 相關(guān)推薦
全國計算機二級c語(yǔ)言真題(精選8套)
親愛(ài)的考生們,全國計算機二級 C 語(yǔ)言真題演練開(kāi)啟。這不僅是一次考試模擬,更是提升編程能力的機遇。通過(guò)真題,熟悉考試題型與難度,查漏補缺,為成功通過(guò)考試奠定堅實(shí)基 H夢(mèng)頤且黃鷦謖嫣庵心ロ攏向計算機二級證書(shū)邁進(jìn)。
全國計算機二級c語(yǔ)言真題 1
1.C語(yǔ)言編譯程序的功能是( )。
A. 執行一個(gè)C語(yǔ)言編寫(xiě)的源程序
B. 把C源程序翻譯成ASCII碼
C. 把C源程序翻譯成機器代碼
D. 把C源程序與系統提供的庫函數組合成一個(gè)二進(jìn)制執行文件
【答案】C
【解析】編譯程序的功能是將“高級語(yǔ)言”翻譯為“機器語(yǔ)言”。每條C語(yǔ)言語(yǔ)句,經(jīng)過(guò)編譯最終都將轉換成二進(jìn)制的機器指令。答案選擇C選項。
2. 計算機高級語(yǔ)言程序的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是( )。
A. C語(yǔ)言程序僅可以編譯執行
B. C語(yǔ)言程序僅可以解釋執行
C. C語(yǔ)言程序既可以編譯執行,又可以解釋執行;
D. 以上說(shuō)法都不對
【答案】A
【解析】編譯執行是指程序執行前需要一個(gè)專(zhuān)門(mén)的編譯過(guò)程把程序編譯成機器語(yǔ)言的文件,再次運行時(shí)不需要重新翻譯,執行效率高;解釋執行是指每個(gè)語(yǔ)句都是執行的時(shí)候才翻譯,執行效率低。用C語(yǔ)言編寫(xiě)的程序必須經(jīng)過(guò)編譯器編譯后,轉換為二進(jìn)制的機器指令來(lái)運行。答案選擇A選項。
3. 以下敘述中錯誤的是( )。
A. C語(yǔ)言中的每條可執行語(yǔ)句和非執行語(yǔ)句最終都將被轉換成二進(jìn)制的機器指令
B. C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執行的二進(jìn)制機器指令文件
C. 用C語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中
D. C語(yǔ)言源程序經(jīng)編譯后生成后綴為的目標程序
【答案】A
【解析】A項錯誤,注釋語(yǔ)句不會(huì )被翻譯成二進(jìn)制的機器指令。C源程序經(jīng)過(guò)C編譯程序編譯之后生成后綴為的二進(jìn)制文件(稱(chēng)為目標文件),然后由“鏈接程序”(Link)的軟件把文件與各種庫函數連接起來(lái)生成一個(gè)后綴為的可執行文件。答案選擇A選項。
4. 以下敘述中錯誤的是()
A.C語(yǔ)言的可執行程序是由一系列機器指令構成的
B. 用C語(yǔ)言編寫(xiě)的源程序不能直接在計算機上運行
C. 通過(guò)編譯得到的二進(jìn)制目標程序需要連接才可以運行
D. 在沒(méi)有安裝C語(yǔ)言集成開(kāi)發(fā)環(huán)境的.機器上不能運行C源程序生成的exe文件
【答案】D
【解析】A項正確,C語(yǔ)言的可執行程序是由一系列機器指令組成的;BC項正確,用C語(yǔ)言編寫(xiě)的源程序必須經(jīng)過(guò)編譯,生成二進(jìn)制目標代碼,再經(jīng)過(guò)連接才能運行;D項錯誤,C語(yǔ)言經(jīng)過(guò)編譯鏈接后的二進(jìn)制目標代碼可以脫離C語(yǔ)言集成開(kāi)發(fā)環(huán)境獨立運行。答案選擇D選項。
5. 以下敘述正確的是( )。
A. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的二進(jìn)制文件
B. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的可執行文件
C. C編譯程序把文件后綴為的二進(jìn)制文件編譯成文件后綴為的可執行文件
D. 鏈接程序把文件后綴為.c的源程序文件鏈接成文件后綴為的可執行文件
【答案】A
【解析】C編譯程序把文件后綴為C的源程序文件編譯成文件后綴為的二進(jìn)制文件,鏈接將一個(gè)或多個(gè)目標文件與程序用到的庫文件連接起來(lái),形成一個(gè)可以在操作系統直接運行的執行程序,故排除B、C、D項,答案選擇A選項。
6. 以下敘述中正確的是(A. 在C語(yǔ)言程序中,main函數必須放在其他函數的最前面
B. 每個(gè)后綴為.c的C語(yǔ)言源程序都可以單獨進(jìn)行編譯
C. 在C語(yǔ)言程序中,只有main函數才可以單獨進(jìn)行編譯
D. 每個(gè)后綴為.c的C語(yǔ)言源程序都應該包含一個(gè)main函數
【答案】B
【解析】main函數可以在程序的任何位置。每一個(gè)可執行的C程序都必須有一個(gè)且只能有一個(gè)主函數。后綴名為.c的C語(yǔ)言源程序都可以單獨進(jìn)行編譯。main函數只是讓執行程序的系統知道該從哪里開(kāi)始執行程序(從主函數處執行),其他有關(guān)這個(gè)程序的子函數是通過(guò)函數調用來(lái)實(shí)現其功能(不需main函數)。答案選擇B選項。
7. 以下敘述中錯誤的是( )。
A. C語(yǔ)言編寫(xiě)的函數源程序,其文件名后綴可以是.c
B. C語(yǔ)言編寫(xiě)的函數都可以作為一個(gè)獨立的源程序文件
C. C語(yǔ)言編寫(xiě)的每個(gè)函數都可以進(jìn)行獨立的編譯并執行;
D. 一個(gè)C語(yǔ)言程序只能有一個(gè)主函數
【答案】C
【解析】C源程序經(jīng)過(guò)C編譯程序編譯之后生成一個(gè)后綴為的二進(jìn)制文件(稱(chēng)為目標文件),然后由稱(chēng)為“連接程序”(Link)的軟件,把此文件與C語(yǔ)言提供的各種庫函數連接起來(lái)生成一個(gè)后綴為的可執行文件。只有含有main函數的經(jīng)過(guò)編譯鏈接才能執行。答案選擇C選項。
8. 以下敘述中錯誤的是(A. 一個(gè)C程序可以包含多個(gè)不同名的函數
B. 一個(gè)C程序只能有一個(gè)主函數
C. C程序在書(shū)寫(xiě)時(shí),有嚴格的縮進(jìn)要求,否則不能編譯通過(guò)
D. C程序的主函數必須用main作為函數名
【答案】C
【解析】一個(gè)C程序有且只有一個(gè)主函數main。一個(gè)C程序可以包含多個(gè)不同名字的子函數。C程序在書(shū)寫(xiě)時(shí)沒(méi)有嚴格的縮進(jìn)要求。答案選擇C選項。
9. 以下敘述中正確的是( )。
A. C語(yǔ)言規定必須用main作為主函數名,程序將從此開(kāi)始執行
B. 可以在程序中由用戶(hù)指定任意一個(gè)函數作為主函數,程序將從此開(kāi)始執行
C. C語(yǔ)言程序將從源程序中第一個(gè)函數開(kāi)始執行;
D. main的各種大小寫(xiě)拼寫(xiě)形式都可以作為主函數名,如:MAIN,Main等
【答案】A
【解析】用戶(hù)不能指定某函數為主函數,C語(yǔ)言規定,程序從main函數開(kāi)始執行,從main函數退出,C語(yǔ)言函數名區別大小寫(xiě)。答案選擇A選項。
10. 下列敘述中錯誤的是( )。
A. C程序可以由一個(gè)或多個(gè)函數組成
B. C程序可以由多個(gè)程序文件組成
C. 一個(gè)C語(yǔ)言程序只能實(shí)現一種算法
D. 一個(gè)C函數可以單獨作為一個(gè)C程序文件存在
【答案】C
【解析】一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數,所以一個(gè)C語(yǔ)言程序可以實(shí)現多種算法,答案選擇C選項。
全國計算機二級c語(yǔ)言真題 2
1.下面對軟件特點(diǎn)描述不正確的是( )。
A. 軟件是一種邏輯實(shí)體,具有抽象性
B. 軟件開(kāi)發(fā)、運行對計算機系統具有依賴(lài)性
C. 軟件開(kāi)發(fā)涉及軟件知識產(chǎn)權、法律及心理等社會(huì )因素
D. 軟件運行存在磨損和老化問(wèn)題
【答案】D
【解析】軟件具有以下特點(diǎn):①軟件具有抽象性,是一種邏輯實(shí)體;②軟件沒(méi)有明顯的制作過(guò)程;③軟件在使用期間不存在磨損、老化問(wèn)題,④對硬件和環(huán)境具有依賴(lài)性;⑤軟件復雜性高,成本昂貴;⑥軟件開(kāi)發(fā)涉及諸多的社會(huì )因素。D項描述是硬件存在的問(wèn)題。答案選擇D選項。
2. 下面描述不屬于軟件特點(diǎn)的是( )。
A. 軟件是一種邏輯實(shí)體,具有抽象性
B. 軟件在使用中不存在磨損、老化問(wèn)題
C. 軟件復雜性高
D. 軟件使用不涉及知識產(chǎn)權
【答案】D
【解析】軟件具有以下特點(diǎn):①軟件是一種邏輯實(shí)體,具有抽象性;②軟件沒(méi)有明顯的制作過(guò)程,③軟件在使用期間不存在磨損、老化問(wèn)題;④軟件對硬件和環(huán)境具有依賴(lài)性;⑤軟件復雜性高,成本昂貴,⑥軟件開(kāi)發(fā)涉及諸多的社會(huì )因素,如知識產(chǎn)權等。答案選擇D選項。
3. 下面對軟件特點(diǎn)描述錯誤的是()
A.軟件沒(méi)有明顯的制作過(guò)程
B. 軟件是一種邏輯實(shí)體,不是物理實(shí)體,具有抽象性
C. 軟件的開(kāi)發(fā)、運行對計算機系統具有依賴(lài)性
D. 軟件在使用中存在磨損、老化問(wèn)題
【答案】D
【解析】軟件的特點(diǎn)有:①具有抽象性,是邏輯實(shí)體;②沒(méi)有明顯的制作過(guò)程;③在使用期間不存在磨損、老化問(wèn)題;④對硬件和環(huán)境具有依賴(lài)性;⑤復雜性高,成本昂貴;⑥開(kāi)發(fā)涉及諸多的社會(huì )因素。答案選擇D選項。
4. 軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于系統軟件的是( )。
A. 編輯軟件
B. 操作系統
C. 教務(wù)管理系統
D. 瀏覽器
【答案】B
【解析】系統軟件是控制和協(xié)調計算機及外部設備,支持應用軟件開(kāi)發(fā)和運行的軟件,操作系統是系統軟件;支撐軟件是支撐各種軟件的開(kāi)發(fā)與維護的軟件,又稱(chēng)為軟件開(kāi)發(fā)環(huán)境,瀏覽器屬于支撐軟件;應用軟件是用戶(hù)可以使用的各種程序設計語(yǔ)言,以及用各種程序設計語(yǔ)言編制的應用程序的集合,編輯軟件、教務(wù)管理軟件屬于應用軟件。答案選擇B選項。
5. 軟件按功能可以分為應用軟件、系統軟件和支撐軟件(或工具軟件),下面屬于應用軟件的是( )。
A. 學(xué)生成績(jì)管理系統
B. C語(yǔ)言編譯程序
C. UNIX操作系統
D. 數據庫管理系統
【答案】A
【解析】應用軟件是為解決特定領(lǐng)域的應用而開(kāi)發(fā)的軟件,如事務(wù)處理軟件,工程與科學(xué)計算軟件,學(xué)生成績(jì)管理系統、教務(wù)管理系統、瀏覽器、編輯軟件等應用性質(zhì)不同的各種軟件。系統軟件是計算機管理自身資源,提高計算機使用效率并服務(wù)于其他程序的軟件,如操作系統,編譯程序,匯編程序,數據庫管理系統等。支撐軟件是介于系統軟件和應用軟件之間,協(xié)助用戶(hù)開(kāi)發(fā)軟件的工具性軟件,包括輔助和支持開(kāi)發(fā)和維護應用軟件的工具軟件,如需求分析工具軟件,設計工具軟件,編碼工具軟件,測試工具軟件,維護工具軟件等。答案選擇A選項。
6. 數據庫管理系統是( )。
A. 操作系統的一部分
B. 在操作系統支持下的系統軟件
C. 一種編譯系統
D. 一種操作系統
【答案】B
【解析】系統軟件主要包括:①操作系統軟件;②各種語(yǔ)言的解釋程序和編譯程序;③各種服務(wù)性程序;④各種數據庫管理系統。數據庫管理系統是一種系統軟件,負責數據庫中的數據組織、數組操縱、數據維護、控制和保護以及數據服務(wù)等。答案選擇B選項。
7. 數據庫管理系統是( )。
A. 操作系統的一部分
B. 在操作系統支持下的'系統軟件
C. 一種編譯系統
D. 一種通信軟件系統
【答案】B
【解析】系統軟件主要包括:①操作系統軟件;②各種語(yǔ)言的解釋程序和編譯程序;③各種服務(wù)性程序;④各種數據庫管理系統。數據庫管理系統是一種系統軟件,負責數據庫中的數據組織、數組操縱、數據維護、控制和保護以及數據服務(wù)等。答案選擇B選項。
8. 下列選項中,不屬于數據管理員(DBA)職責的是( )。
A. 數據庫維護
B. 數據庫設計
C. 改善系統性能,提高系統效率
D. 數據類(lèi)型轉換
【答案】D
【解析】數據庫管理員對數據庫進(jìn)行規劃、設計、維護、監視等,其主要工作有:①數據庫設計,主要是對數據模式進(jìn)行設計,②數據庫維護,對數據庫中的數據安全性、完整性、并發(fā)控制及系統恢復、數據定期轉儲等進(jìn)行實(shí)施與維護;③改善系統性能,不斷調整內部結構,提高系統效率。答案選擇D選項。
9. 數據庫系統的核心是( )。
A. 數據模型
B. 軟件開(kāi)發(fā)
C. 數據庫設計
D. 數據庫管理系統
【答案】D
【解析】數據庫系統包括四個(gè)部分:數據庫、數據庫管理系統、數據庫應用程序、數據庫管理員。其中DBMS是為數據庫的建立、使用和維護而配置的軟件,是數據庫系統的核心。答案選擇D選項。
10. 下列敘述中正確的是( )。
A. 數據庫系統是一個(gè)獨立的系統,不需要操作系統的支持
B. 數據庫技術(shù)的根本目標是要解決數據的共享問(wèn)題
C. 數據庫管理系統就是數據庫系統
D. 數據庫系統由數據庫應用系統、數據庫和數據庫管理系統組成。
【答案】B
【解析】A項錯誤,數據庫需要調用操作系統的接口,需要操作系統的支持;C項錯誤,數據庫管理系統(DBMS)是數據庫系統的核心,負責數據庫中的數據組織、數據操作、數據維護、控制及保護和數據服務(wù)等;D項錯誤,數據庫應用系統是數據庫系統再加上應用軟件及應用界面這三者所組成,具體包括:數據庫、數據庫管理系統、數據庫管理員、硬件平臺、軟件平臺、應用軟件、應用界面。答案選擇B選項。
全國計算機二級c語(yǔ)言真題 3
1.下列敘述中正確的是( )。
A. 所有數據結構必須有根結點(diǎn)
B. 所有數據結構必須有終端結點(diǎn)(即葉子結點(diǎn))
C. 只有一個(gè)根結點(diǎn),且只有一個(gè)葉子結點(diǎn)的數據結構一定是線(xiàn)性結構
D. 沒(méi)有根結點(diǎn)或沒(méi)有葉子結點(diǎn)的數據結構一定是非線(xiàn)性結構
【答案】D
【解析】D項正確,線(xiàn)性結構的特點(diǎn)是:①集合中必存在“第一個(gè)元素"且惟一②集合中必存在“最后一個(gè)元素”且惟一;③除最后一個(gè)元素外,其他數據元素均有惟一的“后繼”,④除第一個(gè)元素外,其他數據元素均有惟一的“前驅”。所以沒(méi)有根結點(diǎn)或沒(méi)有葉子結點(diǎn)的數據結構一定是非線(xiàn)性結構。AB兩項錯誤,不是所有數據結構都必須有根結點(diǎn)和葉子結點(diǎn);C項錯誤,數據結構中若有中間結點(diǎn)不滿(mǎn)足只有一個(gè)前件或者后件的條件,就不是線(xiàn)性結構。答案選擇D選項。
2. 以下敘述中錯誤的是( )。
A. C語(yǔ)言中的每條可執行語(yǔ)句和非執行語(yǔ)句最終都將被轉換成二進(jìn)制的機器指令
B. C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執行的二進(jìn)制機器指令文件
C. 用C語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中
D. C語(yǔ)言源程序經(jīng)編譯后生成后綴為的`目標程序
【答案】A
【解析】A項錯誤,注釋語(yǔ)句不會(huì )被翻譯成二進(jìn)制的機器指令。C源程序經(jīng)過(guò)C編譯程序編譯之后生成后綴為的二進(jìn)制文件(稱(chēng)為目標文件),然后由“鏈接程序”(Link)的軟件把文件與各種庫函數連接起來(lái)生成一個(gè)后綴為的可執行文件。答案選擇A選項。
3. C語(yǔ)言主要是借助以下( )功能來(lái)實(shí)現程序模塊化的。
A. 定義函數
B. 定義常量和外部變量
C. 三種基本結構語(yǔ)句
D. 豐富的數據類(lèi)型
【答案】A
【解析】C程序的模塊化主要通過(guò)函數來(lái)實(shí)現。C語(yǔ)言允許對函數單獨進(jìn)行編譯,從而可以實(shí)現模塊化。答案選擇A選項。
4. 有以下程序段:
char ch;
int k;
ch='a';
k=12;
print("%c,%d,",h,ch,k);
printf("k=%d",k);
已知字符a的ASCII碼十進(jìn)制值為97,則執行上述程序段后輸出的結果是( )。
A. 因變量類(lèi)型與格式描述符的類(lèi)型不匹配輸出無(wú)定值
B. 輸出項與格式描述符個(gè)數不符,輸出為零值或不定值
C.a,97,12k=12
D. a,97,k=12
【答案】D
【解析】字符變量的值是該字符的ASCII碼值,可以參與整型變量所允許的任何運算。"ch='a",%c表示以字符格式輸出ch的值,所以輸出為a;%d表示以十進(jìn)制代碼的形式輸出ch的值,為97;k沒(méi)有對應的輸出格式,不輸出。在第二個(gè)語(yǔ)句中,首先輸出"k=",然后以十進(jìn)制代碼輸出k的值,為12。答案選擇D選項。
5. 下列敘述中正確的是( )。
A. 棧是“先進(jìn)先出”的線(xiàn)性表
B. 隊列是“先進(jìn)后出"的線(xiàn)性表
C. 循環(huán)隊列是非線(xiàn)性結構
D. 有序線(xiàn)性表既可以采用順序存儲結構,也可以采用鏈式存儲結構
【答案】D
【解析】有序的線(xiàn)性表既可采用順序存儲結構,也可以采用鏈式存儲結構。A項錯誤,棧是“先進(jìn)后出"的線(xiàn)性表B項錯誤,隊列是“先進(jìn)先出"的線(xiàn)性表;C項錯誤,循環(huán)隊列是線(xiàn)性結構的,有序的線(xiàn)性表既可采用順序存儲結構,也可采用鏈式存儲結構。
答案選擇D選項。
6. 某二叉樹(shù)的中序序列為DCBAEFG,后序序列為DCBGFEA,則該二叉樹(shù)的深度(根結點(diǎn)在第1層)為( )。
A. 5
B. 40
C.3
D. 2
【答案】B
【解析】二叉樹(shù)的后序序列為DCBGFEA,則A為根結點(diǎn)。中序序列為DCBAEFG,則DCB為左子樹(shù)結點(diǎn),EFG為右子樹(shù)結點(diǎn)。同理B為C父結點(diǎn),C為D父結點(diǎn)。根據分析,可畫(huà)出左子樹(shù),同理E為F父結點(diǎn),F為G父結點(diǎn)。根據分析,可畫(huà)出右子樹(shù),故二叉樹(shù)深度為4層。答案選擇B選項。
7. 設有定義:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,則以下賦值語(yǔ)句中正確的是( )。
A. s[0]=m[1];
B. s=m;
C.s.n=m.n;
D. s[2].x=m[2].x;
【答案】A
【解析】定義了結構體類(lèi)型數組s,長(cháng)度為2,結構體類(lèi)型數組m,長(cháng)度為2,并對數組m進(jìn)行了初始化。同類(lèi)型的結構體可以直接用變量名實(shí)現賦值,A項正確;數組名為數組首地址,地址常量之間不可以相互賦值,B項錯誤;數組名為地址常量不是結構體變量,不能引用成員,C項錯誤;s[2]與m[2]數組越界,D項錯誤。答案選擇A選項。
8. 關(guān)于C語(yǔ)言標識符,以下敘述錯誤的是( )。
A. 標識符可全部由數字組成
B. 標識符可全部由下劃線(xiàn)組成
C. 標識符可全部由小寫(xiě)字母組成
D. 標識符可全部由大寫(xiě)字母組成
【答案】A
【解析】C語(yǔ)言標識符只能由字母、數字、下劃線(xiàn)構成,且只能以字母、下劃線(xiàn)開(kāi)頭,故答案選擇A選項。
9. 以下程序段中的變量已定義為int類(lèi)型,則
sum=pAd=5;
pAd=sum++,++pAd,pAd++;
printf("%d",pAd);
程序段的輸出結果是( )。
A. 6
B. 4
C. 5
D. 7
【答案】D
【解析】自增和自減運算符的兩種用法:前置運算,運算符放在變量之前,規則是先使變量的值增(或減)1,然后以變化后表達式的值參與其他運算;后置運算,運算符放在變量之后,規則是變量先參與其他運算,然后再使變量的值增(或減)1。執行pAd=sum++,sum++是后置自增,執行完后,pAd=5,sum=6。++pAd和pAd++語(yǔ)句中沒(méi)有其他運算,即效果相同,pAd分別加1,兩句執行完后,pAd7。答案選擇D選項。
10. 設循環(huán)隊列為Q(1:m),其初始狀態(tài)為front=rear=m。經(jīng)過(guò)一系列入隊與退隊運算后,front=20,rear=15,F要在該循環(huán)隊列中尋找最小值的元素,最壞情況下需要比較的次數為( )。
A. 5
B. 6
C.m-5
D. m-6
【答案】D
【解析】循環(huán)隊列是隊列的一種順序存儲結構,用隊尾指針rear指向隊列中的隊尾元素,用隊首指針指向隊首元素的前一個(gè)位置,因此,從隊首指針front指向的后一個(gè)位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素,隊列初始狀態(tài)為front=rear=m,當front=20,rear=15時(shí),隊列中有m-20+15=m-5個(gè)元素,最壞情況下需要比較次數為m-6次。答案選擇D選項。
全國計算機二級c語(yǔ)言真題 4
1.若有以下數組說(shuō)明,則i=10;a[a[i]]元素數值是(C )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5
先算a[a[i]]內層的a[i],由于i=10,因此a[i]即a[10].
a[10]對應下面數組中的元素為9. 因此a[a[i]]即為a[9]
a[9]對應下面數組中的元素為6. 因此a[9]即為6
2.若有說(shuō)明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數組a的第一維的大小為: ( B )
A、2
B、3
C、4
D、無(wú)確定值
5 7
D、3 6 9
二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個(gè)大括號,數組就有幾行
3.對二維數組的正確定義是(C )
詳見(jiàn)教材P149~152,二維數組的定義、初始化
類(lèi)型符 數組名 [常量表達式][常量表達式]
二維數組可以看做是矩陣
類(lèi)型符是指數組中數組元素的類(lèi)型;數組名要符合標識符命名規則;第一個(gè)常量表達式是指數組的行數;第二個(gè)常量表達式是指數組的列數;常量表達式的值只能是整數,不可以是變量,而且從1開(kāi)始計數。
一維數組初始化時(shí)可以省略數組長(cháng)度
二維數組初始化時(shí)可以省略行數,但不能省略列數
選項A,B,都省略了列數
選項D,不符合二維數組定義的一般形式,行、列常量表達式應該放在不同的[]中
A、int a[ ][ ]={1,2,3,4,5,6};
B、int a[2] []={1,2,3,4,5,6};
C、int a[ ] [3]={1,2,3,4,5,6};
D、int a[2,3]={1,2,3,4,5,6};
4.已知int a[3][4];則對數組元素引用正確的是__C___
A、a[2][4]
B、a[1,3]
C、a[2][0]
D、a(2)(1)
詳見(jiàn)教材P150,數組元素的引用
數組名[下標] [下標]
引用數組元素時(shí),[ ]中的下標為邏輯地址下標,只能為整數,可以為變量,且從0開(kāi)始計數
第一個(gè)[下標]表示行邏輯地址下標,第二個(gè)[下標]表示列邏輯地址下標。
本題圖示詳見(jiàn)P149圖6.7
因此a的行邏輯地址范圍0~2;a的列邏輯地址范圍0~3;
選項A,列邏輯地址下標超過(guò)范圍
選項B,D,的引用形式不正確。
5.C語(yǔ)言中函數返回值的類(lèi)型是由 A 決定的
A、函數定義時(shí)指定的類(lèi)型
B、 return語(yǔ)句中的表達式類(lèi)型
C、 調用該函數時(shí)的實(shí)參的數據類(lèi)型
D、形參的數據類(lèi)型
6. 在C語(yǔ)言中,函數的數據類(lèi)型是指(A )
A、 函數返回值的數據類(lèi)型
B、 函數形參的數據類(lèi)型
C、 調用該函數時(shí)的實(shí)參的數據類(lèi)型
D、任意指定的數據類(lèi)型
7.在函數調用時(shí),以下說(shuō)法正確的是( B )
A、函數調用后必須帶回返回值
B、實(shí)際參數和形式參數可以同名
C、函數間的數據傳遞不可以使用全局變量
D、主調函數和被調函數總是在同一個(gè)文件里
8. 在C語(yǔ)言中,表示靜態(tài)存儲類(lèi)別的關(guān)鍵字是: ( C )
A、 auto
B、 register
C、static
D、extern
9.未指定存儲類(lèi)別的變量,其隱含的存儲類(lèi)別為(A )。
A、auto
B、static
C、extern
D、register
10. 若有以下說(shuō)明語(yǔ)句:
struct student
{ int num;
char name[ ];
float score;
}stu;
則下面的敘述不正確的是: (D )
A、 struct是結構體類(lèi)型的關(guān)鍵字
B、 struct student 是用戶(hù)定義的結構體類(lèi)型
C、 num, score都是結構體成員名
D、 stu是用戶(hù)定義的結構體類(lèi)型名
11.若有以下說(shuō)明語(yǔ)句:
struct date
{ int year;
int month;
int day;
}brithday;
則下面的敘述不正確的是__C___.
A、 struct是聲明結構體類(lèi)型時(shí)用的關(guān)鍵字
B、 struct date 是用戶(hù)定義的結構體類(lèi)型名
C、 brithday是用戶(hù)定義的結構體類(lèi)型名
D、year,day 都是結構體成員名
12. 以下對結構變量stul中成員age的非法引用是 B
struct student
{ int age;
int num;
}stu1,*p;
p=&stu1;
A、 stu1.age
B、 student.age
C、 p->age
D、(*p).age
13.設有如下定義:
struck sk
{ int a;
float b;
}data;
int *p;
若要使P指向data中的a域,正確的賦值語(yǔ)句是 C
A、 p=&a;
B、 p=datA、a;
C、p=&datA、a;
D、*p=datA、a;
14.設有以下說(shuō)明語(yǔ)句:
typedef struct stu
{ int a;
float b;
} stutype;
則下面敘述中錯誤的是( D )。
A、struct是結構類(lèi)型的關(guān)鍵字
B、struct stu是用戶(hù)定義的結構類(lèi)型
C、a和b都是結構成員名
D、stutype是用戶(hù)定義的`結構體變量名
15.語(yǔ)句int *p;說(shuō)明了 C 。
A、p是指向一維數組的指針
B、p是指向函數的指針,該函數返回一int型數據
C、p是指向int型數據的指針
D、p是函數名,該函數返回一指向int型數據的指針
16.C語(yǔ)言中,關(guān)系表達式和邏輯表達式的值是( B ) 。
A、0
B、 0或1
C、 1
D、‘T’或’F’
17. 下面( D )表達式的值為4.
A、 11/3
B、 11.0/3
C、 (float)11/3
D、 (int)(11.0/3+0.5)
【解析】(1)相同數據類(lèi)型的元素進(jìn)行數學(xué)運算(+、-、*、/)得到結果還保持原數據類(lèi)型。
(2)不同數據類(lèi)型的元素進(jìn)行數學(xué)運算,先要統一數據類(lèi)型,統一的標準是低精度類(lèi)型轉換為高精度的數據類(lèi)型。
選項A,11與3為兩個(gè)整數,11/3結果的數據類(lèi)型也應為整數,因此將3.666666的小數部分全部舍掉,僅保留整數,因此11/3=3.
選項B,11.0為實(shí)數,3為整數,因此首先要統一數據類(lèi)型,將整型數據3轉換為3.0,轉換后數據類(lèi)型統一為實(shí)型數據,選項B變?yōu)?1.0/3.0,結果的數據類(lèi)型也應為實(shí)型數據,因此選項B 11.0/3=3.666666
選項C,先將整數11強制類(lèi)型轉換,轉換為實(shí)型11.0,因此選項C變?yōu)?1.0/3,其后計算過(guò)程、結果與選項B同
選項D,首先計算11.0/3,其計算過(guò)程、結果與選項B同,得到3.666666;再計算3.666666+0.5=4.166666,最后將4.166666強制類(lèi)型轉換為整型,即將其小數部分全部舍掉,結果為4
18.設整型變量 a=2,則執行下列語(yǔ)句后,浮點(diǎn)型變量b的值不為0.5的是( B )
A、b=1.0/a
B、b=(float)(1/A、
C、b=1/(float)a
D、b=1/(a*1.0)
19. 若“int n; float f=13.8;”,則執行“n=(int)f%3”后,n的值是(A)
A、1
B、4
C、4.333333
D、4.6
【解析】“(int)f“表示將f中的值強制類(lèi)型轉換為整型,即將13.8的小數部分舍掉,轉換為13;然后計算13%3,結果為1,再將結果賦給變量n,因此n的值為1
20. 以下對一維數組a的正確說(shuō)明是: D
A、char a(10);
B、 int a[];
C、int k=5,a[k];
D、char a[3]={‘a(chǎn)’,’b’,’c’};
【解析】詳見(jiàn)教材P143~144,一維數組的定義、初始化
類(lèi)型符 數組名 [常量表達式]
類(lèi)型符是指數組中數組元素的類(lèi)型;數組名要符合標識符命名規則;常量表達式是指數組的長(cháng)度(數組中包含元素的個(gè)數),其值只能是整數,不可以是變量,而且從1開(kāi)始計數。
選項A,常量表達式只能放在中括號 [ ]中
選項B,只有在對數組初始化(即賦值)的時(shí)候才可以省略數組的長(cháng)度,B中并未對a進(jìn)行初始化。
選項C,常量表達式不能為變量。
21.以下能對一維數組a進(jìn)行初始化的語(yǔ)句是:( C )
A、int a[5]=(0,1,2,3,4,)
B、 inta(5)={}
C、 int a[3]={0,1,2}
D、 int a{5}={10*1}
【解析】詳見(jiàn)教材P145,一維數組的定義、初始化
選項B,D,常量表達式只能放在中括號 [ ]中
選項A,數組可以看做是若干個(gè)相同數據類(lèi)型元素的有序集合,因此以集合的形式對其初始化,使用{ }對其初始化,選項A用了( ).
22.在C語(yǔ)言中對一維整型數組的正確定義為 D 。
A、int a(10);
B、int n=10,a[n];
C、int n;a[n];
D、#define N 10
23、已知:int a[10]; 則對a數組元素的正確引用是( D )。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
【解析】詳見(jiàn)教材P144,數組元素的引用
數組名[下標]
引用數組元素時(shí),[ ]中的下標為邏輯地址下標,只能為整數,可以為變量,且從0開(kāi)始計數
int a[10]表示定義了一個(gè)包含10個(gè)整型數據的數組a,數組元素的邏輯地址下標范圍為0~9,即a[0] 表示組中第1個(gè)元素; a[1] 表示組中第2個(gè)元素; a[2] 表示組中第3個(gè)元素; ......;a[9] 表示組中第10個(gè)元素.
選項A,超過(guò)了數組a的邏輯地址下標范圍;
選項B,邏輯地址下標只能為整數
選項C,邏輯地址下標只能放在[ ]中
24.若有以下數組說(shuō)明,則i=10;a[a[i]]元素數值是(C )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5
【解析】先算a[a[i]]內層的a[i],由于i=10,因此a[i]即a[10].
a[10]對應下面數組中的元素為9. 因此a[a[i]]即為a[9]
a[9]對應下面數組中的元素為6. 因此a[9]即為6
25.若有說(shuō)明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數組a的第一維的大小為: ( B )
A、2
B、3
C、4
D、無(wú)確定值
【解析】二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個(gè)大括號,數組就有幾行
26.(A )是構成C語(yǔ)言程序的基本單位。
A、函數
B、過(guò)程
C、子程序
D、子例程
27.C語(yǔ)言程序從 C 開(kāi)始執行。
A、 程序中第一條可執行語(yǔ)句
B、 程序中第一個(gè)函數
C、 程序中的main函數
D、包含文件中的第一個(gè)函數
28、以下說(shuō)法中正確的是( C )。
A、C語(yǔ)言程序總是從第一個(gè)定義的函數開(kāi)始執行
B、在C語(yǔ)言程序中,要調用的函數必須在main( )函數中定義
C、C語(yǔ)言程序總是從main( )函數開(kāi)始執行;
D、C語(yǔ)言程序中的main( )函數必須放在程序的開(kāi)始部分
29.下列關(guān)于C語(yǔ)言的說(shuō)法錯誤的是( B ) 。
A、 C程序的工作過(guò)程是編輯、編譯、連接、運行
B、 C語(yǔ)言不區分大小寫(xiě)。
C、 C程序的三種基本結構是順序、選擇、循環(huán)
D、C程序從main函數開(kāi)始執行
30.下列正確的標識符是(C )。
A、-a1
B、a[i]
C、a2_i
D、int t
5~8題為相同類(lèi)型題
考點(diǎn):標識符的命名規則
只能由字母、數字、下劃線(xiàn)構成
數字不能作為標識符的開(kāi)頭
關(guān)鍵字不能作為標識符
選項A中的“-” ,選項B中“[”與“]”不滿(mǎn)足(1);選項D中的int為關(guān)鍵字,不滿(mǎn)足(3)
31.下列C語(yǔ)言用戶(hù)標識符中合法的是(B )。
A、3ax
B、x
C、case
D、-e2 E)union
選項A中的標識符以數字開(kāi)頭不滿(mǎn)足(2);選項C,E均為為關(guān)鍵字,不滿(mǎn)足(3);選項D中的“-”不滿(mǎn)足(1);
32.下列四組選項中,正確的C語(yǔ)言標識符是( C )。
A、 %x
B、a+b
C、a123
D、123
選項A中的“%” ,選項B中“+”不滿(mǎn)足(1);選項D中的標識符以數字開(kāi)頭不滿(mǎn)足(2)
33、下列四組字符串中都可以用作C語(yǔ)言程序中的標識符的是( A)。
A、print _3d db8 aBc
B、Iam one_half start$it 3pai
C、str_1 Cpp pow while
D、Pxq My->book line# His.age
選項B中的“”,”$” ,選項D中“>”,”#”,”.”,”-”不滿(mǎn)足(1);選項C中的while為關(guān)鍵字,不滿(mǎn)足(3)
34.C語(yǔ)言中的簡(jiǎn)單數據類(lèi)型包括(D )。
A、整型、實(shí)型、邏輯型
B、整型、實(shí)型、邏輯型、字符型
C、整型、字符型、邏輯型
D、整型、實(shí)型、字符型
35.在C語(yǔ)言程序中,表達式5%2的結果是 C 。
A、2.5
B、2
C、1
D、3
%為求余運算符,該運算符只能對整型數據進(jìn)行運算。且符號與被模數相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;
/為求商運算符,該運算符能夠對整型、字符、浮點(diǎn)等類(lèi)型的數據進(jìn)行運算,5/2=2
全國計算機二級c語(yǔ)言真題 5
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)
。1)下列數據結構中,屬于非線(xiàn)性結構的是
A.循環(huán)隊列
B.帶鏈隊列
C.二叉樹(shù)
D.帶鏈棧
。2)下列數據結果中,能夠按照“先進(jìn)后出”原則存取數據的是
A.循環(huán)隊列
B.棧
C.隊列
D.二叉樹(shù)
。3)對于循環(huán)隊列,下列敘述中正確的是
A.隊頭指針是固定不變的
B.隊頭指針一定大于隊尾指針
C.隊頭指針一定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
。4)算法的空間復雜度是指
A.算法在執行過(guò)程中所需要的計算機存儲空間
B.算法所處理的數據量
C.算法程序中的語(yǔ)句或指令條數
D.算法在執行過(guò)程中所需要的臨時(shí)工作單元數
。5)軟件設計中劃分模塊的一個(gè)準則是
A.低內聚低耦合
B.高內聚低耦合
C.低內聚高耦合
D. 高內聚高耦合
。6)下列選項中不屬于結構化程序設計原則的是
A.自頂向下
B.可封裝
C.模塊化
D. 逐步求精
。7)軟件詳細設計產(chǎn)生的圖如下:
該圖是
A.N-S圖
B.PAD圖
C.程序流程圖
D. E-R圖
。8)數據庫管理系統是
A.操作系統的一部分
B.在操作系統支持下的系統軟件
C.一種編譯系統
D. 一種操作系統
。9)在E-R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是
A.橢圓圖
B.矩形
C.菱形
D. 三角形
。10)有三個(gè)關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為
A.選擇
B.投影
C.交
D.并
。11)以下敘述中正確的是
A.程序設計的任務(wù)就是編寫(xiě)程序代碼并上機調試
B.程序設計的任務(wù)就是確定所用數據結構
C.程序設計的任務(wù)就是確定所用算法
D.以上三種說(shuō)法都不完整
。12)以下選項中,能用作用戶(hù)標識符的是
A.void
B.8_8
C._0_
D.unsigned
。13)閱讀以下程序
#include
main()
{ int case; float printF;
printf(“請輸入2個(gè)數:”);
scanf(“%d %f”,&case,&pjrintF);
printf(“%d %f ”,case,printF);
}
該程序編譯時(shí)產(chǎn)生錯誤,其出錯原因是
A.定義語(yǔ)句出錯,case是關(guān)鍵字,不能用作用戶(hù)自定義標識符
B.定義語(yǔ)句出錯,printF不能用作用戶(hù)自定義標識符
C.定義語(yǔ)句無(wú)錯,scanf不能作為輸入函數使用
D.定義語(yǔ)句無(wú)錯,printf不能輸出case的值
。14)表達式:(int)((double)9/2)-(9)%2的值是
A.0
B.3
C.4
D.5
。15)若有定義語(yǔ)句:int x=10;,則表達式x-=x+x的值為
A.-20
B.-10
C.0
D.10
。16)有以下程序
#include
main()
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d ”,a=2*b);
}
程序運行后的.輸出結果是
A.0,0
B.1,0
C.3,2
D.1,2
17)設有定義:int a=1,b=2,c=3;,以下語(yǔ)句中執行效果與其它三個(gè)不同的是
A.if(a>B. c=a,a=b,b=c;
B.if(a>B. {c=a,a=b,b=c;}
C.if(a>B. c=a;a=b;b=c;
D.if(a>B. {c=a;a=b;b=c;}
。18)有以下程序
#include
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d ”,C.;
}
程序運行后的輸出結果是
A.3
B.5
C.7
D.9
。19)以下程序段中,與語(yǔ)句:k=a>b?(b>c?1:0):0;功能相同的是
A.if((a>b)&&(b>C.) k=1;
else k=0;
B.if((a>b)||(b>C. k=1;
else k=0;
C.if(a<=B. k=0;
else if(b<=C.k=1;
D.if(a>B. k=1;
else if(b>C.k=1;
else k=0;
20)有以下程序
#include
main()
{ char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=’a’&&s[i]<=’z’) n++;
printf(“%d ”,n);
}
程序運行后的輸出結果是
A.0
B.2
C.3
D.5
。21)有以下程序
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d ”,k,n);
}
程序運行后的輸出結果是
A.0 2
B.1 3
C.5 7
D.1 2
。22)有以下定義語(yǔ)句,編譯時(shí)會(huì )出現編譯錯誤的是
A.char a=’a’;
B.char a=’ ’;
C.char a=’aa’;
D.char a=’x2d’;
。23)有以下程序
#include
main()
{ char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf(“%c,%d ”,c1,c2);
}
已知字母A的ASCII碼為65,程序運行后的輸出結果是
A.E,68
B.D,69
C.E,D
D.輸出無(wú)定值
。24)有以下程序
#include
void fun(int p)
{ int d=2;
p=d++; printf(“%d”,p);}
main()
{ int a=1;
fun(a); printf(“%d ”,a);}
程序運行后的輸出結果是
A.32
B.12
C.21
D.22
。25)以下函數findmax擬實(shí)現在數組中查找最大值并作為函數值返回,但程序中有錯導致不能實(shí)現預定功能
#define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;i
{ max=MIN;
if(max
return max;
}
造成錯誤的原因是
A.定義語(yǔ)句int i,max;中max未賦初值
B.賦值語(yǔ)句max=MIN;中,不應給max賦MIN值
C.語(yǔ)句if(max
D.賦值語(yǔ)句max=MIN;放錯了位置
。26)有以下程序
#include
main()
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d ”,m,n,*p,*q);
}
程序運行后的輸出結果是
A.1,2,1,2
B.1,2,2,1
C.2,1,2,1
D.2,1,1,2
。27)若有定義語(yǔ)句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是
A.p=a
B.q[i]=a[i]
C.p=a[i]
D.p=&a[2][1]
。28)有以下程序
#include
#include
main()
{ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];
printf(“%d,”,strlen(p));printf(“%s ”,p);
}
程序運行后的輸出結果是
A.9,One*World
B.9,One*Dream
C.10,One*Dream
D.10,One*World
。29)有以下程序
#include
main()
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:switch(a[i]%2)
{case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i[=0;
}
for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);
}
A.3 3 4 4
B.2 0 5 0
C.3 0 4 0
D.0 3 0 4
。30)有以下程序
#include
#include
main()
{ char a[10]=”abcd”;
printf(“%d,%d ”,strlen(a),sizeof(a));
}
程序運行后的輸出結果是
A.7,4
B.4,10
C.8,8
D.10,10
。31)下面是有關(guān)C語(yǔ)言字符數組的描述,其中錯誤的是
A.不可以用賦值語(yǔ)句給字符數組名賦字符串
B.可以用輸入語(yǔ)句把字符串整體輸入給字符數組
C.字符數組中的內容不一定是字符串
D.字符數組只能存放字符串
。32)下列函數的功能是
fun(char * a,char * b)
{ while((*b=*a)!=’’) {a++,b++;} }
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進(jìn)行比較
D.檢查a和b所指字符串中是否有’’
。33)設有以下函數
void fun(int n,char * s) {……}
則下面對函數指針的定義和賦值均是正確的是
A.void (*pf)(); pf=fun;
B.viod *pf(); pf=fun;
C.void *pf(); *pf=fun;
D.void (*pf)(int,char);pf=&fun;
。34)有以下程序
#include
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf(“%d ”,s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運行以后的輸出結果是
A.7
B.8
C.9
D.10
。35)有以下程序
#include
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d ’,s,t);
}
程序運行后的輸出結果是
A.10,64
B.10,10
C.64,10
D.64,64
。36)下面結構體的定義語(yǔ)句中,錯誤的是
A.struct ord {int x;int y;int z;}; struct ord a;
B.struct ord {int x;int y;int z;} struct ord a;
C.struct ord {int x;int y;int z;} a;
D.struct {int x;int y;int z;} a;
。37)設有定義:char *c;,以下選項中能夠使字符型指針c正確指向一個(gè)字符串的是
A.char str[ ]=”string”;c=str;
B.scanf(“%s”,C.;
C.c=get);
D.*c=”string”;
。38)有以下程序
#include
#include
struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,”ZhangDa”,1098.0};
a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;
}
struct A f(struct A t)
( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )
程序運行后的輸出結果是
A.1001,ZhangDa,1098.0
B.1001,ZhangDa,1202.0
C.1001,ChangRong,1098.0
D.1001,ChangRong,1202.0
。39)若有以下程序段
int r=8;
printf(“%d ”,r>>1);
輸出結果是
A.16
B.8
C.4
D.2
。40)下列關(guān)于C語(yǔ)言文件的敘述中正確的是
A.文件由一系列數據依次排列組成,只能構成二進(jìn)制文件
B.文件由結構序列組成,可以構成二進(jìn)制文件或文本文件
C.文件由數據序列組成,可以構成二進(jìn)制文件或文本文件
D.文件由字符序列組成,其類(lèi)型只能是文本文件
全國計算機二級c語(yǔ)言真題 6
二、填空題(每空2分,共30分)
。1)某二叉樹(shù)有5個(gè)度為2的結點(diǎn)以及3個(gè)度為1的結點(diǎn),則該二叉樹(shù)中共有【1】 個(gè)結點(diǎn)。
。2)程序流程圖中的菱形框表示的是 【2】 。
。3)軟件開(kāi)發(fā)過(guò)程主要分為需求分析、設計、編碼與測試四個(gè)階段,其中 【3】 階段產(chǎn)生“軟件需求規格說(shuō)明書(shū)。
。4)在數據庫技術(shù)中,實(shí)體集之間的聯(lián)系可以是一對一或一對多或多對多的,那么“學(xué)生”和“可選課程”的聯(lián)系為 【4】 。
。5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是 【5】 。
。6)若有定義語(yǔ)句:int a=5;,則表達式:a++的`值是 【6】 。
。7)若有語(yǔ)句double x=17;int y;,當執行y=(int)(x/5)%2;之后y的值為 【7】 。
。8)以下程序運行后的輸出結果是 【8】 。
#include
main()
{ int x=20;
printf(“%d”,0
printf(“%d ”,0
。9)以下程序運行后的輸出結果是 【9】 。
#include
main()
{ int a=1,b=7;
do {
b=b/2;a+=b;
} while (b>1);
printf(“%d ”,a);}
。10)有以下程序
#include
main()
{ int f,f1,f2,i;
f1=0;f2=1;
printf(“%d %d”,f1,f2);
for(i=3;i<=5;i++)
{ f=f1+f2; printf(“%d”,f);
f1=f2; f2=f;
}
printf(“ ”);
}
程序運行后的輸出結果是 【10】 。
。11)有以下程序
#include
int a=5;
void fun(int b)
{ int a=10;
a+=b;printf(“%d”,a);
}
main()
{ int c=20;
fun(c);a+=c;printf(“%d ”,a);
}
程序運行后的輸出結果是 【11】 。
。12)設有定義:
struct person
{ int ID;char name[12];}p;
請將scanf(“%d”, 【12】 );語(yǔ)句補充完整,使其能夠為結構體變量p的成員ID正確讀入數據。
。13)有以下程序
#include
main()
{ char a[20]=”How are you?”,b[20];
scanf(“%s”,b);printf(“%s %s ”,a,b);
}
程序運行時(shí)從鍵盤(pán)輸入:How are you?<回車(chē)>
則輸出結果為 【13】 。
。14)有以下程序
#include
typedef struct
{ int num;double s}REC;
void fun1( REC x ){x.num=23;x.s=88.5;}
main()
{ REC a={16,90.0 };
fun1(a);
printf(“%d ”,a.num);
}
程序運行后的輸出結果是 【14】 。
。15)有以下程序
#include
fun(int x)
{ if(x/2>0) run(x/2);
printf(“%d ”,x);
}
main()
{ fun(6);printf(“ ”); }
程序運行后的輸出結果是 【15】 。
全國計算機二級c語(yǔ)言真題 7
1). 關(guān)于C語(yǔ)言的變量,以下敘述中錯誤的是( )
A.所謂變量是指在程序運行過(guò)程中其值可以被改變的量
B.變量所占的存儲單元地址可以隨時(shí)改變
C.程序中用到的所有變量都必須先定義后才能使用
D.由三條下劃線(xiàn)構成的符號名是合法的變量名
正確答案:B
答案解析:變量是指在程序運行過(guò)程中其值可以改變的值,一個(gè)變量實(shí)質(zhì)上是代表了內存中的某個(gè)存儲單元。在程序中對某個(gè)變量的操作實(shí)際上就是對這個(gè)存儲單元的操作,程序運行期間,這個(gè)分配的存儲單元不會(huì )改變,但是其值可以變化。變量命名要符合標識符的規定,其中下劃線(xiàn)是標識符的組成字符。程序中所有變量都必須先定義后使用。
2). 當變量c的值不為2、4、6時(shí),值也為″真″的表達式是( )
A.(c==2)||(c==4)||(c==6)
B.(c>=2 && c<=6)&&!(c%2)
C.(c>=2 &&c<=6)&&(c%2!=1)
D.(c>=2 && c<=6) || (c!=3)|| (c!=5)
正確答案:D
答案解析:邏輯或運算中,只要有一項為真,表達式的值就為真,故選項D中c的值不為2、4、6時(shí),那么表達式(c>=2&& c<=6)以及(c!=3)、(c!=5)必有一個(gè)成立,表達式的值也為真。
3). 在C語(yǔ)言中,函數返回值的類(lèi)型最終取決于
A.函數定義時(shí)在函數首部所說(shuō)明的函數類(lèi)型
B.return語(yǔ)句中表達式值的類(lèi)型
C.調用函數時(shí)主調函數所傳遞的實(shí)參類(lèi)型
D.函數定義時(shí)形參的類(lèi)型
正確答案:A
答案解析:在C語(yǔ)言中,應當在定義函數時(shí)指定函數值的類(lèi)型,凡不加類(lèi)型說(shuō)明的函數,一律按整型處理。在定義函數時(shí),對函數值說(shuō)明的類(lèi)型一般應該和return語(yǔ)句中的表達式類(lèi)型一致。如果函數值的類(lèi)型和return語(yǔ)句中的表達式類(lèi)型不一致,則以函數類(lèi)型為主,即函數類(lèi)型決定返回值的類(lèi)型。
4). 以下敘述中正確的是( )
A.在C語(yǔ)言中,預處理命令行都以″#″開(kāi)頭
B.預處理命令行必須位于C源程序的起始位置
C.#include 必須放在C程序的開(kāi)頭
D.C語(yǔ)言的預處理不能實(shí)現宏定義和條件編譯的功能
正確答案:A
答案解析:在C語(yǔ)言中,凡是以″#″號開(kāi)頭的行,都稱(chēng)為″編譯預處理″命令行。預處理命令可以放在程序中的任何位置,其有效范圍是從定義開(kāi)始到文件結束。預處理命令有宏定義、文件包含和條件編譯三類(lèi)。#include 命令行表示程序中要引用C標準函數庫中的標準輸入輸出函數。
5). 下列敘述中,不屬于測試的特征的是
A.測試的挑剔性
B.完全測試的`不可能性
C.測試的可靠性
D.測試的經(jīng)濟性
正確答案:C
答案解析:軟件測試的目標是在精心控制的環(huán)境下執行程序,以發(fā)現程序中的錯誤,給出程序可靠性的鑒定。它有3個(gè)方面的重要特征,即測試的挑剔性、完全測試的不可能性及測試的經(jīng)濟性。其中,沒(méi)有測試的可靠性這一說(shuō)法。
6). 以下選項中不屬于C語(yǔ)言標識符的是( )
A.用戶(hù)標識符
B.關(guān)鍵字
C.常量
D.預定義標識符
正確答案:C
答案解析:C語(yǔ)言的標識符可分為以下3類(lèi):①關(guān)鍵字。C語(yǔ)言預先規定了一批標識符,它們在程序中都代表著(zhù)固定的含義,不能另作他用。這些字符稱(chēng)為關(guān)鍵字。例如,int、double、if、else、while、for等。②預定義標識符。即預先定義并具有特定含義的標識符。③用戶(hù)標識符。由用戶(hù)根據需要定義的標識符稱(chēng)為用戶(hù)標識符,又稱(chēng)自定義標識符,一般用來(lái)給變量、函數、數組等命名。
7). 以下關(guān)于字符串的敘述中正確的是( )
A.兩個(gè)字符串中的字符個(gè)數相同時(shí)才能進(jìn)行字符串大小的比較
B.可以用關(guān)系運算符對字符串的大小進(jìn)行比較
C.空串比空格打頭的字符串小
D.C語(yǔ)言中有字符串類(lèi)型的常量和變量
正確答案:C
答案解析:C語(yǔ)言本身并沒(méi)有設置一種類(lèi)型來(lái)定義字符串變量,卻允許使用″字符串常量″。字符串常量是由雙引號括起來(lái)的一串字符。任意兩個(gè)字符串的大小比較要調用字符串比較函數strcmp(s1,s2 )來(lái)進(jìn)行,其比較的方法是依次對s1和s2中對應位置上的字符兩兩進(jìn)行比較,當出現第一對不相同的字符時(shí),即由這兩個(gè)字符決定所在串的大小(比較字符大小的依據是其ASCⅡ碼值)。
8). 下列敘述中正確的是( )。
A.調用printf( )函數時(shí),必須要有輸出項
B.使用put )函數時(shí),必須在之前包含頭文件stdio.h
C.在C語(yǔ)言中,整數可以以二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出
D.調節get )函數讀入字符時(shí),可以從鍵盤(pán)上輸入字符所對應的ASCII碼
正確答案:B
答案解析:選項A,若printf函數沒(méi)有輸出項,且格式字符串中不含格式信息,則輸出的是格式字符串本身,若格式字符串含有格式信息,運行時(shí)則出現錯誤提示;選項C,在C語(yǔ)言中,整數可以十進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出;選項D,getchar函數是從標準輸入設備讀取一個(gè)字符。
9). 以下結構體類(lèi)型說(shuō)明和變量定義中正確的是( )
A.typedefstruct { int n; char c; } REC; REC t1,t2;
B.structREC ; { int n; char c; }; REC t1,t2;
C.typedefstruct REC; { int n=0; char c=′A′; } t1,t2;
D.struct{ int n; char c; } REC; REC t1,t2;
正確答案:A
答案解析:定義結構體類(lèi)型的一般形式為:struct 結構體名 {成員列表};struct 結構體名后不能加″;″號,所以選項B、C)錯誤,選項D中定義無(wú)名稱(chēng)的結構體類(lèi)型同時(shí)定義結構體變量形式應為struct t1,t2;選項A為用戶(hù)自定義類(lèi)型,其為正確的定義形式。
10). 若實(shí)體A和B是一對多的聯(lián)系,實(shí)體B和C是一對一的聯(lián)系,則實(shí)體A和C的聯(lián)系是( )
A.一對一
B.一對多
C.多對一
D.多對多
正確答案:B
答案解析:由于B和C有一一對應的聯(lián)系,而A和B只間有一對多的聯(lián)系,則通過(guò)關(guān)系之間的傳遞,則A和C之間也是一對多的聯(lián)系。
11). 待排序的關(guān)鍵碼序列為(15,20,9,30,67.65,45,90),要按關(guān)鍵碼值遞增的順序排序,采取簡(jiǎn)單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第( )個(gè)位置。
A.2
B.3
C.4
D.5
正確答案:B
答案解析:選擇排序的基本思想是掃描整個(gè)線(xiàn)性表,從中選出最小的元素,將它交換到表的最前面,然后對剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個(gè)位置,元素15則被交換放在第三個(gè)位置。
全國計算機二級c語(yǔ)言真題 8
1下列有關(guān)內聯(lián)函數的敘述中,正確的是( )。
A.內聯(lián)函數在調用時(shí)發(fā)生控制轉移
B.內聯(lián)函數必須通過(guò)關(guān)鍵字inline來(lái)定義
C.內聯(lián)函數是通過(guò)編譯器來(lái)實(shí)現的
D.內聯(lián)函數函數體的最后一條語(yǔ)句必須是return語(yǔ)句
參考答案:C
參考解析:一般函數進(jìn)行調用時(shí),要將程序執行權轉到被調用函數中,然后再返回到調用它的函數中;而內聯(lián)函數在調用時(shí),是將調用表達式用內聯(lián)函數體來(lái)替換,所以在調用時(shí)不發(fā)生控制轉移。在類(lèi)內部實(shí)現的函數都是內聯(lián)函數,可以不用inline定義;只有函數外部定義的內聯(lián)函數才必須加關(guān)鍵字inline。編譯系統并非對內聯(lián)函數必須使用內聯(lián),而且根據具體情況決定。內聯(lián)函數不是必須要有返回值的。
2語(yǔ)句int*P=&k;定義了指針P,與這個(gè)語(yǔ)句等效的語(yǔ)句序列是( )。
A.int* p;P=&k;B.int * P;P=k;C.int * p;* P=&k;D.int * p;* P=k;
參考答案:A
參考解析:本題考查指針和地址,題目中定義了一個(gè)指向變量k的一個(gè)指針p,那么與題目中等效的表達式A選項,即先定義一個(gè)指向整型的指針,然后指向k的.地址。
3有如下程序:
#include
using namespace std;
class A
{
public:
A( ){cout<<”A”;}
-A( ){cout<<”-A”;}
};
class B:public A
{
A*P;
public:
B( ){cout<<”B”;P=new A( );}
-B( ){cout<<”~B”; p;}
};
int main( )
{
B obj;
return 0;
}
執行這個(gè)程序的輸出結果是( )。
A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A
參考答案:B
參考解析:本題考查派生類(lèi)的構造函數和析構函數,在定義一個(gè)派生類(lèi)的對象時(shí),先調用基類(lèi)的構造函數,然后再執行派生類(lèi)的構造函數。對象釋放時(shí),先執行派生類(lèi)的析構函數,再執行基類(lèi)的析構函數。所以本題答案為B。
4有如下類(lèi)定義:
class AA
{
im a:
public:
int getRef( )const{return&a;}//①
int getValue( )const{return a;}//②
void set(int n)const{a=n;}//③
friend void show(AA aA.const{cout<
};
其中四個(gè)函數的定義中正確的是( )。
A.①B.②C.③D.④
參考答案:B
參考解析:本題考查常成員函數,常成員函數只能引用本類(lèi)中的數據成員,而不能修改它。所以本題答案為B。
5若要對Data類(lèi)中重載的加法運算符成員函數進(jìn)行聲明,下列選項中正確的是( )。
A.Data+(DatA.;B.Data operator+(DatA.;C.Data+operator(DatA.;D.operator+(Data,DatA.;
參考答案:B
參考解析:根據重載加法運算符的格式,只有B選項正確。
6有如下數組聲明:int num[10];,下標值引用錯誤的是( )。
A.num[10]B.num[5]C.num[3]D.hum[o]
參考答案:A
參考解析:數組定義中的數字指的是數組的大小,而下標是從0開(kāi)始的,所以本題中數組的最后一個(gè)元素是num[9]。
7將前綴運算符“--”重載為非成員函數,下列原型中能正確用于類(lèi)中說(shuō)明的是( )。
A.DeCr&operator--(int);B.DeCr operator--(DeCr&,int);C.friend DeCr&operator--(DeCr&);D.friend DeCr operator--(DeCr&,int);
參考答案:C
參考解析:把“--”運算符重載為非成員(友元)函數格式:friend<返回類(lèi)型>operator--( )是前綴的格式;friend<返回類(lèi)型>operator--(int)是后綴的格式。當然也可以有參數如題中C選項所示。
8如果派生類(lèi)以proteCted方式繼承基類(lèi),則原基類(lèi)的proteCted成員和publiC成員在派生類(lèi)中的訪(fǎng)問(wèn)屬性分別是( )。
A.publiC和publiCB.publiC和proteCtedC.proteCted和publiCD.proteCted和proteCted
參考答案:D
參考解析:本題考查保護繼承中派生類(lèi)對基類(lèi)的訪(fǎng)問(wèn)屬性,在受保護繼承中,基類(lèi)的公用成員和保護成員在派生類(lèi)中成了保護成員,其私有成員仍為基類(lèi)私有,所以本題答案為D。
9在函數中,可以用aut0、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來(lái)說(shuō)明變量的存儲類(lèi)型,如果不說(shuō)明存儲類(lèi)型,則默認的存儲類(lèi)型是( )。
A.autoB.externC.registerD.static
參考答案:A
參考解析:變量的存儲方法分為靜態(tài)存儲和動(dòng)態(tài)存儲兩大類(lèi),包含4種:自動(dòng)的(auto)、靜態(tài)的(static)、寄存器的(register)、外部的(extem)。變量如果沒(méi)有說(shuō)明存儲類(lèi)型,那么默認就是aut0。
10下列程序的輸出結果是( )。
#include
int rain(iltl a,int B)
{
if(a
else retum b;
retum 0;
}
void main( )
{
eout<
}
A.0B.1C.2D.3
參考答案:B
參考解析:本題考查的是函數的調用,第一次調用min(2,3),因為2<3,所以返回值為2,第二次調用min(1,2),因為l<2,所以返回1。
【全國計算機二級c語(yǔ)言真題】相關(guān)文章:
計算機二級C語(yǔ)言真題及答案09-26
計算機二級考試C語(yǔ)言歷年真題09-26
計算機二級C語(yǔ)言考試真題及答案09-30
二級c語(yǔ)言真題(精選5套)11-15
2016年計算機二級c語(yǔ)言真題09-17
計算機二級C語(yǔ)言新增無(wú)紙化真題試卷09-13
c語(yǔ)言二級考試真題(精選5套)11-15