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