您的位置:首页 > 编程语言 > C语言/C++

C++第四章课本例题与习题(第六周)

2014-04-13 00:24 471 查看
例4.1

#include<iostream>
using namespace std;

int main()
{
int a[10];
int i;
for(i=0;i<10;i++)  //给所有的数组元素赋初值
a[i]=i*2+2;
for(i=0;i<10;i++)  //输出所有的数组元素,没行显示5个数组元素
{
cout<<a[i]<<'\t';
if((i+1)%5==0)
cout<<endl;

}

return 0;

}


例4.2

#include<iostream>
using namespace std;

int main()
{
int i,math[40],n;
float aver=0.0;     //平均分
int unpassedcout = 0;  // 不及格学生人数
int highscorecout =0;  // 90分以上学生人数
cout<<"请输入学生人数:";
cin>>n;
cout<<"请输入学生成绩:";
for(i=0;i<n;i++)
{
cin>>math[i];
aver+=math[i];
}
aver/=n;
for(i=0;i<n;i++)
{
if(math[i]<60) unpassedcout++;
if(math[i]>90) highscorecout++;
}

cout<<"平均分为:"<<aver<<endl;
cout<<"90分以上人数为:"<<highscorecout<<endl;
cout<<"不及格人数为:"<<unpassedcout<<endl;

return 0;

}


4.3

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
int a[10],i,big;
cout<<"please input 10 numbers:\n";
for(i=0;i<10;i++)
cin>>a[i];
cout<<"the numbers are:";
for(i=0;i<10;i++)
cout<<setw(4)<<a[i];
cout<<endl;
big=a[0];
for(i=0;i<10;i++)
if(a[i]>big)
big=a[i];
cout<<"the big numbers is:"<<big<<endl;

return 0;
}


4.4

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
int a[10];
int i,j,t;
cout<<"please input 10 numbers:\n";
for(i=0;i<10;i++)
cin>>a[i];    //输入数组元素
cout<<"the numbers are:";
for(i=0;i<10;i++)
cout<<setw(4)<<a[i];
cout<<endl;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
cout<<"the sorted numbers are:";
for(i=0;i<10;i++)
cout<<setw(4)<<a[i];  //输出数组元素
cout<<endl;

return 0;

}


4.5

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
int i;
int f[40]={1,1};
for(i=2;i<40;i++)
f[i]=f[i-2]+f[i-1];  //将前40个数存入数组
for(i=0;i<40;i++)
{
if(i%4==0)
cout<<endl;
cout<<setw(12)<<f[i];
}
cout<<endl;

return 0;
}


4.6

/* 例4.6 from郑天由 */
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
int i,j;
int a[5][5];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i%2==0)
a[i][j]=i*5+j+1;
else
a[i][4-j]=i*5+j+1;

}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}

return 0;
}


4.7与4.6基本相同,就不重复了。

4.8

#include<iostream>
using namespace std;

int main()
{
char str[50];
cout<<"Please input strings:";
cin.get(str,50);            //默认结束符是Enter
cout<<"The strings is:";
cout<<str<<endl;

return 0;

}


4.9

/*例4.9*/
#include<iostream>
#include<cstring>
using namespace std;

int main()
{
char str[100];
cout<<"请输入一个字符串:";
cin.get(str,100);
cout<<"字符串"<<str<<"的反向字符串为:";
for(int i=strlen(str)-1;i>=0;i--)         //strlen()为求字符串长度函数
cout<<str[i];
cout<<endl;

return 0;
}


4.10

/* li4.10 */
#include <iostream>
using namespace std;

int main()
{
char s[]="This is C programming test.";
int i=0,pLen=0,maxpLen = 0, pSeat = 0;
while(s[i]!='\0')
{
while(s[i]!=' '&&s[i]!='\0')    //qubiedancibingjisuanchangdu
{
pLen++;
i++;
}
if(pLen>maxpLen)         //jilui最长单词的位置与长度
{
pSeat=i-pLen;
maxpLen=pLen;
}
while(s[i]==' ')
i++;
pLen=0;           //为计算下一个单词长度赋初值
}
cout <<"最长的单词 :";
for(i=0;i<maxpLen;i++)
cout << s[pSeat+i];
cout <<endl;

return 0;
}


4.11

