齐乐娱乐在线 > 复习指导 > 2015年自考“高级语言程序设计”习题答案详解(30)
2014
10-30

2015年自考“高级语言程序设计”习题答案详解(30)

2015年自考“高级语言程序设计”习题答案详解(30) 2.编一个程序,输入15个整数存入一维数组,再按逆序重新存放后再输出。
「解」输入数组的元素,并重新颠倒存放后输出。将存储于数组中的元素颠倒存储,只要首尾相对应的元素两两交换即可。若用指针实现,可让一个指针p指向前端的元素,另一个指针q指向与前端元素对应的后端的元素。循环前,让p指向数组的首元素,让q指向数组的末元素。循环时,让p和q所指两个元素交换,并让p增1,q减l.循环条件是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.输入一个字符串,按相反的次序输出其中的全部字符。
「解」要相反的次序输出字符串的全部字符,可用一个字符指针变量,从指向字符串的本字符开始,逆序遍历字符串,输出指针所指字符即可。但为了让字符指针指向字符串的末字符,若不用字符串处理库函数,得用一个循环,让它从字符串的首字符开始,顺序移至字符串的结束标记符,然后倒退一个字符,就能让它指向字符串的末字符。程序如下:
# 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.输入一个一维实型数组,输出其中的最大值、最小值和平均值。
「解」设实型数组的元素个数n不超过20.程序输入n,并用循环输入数组的元素,再用循环遍历数组,求出数组的最大值和最小值、数组元素的和。然后求出数组元素的平均值,最后输出结果。程序如下:
# 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个实数\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);
}
最后编辑:
作者:齐乐娱乐在线