C++上机题目及答案1(2)

2019-04-13 20:52

功能找出字符数组a中字符串中最长的单词并存入b所指向的数组中,函数返回最长单词在字符串的起迭位置下标。

2) 编写main函数,接受键盘输入的一个英文句子。调用find函数找到该

句子中最长的单词,将最长单词及其在字符串中的起始位置下标输出到屏幕。

#include #include int find(char *a , char *b);

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 #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<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 #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


C++上机题目及答案1(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东省邹城市第一中学2016届高三10月月考数学(理)试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: