第 1 頁:選擇題 |
第 3 頁:程序填空題 |
第 4 頁:程序改錯題 |
第 5 頁:程序設計題 |
點擊查看:2015計算機二級考試《C語言》沖刺試題及答案匯總
一、選擇題
1有以下程序:
程序運行后的輸出結果是( )O
A.321678B.876543C.1098765D.345678
參考答案:A
參考解析:本題中的函數fun()的功能是將數組k中前5個元素倒序,所以返回后數組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。
2有以下程序段:
程序運行后的輸出結果是( )。
A.a=10 b=50 C=30B.a=10 b=50 c=10C.a=10 b=30 c=10D.a=50 b=30 c:50
參考答案:B
參考解析:本題中a>b的條件不滿足,所以不執行逗號表達式a=b,b=c;的操作,而是執行c=a操作,即c的值勾10。
3有以下程序:
程序運行后的輸出結果是( )。
A.*2*6B.}3*5一C.}5D.*7
參考答案:D
參考解析:do……while語句是先執行后判斷,所以第一次先執行循環體,判斷i%3==1的條件,由于i為5,所以余數為2,條件不成立,執行i++,i的值為6,判斷while條件為真;第二次執行循環體,同第一次循環的執行過程一樣,i的值變為7,判斷while條件為真;第三次執行循環體,此時i%3==1,條件成立,再判斷i%5==2也成立,打印*與i的值,即*7,然后執行break語句,跳出循環。所以選擇D選項。
4設有定義:int X=2;,以下表達式中,值不為6的是( )。
A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1
參考答案:A
參考解析:A選項中逗號表達式先計算第一表達式2*x,然后計算表達式x+=2的值,即x=x+2即4,整個逗號表達式為第二個表達式的值4,所以選擇A。B選項中首先計算逗號表達式中第一表達式x++,此時x為3,在執行第二個表達式2·X=2*3=6,所以逗號表達式為第二個表達式的值6。C選項的賦值表達式可以表示為x=x *(1+x)=2}(1+2)=6。D選項中的表達式可以表示為x=X}(x+1)=2·3=60
5有以下程序:
程序運行后的輸出結果是( )。
A.9,18B.8,11C.7,11D.10,14
參考答案:D
參考解析:第一次循環a的值為1,滿足條件,執行b+=a,與a+=2,則b的值變為3,a的值變為3。執行8++,a的值為4,滿足條件進入第二次循環,執行完循環體后b的值為7,a的值為6。執行a++,a的值為7,滿足條件進入第三次循環,執行完循環體后b的值為14,a的值為9。執行a++,a的值變為10,不滿足條件,循環結束。所以選擇D選項。’
6若a是數值類型,則邏輯表達式(a==1)I l(a!=1)的值是( )。
A.1B.0C.2D.不知道a的值,不能確定
參考答案:A
參考解析:邏輯或”I|”要求只要兩邊的運算對象有一個非零,結果就為真。雖然不知道a的值,但是若a為1,則左邊運算對象為1;若a的值不是l,則右邊運算對象的值為1,所以總能保證一邊非零,所以結果為真,即1。
7有以下程序:
程序運行后的輸出結果是( )。
A.7.5B.31.5C.程序有錯無輸出結果D.14.0
參考答案:C
參考解析:宏定義不是C語句,末尾不需要有分號。所以語句printf(”%4.1f\n”,S(8+b));展開后為parintf(”%4.1f\n”,3.5;*a+b}a+b;);所以程序會出現語法錯誤。
8以下敘述中正確的是( )。
A.在C語言中,預處理命令行都以“#”開頭
B.預處理命令行必須位于c源程序的起始位置
C.#include必須放在C程序的開頭
D.C語言的預處理不能實現宏定義和條件編譯的功能
參考答案:A
參考解析:
預處理命令是以“#”號開頭的命令,它們不是C語言的可執行命令,這些命令應該在函數之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、c錯誤。C語言的預處理能夠實現宏定義和條件編譯等功能,所以D錯誤。
9設有定義:
則a和b的值分別是( )。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
參考答案:A
參考解析:在格式字符前加入一個整數可以指定輸入數據所占的寬度,所以賦值時會將87賦給int型變量a,把6.0賦給im型float型變量b。
10以下選項中,能用作數據常量的是( )。
A.115LB.0118C.1.5el.5D.0115
參考答案:A
參考解析:A選項中l15L表示ll5是長整型數據,合法。B選項是八進制常量的表示方法,但是在八進制中不能含有數字8,所以B錯誤。c選項中e后面應該是整數不能是小數l.5,所以c錯誤。D選項中八進制常量應該是數字…0開始,而不是字母…O開始。
11有如下程序段:
其輸出結果是( )。
A.123.141593B.1,23.141593C.12,3.141593D.123.1415930
參考答案:A
參考解析: printf函數中格式字符“%8.6”的含義是:變量Y的輸出寬度為8(包括小數點),小數點后面保留6位小數,且右對齊。所以選擇A。
12軟件設計中模塊劃分應遵循的準則是( )。
A.低內聚低耦合B.高內聚低耦合C.低內聚高耦合D.高內聚高耦合
參考答案:B
參考解析:軟件設計中模塊劃分應遵循的準則是高內聚低偶合、模塊大小規模適當、模塊的依賴關系適當等。模塊的劃分應遵循一定的要求,以保證模塊劃分合理,并進一步保證以此為依據開發出的軟件系統可靠性強,易于理解和維護。模塊之間的耦合應盡可能的低,模塊的內聚度應盡可能。
13下列關于線性鏈表的敘述中,正確的是( )。
A.各數據結點的存儲空間可以不連續,但它們的存儲順序與邏輯順序必須一致
B.各數據結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續
C.進行插入與刪除時,不需要移動表中的元素
D.以上說法均不正確
參考答案:C
參考解析:一般來說,在線性表的鏈式存儲結構中,各數據結點的存儲序號是不連續的,并且各結點在存儲空間中的位置關系與邏輯關系也不一致。線性鏈表中數據的插入和刪除都不需要移動表中的元素,只需改變結點的指針域即可。
14有以下程序:
程序運行后的輸出結果是( )。
A.1 2B.1 4C.123 4D.123 456
參考答案:D
參考解析:fprintf()函數向文本文件輸出數據,將輸出的內容按格式輸出翻硬盤的文本文件中。執行兩次fprintf后。文件中的內容為。l23 456”,所以D選項正確。
15有以下定義語句,編譯時會出現編譯錯誤的是( )。
A.char a=’\x2d’;B.char a=。\n。;C.char a=…a;D.char a=”aa”:
參考答案:D
參考解析:D選項中將字符串常量…aa賦給字符變量a是錯誤的。
16有以下程序:
程序執行后的輸出結果是( )。
A.357B.753C.369D.751
參考答案:A
參考解析:二維數組t[][3]實際上指t[3][3]={{9,8,7},{6,5,41,{3,2,1}},通過循環語句for語句可以得到i=0,t[2][0]=3、i=1,t[1][1]=5、i=2,t[0][2]=7、i=3時循環結束即t[2][0]=3、t[1][1]=5、t[0][2]=7。因此A選項正確。
17以下敘述中錯誤的是( )。
A.使用三種基本結構構成的程序只能解決簡單問題
B.結構化程序由順序、分支、循環三種基本結構組成
C.C語言是-種結構化程序設計語言
D.結構化程序設計提倡模塊化的設計方法
參考答案:A
參考解析:使用順序,選擇(分支),循環三種基本結構構成的程序可以解決所有問題,而不只是解決簡單問題,所 以A錯誤。
18若有以下語句:typedef struct S{int 9;char h;}T;以下敘述中正確的是( )。
A.可用s定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是struct S類型的變量
參考答案:B
參考解析:本題考查typledef重新聲明一種結構體類型,那么T為結構體類型,而不是結構體變量,所以B選項正確。
19有兩個關系R、S如下:
由關系R通過運算得到關系s,則所使用的運算為( )。
A.選擇B.投影C.插入D.連接
參考答案:B
參考解析:投影運算是指對于關系內的域指定可引人新的運算。本題中S是在原有關系R的內部進行的,是由R中原有的那些域的列所組成的關系。所以選擇8。
20設變量已正確定義并賦值,以下正確的表達式是( )。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
參考答案:A
參考解析:B與D選項中取模運算符%的左右兩個操作數均應為整數,所以B、D錯誤。c選項中不能將X+Y的值賦給表達式Y*5,所以c錯誤。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |