點擊查看:2018年3月全國計算機二級C語言考試強化模擬題匯總
1、以下不構成無限循環的語句或語句組是( )。
A.n=0:
do{++n;}while(n<=0);
B.n=0;
while(1){n++;}
C.n=10;
while(n);{n--;}
D.for(n=0,i=1;;i++)n+=i;
參考答案:A
參考解析: 選項A中do后面的語句只執行了一次便結束了循環;B選項中條件while(1)永遠成立,所以是死循環;C選項中n的值為10,而循環體為空語句,所以wilile(n)永遠為真,進入死循環;D選項中for語句第二個表達式為空,所以沒有判別條件,進入死循環。
2、若a是數值類型,則邏輯表達式(a==1)||(a!=1)的值是( )。
A.1
B.0
C.2
D.不知道a的值,不能確定
參考答案:A
參考解析: 邏輯或”||”要求只要兩邊的運算對象有一個非零,結果就為真。雖然不知道a的值,但是若a為l,則左邊運算對象為1;若a的值不是1,則右邊運算對象的值為1,所以總能保證一邊非零,所以結果為真,即1。
3、程序中已構成如下圖所示的不帶頭結點的單向鏈表結構,指針變量s、p、q均已正確定義,并用于指向鏈表結點,指針變量s總是作為指針指向鏈表的第一個結點。
若有以下程序段:
該程序段實現的功能是( )。
A.刪除尾結點
B.尾結點成為首結點
C.刪除首結點
D.首結點成為尾結點
參考答案:D
參考解析: 本題考查鏈表的操作,本題中首先是s指向了它的下個結點,題目中說明了s總是指向鏈表的第一個結點,然后while循環找到鏈表的最后一個元素,然后最后一個元素指向了之前鏈表的頭結點,之前頭結點指向了空結點,所以本題實現的功能是使首結點成為尾結點。選項D正確。
4、下列選項中不屬于結構化程序設計原則的是( )。
A.可封裝
B.自頂向下
C.模塊化
D.逐步求精
參考答案:A
參考解析: 結構化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
5、支持子程序調用的數據結構是( )。
A.棧
B.樹
C.隊列
D.二叉樹
參考答案:A
參考解析: 棧支持子程序調用。棧是一種只能在一端進行插入或刪除的線性表,在主程序調用子函數時要首先保存主程序當前的狀態,然后轉去執行子程序,最終把子程序的執行結果返回到主程序中調用子程序的位置,繼續向下執行,這種調用符合棧的特點,因此本題的答案為A。
6、有以下程序:
以上程序執行后abc.dat文件的內容是( )。
A.China
B.Chinang
C.ChinaBeijing
D.BeijingChina
參考答案:B
參考解析: 本題考查文件操作函數,fwrite和rewind函數,題目中先是將a2字符串寫入adc.dat中,然后將寫指針回到文件開頭,然后寫入sl字符串,那么s1字符串就將前5個字符覆蓋,所以最終結果為Chinang,選項B正確。
7、設有定義:
struct complex
{ int real,unreal;}data1={1,8},data2;
則以下賦值語句中錯誤的是( )。
A.data2=(2,6);
B.data2=data1;
C.data2.real=data1.real;
D.data2.real=data1.unreal;
參考答案:A
參考解析: A選項中可以在聲明變量的同事為data2賦值,但是data2=(2,6);應寫作data2={2,6}。所以選擇A。
1、某二叉樹共有7個結點,其中葉子結點只有l個,則該二叉樹的深度為(假設根結點在第1層)( )。
A.3
B.4
C.6
D.7
參考答案:D
參考解析: 根據二叉樹的基本性質3:在任意一棵二叉樹中,多為0的葉子結點總比度為2的結點多一個,所以本題中度為2的結點為1-1=0個,所以可以知道本題目中的二叉樹的每一個結點都有一個分支,所以共7個結點共7層,即度為7。
2、有以下程序:
程序運行后的輸出結果是( )。
A.t1=9 t2=4
B.t1=4 t2=9
C.t1=9 t2=9
D.t1=1 t2=4
參考答案:A
參考解析: 由程序可知,main函數的for循環中i的取值為1、2、3、4。T1初值為10,t2初值為0,當i-1時,傳人函數m1參數為:1、10,因為1<10,所以函數m1的返回值為2×1+1=3;傳人函數m2的參數為1、0,因為1>0,所以返回值為1;即第一輪循環后,t1=3,t2=1。當i=2時,傳人函數m1的參數為2、3,因為2<3,所以函數返回值為2×2+1=5;傳人函數m2的參數為2、1,因為2>1,所以函數返回值為2;即第二輪循環后,t1=5,t2=2;當i=3時,傳人函數m1的參數為3、5,因為3<5,所以返回值為2×3+1=7;傳人函數m2的參數為3、2,因為3>2,所以返回值為3;即第三輪循環后,t1=7,t2=3;當i-4時,傳人函數m1的參數為4、7,因為4<7,所以函數返回值為2x4+1=9,傳人函數m2的參數為4、3,因為4>3,所以函數返回值為4,即第四輪循環后,t1=9,t2=4。故答案選A(仔細分析可以發現,對于m1函數,由于第一次1<10,導致后面每次參數x都是i,而參數y都是2×i-1,返回值都是2×i+1;同理,對于m2函數,由于第一次1>0,導致后面每次參數x都是i,而y都是i-1,返回值都是i,所以最終結果為t1=2x4+1,t2=4)。
3、以下程序擬讀取一個姓氏,查找其對應的年齡并輸出:
程序有語法錯誤,出錯的是( )。
參考答案:A
參考解析: 語句gets(&p- >name)中,gets的參數應該是成員變量name數組的首地址。而&p->name是首先獲取數組name的首地址,然后再對首地址取地址符,所以這是錯誤的,正確參數應該是:gets(p->name);,故答案選A。
4、設有以下函數:
則下面對函數指針的定義和賦值均正確的是( )。
參考答案:D
參考解析: 函數的參數可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數中。函數名代表函數的入口地址,指向函數的指針應該定義為void(* pf)()。如果定義為void*pf(),則表示函數pf返回值為一個基類型為void的指針。因此D選項正確。
5、以下選項中正確的定義語句是( )。
A.double,a,b;
B.double a=b=7;
C.double a;b;
D.double a=7,b=7;
參考答案:D
參考解析: A選項中變量類型符double后面不能有逗號。B選項中變量b不能先使用再定義,應該寫成選項D中的格式。C選項中變量a后面應該是逗號而不是分號。
6、負責數據庫中查詢操作的數據庫語言是( )。
A.數據定義語言
B.數據管理語言
C.數據操縱語言
D.數據控制語言
參考答案:C
參考解析: 數據定義語言:負責數據的模式定義與數據的物理存取構建;數據操縱語言:負責數據的操縱,包括查詢及增、刪、改等操作;數據控制語言:負責數據完整性、安全性的定義與檢查以及并發控制、故障恢復等功能。
7、有以下程序:
程序運行后的輸出結果是( )。
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
參考答案:D
參考解析: 本題考查文件操作函數,兩次fwrite后,fp文件中已經寫入1,2,3,0,0,l,2,3,0,0然后將文件fp中的內容重新寫入數組a中,最后輸出a為l,2,3,0,0,1,2,3,0,0,所以選項D正確。
8、以下選項中,合法的c語言實數是( )。
A..4eO
B.4.3e0.2
C.FA.8
D.0.29E
參考答案:A
參考解析: C語言中,實數有兩種形式:十進制小數形式和指數形式。由4個選項可知,本題考查的是實數的指數形式,指數形式一般為:aEn,其中a為十進制數,n為十進制整數,表示的值為:a ×10n;B、C選項錯在階碼必須是整數,D選項錯在無階碼,故答案為A,A的值為:0.4×100=0.4。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: