2017年計算機二級考試C語言練習試題

學識都 人氣:2.72W

  計算機二級考試C語言練習試題一

1). 以下敘述中錯誤的是( )

2017年計算機二級考試C語言練習試題

A.預處理命令行的最後不能以分號表示結束

B.C程序對預處理命令行的處理是在程序執行的過程中進行的

C.#define MAX 是合法的宏定義命令行

D.在程序中凡是以″#″開始的語句行都是預處理命令行

正確答案:B

答案解析:預處理命令行是以″#″開始的語句,預處理命令行的最後不能以分號表示結束,預處理命令行。其中宏定義的字符替換的定義格式爲:# define 標識符 字符串,預處理命令行是在系統對源程序進行編譯之前進行處理的,不是在程序執行的過程中。

2). 按照″後進先出″原則組織數據的數據結構是( )

A.隊列

B.棧

C.雙向鏈表

D.二叉樹

正確答案:B

答案解析:棧是限定在一端進行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱爲棧頂,不允許插入與刪除的另一端稱爲棧底。棧頂元素總是最後插入的元素,也是最先被刪除的元素;棧底元素總是最先插入的元素,也是最後才能被刪除的元素。即棧是按照″後進先出″(Last In First Out,簡稱LIFO)或″先進後出″(First In Last Out,簡稱FILO)的原則組織數據的。因此,棧也稱爲″後進先出表″或″先進後出″表。

3). 以下程序段完全正確的是( )

k, *p=&k; scanf(″%d″, p);

*p; scanf(″%d″, p);

*p; scanf(″%d″, &p);

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

答案解析:數據庫設計的目的實質上是設計出滿足實際應用需求的實際關係模型。數據庫技術的主要目的是有效地管理和存取大量的數據資源,包括:提高數據的共享性,使多個用戶能夠同時訪問數據庫中的數據;減小數據的冗餘,以提高數據的一致性和完整性;提供數據與應用程序的獨立性,從而減少應用程序的開發和維護代價。

5). 若程序中有宏定義行: #define N 100 則以下敘述中正確的是 ( )

A.宏定義行中定義了標識符N的值爲整數100

B.上述宏定義行實現將100賦給標示符N

C.在運行時用100替換標識符N

D.在編譯程序對C源程序進行預處理時用100替換標識符N

正確答案:D

答案解析:在C語言中,凡是以″#″號開頭的行,都稱爲″編譯預處理″。其含義是在C編譯程序對C源程序進行編譯前,由編譯預處理程序對這些編譯預處理命令進行處理的過程。由#define定義的宏就是編譯預處理命令。C程序在進行編譯之前,都要先對程序中所有出現的″宏名″,都用宏定義中的替換文本進行替換。

  計算機二級考試C語言練習試題二

1). 關於C語言的變量,以下敘述中錯誤的是( )

A.所謂變量是指在程序運行過程中其值可以被改變的量

B.變量所佔的存儲單元地址可以隨時改變

C.程序中用到的所有變量都必須先定義後才能使用

D.由三條下劃線構成的符號名是合法的變量名

正確答案:B

答案解析:變量是指在程序運行過程中其值可以改變的值,一個變量實質上是代表了內存中的某個存儲單元。在程序中對某個變量的操作實際上就是對這個存儲單元的操作,程序運行期間,這個分配的存儲單元不會改變,但是其值可以變化。變量命名要符合標識符的規定,其中下劃線是標識符的組成字符。程序中所有變量都必須先定義後使用。

2). 當變量c的值不爲2、4、6時,值也爲″真″的表達式是( )

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時,那麼表達式(c>=2 && c<=6)以及(c!=3)、(c!=5)必有一個成立,表達式的值也爲真。

3). 在C語言中,函數返回值的類型最終取決於

A.函數定義時在函數首部所說明的函數類型

rn語句中表達式值的類型

C.調用函數時主調函數所傳遞的實參類型

D.函數定義時形參的類型

正確答案:A

答案解析:在C語言中,應當在定義函數時指定函數值的類型,凡不加類型說明的函數,一律按整型處理。在定義函數時,對函數值說明的類型一般應該和return語句中的表達式類型一致。如果函數值的類型和return語句中的表達式類型不一致,則以函數類型爲主,即函數類型決定返回值的類型。

4). 以下敘述中正確的是( )

A.在C語言中,預處理命令行都以″#″開頭

B.預處理命令行必須位於C源程序的起始位置

C.#include 必須放在C程序的開頭

D.C語言的預處理不能實現宏定義和條件編譯的功能

正確答案:A

答案解析:在C語言中,凡是以″#″號開頭的行,都稱爲″編譯預處理″命令行。預處理命令可以放在程序中的任何位置,其有效範圍是從定義開始到文件結束。預處理命令有宏定義、文件包含和條件編譯三類。#include 命令行表示程序中要引用C標準函數庫中的標準輸入輸出函數。

5). 下列敘述中,不屬於測試的特徵的是

A.測試的挑剔性

B.完全測試的不可能性

C.測試的可靠性

D.測試的經濟性

正確答案:C

答案解析:軟件測試的目標是在精心控制的環境下執行程序,以發現程序中的錯誤,給出程序可靠性的鑑定。它有3個方面的重要特徵,即測試的挑剔性、完全測試的不可能性及測試的經濟性。其中,沒有測試的可靠性這一說法。

6). 以下選項中不屬於C語言標識符的是( )

A.用戶標識符

B.關鍵字

C.常量

D.預定義標識符

正確答案:C

答案解析:C語言的標識符可分爲以下3類:①關鍵字。C語言預先規定了一批標識符,它們在程序中都代表着固定的含義,不能另作他用。這些字符稱爲關鍵字。例如,int、double、if、else、while、for等。②預定義標識符。即預先定義並具有特定含義的標識符。③用戶標識符。由用戶根據需要定義的標識符稱爲用戶標識符,又稱自定義標識符,一般用來給變量、函數、數組等命名。

7). 以下關於字符串的敘述中正確的是( )

A.兩個字符串中的字符個數相同時才能進行字符串大小的比較

B.可以用關係運算符對字符串的大小進行比較

C.空串比空格打頭的字符串小

D.C語言中有字符串類型的常量和變量

正確答案:C

答案解析:C語言本身並沒有設置一種類型來定義字符串變量,卻允許使用″字符串常量″。字符串常量是由雙引號括起來的一串字符。任意兩個字符串的大小比較要調用字符串比較函數strcmp(s1,s2 )來進行,其比較的方法是依次對s1和s2中對應位置上的字符兩兩進行比較,當出現第一對不相同的字符時,即由這兩個字符決定所在串的大小(比較字符大小的依據是其ASCⅡ碼值)。