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

  • 發(fā)布時(shí)間:2024-09-15 16:21:23
  • 來源:本站整理
  • 閱讀:
導(dǎo)讀:
  7.設(shè)有以下定義和語句,則*(*(p+2)+l)的值為__________.
  int a[3][2]={10,20,30,40,50,60},(*p)[2];
  p= a;
  「解」上述代碼定義3行2列的二維數(shù)組a ,定義指向兩個(gè)元素的一維數(shù)組指針p,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+l)中的p+2指向二維數(shù)組a的第2行a[2],*(p+2)指向a

7.設(shè)有以下定義和語句,則*(*(p+2)+l)的值為__________.

int a[3][2]={10,20,30,40,50,60},(*p)[2];

p= a;

「解」上述代碼定義3行2列的二維數(shù)組a ,定義指向兩個(gè)元素的一維數(shù)組指針p,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+l)中的p+2指向二維數(shù)組a的第2行a[2],*(p+2)指向a[2][o],*(p+2)+l指向a[2][l],*(*(p+2)+l)是引用a[2][l],其值是60.

8.以下程序的功能是從鍵盤上輸入若干個(gè)字符(以回車符作為結(jié)束)組成一個(gè)字符串存入一個(gè)字符數(shù)組,然后輸出該字符數(shù)組中的字符串。請?zhí)羁铡?/p>

# include

# include

main()

{ char str[81],*sptr;

int i;

for(i=0;i 80;i++)

{ str=getchar();if(str==‘\n’) break;}

str=____________;

sptr=str;

while(* sptr) putchar(* sptr______________);

}

「解」從鍵盤輸入字符行,通過循環(huán)逐一輸入字符,當(dāng)發(fā)現(xiàn)輸入字符是換行符時(shí),結(jié)束循環(huán)。為了使輸入的字符列變成字符串,必須在輸入字符列之后,原存儲換行符的元素改為存儲字符串的結(jié)束標(biāo)記符,需用代碼 str=‘\0’ ,所以在第一框填入代碼‘\0’。當(dāng)要將存于字符數(shù)組str中的字符串通過循環(huán)逐一輸出字符串的字符時(shí),可以用字符指針sptr,讓sptr遍歷整個(gè)字符串,每次循環(huán)時(shí),輸出sptr所指字符,并讓sptr增1,即可用代碼*sptr++實(shí)現(xiàn),所以在第二框填入代碼++.

5.3 程序分析題

1.閱讀下列程序,寫出程序的輸出結(jié)果。

main()

{char *a[6]={“AB”,“CD”,“EF”,“GH”,U“,”KL“};

int i;

for(i=0;i 4;i++) printf(“%s”, a);

printf(“\n”);

}

「解」程序定義了有六個(gè)元素的字符指針數(shù)組a ,數(shù)組a 的各元素指向字符率常量。

程序的for循環(huán)遍歷了a的前四個(gè)元素,用字符率輸出格式,輸出指針數(shù)組a前四個(gè)元素所指的字符串。所以程序輸出: ABCDEFGH.

2.閱讀下列程序,寫出程序的主要功能。

main()

{ int i,a[l0],*p= a[9] ;

for(i=0;i 10;i++) scanf(“%d”, d);

for(; p =a; p——) printf(“%d\n”,*p) ;

}

「解」程序定義了有10個(gè)元素的整型數(shù)組a,另定義指針變量p,并讓它指向a的最后一個(gè)元素a[9].執(zhí)行代碼的第一個(gè)循環(huán)是順序輸人數(shù)組a的10個(gè)元素。第二個(gè)循環(huán)利用指針p逆序遍歷數(shù)組a,將數(shù)組a的各元素逆序輸出。所以程序的功能是輸入10個(gè)整數(shù),并逆序輸出這10個(gè)整數(shù)。

相關(guān)閱讀

熱門標(biāo)簽

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

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

熱門文章