自考“高級語言程序設計”習題答案詳解(30)

  • 發(fā)布時間:2024-09-15 16:21:23
  • 來源:本站整理
  • 閱讀:
導讀:
  2.編一個程序,輸入15個整數(shù)存入一維數(shù)組,再按逆序重新存放后再輸出。
  「解」輸入數(shù)組的元素,并重新顛倒存放后輸出。將存儲于數(shù)組中的元素顛倒存儲,只要首尾相對應的元素兩兩交換即可。若用指針實現(xiàn),可讓一個指針p指向前端的元素,另一個指針q指向與前端元素對應的后端的元素。循環(huán)前,讓p指向數(shù)組的首元素,讓

2.編一個程序,輸入15個整數(shù)存入一維數(shù)組,再按逆序重新存放后再輸出。

「解」輸入數(shù)組的元素,并重新顛倒存放后輸出。將存儲于數(shù)組中的元素顛倒存儲,只要首尾相對應的元素兩兩交換即可。若用指針實現(xiàn),可讓一個指針p指向前端的元素,另一個指針q指向與前端元素對應的后端的元素。循環(huán)前,讓p指向數(shù)組的首元素,讓q指向數(shù)組的末元素。循環(huán)時,讓p和q所指兩個元素交換,并讓p增1,q減l.循環(huán)條件是p所指元素在前,q所指元素在后,即p<q.程序如下:

# include

main()

{ int a[15],*p,*q, temp;

printf(“Enter 15 numbers.\n”);

for(p=a;p<a+15;p++)

scanf(“%d”, p);

for(p=a,q=a+14;p<q;P++,q——) {

temp=*p; *p=*q;*q=temp;

}

for(p=a;p A+15;P++)

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

printf(“\n”);

}

3.輸入一個字符串,按相反的次序輸出其中的全部字符。

「解」要相反的次序輸出字符串的全部字符,可用一個字符指針變量,從指向字符串的本字符開始,逆序遍歷字符串,輸出指針所指字符即可。但為了讓字符指針指向字符串的末字符,若不用字符串處理庫函數(shù),得用一個循環(huán),讓它從字符串的首字符開始,順序移至字符串的結(jié)束標記符,然后倒退一個字符,就能讓它指向字符串的末字符。程序如下:

# include

# define N 200

main()

{ char s[N],*p;

printf(“Enter a string.\n”);

scanf(“%s”, s);

for(p=s;*p; p++);

for(p——; p =s; p——)

printf(“%c”,*p);

printf(“\n”);

}

4.輸入一個一維實型數(shù)組,輸出其中的最大值、最小值和平均值。

「解」設實型數(shù)組的元素個數(shù)n不超過20.程序輸入n,并用循環(huán)輸入數(shù)組的元素,再用循環(huán)遍歷數(shù)組,求出數(shù)組的最大值和最小值、數(shù)組元素的和。然后求出數(shù)組元素的平均值,最后輸出結(jié)果。程序如下:

# include

# define N 20

main()

{ double a[N],max,min,ave,*p, t;

int n;

printf(“Enter n(0<n<20)。\n”);

do{

scanf(“%d”, n);

if(n 0 n 20) break;

printf(“n值不合要求,請重新輸入!\n”);

} while(l);

printf(“輸入%d個實數(shù)\n”, n);

for(n=a;n A+N; P++){

scanf(“%lf”, t);*p=t;

}

max=min=ave=*a;

for(p=p+l;p A+N; P++){

if(max *p) max=*p;

if(min *p) min=*p;

ave+=*p;

}

ave/=n;

printf(“最大值:%f\t最小值:%f\t平均值:%f\n”,max,min,ave);

}

相關閱讀