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

来源:互联网 发布:我是皇盾牌进阶数据 编辑:程序博客网 时间:2024/05/19 17:52

例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);            //默认结束符是Entercout<<"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;        }  


 

0 0
原创粉丝点击