功能找出字符数组a中字符串中最长的单词并存入b所指向的数组中,函数返回最长单词在字符串的起迭位置下标。
2) 编写main函数,接受键盘输入的一个英文句子。调用find函数找到该
句子中最长的单词,将最长单词及其在字符串中的起始位置下标输出到屏幕。
#include
void main(){ char a[80],b[80]; int n;
cout<<\请输入的一个英文句子: \ cin.getline(a,80);
cout<
}
int find(char *a , char *b){ char *p1,*p2,*p3; p1=p2=p3=a; int max=0; while(*p1!=0){ while(*p1==' ') p1++,p2++; while(*p1!=' ' && *p1!=0) p1++;
if(p1-p2>max){ max=p1-p2; p3=p2;
} p2=p1;
}
strncpy(b,p3,max); *(b+max)='\\0';
return (p3-a);
6
}
附加题
2. 重新排列一维数组元素的顺序,使得左边的所有元素均为偶数并按由大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。 【测试数据与运行结果】
数组原始数据为:17 15 10 14 16 17 19 18 13 12 输出结果:18 16 14 12 10 13 15 17 17 19
要求:
1) 编写函数void resort(int *x, int n),使得左边的所有元素均为偶数并按由
大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。(可根据编程需要增加函数)
2) 编写main函数,接受键盘输入数据,调用resort函数完成上述功能,并
输出结果。 #include
void resort(int *x, int n); void sort(int *a,int n);
void main(){ }
void resort(int *x, int n){
7
int a[10]={0};
cout<<\请输入十个数据:\for(int i=0;i<10;i++)cin>>a[i]; cout<<\数组原始数据为:\for(i=0;i<10;i++) cout<
for(i=0;i<10;i++)cout<
int a[10],*i,*j,*pa=a,*px=x; while(px for(pa=a;pa if(*pa%2==0) *i++=*pa++; else *j--=*pa++; void sort(int *a,int n){ } 1. 编写一个求积分的函数,该函数的原型如下: float Integral(int a, int b, float (*fun)(float)); 该函数返回值为积分结果,形参a,b分别为积分上下限,fun是被积函数。 要求: 1)积分算法:将积分区域划分为若干个小区间,求出所有小区间中被积函数下的面积之和即为函数在积分区域内的积分值;小区间面积可用梯形近似; 2) 用积分函数分别求解y=x2和y=2x+1两个函数在[0,1]区域内的积分值。 */ #include float f1(float x){ 8 int *i,*j,temp; for(i=a;i for(j=i+1;j if(*i<*j) temp=*i,*i=*j,*j=temp; } return x*x; float f2(float x){ } float Integral(int a, int b, float (*fun)(float)); void main(){ } } 2. 编程题(20分) 【编程要求】 return (2*x+1); cout<<\第一个积分值: \cout<<\第二个积分值: \ float Integral(int a, int b, float (*fun)(float)){ float h,y; int i; y=(fun(a)+fun(b))/2; h=(b-a)/1000.0; for(i=1;i<1000;i++)y+=fun(h*i); return (y*h); 1) 编写函数int fun(long *x),找出所有满足以下特性的六位整数:它是一个 完全平方数(完全平方数是指该数是某个整数的平方);该数同时也是回文数(回文数是指该数等于它的反序数)。例如,698896是836的平方并且698896是回文数,因此698896是满足所给条件的六位整数。将所有满足上述条件的六位整数存入x指向的数组中,函数返回x指向的数组中整数的个数。 2) 编写main函数,声明result数组,调用fun函数将所有满足条件的六位 9 整数存入result数组中,将result数组中的数据输出到屏幕。 【测试数据与运行结果】 运行结果: 698896 #include int fun(long *x); void main(){ long resort[10]; int n=fun(resort); cout<<\六位整数中完全平方数有: \ for(int i=0;i cout< } int fun(long *x){ long n,n1,n2,n3=0; long *px=x; for(n2=n=100000;n<999999;n++,n2=n,n3=0){ n1=sqrt(n); if(n1*n1==n){ while(n2>0){ n3=n3*10+n2; n2/=10; } } if(n3==n) *px++=n; } return px-x; } 3. 改错题 【程序功能】 10