2015年計算機二級《C語言》最新章練習題
C.Qian,f,350,Qian,f,350
D.Qian,m,290,Qian,f,350
參考答案:D
參考解析:本題中考查結構體中變量的引用,a結構體中Flame被修改為Qian,所以本題答案為D。
2以下敘述中正確的是
A.如果函數帶有參數,就不能調用自己
B.所有函數均不能接受函數名作為實參傳入
C.函數體中的語句不能出現對自己的調用
D.函數名代表該函數的入口地址
參考答案:B
參考解析:本題考查函數調用相關知識,B選項中函數可以接受函數名作為實參傳人,引用函數名也是指針,C、A選項是錯誤的,因為遞歸函數就能調用自己。
3若有以下程序
A.6B.18C.10D.24
參考答案:D
參考解析:第一次h循環。n的值為0,所以從default后面的語句開始執行,s+=4,s+=1,s+=2,s+=3,s的值為10。在進入第二次for循環,n的值為1,所以執行s+=1,s+=2,s+=3,s的值為16。在進入第三次for循環,n的值為2,所以執行s+=2,s+=3,s的值為21。在進入第四次for循環,n的值為3,所以執行s+=3,s的值為24。
4若有以下程序
A.1,14,3B.0,14,3C.0,18,3D.0,14,6
參考答案:B
參考解析:本循環的條件判斷時只要a為0就退出循環體,初始值a的值為6,滿足條件執行完循環體,b的值為6,a-=++C即a=a-(++C),所以a的值為5,c的值為1。第二次循環后b的值為11,a的值為3,c的值為2。第三次也是最后循環后,a的值為0,b的值l4,c的值為3。
5有以下程序
程序運行后的輸出結果是
A.108B.68C.99D.60
參考答案:D
參考解析:該題首先給二維數組賦值a[3][4]={{1,3,5,7}{9,11,13,15}{17,19,21,23}};(*P)[4]=a指針P指向二維數組a的首地址,接下來執行for循環,首先i=0,j=0時k=k+*(}(P+O)+0)=1(a[O][0]);然后i_0,j=1時k=k+}(}(P+0)+1)=4(a[0][1]);然后j=2時,跳出j的循環,執行i的循環i=1,j=0時k=k+*(*(P+1)+O)=13(a[1][0]);依次類推一直到i-3時跳出全部循環。循環語句在這里的功能是累加二維數組第1列和第2列的元素,累加結果為60。
6若有以下程序
A.5,6,0B.6,0,0C.6。6,1D.5,6,1
參考答案:C
參考解析:本題重點考查C語言中for語句和邏輯表達式,for語句的一般形式為:for(表達式1;表達式2;表達式3)語句其循環中的“表達式1(循環變量賦初值)”、“表達式2(循環條件)”和“表達式3(循環變量增量)”都是選擇項,即可以缺省,但“;”不能缺省。該題目中省了“表達式1(循環變量賦初值)”和“表達式3(循環變量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相當于while(a&&(b==0)){b+=a;a-=c++;}。因此c選項正確。
7有以下程序
程序運行后輸出結果是
A.0,2B.0,3C.1,3D.1,2
參考答案:D
參考解析:本題重點考查while語句,變量a和b分別賦初值為-2和1,while語句的語義是:計算表達式的值,當值為真(非O)時,執行循環體語句。a++即a參與運算后,a的值再自增1。++b即b自增1后再參與其它運算。當表達式的值為0時,退出循環,最后輸出a和b的值為1和2。因此D選項正確。
8以下關于宏的敘述錯誤的是
A.宏名必須用大寫字母構成
B.宏替換具有計算功能
C.宏替換不具有計算功能
D.宏替換不占用運行時間
參考答案:A
參考解析:宏名習慣采用大寫字母,以便與一般變量區別,但是并沒有規定一定要用大寫字母,因此,答案為A選項。
9以下敘述中正確的是
A.兩個字符串可以用關系運算符進行大小比較
B.函數調用strlen(s);會返回字符串S實際占用內存的大小(以字節為單位)
C.C語言本身沒有提供對字符串進行整體操作的運算符
D.當拼接兩個字符串時,結果字符串占用的內存空間是兩個原串占用空間的和
參考答案:C
參考解析:本題考查字符串處理函數strien、strcat、strcmp。B選項中strlen返回的是字符串s實際占用內存大小加上結尾符,A選項中不能用關系運算符進行大小比較,可以使用strcmp。D選項當使用連接函數strcat時,內存空間會減少一個字符位置。
10有以下程序
程序運行后的輸出結果是
A.#N#B.#F#C.MMMD.MO#
參考答案:A
參考解析:for語句中把array數組首地址值賦給ptr,ptr++表示每次執行完循環體后,ptr指向下一數組元素,當指針指向值為0時,輸出#,否則´M´再加上指針對應數組值進行輸出,當* ptr=1時,´M´+l=´N´,結果輸出為#N#,答案為A選項。
11有以下程序
程序的輸出結果是
A.10B.9C.8D.7
參考答案:B
參考解析:首先注意for循環的控制條件,當b>=20或者a>100則跳出for循環,也即b<20且a<=100時執行for循環;第一次進入循環a=1,b=1均滿足循環條件,但b%3==1條件滿足,故執行b=b+3,得到b=4,注意有continue,所以后面語句不執行,直接跳轉到a++這個語句,所以第一次循環完之后a=2,b=4;進入第二輪循環,b%3==1也是滿足的,故再次b=b+3,此輪循環執行之后a=3,b=7,進入下一輪。此后和前面循環同理,都是b%3==1滿足,因為每次都是加3,而之后又去模3,且都跳過for后面語句直接執行a++,所以,一直循環到b=22跳出for循環。此時a為8。綜合起來就是,每次循環b增加3,a增加1,且當b>22時跳出循環。結束程序。所以b從1增加到22,有(22-1)/3=7,所以a=1+7=8.因此B選項。
12下列關系表達式中,結果為。假”的是
A.3<=4B.(3<4)==1C.(3+4)>6D.(3 !=4)>2
參考答案:D
參考解析:B選項中。關系表達式(3<4)==1即1==1,結果為真;C選項中,(3+4)>6即7>6,結果為真;A選項中,3<=4結果為真。D選項中,(3 !=4)>2即1>2,結果為假。因此D選項正確。
13有以下程序
程序運行后的輸出結果是
A.5 6 1 2B.3 4 5 6C.1 2 5 6D.5 6 3 4
參考答案:D
參考解析:funl函數中的a、b為局部變量,fun2函數中的a.b為全局變量。執行funl函數后輸出5,6;執行完fun2后a變為3,b變為4,所以結果為3,4。D選項正確。
14若有以下程序
執行時若輸入:
Fig flower is red.<回車>
則輸出結果是
A.Fig flower is red.is blue.
B.Fig flower is red.
C.Fig floweris red.
D.Fig floweris
參考答案:B
參考解析:本題考查字符數組的賦值以及字符串的處理函數,本題中輸入字符串Fig flower is red時,首先是將前10個字符賦值給字符數組a,然后執行gets(B.后,將后續字符存放到b中,當輸出時,首先輸出字符數組a,然后輸出字符串b,所以結果為B選項。
15有以下程序
程序運行后的輸出結果是
A.wowB.fwoC.twoD.fix
參考答案:B
參考解析:考查二維數組元素的引用。當i為0時,代碼處理結果為第一個字符串的第一個字符與第四個字符串的第一個字符調換,當i為1時,代碼處理結果為第而個字符串的第一個字符與第五個字符串的第一個字符調換,所以a[1]為fwo。