题目:
1、自己找规律利用数组完成下列数据的输出:
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
987 1597 2584 4181 6765
思路:数据是斐波那契数列的前20项。该数列特点是除第一第二项以外任一项等于前两项之和,使用for循环就可以实现。
2、有一个无序的,要求先排好序,再输入一个数,按照原来的排序规律进行插入。
思路:将用户输入的9个数使用选择排序(或其他排序)从大(小)到小(大)排好序,再将用户输入需要插入的数放入数组再次排序即可将数按照原来的排序规律插入。
3、有一个字符串,包含n个字符。自己定义一个函数,将此字符串中从第m个字符开始全部字符复制成为另一个字符串。
思路:自定义一个字符数组代表字符串用于测试,从键盘接收n和m的值传入函数中,将字符数组以m为起始位置数组长度-1为终止输出结果。
4、一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?
参考代码:
1、
#include<iostream>
using namespace std;
int main(){
int a [20]={1,1};
int t = 1;
cout<<a[0]<<'\t'<<a[1]<<'\t';
for(int i = 2;i < 20;i++){
a[i] =a[i-1]+a[i-2];
t++;
if(t%5 == 0)
cout<<'\n';
cout<<a[i]<<'\t';
}
cout<<endl;
return 0;
}
2、
#include<iostream>
using namespace std;
int main(){
int a[12],t,c,b,d;
int a1;
cout<<"输入你要插入的数"<<endl;
cin>>a1;
cout<<"输入数组"<<endl;
for(int i=0;i<11;i++){
cin>>a[i];
}
for(int j=0;j<10;j++){
for(int k=j+1;k<11;k++){
if(a[j]>a[k]){
t=a[j];
a[j]=a[k];
a[k]=t;
}
}
}
a[11]=a1;
for(int m=0;m<11;m++){
for(int n=j+1;n<12;n++){
if(a[m]>a[n]){
d=a[m];
a[m]=a[n];
a[n]=d;
}
}
}
for(int z=0;z<12;z++){
cout<<a[z]<<" ";
}
return 0;
}
3、
#include<iostream>
using namespace std;
int copySZ(char a[],int n1,int m1,char* o2){
int t=0;
for(int k=m1;k<n1;k++){
o2[t]=a[k];
t++;
}
return 0;
}
int main(){
int n;
int t=0,b,g=0;
cout<<"输入n"<<endl;
cin>>n;
int m;
cout<<"输入m"<<endl;
cin>>m;
b=n-m;
char c[100];
char o[100];
char* o1;
o1=o;
for(char c1='a';c1<='z';c1++){
if(t>n)
break;
c[t]=c1;
t++;
}
copySZ(c,n,m,o1);
for(int z=0;z<b;z++){
cout<<o[z]<<" ";
}
return 0;
}
4、
#include<iostream>
using namespace std;
int main(){
double a;
cout<<"输入高度"<<endl;
cin>>a;
double sum=0;
for(int i=1;i<=10;i++){
a/=2;
sum+=2*a;
}
cout<<sum+50<<"m"<<" "<<a<<"m"<<endl;
return 0;
}