/*例4.11*/
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
char str[50];
cout<<"Please input a string:";
cin.get(str,50);
cout<<"The length of string"<<str<<"is"<<strlen(str)<<endl;

return 0;
}


4.12
/*例4.12 by 郑天由 */
#include<iostream>
#include<cstring>
using namespace std;

int main()
{
char str[10];
cout<<"请输入字符串,直到输入 hello 后程序结束:"<<endl;
do{
cin>>str;
}while(strcmp(str,"hello")!=0);

return 0;
}


4.13

#include<iostream>
using namespace std;

int main()
{
char str[50];
int len=0;
cout<<"请输入一个字符串:";
cin.get(str,50);
while(str[len] !='\0')
len++;
cout<<"字符串"<<str<<"的长度"<<len<<endl;

return 0;
}

//编写一个程序mystrlen.cpp,yonglai计算字符串的长度


习题1

//习题1
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,j,t;
int str[5];
cout<<"请输入五个数:"<<endl;
for(i=0;i<5;i++)
cin>>str[i];
cout<<"这五个数的从小到大的顺序是:"<<endl;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(str[j]>str[j+1])
{t=str[j];str[j]=str[j+1];str[j+1]=t;}
for(i=0;i<5;i++)
cout<<str[i]<<setw(4);
cout<<endl;

return 0;
}


习题2
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
int a[2][3];
int i,j,big;
cout<<"请输入二行三列二维数组的元素值:"<<endl;

for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]=";
cin>>a[i][j];
}
cout<<"该二维数组为:";
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(j%3==0)
cout<<endl;
cout<<setw(4)<<a[i][j];
}
cout<<endl;
big=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
if(a[i][j]>=big)
big=a[i][j];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
if(a[i][j]==big)
cout<<"该数组中最大元素为:"<<"a["<<i<<"]"<<"["<<j<<"]="<<a[i][j]<<endl;
}


3.
#include<iostream>
using namespace std;
int function(int n);
int main()
{
int i,count;
count=0;
for(i=1;i<=20;i++)
{
cout<<function(i)<<" ";
cout<<endl;
if(function(i)>=100&&function(i)<=999)
count++;
}
cout<<"Fibonacci数列前20个数中的三位数个数为:"<<count<<endl;
cout<<"该数列第16项数据是:"<<function(16)<<endl;

return 0;
}
int function(int n)
{
if(n==1||n==2)return 1;
else return function(n-1)+function(n-2);
}


4

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{

char a[100];
int i,xiaoxue=0,shuzi=0,daxue=0,kongge=0,qita=0;
cout<<"请输入一行字符小于100的文字:";
cin.get(a,100);
for(i=0;i<100;i++)
{
if(a[i]>='a'&&a[i]<='z')
xiaoxue++;
else if
(a[i]>='0'&&a[i]<='9')   //因为a被定义为char,,所以应该写成'0' '9'
shuzi++;
else if
(a[i]>='A'&&a[i]<='Z')
daxue++;
else if
(a[i]==' ')
kongge++;
else if
(a[i]=='\0')
qita=strlen(a)-(shuzi+xiaoxue+daxue+kongge);
}
cout<<"数字个数为:"<<shuzi<<endl;
cout<<"小写字母个数为:"<<xiaoxue<<endl;
cout<<"大写字母个数为:"<<daxue<<endl;
cout<<"空格个数为:"<<kongge<<endl;
cout<<"其他字符个数为:"<<qita<<endl;
return 0;
}


5.

#include<iostream>
using namespace std;

int main()
{
char a[100];
int i;
cout<<"输入一字符串:"<<endl;
cin.get(a,100);
cout<<"反向输出每一个字符:"<<endl;
for(i=strlen(a);i>0;i--)
cout<<a[i-1];
cout<<"该字符串长度为:"<<strlen(a)<<endl;

return 0;

}


6.

#include<iostream>
using namespace std;

int main()
{
int i,b,shuzi;
shuzi=0;
b=0;
char a[100];
cout<<"输入一个字符串:"<<endl;
cin.get(a,100);
cout<<"删除了所有数字后的字符串为:"<<endl;
for(i=0;i<100;i++)
if(a[i]=='\0')
break;
else if(a[i]>='0'&&a[i]<='9') shuzi++;
else
cout<<a[i];
cout<<"该字符串的长度为:"<<strlen(a)-shuzi<<endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: