- 相關推薦
2017年3月計算機二級考試C語言精選練習
C語言作為計算機二級考試必考重點內容,以此大家要加強C語言的練習,以下是小編為大家整理的2017年3月計算機二級考試C語言精選練習,希望對大家有所幫助。
1). 一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數為( )
A.16
B.10
C.6
D.4
正確答案:A
答案解析:根據二叉樹的性質,在任意二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個,故此度為1的結點個數=總結點數-葉子節點數-度為2的節點數=25-5-4=16。
2). 設有定義 char str[] = ″Hello″; 則語句 printf(″%d %d″, sizeof(str), strlen(str)); 的輸出結果是( )
A.6 6
B.6 5
C.5 5
D.5 6
正確答案:B
答案解析:sizeof主要用于測試變量所占的實際內存,而strlen函數主要測試字符串中實際字符的個數,字符串″Hello″占有內存6個字節,而字符串中共有5個字符。
3). 下列關于棧和隊列的描述中,正確的是( )。
A.棧是先進先出
B.隊列是先進后出
C.隊列允許在隊頭刪除元素
D.棧在棧頂刪除元素
正確答案:D
答案解析:棧實際也是線性表,只不過是一種特殊的線性表。棧是只能在表的一端進行插入和刪除運算的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。隊列是只允許在一端刪除,在另…端插入的順序表,允許刪除的一端叫做隊頭,允許插入的一端叫做隊尾。
4). 以下敘述中正確的是( )
A.關系運算符兩邊的運算對象可以是C語言中任意合法的表達式
B.在C語言中,邏輯真值和假值分別對應1和0
C.對于浮點變量x和y,表達式:x==y 是非法的,會出編譯錯誤
D.分支結構是根據算術表達式的結果來判斷流程走向的
正確答案:A
答案解析:C語言中沒有邏輯類型,用非零表示邏輯真。0表示邏輯假,選項B錯誤,無法判斷兩個浮點變量是否相等,但是x==y不會出現編譯錯誤,選項C錯誤,分支結構根據表達式的值,不一定為算術表達式,選項D錯誤。
5). 在軟件生命周期中,能準確地確定軟件系統必須做什么和必須具備哪些功能的階段是( )。
A.需求分析
B.詳細設計
C.軟件設計
D.概要設計
正確答案:A
答案解析:軟件生命周期的主要活動階段為:可行性研究和計劃制定、需求分析、軟件設計、軟件實現、軟件測試、運行和維護。其中需求分析是對開發軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統的功能,編寫軟件規格說明書及初步的用戶手冊,提交評審。
6). 設文件指針fp已定義,執行語句fp=fopen(″file″,″w″);后,以下針對文本文件file操作敘述的選項中正確的是( )
A.寫操作結束后可以從頭開始讀
B.可以在原有內容后追加寫
C.可以隨意讀和寫
D.只能寫不能讀
正確答案:D
答案解析:在題目中函數fopen以″只寫″方式打開文件file。
7). 一間宿舍可住多個學生,則實體宿舍和學生之間的聯系是( )
A.一對一
B.一對多
C.多對一
D.多對多
正確答案:B
答案解析:兩個實體集間的聯系可以有下面幾種:一對一的聯系、一對多或多對一的聯系和多對多的聯系。由于一個宿舍可以住多個學生,所以它們的聯系是一對多聯系。
8). 軟件設計中劃分模塊的一個準則是( )
A.低內聚低耦合
B.高內聚低耦合
C.低內聚高耦合
D.高內聚高耦合
正確答案:B
答案解析:耦合性與內聚性是模塊獨立性的兩個定性標準。一般一個較優秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。
9). 當把4個表達式用作if語句的控制表達式時,有一個選項與其他3個選項含義不同,這個選項是( )。
A.k%2
B.k%2==1
C.(k%2) !=0
D.!k%2==1
正確答案:A
答案解析:整數k對2求余數的兩個結果只能是0和1,所以選項A表示k除以2的余數,其結果是0或1。在選項B、C和D中包括算術求余運算符″%″,關系等于運算符 ″==″和關系不等于運算符″!=″以及邏輯非運算符″!″。而邏輯運算符與賦值運算符、算術運算符、關系運算符之間從高到低的運算優先次序是:!(邏輯″非″)、算術運算符、關系運算符、&&(邏輯″與″)、||(邏輯″或″)、賦值運算符。選項B含義是判斷表達式k%2的結果是否等于1、選項C的含義是判斷表達式k%2的結果是否不等于0,選項D含義是判斷表達式!k%2的結果是否等于1,所以選項B、C和D的含義相同。
2). 下列敘述中正確的是( )
A.棧是一種先進先出的線性表
B.隊列是一種后進先出的線性表
C.棧與隊列都是非線性結構
D.以上三種說法都不對
正確答案:D
答案解析:棧是先進后出的線性表,隊列是先進先出的線性表,二者均為線性結構。
3). 以下關于C語言的敘述中正確的是( )。
A.預處理命令通常位于函數體外面,但也可以位于函數體中間
B.C語言中的變量定義須在其他語句之前
C.在C語言程序的書寫中,一個語句必須單占一行
D.一個C語言源程序可以由一個或多個源文件組成,每個源文件可由自己的main函數
正確答案:A
答案解析:源程序中可以有預處理命令(include命令僅為其中的一種)。C語言中的變量可以在使用之前的任何位置進行定義。C語言程序的書寫中,多個語句可以位于一行,但為了增強可讀性,一般每行只有一條語句。一個C語言源程序可以由一個或多個源文件組成,但僅可以有一個mam函數.
4). 下列選項中可作為C語言合法常量的是( )。
A.-80
B.-080
C.-8e1.0
D.-80.Oe
正確答案:A
答案解析:所謂常量是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項B中是以0開頭,表示一個八進制數,而八進制數的取值范圍是0~7,所以“-080”錯誤;在C語言巾e后面的指數必須是整數,因此選項C和D也不正確。
5). 設樹T的深度為4,其中度為1,2,3,4的結點個數分別為4,2,1,1。則T中的葉子結點數為( )
A.8
B.7
C.6
D.5
正確答案:B
答案解析:深度為m二叉樹其總結點數為2m -1=24-1=15。總結點數減去度為1,2,3,4的結點個數就是葉子結點數。15-4-2-1-1=7。
6). C語言主要是借助以下哪種手段來實現程序模塊化( )
A.定義常量和外部變量
B.使用豐富的數據類型
C.使用三種基本結構語句
D.定義函數
正確答案:D
答案解析:C語言用函數實現軟件的模塊化設計。
7). 以下敘述中正確的是( )
A.只有全局變量才有自己的作用域,函數中的局部變量沒有作用域
B.只要是用戶定義的標識符,都有一個有效的作用域
C.只有在函數內部定義的變量才是局部變量
D.局部變量不能被說明為static
正確答案:B
答案解析:在函數內定義的變量是局部變量,而在函數之外定義的變量稱為外部變量,也是全局變量。全局變量可以為源文件中其他函數所共用,其作用域為從定義變量的位置開始到源文件結束。因此只要用戶定義的標識符,全部都有作用域。局部變量可以說明為auto、register以及static。
8). 在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的( )。
A.連接碼.
B.關系碼
C.外碼
D.候選碼
正確答案:D
答案解析:在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。
1). 以下敘述中錯誤的是( )
A.預處理命令行的最后不能以分號表示結束
B.C程序對預處理命令行的處理是在程序執行的過程中進行的
C.#define MAX 是合法的宏定義命令行
D.在程序中凡是以″#″開始的語句行都是預處理命令行
正確答案:B
答案解析:預處理命令行是以″#″開始的語句,預處理命令行的最后不能以分號表示結束,預處理命令行。其中宏定義的字符替換的定義格式為:# define 標識符 字符串,預處理命令行是在系統對源程序進行編譯之前進行處理的,不是在程序執行的過程中。
2). 按照″后進先出″原則組織數據的數據結構是( )
A.隊列
B.棧
C.雙向鏈表
D.二叉樹
正確答案:B
3). 以下程序段完全正確的是( )
A.int k, *p=&k; scanf(″%d″, p);
B.int *p; scanf(″%d″, p);
C.int *p; scanf(″%d″, &p);
D.int k, *p; *p=&k; scanf(″%d″, p);
正確答案:A
答案解析:選項B沒有對指針進行初始化,無效指針。選項C錯在沒有對指針進行初始化,無效指針,并且在scanf(″%d″,&p)中無需再進行取地址操作。選項D,語句*p=&k;的左端*p是指針所指內存空間的值,&k是地址,應為p=&k。
4). 下列有關數據庫的描述,正確的是( )。
A.數據庫設計是指設計數據庫管理系統
B.數據庫技術的根本目標是要解決數據共享的問題
C.數據庫是一個獨立的系統,不需要操作系統的支持
D.數據庫系統中,數據的物理結構必須與邏輯結構一致
正確答案:B
答案解析:數據庫設計的目的實質上是設計出滿足實際應用需求的實際關系模型。數據庫技術的主要目的是有效地管理和存取大量的數據資源,包括:提高數據的共享性,使多個用戶能夠同時訪問數據庫中的數據;減小數據的冗余,以提高數據的一致性和完整性;提供數據與應用程序的獨立性,從而減少應用程序的開發和維護代價。
6). 若程序中有宏定義行: #define N 100 則以下敘述中正確的是 ( )
A.宏定義行中定義了標識符N的值為整數100
B.上述宏定義行實現將100賦給標示符N
C.在運行時用100替換標識符N
D.在編譯程序對C源程序進行預處理時用100替換標識符N
正確答案:D
答案解析:在C語言中,凡是以″#″號開頭的行,都稱為″編譯預處理″。其含義是在C編譯程序對C源程序進行編譯前,由編譯預處理程序對這些編譯預處理命令進行處理的過程。由#define定義的宏就是編譯預處理命令。C程序在進行編譯之前,都要先對程序中所有出現的″宏名″,都用宏定義中的替換文本進行替換。
【3月計算機二級考試C語言練習】相關文章:
計算機二級C語言考試沖刺練習題06-21
計算機二級考試C語言模擬練習題07-23
9月計算機考試二級C語言模擬試題11-01
計算機二級考試C語言考試技巧05-13