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

字號(hào):

6.根據(jù)下面的定義,能打印出字母M的語句是( )
    struct person {char name[9]; int age; };
    struct person c[1O] = {{“John”,17 },{“Paul”,19 },{“Mary”,18 },{“Adam”,16 }};
    ① printf(“%c”, c[3].name); ② printf(“%c”, c[3].name[1] );
    ③printf(“%c”,c[2].name[1]); ④printf(“%c”,c[2].name[0] );
    「解」結(jié)構(gòu)類型struct person有兩個(gè)成分:九個(gè)元素的字符數(shù)組name和一個(gè)基本整型age元素類型為 struct person的數(shù)組c有10個(gè)元素,其中前四個(gè)元素被設(shè)定了初值。在已設(shè)定初值的元素中,只有c[2].mame[0]的值是字符M.其余元素及元素的成分都不是字符比正確解答是④。
    7.設(shè)有如下定義,則對(duì)data中的a成員的正確引用是( )
    struct sk{int a;float b;} data,*p= & data;
    ①(*p)。data.a ②(*p)。a ③ p -> data.a ④ p.data.a
    「解」結(jié)構(gòu)變量data有兩個(gè)成分a和b.結(jié)構(gòu)指針變量p指向結(jié)構(gòu)變量data.引用結(jié)構(gòu)變量data的成分a有兩種方法:一是直接由變量data引用其自己的成分a,寫成data.a;二是通過指針變量p引用它所指的結(jié)構(gòu)的成分a,這又有兩種寫法,分別是p -> a和(*p)。a.正確解答是②。
    7.2 填充題
    1.運(yùn)算符“。”稱為__________運(yùn)算符,運(yùn)算符“ -> ”稱為__________運(yùn)算符。
    「解」引用結(jié)構(gòu)變量或共用型變量的成分用成員運(yùn)算符‘?!?,若某指針指向一個(gè)結(jié)構(gòu)變量或共用型變量,通過指針引用它所指變量的成分用指向成員運(yùn)算符‘ -> ’。
    2.設(shè)有定義“struct {int a; float b; char c;} abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc_________a和p_abc___________a.
    「解」若有結(jié)構(gòu)變量abc有成分a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成分a的標(biāo)記形式有abc.a和p_abc ->a.
    3.若有以下說明和定義語句,則變量W在內(nèi)存中所占的字節(jié)數(shù)是__________.
    union aa {float x;float y; char c[6]; };
    struct st { union aa v; float w[5]; double ave; } w;
    「解」共用型aa有三個(gè)成分,一個(gè)是float型成分x,一個(gè)是float型成分y,再一個(gè)是有六個(gè)元素的字符數(shù)組。若float型數(shù)據(jù)占4個(gè)字節(jié),則類型aa數(shù)據(jù)要占用6個(gè)字節(jié)。結(jié)構(gòu)變量w有三個(gè)成分,一個(gè)是共用型成分aa,要占用6個(gè)字節(jié);一個(gè)是有5個(gè)float型元素的數(shù)組w,要占用20個(gè)字節(jié);再一個(gè)是double型的ave.若doube型數(shù)據(jù)要8個(gè)字節(jié),則結(jié)構(gòu)變量w要占用34個(gè)字節(jié)。
    7.3 程序分析題
    1.閱讀下列程序,寫出運(yùn)行結(jié)果。(字符0的ASCII碼為十六進(jìn)制的30)
    main()
    { union { char c; char i[4]; } z;
    z.i[0]= 0x39;z.i[1]= 0x36;
    printf(“%c \n”, z.c);
    }
    「解」共用型變量z有兩個(gè)成分,一個(gè)是字符型的c,另一個(gè)是有4個(gè)字符的數(shù)組i.由于共用型的成分是覆蓋存儲(chǔ),成分c的內(nèi)容也是成分i的首元素。程序給Z的i成分的首元素置十六進(jìn)制代碼0x39,即十進(jìn)制數(shù)57.數(shù)57是字符‘9’的ASCII代碼。用字符輸出格式,輸出該變量的值,將輸出字符‘9’ .