自考“高級語言程序設(shè)計”習(xí)題答案詳解(4)

字號:

18.若有以下定義: char a;int b;float c; double d;則表達(dá)式a*b+d-c值的類型為( )
    ①float ② int ③ char ④ double
    「解」基本類型的數(shù)據(jù)可以混合運(yùn)算,但運(yùn)算時,對要求運(yùn)算分量類型相同的運(yùn)算來說,如運(yùn)算分量的類型不是全相同,則會有自動類型轉(zhuǎn)換發(fā)生。類型自動轉(zhuǎn)換規(guī)則規(guī)定類型低(簡單)的向類型高(復(fù)雜)的轉(zhuǎn)換。各類型由高到低的排列順序是:long double、float、unsigned long、long、unsigned int、int這樣,若有定義: char a; int b;float c;double d;則表達(dá)式a*b+d-c的值的類型是double的。首先計算 a*b,得到int類型的值,接著計算a*b+d,得到double類型的值,最后計算a*b+d-c,得到double類型的值。所以解答是④。
    19.表達(dá)式“9!=7”的值是( )
    ①true ②非0值 ③0 ④1
    「解」關(guān)系運(yùn)算的結(jié)果只有0和1,若關(guān)系成立,則結(jié)果為1;若關(guān)系不成立,則結(jié)果為0.因關(guān)系式9!=7成立,所以表達(dá)式的結(jié)果為1.雖然1也是非0值,在供選擇的答案中有1,所以最確切的解答是④。
    20.用十進(jìn)制數(shù)表示表達(dá)式“12|012”的運(yùn)算結(jié)果是( )
    ①1 ②0 ③ 14 ④ 16
    「解」按位運(yùn)算將運(yùn)算分量視作二進(jìn)位的位申信息,對兩運(yùn)算分量的對應(yīng)位進(jìn)行運(yùn)算,產(chǎn)生H進(jìn)位的位串信息結(jié)果。整數(shù)12最低8位二進(jìn)位是00001100,整數(shù)012是八進(jìn)制數(shù),它的最低8位二進(jìn)位是00001010.這兩個二進(jìn)位位串信息按位或運(yùn)算,得到結(jié)果是00001110,對應(yīng)十進(jìn)制數(shù)14,八進(jìn)制數(shù)是016.所以解答是③。
    21.設(shè)字符型變量 a=3,b=6,計算表達(dá)式 C=(a^b)<< 2后C的二進(jìn)制值是( )
    ① 00011100 ②00000111 ③ 00000001 ④ 00010100
    「解」a的值為3,寫成8位二進(jìn)制數(shù)形式是00000011,b的值為6,寫成8位二進(jìn)制數(shù)形式是00000110.表達(dá)式c=(a^b)<<2,先計算a與b的按位加,得到結(jié)果00000101,將這結(jié)果向左移2位,得到二進(jìn)位的位串信息是00010100.所以解答是④。
    22.設(shè) a,b和 c都是int型變量,且a=3,b=4,c=5,則下面的表達(dá)式中值為 0的是( )
    ①‘a(chǎn)’&&b‘ ②a<=b ③a||b+c&&b-c ④!((a    「解」對于表達(dá)式‘a(chǎn)’&&‘b,兩個非O運(yùn)算分量的邏輯與結(jié)果為1.對于表達(dá)式a<=b,由于關(guān)系式成立,結(jié)果也為此又由于變量 a為非 0,表達(dá)式a||b+c&&b-c的結(jié)果也為1.對于表達(dá)式!((a<b)&&!c||1),先是計算(a<b)得到結(jié)果1;計算!C得到結(jié)果為0;再計算它們的邏輯與,結(jié)果為0.繼續(xù)與1求邏輯或,得到結(jié)果為1.最后,對1求邏輯非,得到結(jié)果為0.所以解答是①。
    23.設(shè)Ch是Char型變量,其值為‘A’,則下面表達(dá)式的值是( )
    ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch
    ①‘A’ ②‘a(chǎn)’ ③‘Z’ ④‘z’
    「解」由于字符型變量ch的值為‘ A’,計算表達(dá)式ch=h>=‘ A’&&ch<=‘ Z’)?(ch+32):ch,先計算其中條件表達(dá)式,由于條件(ch>=‘A&&h<=’Z‘)成立,該條件表達(dá)式以 ch+32=97為結(jié)果,將該值賦給變量 ch,以字符表達(dá)這個值為’a‘。所以解答是②。
    24. 設(shè)有無符號短整型變量i、j、k,i值為013,j值為 OX13.計算表達(dá)式“k=~i|j>> 3”后,k的值是( )
    ① 06 ② 0177776 ③ 066 ④ 0177766
    「解」將變量 i的八進(jìn)制數(shù)值 013寫成二進(jìn)制形式為00001011,將變量j的十六進(jìn)制值 oxl3寫成二進(jìn)制數(shù)形式為00010011.表達(dá)式k=~i|j>>3的計算過程是先求~i,結(jié)果用八進(jìn)制代碼表示為0177764;接著計算j>>3,結(jié)果為02.對它們進(jìn)行按位或運(yùn)算結(jié)果為0177766.所以解答是④。
    2.2 填充題
    1.在內(nèi)存中,存儲字符串“X”要占用______個字節(jié),存儲字符‘X’要占用_____個字節(jié)。
    「解」計算機(jī)存儲一個字符用1個字節(jié),存儲字符串時,每個字符要占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標(biāo)記符。所以存儲字符率“X‘要占用2個字節(jié),存儲字符’X‘只要1個字節(jié)。
    2.在C程序中,判邏輯值時,用_____表示邏輯值“真”,又用_____表示邏輯值‘假“。在求邏輯值時,用_____表示邏輯表達(dá)式值為”真“,又用_____表示邏輯表達(dá)式值為”假“。
    「解」在C程序中,判邏輯值時,用非0值表示真;而判邏輯值時,用值0表示假。但邏輯表達(dá)式計算結(jié)果,邏輯表達(dá)式值為真是用1表示的,而邏輯表達(dá)式的值為假,則用0表示。
    3.定義符號常量的一般形式是_____.
    「解」定義符號常量用預(yù)處理命令的宏定義,其定義的一般形式是:
    #define符號常量名 常量