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

  • 發(fā)布時間:2024-09-15 16:21:23
  • 來源:本站整理
  • 閱讀:
導(dǎo)讀:
  9.設(shè)有代碼“int(*ptr)[10];”,其中的ptr是( )
 ?、?0個指向整型變量的指針
  ②指向10個整型變量的函數(shù)指針
 ?、垡粋€指向具有10個元素的一維數(shù)組的指針
 ?、芫哂?0個指針元素的一維數(shù)組
  「解」代碼“int(*ptr)[10];”的分析過程是,因圓括號,括號內(nèi)的ptr先與字符*結(jié)合,字符*修飾標(biāo)識符ptr是一

9.設(shè)有代碼“int(*ptr)[10];”,其中的ptr是( )

①10個指向整型變量的指針

②指向10個整型變量的函數(shù)指針

③一個指向具有10個元素的一維數(shù)組的指針

④具有10個指針元素的一維數(shù)組

「解」代碼“int(*ptr)[10];”的分析過程是,因圓括號,括號內(nèi)的ptr先與字符*結(jié)合,字符*修飾標(biāo)識符ptr是一種指針;接著與后面的一對方括號結(jié)合,表示是這樣的一種指針,是指向一維數(shù)組的;再有方括號中的10,說明這種數(shù)組有10個元素。至此,ptr是指向含10個元素的

一維數(shù)組的指針。最后,是最前面的int,表示數(shù)組元素是int類型的。所以,ptr是一個指向具有10個int型元素的一維數(shù)組的指針。所以解答是③。另外,要是①,10個指向整型變量的指針,就是一個指針數(shù)組,上述代碼應(yīng)寫成“int *ptr[10];”,即ptr是一個有10個指向整型變量的數(shù)組。要是②,返回值是指向10個整型變量的函數(shù)的指針,上述代碼應(yīng)寫成“int(*(*ptr)())[10];”,即ptr是指針,指向一種函數(shù),函數(shù)的返回值又是一種指針,指向10個元素的數(shù)組,數(shù)組的元素是整型的。下面的代碼是這樣的函數(shù)指針和函數(shù)的例子:

# include

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

int(*(*ptr)(int))[10];

int(*f( int n))[10]

{return a+n;

}

void main()

{ int(*p)[10],*q;

ptr=f;/*讓ptr指向函數(shù)f*/

P=(*ptr)(0);

q=*p;

printf(“%d\n”, *p);

P=(*ptr)(l);

q=*p;

printf(“%d\n”, *q);

}

在上述代碼中,函數(shù)有一個int型的形參。要是④,其意義與①相同,上述代碼應(yīng)寫成“int* ptr[10];”,即 ptr是一個有10個元素的數(shù)組,數(shù)組元素是指向整型變量的指針。

10.若有以下定義,則數(shù)值為4的表達(dá)式是( )

int w[3][4]={{0,1},{2,4},{5,8}},(* p)[4]= W;

①*w[1]+l ②p++,*(p+1) ③w[2][2] ④p[1][1]

「解」二維數(shù)組定義有多種賦初值的辦法,問題給出的代碼是按行給數(shù)組的部分元素賦初值。它們分別是w[0][0]=0.w[0][1]=1、w[1][1]=2.w[1][1]=4,w[2][0]=5,w[2][1]=8.根據(jù)約定,未指定初值的元素自動置全0值。指針變量p是一個指向具有四個int型元素的一維數(shù)組的指針,定義時的初值使它指向數(shù)組W的第一行。①的代碼,*w[1]+1中的W[l]是指向 w[l][0]的指針,*w[1] 就是w[1][0],其值是2,*w[1]+l的值是3.②的代碼是逗號表達(dá)式,“p++,*(p+1)”先使p指向數(shù)組w的第二行,*(p+l)中的p+l是指向數(shù)組w的第三行,*(p+1)是指針值,指向數(shù)組w的第三行的第一個元素,即 w[2][0]. ③的代碼w[2][2]引用數(shù)組W第三行的第三列元素,其值是0.④的代碼p[1][l]引用數(shù)組W第二行的第二列元素w[1][1],其值是 4.所以解答是@。

相關(guān)閱讀

熱門標(biāo)簽

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

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

熱門文章