版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
一、選題題1.二進制語言是屬于()
A.面向機器語言
B.面向問題語言
C.面向過程語言
D.面向匯編語言【解析】人們研制了許許多多計算機程序設(shè)計語言,其中二進制語言直接來自計算機指令系統(tǒng),與詳細計算機緊密有關(guān),因此是一種面向機器語言。面向問題語言是為了易于描述和求解某類特定領(lǐng)域問題而專門設(shè)計一種非過程語言。面向過程語言是一種能以便描述算法過程計算機程序設(shè)計語言。有匯編語言,但沒有面向匯編語言。匯編語言也是一種面向機器語言,與機器語言比較,匯編語言用有助于記憶符號來代表二進制代碼。因此解答是A。
【參照答案】A2.下列語言中不屬于面向過程語言是()
A.高檔語言
B.低檔語言
C.C語言
D.PASCAL語言【解析】C語言和PASCAL等程序設(shè)計語言都是高檔語言,它們用于描述復雜加工解決過程,因此也稱它們是面向過程語言。低檔語言是指機器語言和匯編語言,低檔語言是面向機器語言,而不是面向問題語言。因此解答是B。
【參照答案】B3.下列字符中屬于鍵盤符號是()
A.\
B.\n
C.\t
D.\b【解析】鍵盤符號是指鍵盤上有標記,并能在顯示屏上直接以其標記字樣顯示字符。有許多鍵盤上有標記符號,它們不是用于直接顯示,鍵入這種字符用于表達特定意義,如慣用回車符。為了能讓C程序標記這種符號,程序采用轉(zhuǎn)義字符方式書寫這種字符。如'\n'、'\t'、'\b'都不是鍵盤字符,在C語言中,它們都得用轉(zhuǎn)義字符來表達。只有字符\才是鍵盤字符。因此解答是A。但在C程序中,反斜杠字符\已特別用作轉(zhuǎn)義字符引導符,它也得用轉(zhuǎn)義字符表達形式書寫,將它寫成’\\’。
【參照答案】A4.下列字符列中,不是用來表達轉(zhuǎn)義字符是()
A.\\
B.\'
C.074
D.\0【解析】轉(zhuǎn)義字符有三種書寫形式:反斜社字符后接上某個規(guī)定字符;反斜杠字符后接上13個八進制數(shù)字符;反斜社字符和字符X之后接上1至2個十六進制數(shù)字符。后兩種分別八進制數(shù)和十六進制數(shù)直接給出字符ASCll代碼值。而074是八進制整數(shù),不是轉(zhuǎn)義字.因此解答是C。
【參照答案】C5.不是C語言提供合法核心字是()
A.switch
B.begin
C.case
D.default【解析】因C語言核心字表中沒有begin,它不是C語言核心字。因此解答是B。
【參照答案】B6.下列字符列中,能作為單個標記符是()l
A.?a
B.a=2
C.a.3
D.a___3【解析】在C語言中,規(guī)定標記符是這樣一種字符序列,由英文字母或下線字符開始,后接任1個英文字母、下線字符和數(shù)字符構(gòu)成。因此問題所列字符列只有a_3是標記符,別的都l是標記符,一種是由字符’?’開頭、一種中間有字符’=’,另一種有字符’.’。因此解答是D。
【參照答案】D7.在C語言中,下列說法中錯誤是()
A.函數(shù)定義可以分為兩個某些:函數(shù)闡明某些和函數(shù)體
B.主函數(shù)可以調(diào)用任何非主函數(shù)
C.任何非主函數(shù)可以調(diào)用其他任何非主函數(shù)
D.程序可以從任何函數(shù)開始執(zhí)行【解析】每個C函數(shù)定義分兩某些,函數(shù)闡明某些和函數(shù)體,因此論述A.是對的論述。C語言中,函數(shù)可以遞歸調(diào)用,主函數(shù)可以調(diào)用程序中任何函數(shù),固然可以調(diào)用任何非主教其他函數(shù),因此論述B.是一種對的論述。同樣理由,論述C.也是對的。C語言規(guī),C程序只有一種主函數(shù),并總是從主函數(shù)開始執(zhí)行,不能從非主函數(shù)開始執(zhí)行。因此,說程可以從任何函數(shù)開始執(zhí)行是錯誤。因此解答是D。
【參照答案】D8.下列字符列中,可以作為“字符串常量”是()
A.ABC
B.ABC”
C.’abc’
D.’a’【解析】C程序中,一種字符率常量是表達一種字符序列,書寫時,用雙引號字符先后括住這個字符序列。因此只有”ABC”是一種對的字符率常量,別的都不是。其中,ABC可作為標記符,字符列’abc’不能出當前C程序中,’a’是一種字符常量。因此解答是B。
【參照答案】B9.在以字節(jié)存儲字符系統(tǒng)中,’\n’在內(nèi)存占用字節(jié)數(shù)是()
A.1
B.2
C.3
D.4【解析】普通來說,一種字符在內(nèi)存中只占1個字節(jié),’\n’是轉(zhuǎn)義字符,其意義是換行符,它作為一種字符存儲,在內(nèi)存也只占五個字節(jié)。因此解答是A。
【參照答案】A10.字符串”XyZ”在內(nèi)存占用字節(jié)數(shù)是()
A.3
B.4
C.6
D.8【解析】字符串中每個字符占1個字節(jié),但C程序在存儲字符串時,要在最后一種有效字符背面接上1個字符串結(jié)束標記符'\0'。這樣,存儲字符串常量”xyZ”需要4個字節(jié)。因此解答是B。
【參照答案】B11.在如下字符列中,合法長整型常數(shù)是()
A.OL
B.4962710
C.0.
D.2.1869el0【解析】為表達不同范疇整數(shù),整型數(shù)據(jù)分短整型、基本型和長整型,并對三種整型內(nèi)部表達最高位不同理解,又分別提成無符號和帶符號兩種。若要明確指明一種整數(shù)是長整型,必要在整數(shù)之后接上字符’L’。因此OL是一種長整型整型常量,而4962710是基本整型數(shù)據(jù),而對于用2個字節(jié)表達一種基本整型數(shù)據(jù)系統(tǒng)來說,該整數(shù)將因超過范疇而是一種錯誤整數(shù);0.和2.1869el0都是double型實數(shù)。因此解答是A。
【參照答案】A12.一種char型數(shù)據(jù),它值在內(nèi)存中存儲是()
A.ASCll代碼值
B.BCD代碼值
C.內(nèi)碼值
D.十進制代碼值【解析】計算機存儲字符,普通是存儲字符某種代碼值。有許各種字符編碼辦法,最流行是ASCII代碼。在C語言中,Char型數(shù)據(jù)也用ASCII代碼表達。因此解答是A。
【參照答案】A13.設(shè)變量m,n,a,b,c,d均為以執(zhí)行(m=a==)||(n=c==d)后,m,n值是()
A.0,0
B.0,1
C.l,0
D.1,1【解析】計算(m=a==b)||(n=c==d)過程是先計算邏輯或左運算分量(m=a==b)值,由于賦位運算符優(yōu)先級比關(guān)系運算符==優(yōu)先級低,又先計算a==b。因a,b均為0后,因此比較成果值為1。將1賦給變量m,使變量m值變?yōu)?。同步這個賦值運算成果也是1,這樣邏輯運算左運算分量值為1。由于邏輯或運算左運算分量值為1,按照C語言對邏輯或運算優(yōu)化計算規(guī)定,不再計算邏輯或右運算分量,而直接得到邏輯或運算成果為1。由于邏輯或右運算分量不曾計算過,因此變量n值也不為變化。這樣,上述表達式計算后,變量m情為1,變量n值為0。因此解答是C。
【參照答案】C14.設(shè)a為5,執(zhí)行下列計算后,b值不為2是()
A.b=a/2
B.b=6-(--a)
C.b=a%2
D.b=a<3?3:2【解析】因兩個整型數(shù)據(jù)相除,成果是整數(shù),當a值為5時,計算表達式b=a/2后,使b值為2。計算表達式b=6-(--a)是先計算子表達式(--a),先讓a值減1變成4,并以減1后a為子表達式成果,因此子表達式成果為4,最后使b值為2。在計算表達式b=a%2時,求余運算a%2成果為1,最后使變量b值為1。計算表達式b=a<3?3:2時,先計算條件表達式a<3?3:2,以2為成果,最后也使變量b值為人因此解答是C。
【參照答案】C15.執(zhí)行語句“x=(a=3,b=a--);”后,X,a,b值依次為()
A.3,3,2
B.2,3,2
C.3,2,3
D.2,3,3【解析】計算表達式x=(a=3,b=a--)時,先計算賦值號右端圓括號內(nèi)逗號表達式。遠號表達式規(guī)定各子表達式順序計算,并以最后予表達式值為整個逗號表達式成果。因此該表達式計算時,先讓變量a值為3,a--值是a當時值,以該值為成果賦給變量b,并以該值為遠號表達式值賦給變量x,然后a值被減少1。因此計算該表達式后,使變量x,a,b值依次為3,2,3。因此解答是C。
【參照答案】C16.設(shè)整型變量m,n,a,b,c,d均為1,執(zhí)行“(m=a>b)&&(n=a>b)"后m,n值是()
A.0,0
B.0,l
C.1,0
D.1,l【解析】表達式(m=a>b)&&(n=a>b)是一種邏輯表達式,它計算過程是先計算邏輯與左分量(m=a>b,其中又是先計算a>b。因a>b不成立,成果為0,將0賦給變量m,最后邏輯與左分量成果為0。由于邏輯運算采用特別優(yōu)化計算規(guī)則,當邏輯與左分量成果為0時,不再計算邏輯與右分量,而直接以0為邏輯與成果。因此,上述表達式計算使m值變?yōu)?,而n值沒有變,仍舊為l。因此解答是B。
【參照答案】B17.
設(shè)有代碼“inta=3;”,則執(zhí)行了語句“a+=a-=a*a;”后,變量a值是()
A.3
B.0
C.9
D.-12【解析】由于賦值運算符結(jié)合性自右至左,語句“a+=a-=a*a;”執(zhí)行是先計算a*a,得到值9,再計算a-=a*a,使a值為-6,接著計算a+=a,使a值為-12。因此解答是D。
【參照答案】D18.在如下一組運算符中,優(yōu)先級最高運算符是()
A.<=
B.=
C.%
D.&&【解析】常規(guī)運算符優(yōu)先級自高到低排列順序是算術(shù)運算符、移位運算符、關(guān)系運算符。按位運算符、邏輯運算符、條件運算符、賦值運算符、逗號運算符。因此問題所給四個運算符按優(yōu)先級自高到低排列順序是%,<=,&&,=。因此解答是C。
【參照答案】C19.設(shè)整型變量i值為3,則計算表達式i---i后表達式值為()
A.0
B.l
C.2
D.表達式出錯【解析】有些運算符只有一種字符,也有許多運算符由兩個字符構(gòu)成。特別是有些字符既可是單個字符運算符,又能構(gòu)成雙字符運算符。編譯系統(tǒng)在辨認源程序時,普通是盡量多地讀八字符,能構(gòu)成多字符單詞先盡量構(gòu)成多字符單詞。因此表達式i---i,被編譯器理解為(i--)-i。此外,當表達式中某變量有后綴自增和自減運算時,先按變量原值計算表達式,然后再對變量進行自增和自減運算。同樣地,當表達式中某變量有前綴自增和自減運算時,先對變量進行自增和自減運算,然后再按變量新值計算表達式。按這個商定,求表達式(i--)-i是計算i-i值為0,然后再對i作自減運算。這樣,表達式(i--)-i值為0。因此解答是A。
【參照答案】A20.設(shè)整型變量a、b、c均為2,表達式a+++b+++c++成果是()
A.6
B.9
C.8
D.表達式出錯【解析】與上一小題解答理由相似,表達式a+++b+++c++被系統(tǒng)理解成:((a++)+(b++))+c++)。表達式“變量++”值是變量本來值,因此在變量a、b.c均為2前題下,執(zhí)行上述表達式,得到成果為6。因此解答是A。
【參照答案】A21.若已定義x和y為double類型,則表達式:x=l,y=x+3/2成果是()
A.l
B.2
C.2.0
D.2.5【解析】由于變量x和y都是double類型,表達式x=l,y=x+3/2是先計算x=1,由于1是整型,x是double類型,該計算先將整數(shù)1轉(zhuǎn)換成double類型1.0,并將1.0賦給變量x。計算y=X+3/2是先求3/2值,因是兩整數(shù)相除,成果是整型值1,然后在計算X+1時,也先將1轉(zhuǎn)換成1.0,然后求得X+l值為2.0,最后將該值賦給變量y,并得到整個表達式值為2.0.因此解答是C。
【參照答案】C22.設(shè)a為整型變量,下列C表達式中,不能表達數(shù)學關(guān)系式:10<a<15是()
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.?。╝<=10)&&!(a>=15)【解析】數(shù)學關(guān)系式10<a<15表達。只能是11,12,13,14四個值之l。用C表達式表達這個條件,可寫成a>10&&a<15,或!(a<=10)&&?。╝>=15),或a==11||a==12||a==13||a==14等。若寫成10<a<15,該算式計算順序是先求出10<a成果0或1,然后以這個成果與15比較,與否不大于15,顯然這與數(shù)學式子意義是不一致。因此解答是A。
【參照答案】A23.下列表達式中,對的C賦值表達式是()
A.a=7+b+C=a+7
B.C=7+b++=a+7
C.a=(7+b,b++,a+7)
D.a=7+b,c=a+7【解析】賦值運算符是運算符之一,賦值運算也可以出當前普通表達式中。賦值運算時,出當前賦值運算符左邊表達式應當是引用一種存儲對象,例如變量。不可以是一種數(shù)值計算表達式。如表達式a=7+b+c=a+7因算術(shù)運算符比賦值運算符優(yōu)先級高,要把a+7成果賦給7+b+c,這是錯誤。同樣理由,表達式a=7+b++=a+7也是錯誤。而表達式a=(7+b,b++,a+7)就是對的賦值表達式,它是先計算賦值號左邊括號內(nèi)表達式,括號表達式內(nèi)是一種逗號表達式,遠號表達式規(guī)定順序逐個計算各子表達式,并以最后一種子表達式值作為遠號表達式成果,最后將該成果賦給變量a。而表達式a=7+b,c=a+7則不是一種賦值表達式,而是一種逗號表達式,它由兩個賦值子表達式構(gòu)成。因此解答是C。
【參照答案】C24.若有如下定義:chara;intb;floatc;doubled;則表達式a*b+d-c值類型為()
A.float
B.int
C.char
D.double【解析】基本類型數(shù)據(jù)可以混合運算,但運算時,對規(guī)定運算分量類型相似運算來說,如運算分量類型不是全相似,則會有自動類型轉(zhuǎn)換發(fā)生。類型自動轉(zhuǎn)換規(guī)則規(guī)定類型低(簡樸)向類型高(復雜)轉(zhuǎn)換。各類型由高到低排列順序是:longdouble、float、unsignedlong、long、unsignedint、int這樣,若有定義:chara;intb;floatc;doubled;則表達式a*b+d-c值類型是double。一方面計算a*b,得到int類型值,接著計算a*b+d,得到double類型值,最后計算a*b+d-c,得到double類型值。因此解答是D。
【參照答案】D25.表達式“9!=7”值是()
A.true
B.非0值
C.0
D.1【解析】關(guān)系運算成果只有0和1,若關(guān)系成立,則成果為1;若關(guān)系不成立,則成果為0。因關(guān)系式9!=7成立,因此表達式成果為1。雖然1也是非0值,在供選取答案中有1,因此最確切解答是D。
【參照答案】D26.用十進制數(shù)表達表達式“12|012”運算成果是()
A.1
B.0
C.14
D.16【解析】按位運算將運算分量視作二進位位申信息,對兩運算分量相應位進行運算,產(chǎn)生H進位位串信息成果。整數(shù)12最低8位二進位是00001100,整數(shù)012是八進制數(shù),它最低8位二進位是00001010。這兩個二進位位串信息按位或運算,得到成果是00001110,相應十進制數(shù)14,八進制數(shù)是016。因此解答是C。
【參照答案】C27.設(shè)字符型變量a=3,b=6,計算表達式C=(a^b)<<2后C二進制值是()
A.00011100
B.00000111
C.00000001
D.00010100【解析】a值為3,寫成8位二進制數(shù)形式是00000011,b值為6,寫成8位二進制數(shù)形式是00000110。表達式c=(a^b)<<2,先計算a與b按位加,得到成果00000101,將這成果向左移2位,得到二進位位串信息是00010100。因此解答是D。
【參照答案】D28.設(shè)a,b和c都是int型變量,且a=3,b=4,c=5,則下面表達式中值為0是()
A.’a’&&b’
B.a<=b
C.a||b+c&&b-c
D.!((a<b)&&!c||1)【解析】對于表達式’a’&&’b,兩個非O運算分量邏輯與成果為1。對于表達式a<=b,由于關(guān)系式成立,成果也為此又由于變量a為非0,表達式a||b+c&&b-c成果也為1。對于表達式!((a<b)&&!c||1),先是計算(a<b)得到成果1;計算!C得到成果為0;再計算它們邏輯與,成果為0。繼續(xù)與1求邏輯或,得到成果為1。最后,對1求邏輯非,得到成果為0。因此解答是A。
【參照答案】A29.設(shè)Ch是Char型變量,其值為’A’,則下面表達式值是()
ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch
A.’A’
B.’a’
C.’Z’
D.’z’【解析】由于字符型變量ch值為’A’,計算表達式ch=h>=’A’&&ch<=’Z’)?(ch+32):ch,先計算其中條件表達式,由于條件(ch>=’A&&h<=’Z’)成立,該條件表達式以ch+32=97為成果,將該值賦給變量ch,以字符表達這個值為’a’。因此解答是B。
【參照答案】B30.設(shè)有無符號短整型變量i、j、k,i值為013,j值為OX13。計算表達式“k=~i|j>>3”后,k值是()
A.06
B.0177776
C.066
D.0177766【解析】將變量i八進制數(shù)值013寫成二進制形式為00001011,將變量j十六進制值oxl3寫成二進制數(shù)形式為00010011。表達式k=~i|j>>3計算過程是先求~i,成果用八進制代碼表達為0177764;接著計算j>>3,成果為02。對它們進行按位或運算成果為0177766。因此解答是D。
【參照答案】D31.設(shè)a=3,b=4執(zhí)廳‘printf(”%d,%d’,(a,b)(b,a));”輸出是()
A.3,4
B.4,3
C.3,3
D.4,4【解析】在調(diào)用格式輸出函數(shù)語句中,其中每個格式符相應一種輸出項,格式符d規(guī)定輸出項內(nèi)容以十進制整數(shù)形式輸出。第一種輸出項(a,b)是一種逗號表達式,該表達式值是b值,輸出4。接著輸出字符逗號。第二個輸出項(b,a)值是a值,輸出3。因此語句執(zhí)行將輸出4,3。
【參照答案】C32.使用“Scanf("X=%f,y=%f",&x,&y)”,要使X,y均為1.25,對的輸入是()
A.1.25,1.25
B.1.251.25
C.x=1.25,y=1.25
D.X=1.25y=1.25【解析】格式輸入函數(shù)格式字符串中字符可以提成三類:空格類字符、其他普通字符和格式轉(zhuǎn)換闡明。其中空格類字符用來跳過一種空格類字符序列,直至下一種非空格類字符。普通字符規(guī)定輸入字符與其完全相似。格式轉(zhuǎn)換闡明對輸入字符列按格式轉(zhuǎn)換闡明進行轉(zhuǎn)換,得到內(nèi)部值存儲到相應輸入項所指定存儲位置中。函數(shù)調(diào)用scanf(“x=%f,y=%f,&x,&y)以普通字符X=開頭,輸入時也要先輸入X=。接著是一種浮點數(shù)輸入格式,所有能構(gòu)成一種浮點數(shù)1.25字符序列都能滿足規(guī)定。接著是普通字符列“,y=”,在輸入浮點數(shù)之后也要有字符列“,y=”。最后又是浮點數(shù)輸入格式,同樣所有能構(gòu)成一種浮點數(shù)1.25字符序列都能滿足規(guī)定。問題給出供選取答案中只有x=1.25,y=1.25是能滿足上述規(guī)定。因此對的選取是C。
【參照答案】C33.設(shè)有inti=010,j=10;則執(zhí)行“printf("%d,%d\n",++i,j--);”輸出是()
A.ll,
10
B.9,10
C.010,9
D.10,9【解析】變量i和j初值分別為八進制數(shù)010和十進制數(shù)10,函數(shù)調(diào)用Printf(“%d,%d\n”,++i,j--)中,++i值是變量i增1后值,本來值是八進制數(shù)010,等于十進制數(shù)8,輸出9。j--值是變量j減1之前值,輸出10。格式字符申中逗號是普通字符照原樣輸出。因此問題給出格式輸出函數(shù)調(diào)用將輸出9,10。對的解答是B。
【參照答案】B34.設(shè)a,b為字符型變量,執(zhí)行"scanf("a=%c,b=%c",&a,&b)"后使a為'A',b為'B',從鍵盤上對的輸入是()
A.’A”B’
B.’A’,’B’
C.A=A,B=B
D.a=Ab=B【解析】函數(shù)調(diào)用scanf("c=%c,b=%c",&c,&b)中,普通字符必要按格式字符串規(guī)定照原樣輸入,c格式對緊接任何字符都輸入。因此實現(xiàn)問題規(guī)定,輸入字符列應為“a=A,b=B”。此外要特別指出,在程序中,為表達字符常量,字符先后需加單引號。但用字符格式輸入字符時,在要輸入字符先后不必另鍵人單引號。若鍵人單引號,則這個單引號也將作為字符被輸入。對的解答是D。
【參照答案】D35.設(shè)X、y、Z、t均為int型變量,則執(zhí)行如下語句后,t值為()
x=y(tǒng)=z=1;t=++x||++y&&++z;
A.不定值
B.2
C.l
D.0【解析】語句序列“x=y(tǒng)=z=l;t=++x||++y&&++z;”使變量x值為1,變量t是賦一種邏輯表達式值。在C語言中,由邏輯與和邏輯或構(gòu)成邏輯表達式有特別計算規(guī)則,順序計算各邏輯子表達式,并當一旦能得到邏輯表達式成果時,就及時結(jié)束邏輯表達式計算,不再計算后繼邏輯子表達式。本題邏輯表達式是兩個運算分量邏輯或,并且左運算分量++X值為非0,及時得到邏輯或運算成果為1,并將1賦給變量t,因此變量t值為1。對的解答為C。
【參照答案】C36.設(shè)x、y、z均為int型變量,則執(zhí)行如下語句后,x、y,z值為()
X=1;y=0;Z=2;y++&&++Z||++X;
A.2、l、3
B.2、0、3
C.2、l、3
D.2、1、2【解析】語句序列“x=l;y=0;z=2;y++&&++z||++x;”先使變量x值為1,變量y值為0,變量Z值為2。由邏輯與和邏輯或構(gòu)成邏輯表達式特別計算規(guī)則,順序計算各邏輯子表達式,并當一旦能得到邏輯子表達式成果時,就及時結(jié)束邏輯子表達式計算,不再計算該邏輯子表達式。計算y++因y值為0,使y++&&++z成果為0,及時去計算++X,這次計算使變量y值變成1,而變量Z值本變化。接著計算++X,使X值變?yōu)?。因此經(jīng)上述語句執(zhí)行后,X、y、Z值依次為2、1、Z。確解答為D。
【參照答案】D37.假定所有變量均已正擬定義,下列程序段運營后X值是()
a=b=c=0;x=35;
if(!a)x--;elseif(b);if(c)x=3;elsex=4;
A.34
B.4
C.35
D.3【解析】以變量a,b,c值均為0,變量x值為35,語句:
if(!a)x--;elseif(b);if(c)x=3;elsex=4;
由兩個證語句構(gòu)成。一方面執(zhí)行前一種if語句“if(!a)x--;elseif(b);”,因變量a值為0,條件!a成立,執(zhí)行x--使x值變?yōu)?4。接著執(zhí)行后繼if語句“if(c)x=3;elseX=4;”,因變量c值為0,條件不成立而執(zhí)行X=4,最后使變量X值為4。對的解答是B。
注意前一種if語句else某些成分語句只有“if(b);”,這是一種單分支if語句,且其成分語句為空語句。
【參照答案】B38.下面程序段所示數(shù)學函數(shù)關(guān)系是()
y=-l;
if(x!=0)if(x>0)y=l;elsey=0;
1(x<0)1(x<0)
A.y={0(x=0)
B.y={-l(X=0)
1(X>0)0(X>0)
o(X<0)-l(X<0)
C.y={-1(x=0)
D.y={1(X=0)
1(X>0)0(X>0)【解析】程序段一方面置變量y值為一l,接著按變量x值不同狀況重置變量y值。重置首要條件是x!=0,若變量x值為0,則不再重置變量y值,因此在X值為0狀況下,y值是-l。在變量X值不等于0條件下,若X值不不大于0,重置變量y值為1;若變量X值不大于0,重置變量y值為0。因此程序段實現(xiàn)當變量x值為0時,變量y值為-1;當變量X值不不大于0時,置變量y值為1;當變量X值不大于0時,置變量y值為0。對的解答為C。
【參照答案】C39.下列語句中,句法錯誤是(不考慮語義)()
A.while(x=y(tǒng))5;
B.dox++while(x==10);
C.while(0);
D.do2;while(a==b);【解析】while語句普通形式是:
while(表達式)語句
這里表達式可以是任何合理表達式,語句可以是任何語句,涉及空語句,或表達式語句。也許書寫while語句沒有任何意義,如供選取A.while(x=y(tǒng))5;和C.while(0);,但這兩個語句句法沒有任何錯誤。do-While語句普通形式是:
do語句while(表達式);
其中成分語句也可以是任何語句,但供選取答案B.dox++while(x==10);中代碼x++是一種表達式,不是語句,因此是錯誤。對的解答是B。
【參照答案】B40.若i、j已定義為int類型,則如下程序段中內(nèi)循環(huán)體執(zhí)行次數(shù)是()
for(i=5;i;i--)
for(j=0;j<4;j++){……}
A.20
B.24
C.25
D.30【解析】問題所給程序段外循環(huán)是一種階循環(huán)語句,它初始化某些置變量i初值為5,循環(huán)條件簡寫成i,即i!=0,每次循環(huán)后變量i值減1。因此外循環(huán)共控制5次循環(huán)。內(nèi)循環(huán)也是一種for循環(huán)語句,它初始化某些置變量j初值為0,循環(huán)條件是j<4,每次循環(huán)后變量j值增1。因此內(nèi)循環(huán)共控制4次循環(huán)。這樣,如內(nèi)循環(huán)體內(nèi)未曾對變量i和j有修改,在內(nèi)、外循環(huán)一起控制下,內(nèi)循環(huán)體共被重復執(zhí)行20次。對的解答是A。
【參照答案】A41.假定a和b為int型變量,則執(zhí)行如下語句后b值為()
a=1;b=10;
dob-=a;a++;
}while<(b--<0);
A.9
B.-2
C.-1
D.8【解析】在這個程序段中,循環(huán)開始前變量a值為1,b值為10,每次循環(huán)從變量b減去a,并讓a增1,并在循環(huán)條件鑒定期,又讓b減去1。第一次循環(huán)后,變量b值變成9,變量a值變?yōu)?,循環(huán)判斷時,因b值不不大于0,循環(huán)條件不成立,結(jié)束循環(huán)。但在循環(huán)判斷時,讓b減去了1,因此循環(huán)結(jié)束時,變量b值為8。對的解答是D。
【參照答案】D42.設(shè)x和y為int型變量,則執(zhí)行下面循環(huán)后,y值為()
for(y=l,x=l;y<=50;y++){
if(x>=10)break;
if(x%2==1){x+=5;continue;}
X-=3;
}
A.2
B.4
C.6
D.8【解析】for循環(huán)語句初始化某些置變量x和y初值為1,循環(huán)條件是(y<=50),每次循環(huán)后變量y值增1,控制循環(huán)最多執(zhí)行50次。循環(huán)體有三個語句:一方面在發(fā)現(xiàn)變量X值不不大于等于10時,結(jié)束循環(huán);接著是當變量X除2余數(shù)為1(即變量X是奇數(shù))時,讓變量X值增5,讓X變成偶數(shù),并直接進入下一輪循環(huán);如變量X是偶數(shù),則從變量X減去3,讓變量X變成奇數(shù)。由上述分析知,每兩次循環(huán)使變量X值增長2.第一次循環(huán)后,變量X值變成6。第二次循環(huán)后,變量X值變成3。第三次循環(huán)后,變量X位變成8。第四次循環(huán)后,變量X值變成5。第五次循環(huán)后,變量X值變成10。第六次循環(huán)時,因變量X位不不大于等于10,直接跳出循環(huán),這次循環(huán)是非正常結(jié)束,對變量y修正只執(zhí)行了5次。因此循環(huán)結(jié)束后,變量y值增至6。對的解答是C。
【參照答案】C43.在C語言中,下列說法中對的是()
A.不能使用“do語句while(條件)”循環(huán)
B.“do語句While(條件)”循環(huán)中必要使用“break”語句退出循環(huán)
C.“do語句while(條件)”循環(huán)中,當條件非0時將結(jié)束循環(huán)
D.“do語句while(條件)”循環(huán)中,當條件為0時將結(jié)束循環(huán)【解析】do-while語句普通形式是:
do語句
while(表達式);
其語義是重復執(zhí)行其成分語句,直至表達條件表達式值為0時結(jié)束。do-while語句是正常使用一種循環(huán)構(gòu)造之一。do-while語句循環(huán)結(jié)束條件由while后表達式值為0所控制,并不一定要有break語句跳出循環(huán)來結(jié)束循環(huán)。do-while語句在條件值非0時,將繼續(xù)循環(huán),而不是結(jié)束循環(huán)。條件值為0時,才結(jié)束循環(huán)。因此對的選取是D。
【參照答案】D44.若有如下程序段,W和k都是整型變量,則不能與該程序段等價循環(huán)語句是()
W=k;
LB:if(w==0)gotOLE;
w--;
printf("*");
gotoLB;
LE:
A.for(w=k;w!=0;W--)printf("*");
B.w=k;
While(W--!=0)Prinif(”*”);
C.w=k;
do{w--;prinif(“*”);
}while(W?。?);
D.for(w=k;W;--W)printf("*");【解析】問題所給出程序段用goto語句構(gòu)造一種循環(huán)控制構(gòu)造,該循環(huán)構(gòu)造初值是讓變量W值為k值,循環(huán)結(jié)束條件是W情等于0,循環(huán)體是讓變量W值減1,并輸出一種字符*。上述循環(huán)控制過程用for循環(huán)可描述如下:
for=(w=k;W!=0;W--)printh("*");
或?qū)懗桑?/p>
for(w=k;w;--w)printf("*");
若用while語句,可描述如下:
W=k;
while(w--!=0)printf("*");
w++;/*在w等于0時,也執(zhí)行了一次w--,這里是對w最后減1補嘗*/
或更直觀地寫成:
W=k;
while(w!=0){w--;Printf("*");}
若用do-while語句,可描述如下:
W=k;
if(W)
do{
w--;prinif("*");
}while(w);
若寫成:
W=k;
do{
W--;printf("*");
}while(w!=0);
是不對的,由于原代碼當k值為0時,不輸出字符*,而上面改寫,當k值為0時,將輸出許許多多字符*。因此解答應是C。
【參照答案】C45.若有下列闡明,則數(shù)值為4表達式是()
inta[12]={l,2,3,4,5,6,7,8,9,10,11,12};
charc='a',d,g;
A.a[g-c]
B.a[4]
C.a['d'-'c']
D.a['d'-c]【解析】數(shù)組元素下標自0開始順序編號,值為4元素是a[3]。因此只有下標表達式值為3才是對的。下標表達式g-C中變量g和c值是尚未被設(shè)定,其值不擬定。a[4]值為5,下標為4是不對。'd'-'c'值為1,a[l]值是2,因此也是不對。變量c值為'a','d'-c=3,因此對的解答是D。
【參照答案】D46.設(shè)有定義:"chars[12]={"string"};"則printf("%d\n",strlen(s));輸出是()
A.6
B.7
C.11
D.12【解析】在C語言中,字符串是指在有效字符之后有字符率結(jié)束標記符字符列,并商定字符串長度是指字符率中有效字符個數(shù),不涉及字符串結(jié)束標記符。存儲于字符數(shù)組s中字符串是“string”,該字符串長度為6,因此輸出該字符串長度應是6。對的解答是A。
【參照答案】A47.下列語句中,對的是()
A.chara[3][]={'abc",'1'};
B.chara[][3]={'abc','l'};
C.chara[3][]={'a',"1"};
D.chara[][3]={"a","1"};【解析】如定義數(shù)組時有初始化,其最高維長度可以省缺,由系統(tǒng)依照初始化時初值個數(shù)擬定,而其他維長度是不可以缺省。對二維字符數(shù)組初始化,可以按行用字符串對其初始化,也可以按二維數(shù)組元素存儲順序逐個用字符對其元素初始化。在供選取解答A.和C.中,有不是最高維長度被缺省,因此是錯誤。在供選取解答A.和B.中,還將字符串常量寫作'abc',這也是錯誤。只有D.,用字符率按行給二維字符數(shù)組初始化,這才是對的。對的構(gòu)解答是D。
【參照答案】D48.合法數(shù)組定義是()
A.inta[]={"string"}
B.inta[5]={0,1,2,3,4,5};
C.chara={"string"}
D.chara[]={0,1,2,3,4,5};【解析】A.錯誤因素是整數(shù)數(shù)組不可以用字符串對其初始化。B.錯誤因素是,數(shù)組初始化時,初始化指定值個數(shù)多于數(shù)組元素個數(shù)。C.錯誤因素是,能用字符串初始化只;有字符指針變量,或字符數(shù)組。字符率不能對其他類型變量初始化,涉及字符變量。D是對的,由于字符數(shù)組可以用小整數(shù)(作為字符ASCII代碼值)對其元素初始化。
【參照答案】D49.語句"printf("%d\n"strlen("ats\nol2\1\\"));"輸出成果是()
A.11
B.10
C.9
D.8【解析】字符串中字符可以是普通普通字符,也可以是由反斜杠字符開頭轉(zhuǎn)義字符。在字符串"abs\no12\11\\"中,有三個轉(zhuǎn)義字符,它們是\n、\1、\\,因此該字符串有效字符個數(shù)是9。因此對的回答是C。
【參照答案】C50.函數(shù)調(diào)用“strcat(strcpy(strl,str2),str3)”功能是()
A.將字符串strl復制到字符串str2中后再連接到字符串str3之后
B.將字符串strl連接到字符串str2中后再復制到字符率str3之后
C.將字符串str2復制到字符串strl中后再將字符串str3連接到字符串strl之后
D.將字符串str2連接到字符率strl之后再將字符串strl復制到字符串str3中【解析】函數(shù)調(diào)用strcat(s1,s2)是將s2字符串復制連接到s1字符串之后,使s1字符串變得更長。函數(shù)調(diào)用strcpy(s1,s2)是將s2字符串復制到s1,使s1字符串內(nèi)容與s2字符串內(nèi)容相似。函數(shù)調(diào)用strcat(strcpy(strl,str2),str3)是先執(zhí)行strcpy(strl,str2),然后再執(zhí)行strcat(strl,str3),因此其功能是將字符串str2復制到字符串strl中,然后再將字符串str3復制連接到字符串strl之后。對的選取是C。
【參照答案】C51.設(shè)有如下定義,則對的論述為()
charx[]={"abcdefg"};
chary[]={'a','b','c','d','e','f','g'};
A.數(shù)組x和數(shù)組y等價
B.數(shù)組x和數(shù)組y長度相似
C.數(shù)組X長度不不大于數(shù)組y長度
D.數(shù)組X長度不大于數(shù)組y長度【解析】不指定數(shù)組長度字符數(shù)組定義,其所需要字節(jié)數(shù)可由初始化中給出值個數(shù)擬定。字符數(shù)組可以用字符串初始化,也可用字符逐個給字符數(shù)組元素初始化。但用字符初始化時,盡管給出了字符串中所有字符,還是不會自動有字符率結(jié)束字符。但字符串初始化自動會具有字符串結(jié)束標記符,字符串初始化所需要字節(jié)個數(shù)會比用同樣多字符初始化多1個字節(jié)。因此只有C才是對的。
【參照答案】C52.
循環(huán)語句“for(x=0,y=0;(y!=123)||(x<4);x++);”循環(huán)執(zhí)行()
A.無限次
B.不擬定次
C.4次
D.3次【解析】for循環(huán)語句初始化某些置變量x和y初值為0,循環(huán)條件是(y!=123)||(x<4),每次循環(huán)后變量X值增1。由于循環(huán)過程中變量y值本被修改過,循環(huán)條件又是一種邏輯或,其左分量(y!=123)永遠成立,也就是循環(huán)條件永遠成立。因此該循環(huán)語句將循環(huán)執(zhí)行無限次。對的解答是A。
【參照答案】A53.在計算機上可以直接運營程序是寫()
A.高檔語言程序
B.匯編語言程序
C.機器語言程序
D.C語言源程序【解析】C語言源程序就是高檔語言程序,都需要通過編譯程序翻譯成二進制目的程序才干執(zhí)行;匯編語言源程序也需要通過匯編程序翻譯成二進制目的程序才干執(zhí)行。二進制目程序就是機器語言程序,可以在計算機上直接運營。
【參照答案】C54.下列符號串中,合法C語言標記將是()
A._121
B.121_
C.a(chǎn).121
D.#121【解析】分析備選答案A:是下劃線開頭數(shù)字串,符合C語言關(guān)于標記符構(gòu)成規(guī)則“字母、下劃線開頭字母、數(shù)字、下劃線構(gòu)成一串符號”,因此該答案是對的,符合題意至于備選答案B:是以數(shù)字開頭,不是標記符;備選答案C:具有非法符號“.”;備選答賽D:具有非法符號“#”,這三個答案都是錯誤,不符合題意。
【參照答案】A55.下列符號串中,合法十進制整型常量是()
A.09876
B.0x9876
C.9.876*e4
D.-9876【解析】分析備選答案A:是數(shù)字“0”開頭數(shù)字率,是人進制整型常量,并且其中浮現(xiàn)了數(shù)字“8”和“9”,是錯誤八進制常量,不符合題意。備選答案B:是“0x”開頭數(shù)字率,是十六進制整型常量,不符合題意。備選答案C:浮現(xiàn)了小數(shù)點“.”。運算符“*”及“e”符號,是錯誤常量,不符合題意。至于備選答案D:是對的整型十進制常量,因此本題應選答案D。
【參照答案】D56.設(shè)關(guān)于變量已經(jīng)正擬定義并賦值,則下列表達式中符合C語言語法規(guī)則是()
A.a(chǎn)_=\12
B.a(chǎn)_1=a_2+=12
C.int13.5%2
D.a(chǎn)=b+7=C-2【解析】分析備選答案A:這個表達式中浮現(xiàn)了兩個運算符“=”和“\”,后一種運算符是雙目中綴,但是其前面沒有運算對象,因此語法上是錯誤。分析備選答案B:這個表達式中浮現(xiàn)了兩個運算符“=”和“+=”.從結(jié)合性來說,是自右向左,因此該表達式相稱于“a_1=(a_2+=12)”,先計算“a_2+=12”,相稱于“a_2=a_2+12”,再計算“a_1=(a_2+=12)”,因此該表達式語法是對的,符合題意。至于備選答案C,加在表達式前面int需要有圓括號,表達對表達式值強制轉(zhuǎn)換,此外“%”運算符一種運算對象是實型,也是錯誤。備選答案D類似于備選答案B,但是第2個賦值運算符左邊是表達式“b+7”,不是變量,不符合賦值運算符語法規(guī)定,是錯誤。
【參照答案】B57.若整型變量x值為8,則下列表達式中值為1表達式是()
A.x+=x-=x=x
B.x%=x-1
C.x%=x%=3
D.x/=x+x【解析】計算備選答案A:先做“x=x*x”,成果x為64,該表達式值為64;再做“x=x-64”成果x為0,該表達式值為0;最后計算“x=x+0”,成果x為0,整個表達式值為0,不符合題意。計算備選答案B:相稱于計算“x=x%(x-1)”,成果為x=8%7=1,整個表達式值為1,因此該答案符合題意,本題答案應選B。至于備選答案C:先算“x=x%3”,成果x=2,該表達式值為2,再計算“x=x%2”,成果x為0,整個表達式值為0。備選答案D:相稱于計算“x=x/(x+x)”,成果為x=8/(8+8),成果x為0,整個表達式值為0。
【參照答案】B58.字符串"m\x43\\\np\102q"長度是()
A.7
B.9
C.15
D.16【解析】字符串長度等于其中有效字符(不含字符率結(jié)束標記符)數(shù)目。本題給出字符串中具有轉(zhuǎn)義字符,一種轉(zhuǎn)義字符相稱于單個字符。按照這個規(guī)則,本題中給出字符串中具有字符如下:
'm''\x43''\\''\n''p''\102''q'字符串中具有7個有效字符,因此本題答案應選A。
【參照答案】A59.設(shè)有定義語句“inta=10,*p=&a;”,則表達式“a十*p”值是()
A.10
B.20
C.100
D.語法出錯【解析】在數(shù)據(jù)定義語句中“*p=&a”,表達指針變量p已經(jīng)指向變量a,因此表達式中“*p”就是變量a,“a+*p”就是“a+a”,因此該表達式值為20。本題答案應選B。
【參照答案】B60.若有定義語句“intx,*p=&x,**ppx=&px;”,則下列表達式中錯誤是()
A.x=*px
B.x=**ppx
C.px=&ppx
D.*ppx=&x【解析】分析備選答案A:“*px”,就是x,因此該表達式為“x=x”,是對的,不符合題意分析備選答案B:"**ppx",就是"*(*ppx)=*px=x",因此該表達式為"X=X",是對的,不符合題意.分析備選答案C:px是一級指針變量,其中只能存儲變量或數(shù)組元素地址,不能存儲其她一級指針變量或二級指針變量地址,而"&ppx"是二級指針變量ppx地址,因此該表達式是錯誤,本題答案應選C.至于備選答案D:"*ppx"就是px,將變量x地址賦予px,固然是對的。
【參照答案】C61.如果某個函數(shù)在定義時,省略了存儲類型,則默認存儲類型是()
A.a(chǎn)uto
B.void
C.extern
D.static【解析】C語言規(guī)定,函數(shù)存儲類型只能選用static或extern。前者表達本函數(shù)只能在本編。譯單位中被調(diào)用;后者表達本函數(shù)可以被其她編譯單位調(diào)用。如果省略了存儲類型符,則系統(tǒng)默以為是“extern”型,因此本題答案應選C。
【參照答案】C62.能正擬定義一種用來指向打開文獻文獻型指針變量fp語句是()
A.filefp;
B.file*fp;
C.FILEfp;
D.FILE*fp;【解析】"file”是在頭函數(shù)“stdio.h"沖定義文獻構(gòu)造型顧客自定義數(shù)據(jù)類型符,這個顧客自定義數(shù)據(jù)類型符是大寫字母構(gòu)成,因此備選答案A山是錯誤。文獻型指針變量在定義時,變量名前面必要有“*”,因此備選答案C也是錯誤,本題應選答案D。
【參照答案】D63.存儲整型數(shù)據(jù)-7856時,在二進制文獻和文本文獻中占用字節(jié)數(shù)分別是()
A.2和2
B.2和5
C.5和5
D.5和2【解析】二進制文獻中存儲數(shù)據(jù)是二進制形式,對于“-7856”來說,是一種帶符號短整型數(shù)據(jù),C語言規(guī)定短整型數(shù)據(jù)占用字節(jié)數(shù)是2,因此在二進制文獻中該數(shù)據(jù)占用2個字節(jié);對文本文獻來說,存儲數(shù)據(jù)是按照每位數(shù)字相應ASCII代碼值存儲,對于“-7856”來說,其中“-”號要占1個字節(jié);4位整數(shù)要占4個字節(jié),共計占用5個字節(jié)。因此本題答案應選B。
【參照答案】B64.設(shè)有數(shù)據(jù)定義語句“charstring1[10]="ABCDE",string2[10]="xyz";”,則執(zhí)行句“printf("%d",strlen(strcpy(string1,string2)));后輸出成果是()
A.9
B.8
C.5
D.3【解析】輸出語句中格式控制符是“%d”,即輸出成果是一種整數(shù)。再來分析輸出表達式:strlen(strcpy(stringl,string2)),這是測試某個字符串長度。而被測試字符串是:strcpy(string1,string2),這是將“string2”沖存儲字符率復制到string1中,因此最后測試字符串是復制到string1中string2中原字符率。該字符率就是"xyz",其長度為3,因此本題答案應選D。
【參照答案】D65.設(shè)有定義語句“intx[]={1,3,5,7,9,11,13},*p=x;”,則不能對的引用組x合法元素表達式是()
A.*(p--)
B.*(--p)
C.*(p++)
D.*(++p)【解析】分析備選答案A:由于*(p--)中“--”是后綴運算符,因此“*(p--)”相稱于“*p”,然后再對p減1,由于p指向數(shù)組元素是x[0],因此這個表達式對的引用了數(shù)組x合法元素。分析備選答案B:由于*(--p)中“--”是前綴運算符,因此要先對P進行減1操作,由于P指向數(shù)組元素是x[0],因此p減1后指向數(shù)組元素是x[-1],這個元素不是數(shù)組x合法元素,因而,這個表達式是錯誤,本題答案應選B。至于備選答案C:分析辦法和備選答案A完全相似,該表達式相稱于數(shù)組元素X[0]。備選答案D:由于“++”是前綴,需要先對p進行加1,使得p指向數(shù)組元素x[1],這個元素也是數(shù)組x合法元素。
【參照答案】B66.下列程序段輸出是()
charx=012,y=013;
printf("%d,%d,%d",x&y,x??y,x&&y);
A.1,0,1
B.1,0,0
C.10,1,1
D.1,1,l【解析】一方面要注意字符型變量x初值是八進制整數(shù),相應二進制整數(shù)是00001010,相應十進制整數(shù)是10;字符型變量y初值也是八進制整數(shù),相應二進制整數(shù)是00001011,相應十進制整數(shù)是11。再來計算輸出語句中三個輸出表達式值:自右向左,先計算“x&&y”,由于運算符是邏輯運算符,因此按照邏輯值規(guī)則,x和y均為非0,運算成果是邏輯真,其值為"1”;再計算“x??y”,同樣道理,x和y均為非0,運算成果是邏輯真,其值為“1”;最后計算“x&y”,注意運算符是位與,由于x值為“00001010”,而y值為。“00001011”,按照位與運算規(guī)則,成果為"00001010",相應十進制整數(shù)是“10”,因此輸出成果是“10,1,1”,本題答案應選C.
【參照答案】C67.對于輸入語句scanf("%f,%f",&a,&b);要使變量a、b上值分別為1.78和2.48,則對的輸入是()
A.1.78,2.48后跟回車
B.1.782.48后跟回車
C.1.782.48后跟回車
D.1.78;2.48后跟回車【解析】按照scanf()函數(shù)語法規(guī)定,第1個形參是一種字符串常量,是由格式控制符和非格式控制符構(gòu)成,其中非格式控制符必要原樣輸入。顯然本題中非格式控制符是在兩個實數(shù)之間“逗號”。從4個備選答案中可以看出,只有備選答案A中是用逗號分隔兩個實數(shù),因此本題答案應選A
【參照答案】A68.執(zhí)行下列程序段后輸出成果是()
x=9;
while(x>7)
{printf("*");x--;}
A.****
B.***
C.**
D.*【解析】注意執(zhí)行while循環(huán)前,變量x初值為9.第1次執(zhí)行while循環(huán),控制循環(huán)條件為“x>7”,這時x為9,條件成立,執(zhí)行循環(huán)體:輸出單個“*”,x再減1,x為8。繼續(xù)循環(huán),控制循環(huán)條件是“x>7',當前x為8,條件成立,輸出“*”后x減1,當前x為7。繼續(xù)循環(huán)時,控制循環(huán)條件不滿足,退出循環(huán)。因此本段程序執(zhí)行后,輸出成果為兩個“*”,本題答案應選C。
【參照答案】C69.關(guān)于帶參數(shù)主函數(shù),下列說法中錯誤是()
A.帶參數(shù)主函數(shù)中,形式參數(shù)名稱是系統(tǒng)規(guī)定,顧客不能自己選取
B.帶參數(shù)主函數(shù)中,第1個形式參數(shù)是int型
C.帶參數(shù)主函數(shù)中,第2個形式參數(shù)是字符型數(shù)組
D.帶參數(shù)主函數(shù)中,實際參數(shù)值只能在執(zhí)行程序命令行中獲得【解析】帶參數(shù)主函數(shù)定義格式是系統(tǒng)規(guī)定,詳細如下:
main(argc,argv);
intargc;
char*argv[];
{...
}
由此看出,第2個形式參數(shù)argv是指向字符型數(shù)據(jù)指針型數(shù)組,不是字符型數(shù)組因此備選答案C是錯誤,本題應選答案C。
【參照答案】C70.執(zhí)行下列程序后輸出成果是()
#defineM(a,b)(a)>(b)?(a):(b)
main()
{inti=10,i=15;printf("%d\n",10*M(i,j));}
A.10
B.15
C.100
D.150【解析】本題要輸出表達式是“10*M(i,j)”,其中“M(i,j)”是帶參數(shù)宏調(diào)用,宏替代后,表達式成果是“10*(i)>(j)?(i):(j)”,而變量i值為10、變量j值為15,帶入整個要輸出表達式后成果是“10*(10)>(15)?(10):(15)”,,其中條件“10*10>15”是成立,成果等于10。因此本題答案應選A
【參照答案】A71.執(zhí)行下列程序后輸出成果是()
intfun(intx1,intx2)
{intx;x1>x2?(x=3):(x=4);return(x+x1);}
main()
{printf("%d\n",fun(7,8));}
A.9
B.10
C.11
D.12【解析】本程序輸出是函數(shù)調(diào)用“fun(7,8)”返回值。分析函數(shù)調(diào)用“fun(7,8)”過程如下:將實參7傳給形參x1,實參8傳給形參x2,然后執(zhí)行函數(shù)體。由于x1>x2條件不成立,因此執(zhí)行“:”號后賦值表達式:x=4。返回語句中表達式是“x+x1”,返回值是:4+7=11。因此本題答案應選C.
【參照答案】C72.下列程序段輸出是()
typedefunion{longx[2];
shorty[4][5];
charz[10];
}TYPE1;
TYPE1u1;
printf("%d\n",sizeof(u1));
A.8
B.10
C.40
D.58【解析】程序開始用“typedef"定義了顧客自定義數(shù)據(jù)類型符“TYPE1”,這個顧客自定義數(shù)據(jù)類型符相應是一種共用型。然后使用"TYPE1",定義了共用型變量u1,本段程序輸出就是這個共用型變量所占用字書數(shù)。共用型變量占用字節(jié)數(shù)就是其成員中占用字節(jié)數(shù)最多成員占用字節(jié)數(shù)。分析這個共用型成員有3個:第1個成員是長整型數(shù)組,占用字節(jié)數(shù)為4*2=8;第2個成員是短整型數(shù)組,占用字節(jié)數(shù)為2*4*5=40;第3個成員是字符型數(shù)組,占用字節(jié)數(shù)為1*10=10。其中占用字節(jié)數(shù)最多成員是第2個成員,其占用字節(jié)數(shù)等于40。因此本題答案應選C。
【參照答案】C73.不屬于C語言保存字是()
A.for
B.goto
C.if
D.loop【解析】關(guān)于保存字教材中有明確規(guī)定。顯然for、goto、if都是構(gòu)成語句專用語句成分,都
是保存字。本題答案應選D。
【參照答案】D74.對的C語言標記符是()
A.num(10)
B.filebak
C.continue
D.class+2【解析】標記符是字母、下劃線開頭字母、數(shù)字、下劃線構(gòu)成一串字符,并且不能是保存字。本題4個備選答案中,只有答案B符合這個規(guī)定。本題答案應選B。
【參照答案】B75.設(shè)有定義語句“doubled1,d2;”,則表達式“d1=1,d2=d1+5/2”值是()
A.1
B.3
C.3.0
D.3.5【解析】C語言規(guī)定,逗號表達式計算是自左向右進行,表達式值等于右邊表達式值,因而,本題答案應為表達式"d2=d1+5/2"值。該表達式是賦值表達式,因此其值是賦予變量d2值,也就是表達式"d1+5/2"成果。計算時,需要先算"5/2",成果為整數(shù)2,再和double型d1相加,成果是實數(shù)3.0。因此本題答案應選C
【參照答案】C76.設(shè)有定義“intx=8,y,z;”,則執(zhí)行“y=z=x++,x=y==z;”后,變量x值是()
A.0
B.1
C.8
D.9【解析】這是逗號表達式構(gòu)成語句,要先計算“y=z=x++”,成果變量y和z值均為8。注意++是后綴運算符,同步x等于9。再計算“x=y==z”,由于“==”優(yōu)先于“=”,因此x值等于“y==z”,而y和z值相等,因此運算成果為1,即x值為1。本題答案應選B。
【參照答案】B77.設(shè)有“inta=1,b=1;”,“printf("%d,%d",(a++,--b),b-1);”輸出是()
A.1,-1
B.1,0
C.0,-1
D.0,0【解析】printf()函數(shù)功能是自右向左依次計算表達式值,然后再按照自左向右順序輸出各個表達式值,因此題目中輸出語句執(zhí)行時,是依次計算下列兩個表達式值:
b-1成果為0,注意變量b值不變;
(a++,--b)這是逗號表達式,先計算a++,成果變量a值為2;
再計算--b,成果變量b值為0;
整個逗號表達式值就是--b值,為0。
按照自左向右順序輸出(a++,--b)和b-1值,依次為0,0。本題答案應選D。
【參照答案】D78.設(shè)有定義語句“chars[]="123";”,則表達式“s[3]”值是()
A.’1’
B.’3’
C.0
D.語法出錯【解析】字符數(shù)組s在定義時省略了數(shù)組長度,表達給每個數(shù)組元素均賦了初值。對本題來說,數(shù)組長度為4;數(shù)組元素值依次為:S[0]為'1'。S[1」為'2'。S[2]為'3'、S[3]為字符率結(jié)束標記符'\0',因此“s[3]”值是'\0'。注意,這個字符ASCII代碼值是整數(shù)0,因此本題答案應選C。
【參照答案】C79.定義一種具備10個元素整型數(shù)組,應當使用語句()
A.inta[10];
B.inta[2,5];
C.inta[];
D.int*a[10];【解析】分析備選答案A:顯然是對的,本題答案應選A。至于備選答案B:其中“[2,5]”在語法上是錯誤;備選答案C:數(shù)組沒有給初值而省略了數(shù)組長度,語法上也是錯誤;備選答案D:定義是具備10個元素。指向整型數(shù)據(jù)指針型數(shù)組。
【參照答案】A80.設(shè)指針變量p1、p2已經(jīng)指向同一種數(shù)組元素,則下列表達式中錯誤是()
A.p1=p2
B.p1==p2
C.p1-p2
D.p1+p2【解析】教材中關(guān)于指向同一種數(shù)組元素指針變量之間可以進行運算有如下規(guī)定:可以進行關(guān)系運算、賦值運算、減法運算,因此本題答案應選D。
【參照答案】D81.設(shè)有定義語句“inta[]={2,4,6,8,10},*p=s;”,則值為8表達式是()
A.*p+3
B.*p+4
C.*(p+4)
D.*(s+3)【解析】分析四個備選答案,可以看出是用指針法來引用數(shù)組a元素。當指針變量p已經(jīng)指向數(shù)組。首地址后(正如本題那樣),*(p+i)和*(s+i)都是數(shù)組元素a[i]。對于備選答案A:*p就是數(shù)組元素。a[0],其值為2,再加3成果為5,不符合題意。同樣道理,備選答案B中*p十4值為6,也不符合題意。對于備選答案C:*(p+4)代表數(shù)組元素a[4],其值為10,也不符合題意。顯然本題答案應選D。由于*(s+3)就是數(shù)組元素s[3],其值為8。
【參照答案】D82.下列數(shù)據(jù)類型中不屬于構(gòu)造類型是()
A.數(shù)組型
B.構(gòu)造型
C.共用型
D.枚舉型【解析】教材中明確指出:構(gòu)造類型只涉及:數(shù)組型、構(gòu)造型。共用型三種,因此本題答案應選D。
【參照答案】D83.函數(shù)fopen()返回值不能是()
A.NULL
B.0
C.1
D.某個內(nèi)存地址【解析】函數(shù)fope()返回值有兩種也許:一是對的打開了文獻,將返回某個地址,程序中普通是用文獻型指針變量來接受;二是打開文獻時浮現(xiàn)錯誤,此時返回值是符號常量“NULL”,其值為0。因此本題答案應選C。
【參照答案】C84.以只寫方式打開一種二進制文獻,應選取文獻操作方式是()
A."a+"
B."w+"
C."rb"
D."Wb"【解析】打開文獻時,如果是“只寫方式”,則只能選用字符“w”;如果要打開文獻是二進制文獻,則需要選用字符“b”,因此本題答案應選D。
【參照答案】D85.設(shè)有定義語句“charch='\77';”,則下列說法中對的是()
A.ch中具有1個字符
B.ch中具有2個字符
C.ch中具有3個字符
D.語法出錯【解析】從定義語句中可以看出,變量ch是字符型變量,顯然只能存儲單個字符,因此備選答案B和C是錯誤說法。再分析賦予初值,'\77'是在“\”符號背面跟有2位人進制數(shù),因此'\77'是轉(zhuǎn)義字符,轉(zhuǎn)義字符是單個字符,因此本題答案應選A。
【參照答案】A86.設(shè)有函數(shù)調(diào)用語句“f(x1,x1+x2,(x1,x2));”,對的說法是()
A.調(diào)用實際參數(shù)是2個
B.調(diào)用實際參數(shù)是3個
C.調(diào)用實際參數(shù)是4個
D.調(diào)用時會浮現(xiàn)語法錯誤?!窘馕觥繉瘮?shù)調(diào)用來說,實際參數(shù)普通都是表達式,而表達式之間必要用逗號來分隔,因此只要區(qū)別調(diào)用時表達式數(shù)目,即是實妹參數(shù)數(shù)目。對本題來說,第1個表達式是“x1”、第2個表達式是“x1+x2”、第3個表達式是一種逗號表達式“x1,x2”,因此本題函數(shù)調(diào)用時,表達式數(shù)目為3,固然實際參數(shù)數(shù)目就是3,因此本題答案應選B。
【參照答案】B87.計算平方數(shù)時不也許引起二義性宏定義是()
A.#defineSOR(x)x*x
B.#defineSQR(x)(x)*(x)
C.#defineSQR(x)(x*x)
D.#defineSQR(x)((x)*(x))【解析】分析備選答案A:如果宏引用是“SQR(2+3)”,則宏替代后成果是“2+3*2+3”,成果是錯誤,因而這個答案也許引起二義性。分析備選答案B:如果宏引用是“3/SQR(2+3)”,則宏替代后成果是“3/(2+3)*(2+3)”,成果也是錯誤,因而這個答案也許引起二義性。分析備選答案C:如果宏引用是“SQR(2+3)”,則宏替代后成果是“(2+3*2+3)”,成果也是錯誤,因而這個答案也許引起二義性。只有備選答案D不會引起二義性。因此本題答案應選D。
【參照答案】D88.執(zhí)行下列程序段后,x位是()
inta=8,b=7,c=6,x=1;
if(a>6)if(b>7)if(c>8)x=2;elsex=3;
A.0
B.1
C.2
D.3【解析】按照"else"只和前面近來"if"配對原則,上述程序段可以寫成下列更為清晰程序清單:
inta=8,b=7,c=6,x=1;
if(a>6)
if(b>7)
if(c>8)
x=2:
else
x=3:
根據(jù)a、b、c值,很容易看出第1個“if語句”條件“a>6”是成立,接著執(zhí)行第2個“if語句”,該語句條件“b>7”,是不成立,所如下面“if-esle”語句不執(zhí)行,因而x值不變,仍為1。因此本題答案應選B。
【參照答案】B89.執(zhí)行下列程序段后,變量y值為()
intx[]={1,2,3,4},y,*p=&x[1];
y=(*--P)++;
A.1
B.2
C.3
D.4【解析】從數(shù)據(jù)定義語句中可以得出下列結(jié)論:指針變量P指向數(shù)組元素是x[1]。再來分析賦值句右邊表達式“(*--p)++”,其中“--”優(yōu)先于“*”先計算“--p”,使得p指向數(shù)組元素x[0];因此“(*--p)”就是數(shù)組元素a[0],再計算其后“++”,由于“++”是后綴,因此表達式值就是數(shù)組元素x[0]值,為1,然后再對數(shù)組元素x[0]加1。因而變量y值是1。本題答案應選A。
【參照答案】A90.能對的表達邏輯關(guān)系“-1<x<1并且-1<y<1”表達式是()
A.(-1<x<1)&&(-1<y<1)
B.(-1<x<1)&(-1<y<1)
C.((-1<x)??(x<1))&&((-1<y)??(y<1))
D.(-1<x)&&(x<1)&&(-1<y)&&(y<1)【解析】注意數(shù)學中“-1<x<1”含義是“-1<x同步x<1”,弄清晰這一點后,再來分析給出備選答案。對于答案A:其中-1<x<1不能表達“-1<x同步x<1”,例如,當x為0時,“-1<x<1”值為0,即成果為假,而x為0時,“-1<x同步x<1”顯然為真,因此備選答案A是錯誤。對于備選答案B出于同樣理由,也是錯誤。對于備選答案C:“-1<x同步x<1”是不能表達到“((-1<x))::(x<1))”,其中或“::”應當改成與“&&”,顯然該答案也是錯誤。本題應當選取D。
【參照答案】D91.函數(shù)調(diào)用時,下列說法中不對的是()
A.若用值傳遞方式,則形式參數(shù)不予分派內(nèi)存
B.實際參數(shù)和形式參數(shù)可以同名
C.主調(diào)函數(shù)和被調(diào)用函數(shù)可以不在同一種文獻中
D.函數(shù)間傳送數(shù)據(jù)可以使用外部全局變量【解析】分析備選答案A:值傳遞時,先給形參分派內(nèi)存,然后把實參值傳給形參分派內(nèi)存,因此該說法是錯誤,本題答案應選A。至于備選答案B:形參和實參是可以同名,由于它們作用域不重復。備選答案C:只要被調(diào)函數(shù)定義時存儲類型選用“extern”,就可以被其她文獻中函數(shù)調(diào)用。備選答案D:函數(shù)間傳遞數(shù)據(jù)辦法有4種,其中一種就是運用外部全局變量來傳遞。
【參照答案】A92.下列關(guān)于構(gòu)造型變量定義語句中,錯誤是()
A.typedefstructCCC
B.#defineGGGstruct
{charname[20];GGGCCC{charname[20];
intage;intage;
}GGG;};
GGGabc;GGGCCCabc;
C.struct
D.struct
{charname[20];{charname[20];
intage;intage;
}ccc;}abc;
CCCabc;【解析】分析備選答案A:運用“typedef”定義了顧客自定義數(shù)據(jù)類型符“GGG”,這個顧客自定義數(shù)據(jù)類型符是具有兩個成員構(gòu)造型CCC,因此語句“GGGabc”是定義構(gòu)造型CCC變量abc,語法沒有錯誤。分析備選答案B:運用“#define”定義了宏名“GGG”,這個宏名第一次浮現(xiàn)是定義構(gòu)造型CCC,第二次是定義了構(gòu)造型CCC變量allc,因此語法上沒有錯誤。分析備選答案C:這是定義一種沒有名稱構(gòu)造型,同步定義了這種構(gòu)造型變量CCC,接著語句“CCCabc;”顯然是錯誤,由于CCC是變量名,不是數(shù)據(jù)類型符,該答案符合題意。至于備選答案D:這是原則通過定義沒有名稱構(gòu)造型來定義該構(gòu)造型變量abc,語法上沒有錯誤。
【參照答案】C二、程序分析
1.main()
{charstr[]="1234567";
inti;
for(j=0;i<7;i十=3)
printf("%s\n",str+i);
}【解析】分析份循環(huán)語句可知,控制變量i值只能依次等于0、3、6。再分析輸出語句中輸出格式,這是字符串格式,規(guī)定輸出表達式是存儲字符串首地址。而輸出表達式是“str+i”。咱們針對i不同值來-一分析:i=0,str+0就是str,其中存儲字符串是“1234567”,因此第1行上輸出就是:1234567。當i=3時,str+3,代表了數(shù)組元素str[3]地址,從這兒開始字符率串是“4567”,因此第2行輸出是:4567。同樣道理,i=6時,str+6是元素str[6]地址,從該地址
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院調(diào)動崗位申請書(8篇)
- 勤儉節(jié)約從我做起廣播稿(8篇)
- 網(wǎng)絡(luò)釣魚識別模型研究-洞察分析
- 犀角地黃丸藥效安全性-洞察分析
- 網(wǎng)站速度提升策略-洞察分析
- 壓縮算法優(yōu)化研究-洞察分析
- 虛擬現(xiàn)實室內(nèi)設(shè)計體驗-洞察分析
- 稀土壓延材料性能測試-洞察分析
- 歷史新課程改革的心得(5篇)
- 游戲技術(shù)發(fā)展趨勢-洞察分析
- 非物質(zhì)文化遺產(chǎn)主題班會之英歌舞課件
- 《人工智能基礎(chǔ)》課件-AI的前世今生:她從哪里來
- 西方經(jīng)濟學考試題庫(含參考答案)
- 引水式水電站工程施工組織設(shè)計
- 創(chuàng)業(yè)基礎(chǔ)(浙江財經(jīng)大學)智慧樹知到期末考試答案章節(jié)答案2024年浙江財經(jīng)大學
- 靜配中心PIVAS標準操作流程培訓
- 期末檢測卷(試題)-2023-2024學年五年級上冊數(shù)學北師大版
- 兒童文學概論(第二版) 課件 第4、5章 外國兒童文學概述、兒童文學的各種文體
- 消化系統(tǒng)疾病健康宣教
- 小學英語教學論智慧樹知到期末考試答案章節(jié)答案2024年麗水學院
- 完整版鋁板雨棚施工方案
評論
0/150
提交評論