2015年9月計算機二級《C語言》模擬卷
b=++x;
c=y:
A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5, b=6,c=5 D.a=1,b=5,c=6
參考答案:B
參考解析:本題考查自加(++)、自減(--)運算符的使用。“++x,--x”,在變量x前使用,先使x的值加1或者減1,再使用此時的表達式的值參與運算;“x++,x”,先把使用x的值參與運算,在使用x之后,再使X的值加1或者減1。對于表達式--x=4,y++=4,兩者相等,--x=y++為真,所以a=x=4,執行完此語句后y的值是5。第2個表達式b=++x,x的值先加1,然后賦給b,即b=x+1=5;表達式c=y=5。故選項B正確。
2若有以下程序段:
jnt c1=1,c2=2,c3:
c3=c1/c2:
執行后的輸出結果是( )。
A.0B.1/2C.0.5D.1
參考答案:A
參考解析:cl和c2都是整數,1/2取整得0,舍棄小數點。因此正確答案為A。
3若有定義:“int a=4,b=5;float x=3.4,y=2.1;”,則下列表達式的值為( )。
A.5.5B.55C.5.500000 D.55.00000
參考答案:C
參考解析:在計算(float)(a+b)/2時,由于通過強制類型轉換將(a+b)轉換成了float型,所以應先將2轉換成float型,再進行計算,得4.500000。
在計算(int)x%(int)y時,先將x和y通過強制類型轉換成int型,再進行求余運算,結果為1。又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再計算,得到5.500000。
類型轉換的一般規則是低級類型從高級類型進行相應的轉換。數據類型的級別由低到高的排序表示為:char→int→unsigned→log→float→double。
4下列程序的執行結果是( )。
A.3,14,1B.3,l4,2C.2,04,1D.2,14,l
參考答案:A
參考解析:本題主要考查自加減運算符(++,--)的使用。①如果作為前綴變量“++a,--a”,在使用a之前,先使a的值加1或者減1,再使用表達式的值參與運算;②后綴變量“a++,a--”,先使用表達式的值參與運算,在使用a之后,再使i的值加1或者減1。在本題中計算表達式c=(a++)-1時先使用a的值進行計算,結果為c=2-1=l,然后將a的值加1,即執行完此句后a的值是3;表達式c+=-a+++(++b)也可寫成c=c+(-a++)+(++b),c=1+(-3)+3=l,此時a=4,b=3。
5下列程序的輸出結果是( )。
A.19B.18C.6D.8
參考答案:D
參考解析:本題考查switch ease開關語句,default退出繼續循環。當i=1時,執行case 1,因為沒有break語句,所以依次往下運行,a=a+2=2,a=a+3=5;當i=2時,執行case 2,沒有break語句,所以依次往下運行,a=a+2=7,a=a+3=10;當i=3時,執行case 3,當a=a+1=11,沒有break語句,所以依次往下運行,a=a+2=13,a=a+3=16;當i=4時,沒有case語句,則執行default,a=a+3=19,i=5不成立,循環結束。
6下面程序的功能是輸出以下形式的金字塔圖案:
在橫線處應填入的是( )。
A.iB.2*i一1C.2*i+1D.i+2
參考答案:B
參考解析:通過觀察可知圖形共4行,主函數中通過一個for循環四次,輸出4行。第一行輸出3個空格和1個“*”,第2行輸出2個空格和3個“*”,第3行輸出3個空格和5個“*”,第四行輸出7個“*”,主函數中通過第二個循環控制每行的輸出空格數,第三個for循環控制輸出的“*”的個數,總結規律:每行輸出的“*”的個數,總比前一行的多2個,且第一行的個數為1,可以斷定每行輸出的“*”的個數組成了一個公差為2的等差數列,所以每行輸出“*”的個數即該等差數列的通項,故該空格處應該填寫2*i-1。
7設a、b、C、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值是( )。
A.0B.1C.2D.3
參考答案:C
參考解析:因為a>b不成立,故表達式a>b的值為0,即把0賦給m,因此&&左邊表達式的值為0,0與任何值&&運算都為0,于是不再計算&&右邊表達式的值,所以此時的n仍然為2。
8有下列二叉樹:
進行中序遍歷的結果是( )。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
參考答案:A
參考解析:有3種遍歷方法:前序、中序和后序。中序遍歷首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。結果為ACBDFEC-。
9下列描述錯誤的是( )。
A.繼承分為多重繼承和單繼承
B.對象之間的通信靠傳遞消息來實現
C.在外面看不到對象的內部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
參考答案:C
參考解析:對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內部,其處理能力的實行和內部狀態對外本來就是不可見的、隱蔽的。
10若有以下說明,則( )不是對strcpy庫函數正確的調用。
A.strcpy(str2,str1)
B.B.strcpy(str3,str1)
C.strcpy(str1,str2)
D.strcpy(str5,str1)
參考答案:C
參考解析:strcpy(s1,s2)函數的功能是將字符串s2復制到字符串s1中。要保證sl存儲區能容納下s2字符串。
11設有定義語句
則變量a( )。
A.包含1個字符B.包含2個字符C.包含3個字符D.定義不合法
參考答案:A
參考解析:ˊ\ˊ是轉義字符,但是ˊ\72ˊ表示ASCⅡ碼里的1個字符。
12下面程序的運行結果是( )。
A.1B.2C.3D.4
參考答案:B
參考解析:本題中del(char*s)函數實現的功能是逐個讀入s數組中的字符,如果遇到數字。則將數字存在s中,遇到非數字字符則跳過。所以最后輸出的應該是字符串s中所有數字的個數。
13以下只有在使用時才為該類型變量分配內存的存儲類型說明是( )。
A.auto和staticB.auto和registerC.register和static D.extern和register
參考答案:B
參考解析:在用靜態static與外部extern定義變量時,系統立刻給其分配內存,而定義自動類auto與強制放入寄存器register類型變量時,只有當使用時才分配內存。
14在下列給出的表達式中,與whⅡe(E)中的(E)不等價的表達式是( )。
A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)
參考答案:B
參考解析:在while(E)中,表達式E可以是C語言中任意合法的條件表達式,但不能為空,由它來控制循環體是否執行。在選項B 中表達式E>0||E<0是一個邏輯表達式。
15有以下程序:
程序執行后的輸出結果是( )。
A.7B.3C.2 D.0
參考答案:C
參考解析:在函數fun(int x)中,有個if語句判斷,如果參數x等于0或1時,返回值,否則進入下面的p=x-fun(x 2)遞歸函數。當在主函數中調用fun(7)時,其過程為:“fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2”,所以最后的輸出結果為2。
16設x=011050,則x=x&01252的值是( )。
A.0000001000101000
B.1111110100011001
C.000000101 1 100010
D.1100000000101000
參考答案:A
參考解析:本題考查按位與運算,按位與就是相同為1,不同為0,把x一011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
17下列敘述中正確的是( )。
A.在賦值表達式中,賦值號的左邊既可以是變量,也可以是任意表達式
B.實型變量中允許存放整型數
C.若a和b類型相同,在執行賦值a=b后,b中的值將放人a中,但b中的值不變
D.在c程序中,求取余運算符“%”兩邊的類型相同時才能進行運算
參考答案:D
參考解析:選項A,在賦值表達式中,賦值號的左邊只能是變量或者是代表某個存儲單元的表達式,不能是任意表達式,右邊也不得出現表達式;選項B中,整型變量中只能存放整型數,但實型變量中能存放實型數,也能存放整型數;選項C,表達式a=b的意思是把變量b的值賦給變量a,從而覆蓋a中原來值;選項D,要求取余運算符″%″兩邊的類型相同。
18設a=1,b=2,c=3,d=4,則表達式:“a
A.4B.3C.2D.1
參考答案:D
參考解析:在三目運算符中,優先級相同,按從右到左的結合性計算,a
19下列敘述中正確的是( )。
A.在面向對象的程序設計中,各個對象之間具有密切的關系
B.在面向對象的程序設計中,各個對象都是公用的
C.在面向對象的程序設計中,各個對象之間相對獨立,相互依賴性小
D.上述3種說法都不對
參考答案:C
參考解析:本題考查對面向對象的理解。面向象的程序設計是對象模擬問題領域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現對象之間的相互聯系。
20若有定義:int x,*pb;則正確的賦值表達式是( )。
A.
B.
C.
D.
參考答案:A
參考解析:*pb是指解除對*pb的引用(也可以認為是取pb所指向的地址的值),被解除引用的指針可以作為左值,&為取地址運算符,&x就是取指向變量x的指針。
21下列敘述中不正確的是( )。
A.在c語言中調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在c的函數中,最好使用全局變量
C.外部變量可以在函數之間傳遞數據
D.自動變量實質上是一個函數內部的局部變量
參考答案:B
參考解析:在程序運行中局部變量所在的函數被調用時,編譯系統根據需要臨時分配內存,調用結束空間解放;全局變量一經定義,編譯系統為其分配固定的內存單元,在程序運行的自始至終都占用固定的單元。在考慮內存未知的情況下,最好不要使用全局變量。
22下列程序的輸出結果是( )。
A.6,1B.2,lC.6,0 D.2,0
參考答案:B
參考解析:當邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)-1,2%9=2,故a=2,故先算a/10=25/10=2。
23若有以下程序段:
執行后的輸出結果是( )。
A.3,0,-10B.0,0,5C.-10,3,-10 D.3,0,3
參考答案:B
參考解析:首先分兩塊,逗號前面的是第一塊,先執行,逗號后面的是第二塊,后執行;兩個塊中,括號里的先執行,a-=a-5;//執行前’a=0,執行后,a-=-5,a=5;c=a;//c=5;a=b;//a=b=0;b+3;//執行,但是不修改任何數字。所以,最后結果是:0,0,5。B選項符合結果。
24
A.A,BB.A,68C.65,66 D.65,68
參考答案:C
參考解析:在C語言中,用整型格式輸出字符時,輸出的是其ASCⅡ碼值。
25表示關系x<=Y<=Z的C語言表達式為( )。
A.(X<=Y)&&(Y<=Z)B.(X<=Y)AND(Y<=Z)C.(X<=Y<=Z)D.(X<=Y)&(Y<=C)
參考答案:A
參考解析:題中X<=Y<=Z的意思為X<=Y并且Y<=Z,在C語言中,要表示“且”的關系,應用“與”邏輯運算符,即“&&”,故選擇A選項。
點擊查看試題筆記(0)26下列程序的輸出結果是( )。
A.49B.36C.25 D.64
參考答案:C
參考解析:本題考查for循環及if語句。當執行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現時,break跳出循環,執行下列的printf語句。
27下列程序的輸出結果是( )。
A.3B.4C.2D.5
參考答案:B
參考解析:本題考查函數調用時的參數傳遞。在函數調用時,形參是指向實參的指針變量,則printf的執行結果為++x;x=3,則3+1=4。
28下列運算符中優先級最低的算符是( )。
A.||B.!=C.<=D.十
參考答案:A
參考解析:C語言中規定運算符的優先順序:一元算術運算符一>二元算術運算符一>關系運算符一>邏輯運算符一>賦值運算符,A項中為邏輯運算符,B項和c項都為關系運算符,D項為一元運算符。因此最低的是A項。