計算機二級C語言考前30天攻關測試題
下面是應屆畢業生考試網小編整理的2017年3月計算機二級C語言考前30天攻關測試題,希望大家好好利用,祝大家考試順利。
一、選擇題
1). 以下敍述中錯誤的是( )
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). 軟件設計中劃分模塊的一個準則是( )
A.低內聚低耦合
B.高內聚低耦合
C.低內聚高耦合
D.高內聚高耦合
正確答案:B
答案解析:耦合性與內聚性是模塊獨立性的兩個定性標準。一般一個較優秀的軟件設計,應儘量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利於提高模塊的獨立性。
6). 當把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的含義相同。
1). 下列敍述中正確的是( )。
A.調用printf( )函數時,必須要有輸出項
B.使用put )函數時,必須在之前包含頭文件stdio.h
C.在C語言中,整數可以以二進制、八進制或十六進制的形式輸出
D.調節get )函數讀入字符時,可以從鍵盤上輸入字符所對應的ASCII碼
正確答案:B
答案解析:選項A,若printf函數沒有輸出項,且格式字符串中不含格式信息,則輸出的是格式字符串本身,若格式字符串含有格式信息,運行時則出現錯誤提示;選項C,在C語言中,整數可以十進制、八進制或十六進制的形式輸出;選項D,getchar函數是從標準輸入設備讀取一個字符。
2). 以下結構體類型説明和變量定義中正確的是( )
def struct { int n; char c; } REC; REC t1,t2;
ct REC ; { int n; char c; }; REC t1,t2;
def struct REC; { int n=0; char c=′A′; } t1,t2;
ct { int n; char c; } REC; REC t1,t2;
正確答案:A
答案解析:定義結構體類型的一般形式為:struct 結構體名 {成員列表};struct 結構體名後不能加″;″號,所以選項B、C)錯誤,選項D中定義無名稱的結構體類型同時定義結構體變量形式應為struct t1,t2;選項A為用户自定義類型,其為正確的定義形式。
3). 若實體A和B是一對多的聯繫,實體B和C是一對一的聯繫,則實體A和C的聯繫是( )
A.一對一
B.一對多
C.多對一
D.多對多
正確答案:B
答案解析:由於B和C有一一對應的聯繫,而A和B只間有一對多的聯繫,則通過關係之間的傳遞,則A和C之間也是一對多的聯繫。
4). 一間宿舍可住多個學生,則實體宿舍和學生之間的聯繫是( )
A.一對一
B.一對多
C.多對一
D.多對多
正確答案:B
答案解析:兩個實體集間的聯繫可以有下面幾種:一對一的聯繫、一對多或多對一的聯繫和多對多的聯繫。由於一個宿舍可以住多個學生,所以它們的聯繫是一對多聯繫。
5). 軟件設計中劃分模塊的一個準則是( )
A.低內聚低耦合
B.高內聚低耦合
C.低內聚高耦合
D.高內聚高耦合
正確答案:B
答案解析:耦合性與內聚性是模塊獨立性的兩個定性標準。一般一個較優秀的軟件設計,應儘量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利於提高模塊的獨立性。
6). 當把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的含義相同。
1). 以下敍述中正確的是( )
A.關係運算符兩邊的運算對象可以是C語言中任意合法的表達式
B.在C語言中,邏輯真值和假值分別對應1和0
C.對於浮點變量x和y,表達式:x==y 是非法的,會出編譯錯誤
D.分支結構是根據算術表達式的結果來判斷流程走向的
正確答案:A
答案解析:C語言中沒有邏輯類型,用非零表示邏輯真。0表示邏輯假,選項B錯誤,無法判斷兩個浮點變量是否相等,但是x==y不會出現編譯錯誤,選項C錯誤,分支結構根據表達式的值,不一定為算術表達式,選項D錯誤。
2). 在軟件生命週期中,能準確地確定軟件系統必須做什麼和必須具備哪些功能的階段是( )。
A.需求分析
B.詳細設計
C.軟件設計
D.概要設計
正確答案:A
答案解析:軟件生命週期的主要活動階段為:可行性研究和計劃制定、需求分析、軟件設計、軟件實現、軟件測試、運行和維護。其中需求分析是對開發軟件提出的需求進行分析並給出詳細定義,即準確地確定軟件系統的功能,編寫軟件規格説明書及初步的用户手冊,提交評審。
3). 設文件指針fp已定義,執行語句fp=fopen(″file″,″w″);後,以下針對文本文件file操作敍述的選項中正確的是( )
A.寫操作結束後可以從頭開始讀
B.可以在原有內容後追加寫
C.可以隨意讀和寫
D.只能寫不能讀
正確答案:D
答案解析:在題目中函數fopen以″只寫″方式打開文件file。
4). 以下關於C語言的敍述中正確的是( )。
A.預處理命令通常位於函數體外面,但也可以位於函數體中間
B.C語言中的變量定義須在其他語句之前
C.在C語言程序的書寫中,一個語句必須單佔一行
D.一個C語言源程序可以由一個或多個源文件組成,每個源文件可由自己的main函數
正確答案:A
答案解析:源程序中可以有預處理命令(include命令僅為其中的一種)。C語言中的變量可以在使用之前的任何位置進行定義。C語言程序的書寫中,多個語句可以位於一行,但為了增強可讀性,一般每行只有一條語句。一個C語言源程序可以由一個或多個源文件組成,但僅可以有一個mam函數.
5). 下列選項中可作為C語言合法常量的是( )。
A.-80
B.-080
C.-8e1.0
正確答案:A
答案解析:所謂常量是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項B中是以0開頭,表示一個八進制數,而八進制數的取值範圍是0~7,所以“-080”錯誤;在C語言巾e後面的指數必須是整數,因此選項C和D也不正確。
6). 設樹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。
-
在C語言中轉換時間的基本方法
本文主要介紹了在C語言中轉換時間的基本方法,分別是mktime()函數和localtime()函數的使用,供參考學習,感興趣的小夥伴們可以參考一下!想了解更多相關信息請持續關注我們應屆畢業生考試網!C語言mktime()函數:將時間轉換成經過的秒數頭文件:#include<time.h>定義函數:t...
-
C語言轉義字符和格式控制符參考
導語:字符型常量所表示的值是字符型變量所能包含的值。我們可以用ASCII表達式來表示一個字符型常量,或者用單引號內加反斜槓表示轉義字符。下面是C語言轉義字符和格式控制符參考,歡迎學習:轉義字符參考:a:蜂鳴,響鈴:回退:向後退一格f:換頁:換行,光標到下行行首:回車,光...
-
C語言自學入門技巧
學習C語言不是一朝一夕的事情,但也不需要花費很長的時間才能精通。下面小編就為大家介紹一下C語言自學入門技巧吧!C語言自學入門技巧11、程語語言其實是一個很初級的工具,但是又必須熟練的掌握它,學懂一門編程語言就好像學會了寫字,但是會寫字的人不見得會寫文章,而...
-
C/C++變量在內存中的分佈介紹
變量在內存地址的分佈為:堆-棧-代碼區-全局靜態-常量數據。同一區域的各變量按聲明的順序在內存的中依次由低到高分配空間(只有未賦值的全局變量是個例外)。本文是本站小編搜索整理的關於C/C++變量在內存中的分佈介紹,感興趣的朋友一起學習吧!!想了解更多相關信息...