一. 简答题
下面内容只能利用指针知识完成
1、编写程序:完成函数void my_power(double x,int y,double *mypow)的定义,该函数的功能是:求xy(即x的y次方)存入指针变量mypow所指向的存贮单元中,并编写主程序,验证my_power()的有效性。
#include "stdio.h"
void my_power(double x,int y,double *mypow)
{
int i;
double k=1.0;
if(y>0)
for(i=0;i<y;i++)
k=k*x;
else
for(i=0;i<(-y);i++)
k=k*x;
*mypow=k;
}
void main()
{
double x,n;
int y;
printf("请输入底数x和幂y的值:\n");
scanf("%lf%d",&x,&y);
while(!x&&!y)
{printf("无意义,请重新输入x和y的值\n");
scanf("%lf%d",&x,&y);
}
my_power(x,y,&n);
printf("x的y次方为%lf\n",n);
}
2、编写程序:完成函数int absmin(int *a,int n)的定义,它能实现求指针a所指向的前n个整数中绝对值最小的数,并将它返回给主调函数;并编写程序,验证absmin()的有效性。
#include "stdio.h"
#include "math.h"
int absmin(int *a,int n)
{
int min=0,i;
for(i=0;i<n;i++)
if(abs(*(a+min))>abs(*(a+i)))
min=i;
return *(a+min);
}
void main()
{
int a[100],i,min,n;
printf("请输入数组个数\n");
scanf("%d",&n);
printf("请输入数组元素\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("请输入比较的个数n\n");
scanf("%d",&n);
min=absmin(a,n);
for(i=0;i<n;i++)
if(abs(min)==abs(*(a+i)))
printf("绝对值最小的数分别为%d\n",*(a+i));
}
3、编写程序:从键盘任意输入一个字符串,输出该字符串。然后,将该字符串逆序存放后再输出,要求用字符指针完成。(提示ÿ