基本數(shù)據(jù)類型和運算典型例題分析與解答

字號:

1 在c語言中,不允許有常量的數(shù)據(jù)類型是()
     ①整型 ②結(jié)構(gòu)型 ③字符型 ④字符串
    【分析】C語言中,允許出現(xiàn)整型、實型、字符型、字符串的常量,其中整型常量又區(qū)分為短整 型常量和長整型常量。
    【答案】②
    2 下列數(shù)據(jù)中,不屬于常量的是()
     ① 123L ②'\012' ③"12.3L" ④ 12.3L
    【分析】④中的數(shù)據(jù)不是常量,因為實型常量是不區(qū)分單精度和雙精度的,12.3后跟字母L 是錯誤的;①中是長整型常量;②中是以轉(zhuǎn)義字符方式出現(xiàn)的字符型常量;③中是字 符串常量。
    【答案】④
    3 -12345E-3代表的十進制實數(shù)是________________________。
    【分析】這是用指數(shù)形式表示的實型常量,對于指數(shù)形式“土aaaaaE土bbb”的實數(shù),其值為“土 aaaaax 10土bbb”。("土"表示正負)
    【答案】- 12.345
    4 字符串“\\012\012”在內(nèi)存中占用的字節(jié)數(shù)是___________________個。
    【分析】一個字符串所占用的內(nèi)存字節(jié)數(shù)等到于其中字符的數(shù)目再加1。題目中給出的字符串中'\\'
    是1個轉(zhuǎn)義字符;'0'、'l'、'2'分別都是單個字符;‘\012'是一個用八進制數(shù)表示的轉(zhuǎn)義字符,所以其中單個字符的數(shù)目為5,該字符串占用的內(nèi)存字節(jié)數(shù)等于5+l,其中增加的1個字節(jié)用于存放“字符串結(jié)束標記”符號‘\0'。
    【答案】6
    5 設(shè)短整型變量x的值為12,假定分配給x的內(nèi)存單元地址是0xff00,和0xff01,則在程序中能表示變量x的地址是()
    ① 0xff00 ② oxff01 ③&x ④&12
    【分析】C語言規(guī)定,任何變量的地址,在程序中用“&變量名”來表示。
    【答案】③
    6 下列說法中,錯誤的是()
    ①變量的定義可以放在所有函數(shù)之外
    ②變量的定義可以不放在本編譯單位中,而放在其他編譯單位中
    ③變量的定義可以放在某個函數(shù)的函數(shù)頭中
    ④變量的定義可以放在某個復(fù)合語句的開頭
    【分析】①中定義的變量是正確的,這種變量是外部變量;②中定義的變量是正確的,這種變量在本編譯單位中要說明為“外部參照型”變量;④中定義的變量是允許的,這種變量稱為內(nèi)部變量,其作用域只能是本復(fù)合語句。此外,在任何函數(shù)的函數(shù)體中都可以定義變量,所定義的變量也是內(nèi)部變量,其作用域是本函數(shù)。但是,在函數(shù)中定義變量時,只能在“函數(shù)體”的開頭定義,不能在“函數(shù)頭部分”進行定義。
    【答案】③
    7 變量的存儲類型主要是指_______________________________。
    【分析】定義變量時的存儲類型有4種選擇:一是“自動型(auto)”,這時變量被分配在可以重。
    復(fù)使用的內(nèi)存難棧區(qū);二是“寄存器型(register)”,這時變量被分配在主機(CPU)中的寄存器;三是“靜態(tài)型(static)”,這時變量被分配在不能重復(fù)使用的內(nèi)存數(shù)據(jù)區(qū);四是“外部參照型(extern)”,這時僅說明該變量的定義是在其他編譯單位,不在本編譯單位中。由上述分析,可以看出,定義變量時選擇存儲類型,主要是選擇給變量分配的單元在何處。
    【答案】給變量分配的單元在何處
    8 下列說法中,正確的是( )
    ①自動型變量是分配在內(nèi)存的數(shù)據(jù)區(qū)
    ②寄存器型變量是分配在內(nèi)存的數(shù)據(jù)區(qū)中
    ③靜態(tài)型變量是分配在內(nèi)存的數(shù)據(jù)區(qū)中
    ④外部參照型變量是分配在內(nèi)存的數(shù)據(jù)區(qū)中
    【分析】按照變量在定義時的存儲類型,給變量分配內(nèi)存將有 3種方式:一是內(nèi)存的數(shù)據(jù)區(qū),這個地方的單元是不能重復(fù)使用的,它指定分配給“靜態(tài)型(static)”變量;二是內(nèi)存的堆棧區(qū),這個地方的單元是能重復(fù)使用的,它指定分配給‘啟動型(auto)”變量;三是主機(CPU)中的寄存器對,這個地方是可以重復(fù)使用的,它指定分配給“寄存器型(register)”變量;至于“外部參照型(extern)”變量不是在本編譯單位中定義的,它只是用來說明需要在其他編譯單位中去尋找這個變量的定義,以便確定該變量的存儲特性和數(shù)據(jù)類型。
    【答案】③