2015年9月計算機二級C語言高分突破模擬卷匯總
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
參考答案:D
參考解析:fun()函數(shù)的功能是對數(shù)組a[]的元素從大到小進行排序。
2以下程序的輸出結(jié)果是( )。
A.1 2 3 4B.1 2 3C.1 2D.1
參考答案:B
參考解析:while的執(zhí)行過程是:先計算條件表達式的值,若成立則執(zhí)行循環(huán)體,重復(fù)上述過程,直到條件表達式的值為”假”(值為零)時,退出循環(huán),并轉(zhuǎn)下一語句去執(zhí)行。本題在輸出num的值為3之后,再判斷while的循環(huán)條件3<=2,不成立,所以不再輸出num的值,故本題應(yīng)該選B。
3如果進棧序列為e1、e2、e3、e4,則可能的出棧序列是( )。
A.e3、e1、e4、e2B.e2、e4、e3、e1C.e3、e4、e2 D.任意順序
參考答案:B
參考解析:棧的特點是先進后出,可知el肯定是最后出棧的,因此正確答案為選項B。
4與“y=(x>0? 1:x<0?一1;0)”;的功能相同的if語句是( )。
A.
B.
C.
D.
參考答案:B
參考解析:y=(x>O?1:xO?1:(x<0?-1:0)),故選B選項。
5下列選項中不會引起二義性的宏定義是( )。
A.#define S(x)x*x
B.#define S(x)(x)*(x)
C.#define S(x)(x)*x
D.#define S(x)(x*x )
參考答案:B
6結(jié)構(gòu)化程序設(shè)計的3種結(jié)構(gòu)是( )。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
參考答案:D
參考解析:結(jié)構(gòu)化程序設(shè)計的基本要點:①采用自頂向下、逐步求精的程序設(shè)計方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。
7有以下程序:
程序運行后的輸出結(jié)果是( )。
A.209B.99C.2011 D.1111
參考答案:C
參考解析:在主函數(shù)中,首先定義一個包含20個元素的字符數(shù)組p,執(zhí)行語句“strcpy(p+str|en(q),r);”,數(shù)組p的內(nèi)容變?yōu)閧a,b,c,a,b,c,d,e,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0),執(zhí)行語句“strcat(P,q);”,數(shù)組P的內(nèi)容變?yōu)閧a,6,c,a,6,c,d,e,a,6,c,\D,\0,\0,\0,\0,\0,\0,\0,\0},函數(shù)sizeof(p)是求數(shù)組p的大小,返回20,而函數(shù)strlen(p)是計算以p所指起始地址的字符串的長度,這一長度不包括串尾的結(jié)束標志0,所以函數(shù)返回11。
8有以下程序:
程序的輸出結(jié)果是( )。
A.AB.aC.Z D.z
參考答案:B
參考解析:因為在ASCⅡ碼中,它的大寫比小寫剛好小32,比如ˊA ˊ的ASCⅡ是65,那么ˊa ˊ的ASCⅡ就是97。x=(x>=ˊAˊ&&x<=ˊZˊ)?(x+32):x;這句用了?:表達式,A?B:C就是問號前A部分為真時,表達式的值是B,否則表達式的值是C。這里(x>=ˊAˊ&&x<=ˊZˊ)成立,所以表達式取(x+32),所以x=ˊA ˊ+32=ˊa ˊ。因此正確答案為B。
9有以下程序:
程序的輸出結(jié)果是( )。
A.3B.4C.1D.2
參考答案:A
參考解析:*P=a;P指向首地址,*(P+2))往后移動兩個元素,指向3,所以正確答案為A。
10已知函數(shù)fread的調(diào)用形式為“fread(buffer,size,count,fp);”,其中buffer代表的是( )。
A.存放讀人數(shù)據(jù)項的存儲區(qū)
B.一個指向所讀文件的文件指針
C.一個指針,是指向讀人數(shù)據(jù)存放在內(nèi)存中的起始地址
D.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)
參考答案:C
參考解析:本題考查數(shù)據(jù)塊讀取函數(shù)調(diào)用形式:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個指針,是讀入數(shù)據(jù)的存放地址,對fwrite來說,是要輸出數(shù)據(jù)的地址;“size”是要讀寫的字節(jié)數(shù);“count”是要進行讀寫多少個size字節(jié)數(shù)據(jù)項;“fp”是指文件型指針。
11有定義:“int a=2,b=3,c=4;”,則下列選項中值為0的表達式是( )。
A.
B.
C.
D.
參考答案:A
參考解析:本題考查邏輯與運算“&&”與邏輯或運算“||”。在選項A中,因為!a=0,所以關(guān)系表達式!a=1為0,又因為邏輯與運算符“&&.”兩邊的表達式只要一個等于零,則整個表達式為零,所以選項A正確。在選項B中,關(guān)系表達式a
12有以下程序:
程序運行后的輸出結(jié)果是( )。
A.10B.11C.14 D.15
參考答案:C
參考解析:由題目的語句P=&a[l]可知,p指向a數(shù)組中下標為1的元素“4”,又因為p為指針變量,所以p[x]與*(p+x)等價,因而在for循環(huán)語句中,第一次循環(huán)p[1]指向a數(shù)組中下標為2的元素“6”,第二次循環(huán)p[2]指向a數(shù)組中下標為3的元素“8”,所以y=6+8=14,因而選項C為正確答案。
13若變量已正確定義,有以下程序段
其輸出結(jié)果是( )。
A.0,0B.0,1C.1,1 D.程序進入無限循環(huán)
參考答案:B
參考解析:本題中,變量i的初始值等于0,執(zhí)行循環(huán)體中的語句后,輸出i的值為0。while后面括號中表達式i++的值為0,循環(huán)結(jié)束。此時變量i自加1,所以再次輸出“1”。
14有下列程序:
執(zhí)行后的輸出結(jié)果是( )。
A.6B.7C.8D.9
參考答案:C
參考解析:函數(shù)fun(int x,int y)的功能是返回x+y的值。在主函數(shù)中,變量a、b、c的初始值分別為1、2、3。因此,逗號表達式“a++,b++,a+b”的值等于5,表達式c++的值為3,調(diào)用于函數(shù)的表達式為“fun(5,3);”,其返回值等于8。
下列程序執(zhí)行后的輸出結(jié)果是( )。
A.6B.7C.8D.9
參考答案:A
參考解析:本題考查函數(shù)的調(diào)用,從主函數(shù)傳遞到調(diào)用函數(shù)中,*a的值為0,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,6[0]的值為6。
16下列關(guān)于棧的描述中錯誤的是( )。
A.棧是先進后出的線性表
B.棧只能順序存儲
C.棧具有記憶作用
D.對棧的插入刪除操作中,不需要改變棧底指針
參考答案:B
參考解析:棧是線性表的一種,它的特點是先進后出,并且只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都在棧頂進行,因此具有記憶作用。棧可以采用順序存儲,也可以采用鏈式存儲。
17設(shè)有以下語句:
int a=1,b=2,C;
c=a^(b<<2);
執(zhí)行后,C的值為( )。
A.6B.7C.8 D.9
參考答案:D
參考解析:本題考查兩個知識點,按位異或左移把b左移2位化成二進制c=a^(b<<2)=a^(000010<<2)=a^001000=0000001^001000=9,故選擇D。
以下敘述中錯誤的是( )。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
參考答案:C
參考解析:數(shù)組下標從0開始,當(dāng)數(shù)組元素的下標超出了定義的范圍時,系統(tǒng)不會出“下標越界”的信息,運行會出錯,因此在編程時務(wù)必檢查下標是否越界。
19有下列程序:
程序的運行結(jié)果是( )。
A.3B.2C.4 D.1
參考答案:B
參考解析:本題考查switch語句及break的用法。第一個switch語句,因為a=6,a%2=0,所以執(zhí)行“CaSe 0,m++;”,將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。不執(zhí)行下面的switch。
20有以下程序:
程序的輸出結(jié)果是( )。
A.0B.1C.2 D.3
參考答案:C
參考解析:
因為a=2,b=-1,f(a
21以下程序的輸出結(jié)果是( )。
A.1,2,6,8B.8,6,2,1C.8,1,6,2 D.8,6,1,2
參考答案:C
參考解析:本題用了函數(shù)調(diào)用,fun中if語句成立則進行i,j的交換,用到主函數(shù)中則為把下標0、3,1、2互換,因此,當(dāng)執(zhí)行完后x的數(shù)組為8,1,6,2,故選擇C選項。
22
不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是( )。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[o])
參考答案:A
參考解析:選項A計算的是p[]字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù)。選項B、C和D都能計算出一個字符型數(shù)據(jù)所占的字節(jié)數(shù)。
23對兩個數(shù)組a和b進行下列初始化:
則下列敘述正確的是( )。
A.數(shù)組m與數(shù)組n完全相同
B.數(shù)組m與數(shù)組n長度相同
C.數(shù)組m比數(shù)組n長1
D.數(shù)組m與數(shù)組n中都存放字符串
參考答案:C
參考解析:在m數(shù)組中賦值的是字符串,其長度為7,末尾有結(jié)束符ˊ\0ˊ,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項正確。
24有以下程序:
A.9B.61490C.61D.5
參考答案:C
參考解析:在fun函數(shù)中,while循環(huán)的功能是逐個取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將這些數(shù)字組成一個數(shù)保存到變量n中,并返回變量n的值。
25有下列程序:
程序執(zhí)行后的輸出結(jié)果是( )。
A.x=4B.x=8C.x=6 D.x=12
參考答案:B
參考解析:在第1次外層for循環(huán)中,首先x++得到x=1。進入到內(nèi)層for循環(huán),只有循環(huán)j的值為奇數(shù)時,變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量x的值自加兩次,當(dāng)退出內(nèi)層for循環(huán)時,x=3,然后執(zhí)行x++,得到x=4。在進入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進入到內(nèi)層for循環(huán),只有循環(huán)變量j的值為奇數(shù)時,變量X的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量x的值自加1兩次,當(dāng)退出內(nèi)層for循環(huán)時,x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量X的值為8。