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

  • 發(fā)布時(shí)間:2024-09-15 16:21:23
  • 來(lái)源:本站整理
  • 閱讀:
導(dǎo)讀:
  4.若有說(shuō)明語(yǔ)句“int a[10],*p=a;”,對(duì)數(shù)組元素的正確引用是( )
 ?、賏[p] ②P[a]
 ?、?(P+2) ④P+2
  「解」在 C語(yǔ)言中,約定數(shù)組名單獨(dú)出現(xiàn)在表達(dá)式中時(shí),它表示數(shù)組首元素的指針。有int a[10] ,則a可以作為a[0]使用。另有整型指針變量p,代碼p=a實(shí)現(xiàn)p指向數(shù)組a的首元素。則表達(dá)式*(p+2)是引用數(shù)

4.若有說(shuō)明語(yǔ)句“int a[10],*p=a;”,對(duì)數(shù)組元素的正確引用是( )

①a[p] ②P[a]

③*(P+2) ④P+2

「解」在 C語(yǔ)言中,約定數(shù)組名單獨(dú)出現(xiàn)在表達(dá)式中時(shí),它表示數(shù)組首元素的指針。有int a[10] ,則a可以作為 a[0]使用。另有整型指針變量p,代碼p=a實(shí)現(xiàn)p指向數(shù)組a的首元素。則表達(dá)式*(p+2)是引用數(shù)組元素a[2].表達(dá)式a[p]和p[a]都是不正確的,下標(biāo)必須是整型表達(dá)式,不可以是指針表達(dá)式。表達(dá)式p+2是指針表達(dá)式,它的值是 p[2].所以只有表達(dá)式*(p+2)引用數(shù)組a的元素a[2].所以解答是③。

5.下面各語(yǔ)句中,能正確進(jìn)行賦字符串操作的語(yǔ)句是( )

①char s[5] ={“ABCDE”}; ②char s[5] ={‘A’,‘B’,‘C’,‘D’,‘E’};

③ char *s;s=“ABCDE”; ④ char *s;scanf(“%”, s);

「解」字符串最終存儲(chǔ)于字符數(shù)組中,存儲(chǔ)字符串的字符數(shù)組可以是程序主動(dòng)引入的(定義或動(dòng)態(tài)分配),也可以是字符串常量,由系統(tǒng)分配。其中字符數(shù)組用字符串初始化就是字符串存儲(chǔ)于由程序引入的字符數(shù)組的例子。給字符指針賦字符串則是系統(tǒng)自動(dòng)分配字符率存儲(chǔ)空間的例子。給字符指針賦字符串并不是將一個(gè)長(zhǎng)長(zhǎng)的字符串存于字符指針變量中,而是將字符串常量存儲(chǔ)于常量區(qū),并將存儲(chǔ)這個(gè)字符串的首字節(jié)地址賦給指針變量,讓指針變量指向字符率常量的首字符。對(duì)于以字符串作為字符數(shù)組初值的情況,要求字符數(shù)組足夠的大,能存得下字符串常量。這里有一個(gè)特別的規(guī)定,若數(shù)組的大小少于存儲(chǔ)字符串有效字符的字節(jié)個(gè)數(shù),系統(tǒng)將報(bào)告錯(cuò)誤;當(dāng)字符數(shù)組的大小只能存儲(chǔ)字符串的有效字符,而不能存儲(chǔ)字符率結(jié)束標(biāo)記符時(shí),則存儲(chǔ)于字符數(shù)組中的內(nèi)容是字符序列,因沒(méi)有存儲(chǔ)字符率結(jié)束標(biāo)記符,存儲(chǔ)的內(nèi)容就不是字符串。

如代碼char a[5]=“ABCDE”。另外,給字符數(shù)組元素逐一賦字符初值,并在字符初值中沒(méi)有字符串結(jié)束標(biāo)記符,則存于字符數(shù)組中的內(nèi)容也不是字符率。如代碼 char s[5]={‘A’,‘B’,‘C’,‘D’,‘E’}.特別要注意當(dāng)字符指針還未指向某個(gè)字符數(shù)組的元素時(shí),不可以通過(guò)字符指針輸入字符串。如代碼char *s;scanf(“%s”,s)。若寫(xiě)成char *str;scanf(“%s”, str)更是錯(cuò)誤的了。由于C語(yǔ)言規(guī)定數(shù)組不能相互賦值,所以只能將字符串常量賦給某字符指針。如代碼char *s;s=“ABCDE”是正確的。實(shí)際上,字符率“ABCDE” 被存儲(chǔ)于常量區(qū)中,向指針變量賦的是字符指針,讓s指向其中的字符‘A’。所以解答是③。

6.若有以下定義,則不能表示a數(shù)組元素的表達(dá)式是()

int a[10]={1,2,3,4,5,6,7,8,9,1o},*p=a;

①*p ② a[10] ③*a ④ a[p-a]

「解」上述代碼定義了有10個(gè)元素的整型數(shù)組。,和定義指針變量p,并讓p指向數(shù)組元素a[0].所以代碼*p是引用 a[0].由于數(shù)組a只有10個(gè)元素,最后一個(gè)元素是a[9],表達(dá)式a[10]是錯(cuò)誤的。數(shù)組名a可以作為a的首元素的指針,表達(dá)式*a就是a[0] ,是對(duì)數(shù)組a的首元素a[0]的引用。指針p的值是a,表達(dá)式p-a.的值是0,所以a[p-a]就是a[0].所以解答是②。

7.若有以下定義,則值為3的表達(dá)式是()

int a[]= {1,2,3,4,5,6,7,8,9,10},*p=a;

①p+=2,*(p++) ③p+=2,* ++p

③p+=3,*p++ ④ p+=2,++ *p

「解」數(shù)組a有10個(gè)元素,分別有值1至10,指針變量p指向a[0] ①逗號(hào)表達(dá)式 p+=2,*(P++),先是P+=2使P指向a[2],接著是*(P++),以當(dāng)時(shí)P所指變量a[2]取內(nèi)容3為表達(dá)式的值,同時(shí)使p指向a[3].②返號(hào)表達(dá)式p+=2,* ++p,先是p+=2使p指向a[2],以后是* ++p,又使 p增1,讓它指向a[3],并取指針p所指變量a[3]的內(nèi)容4作為表達(dá)

式的值。③逗號(hào)表達(dá)式 p+=3,*p++,先是p+=3使p指向a[3],以后是*p++,表達(dá)式的值是 a[3]為 4,而使p指向a[4].④逗號(hào)表達(dá)式p+=2,++ *p,先是p+=2,使p指向a[2],以后是++ *p,因當(dāng)時(shí)的*p就是 a[2],++a[2]使a[2]增1,變成4,并以4為表達(dá)式的值。所以只有p+=2,*(p++)的值是3.所以解答是①。

8.設(shè)有定義“char a[10]={”abcd“},*p=a;”,則*(p+4)的值是( )

①“abCd” ②‘d’

③‘\0’ ④不能確定

「 解」若有char a[10]=“abcd”,*p=a,則指針變量p指向a[0].在表達(dá)式*(p+4)中,p+4指向a[4],*(p+4)就是a[4].由于用字符“abcd” 給字符數(shù)組a賦初值,a[4]的值是字符串結(jié)束標(biāo)記符‘\0’。所以解答是③。

相關(guān)閱讀

熱門(mén)標(biāo)簽

關(guān)于自考“高級(jí)語(yǔ)言程序設(shè)計(jì)”習(xí)題答案詳解(25)文章

2021年自學(xué)考試報(bào)考入口 2021年自學(xué)考試報(bào)考入口

熱門(mén)文章