7. 7.1. {
第七次
编写递归函数求x的n次方, 并调用此函数求2的5次方。
double pwo(double x,int n) double a=0; if(n==0) a=1; if(n<0){ n=-n;x=1.0/x; }
if(n>0) a=x*pwo(x,n-1); return a; }
#include \main() { double x; int n;
printf(\ scanf(\ printf(\} 7.2.
课本135页(第八章第五大题第6小题)。
#include
float aveg(int a[5][10],int i) {float sum=0,k; int j;
for(j=0;j<10;j++) sum+=a[i][j]; k=sum/10; return k; }
void exchange(int a[5][10],int i,int j) {int k,t;
for(k=0;k<5;k++)
{t=a[k][i];a[k][i]=a[k][j];a[k][j]=t;} }
void max(char a[10][20],char d[5][20],int b[5][10]) {int i,j,t,k; char c[1][20]; int e[10]={0}; for(j=0;j<10;j++) for(i=0;i<5;i++)
e[j]+=b[i][j]; for(i=0;i<10;i++) for(j=1;j<10-i;j++)
if(e[j-1]>e[j]) {
t=e[j-1]; e[j-1]=e[j]; e[j]=t;
strcpy(c[0],a[j-1]); strcpy(a[j-1],a[j]); strcpy(a[j],c[0]); exchange(b,j-1,j); }
printf(\
printf(\最高分同学的math、chi、eng、phy、man分别为\\n\
printf(\最高分同学的名字为:\printf(\for(i=0;i<5;i++) printf(\printf(\} main()
{char names[10][20],sub[5][20],a[20]; int mark[5][10],i,j; float ave[5];
printf(\输入十名同学的名字:\\n\for(i=0;i<10;i++) {scanf(\strcpy(names[i],a);}
printf(\按科目math、chi、eng、phy、man顺序依次输入十名同学的成绩:\\n\for(i=0;i<5;i++) for(j=0;j<10;j++) scanf(\printf(\
strcpy(sub[0],\strcpy(sub[1],\strcpy(sub[2],\strcpy(sub[3],\strcpy(sub[4],\for(i=0;i<5;i++) ave[i]=aveg(mark,i);
printf(\、chi、eng、phy、man的平均分为:\\n\for(i=0;i<5;i++) printf(\
printf(\
max(names,sub,mark); } 8. 8.1. main() {
char a[10],*p; int i;
printf(\输入十个字符\\n\ gets(a);
for(p=a+5;p<(a+10);p++)
*p='#';
printf(\处理后结果为\\n\ puts(a); return 0; } 8.2. main() {
int a[6],*p,i,max,sum=0; float ave;
printf(\输入6个整数\\n\ for(p=a;p<(a+6);p++)
scanf(\ max=a[0];
for(p=a;p<(a+6);p++) { }
ave=(float)sum/6;
printf(\ return 0; } 8.3.
利用指针编写。第九章课后习题第五大题第5小题(教科书172页)。
#include \main () {
int a[10],i,*p,*pmax,*pmin; int max,min,temp; sum+=*p; if(max<*p)
max=*p;
利用指针编写程序,对具有6个元素的整型数组,找出其中最大值并计算出该数组的平均数。
#include \
第七次
利用指针编写程序, 对具有10个元素的字符型数组,从下标为6的元素开始全部设置为“#”。
#include \
} 9. 9.1.
printf (\输入十个整数\\n\for (i=0;i<10;i++) p=a; max=*p; min=*p; { } temp=a[0]; a[0]=min; *pmin=temp; temp=a[9]; a[9]=max; *pmax=temp;
printf (\交换后的结果如下\\n\for (i=0;i<10;i++)
printf (\return 0; 第九次
用指针编写函数 : insert(s1,s2,f), 其功能是在字符串 s1 中的指定位置 f 处插入字符 串 s2。
if (*p>max) { }
if (*p min=*p; pmin=p; max=*p; pmax=p; for (p=a+1;p scanf (\ //1. 用指针编写函数 : insert(s1,s2,f), 其功能是在字符串 s1 中的指定位置 f 处插入字符 串 s2。 #include char *insert(char *s1,char *s2,int f) { char *p=s1+f-1,str[200]; int length,i; length=strlen(s1); for(i=0;i<=length;i++) str[i]=*p++; str[i]='\\0'; p=s1+f-1; } while(*s2!='\\0') i=0; while(str[i]!='\\0'){ } return s1; *p++=str[i]; i++; *p++=*s2++; main() { } 9.2. 用数组名作为函数参数的4种方式(即形参数组名、实参数组名;形参数组名、实参指针变量;形参指针变量、实参数组名;形参指针变量、实参指针变量)实现输出某一维数组的最大值及其所在数组的位置。 (1) 数组数组 #include float fun(float a[]) { int i,j; float max; max=a[0]; int i; float a[10],fun(); for(i=0;i<10;i++) scanf(\fun(a); char s1[200]={'\\0'},s2[200]={'\\0'}; int n,k; printf(\请输入字符串1:\\n\gets(s1); printf(\请输入字符串2:\\n\gets(s2); printf(\请输入插入位置的序号:\\n\scanf(\k=strlen(s1); if(n<0||n>k) printf(\输入错误!\\n\printf(\else