搜档网
当前位置:搜档网 › C语言程序设计课后习题答案(2)[1]

C语言程序设计课后习题答案(2)[1]

循环部分习题
1. 编写程序,求1+2+3+…+n之和超过2000的第一个n值及其和。
 参考方法1:
 #include
 void main()
{ int n,sum=0;
for(n=1;sum<=2000;n++)
sum+=n;
cout<<”n=”<}
 参考方法2:
 #include
 void main()
{ int n,sum=0;
for(n=1;;n++)
{ sum+=n;
if (sum>2000) break;
}
cout<<”n=”<}

2. 输入若干学生成绩,统计其中90分之上、70~89、60~69、小于60分的人数,并输出。当输入的数小于0时结束。
#include
void main()
{ int a,b,c,d,grade;
a=b=c=d=0;
cout<<”Please input scores:\n”;
while(1)
{ cin>>grade;
if(grade<0) break;
else if(grade<60) d++;
else if(grade<70) c++;
else if(grade<90) b++;
else a++;
}
cout<<”above 90:”< cout<<”70~89:”< cout<<”60~69:”< cout<<”0~59:”< }


3. 输入一整数,输出各位数字之和。如输入6228,则输出6+2+2+8=18。
#include
void main()
{ int num,sum=0;
cout<<”Please input a integer:\n”;+
cin>>num;
while(num!=0)
{ s+=num%10;
num/=10;
}
cout<<”sum=”< }
4. 输入一实数x和一整数n,求x+x2+x3+…+xn的值。
#include
void main()
{ int n,i;
double x,sum=0,mul=1;
cout<<”Please input x and n:\n”;
cin>>x>>n;
for(i=1;i<=n;i++)
{ mul*=x;
sum+=mul;
}
cout<<”sum=”< }
5. 输入两个整数n和m,打印n行星号,每行m个星号。

#include
void main()
{ int i,j,n,m;
cout<<”Pleaese input n and m:\n”;
cin>>n>>m;
for(i=1;i<=n;i++)
{ for(j=1;j<=i-1;j++)
cout<<” ”;
for(j=1;j<=m;j++)
cout<<”*”;
cout< }
}




数组部分习题
1. 输入10个学生的成绩,求其平均值,输出最高成绩,并统计低于平均值的人数。
#include
void main()
{ int i,count=0;
double score[10],aver=0,max;
cout<<”Please input 10 scores:\n”;
for(i=0;i<10;i++)
{ cin>>score[i];
aver+=score[i];
}
aver/=10;
max=score[0];
for(i=0;i<10;i++)
{ if(score[i]>max) max=score[i];
if(score[i] }
cout<<”aver=”< }

2. 按杨辉三角的规律打印输出前10行。
#include
#include
void main()
{
int

a[10][10],i,j;
for(i=0;i<10;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;i++)
for(j=1;ja[i][j]=a[i-1][j-1]+a[i-1][j];
cout<<"杨辉三角 :\n";
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
cout<cout<}
}

3. 编写程序统计某班英语、语文、数学三门课程的成绩,学生人数与成绩由键盘输入,要求统计出每门课程全班的总成绩和平均成绩以及每个学生三门课程的总成绩和平均成绩。
#include
void main()
{ static double score[40][5];
int i,j,n;
cout<<”Please input the number of students:\n”;
cin>>n;
cout<<”Please input the scores of ”<for(i=0;i{ for(j=0;j<3;j++)
{ cin>>score[i][j];

score[i][3]+=score[i][j];
}
score[i][4]=score[i][3]/3;
}
for(j=0;j<5;j++)
{ for(i=0;iscore[n][j]+=score[i][j];
score[n+1][j]=score[n][j]/n;
}
cout<<”Count Result:\n”;
cout<<”\t\t英语\t\t语文\t\t数学\t\t总成绩\t\t平均成绩\n”;
for(i=0;i{ for(j=0;j<5;j++)
cout<<”\t\t”<cout<}
}


数组与指针部分
1. 编写程序,输入五个字符串,输出其中最大者。要求使用二维字符数组及字符串处理函数。
#include
#include
void main()
{ char str[5][20],max[20];
int i;
cout<<”Please input 5 strings:\n”;
for(i=0;i<5;i++)
cin.getline(str[i],50);
strcpy(max,str[0]);
for(i=1;i<5;i++)
if(strcmp(max,str[i])<0)
strcpy(max,str[i]);
cout<<”max_string is:”<}
2. 编写程序将一个字符串中的数字字符都删除。
方法一:
#include
void main()
{ char str[50];
int i,j;
cout<<”Please input a string:\n”;
cin.getline(str,50);
for(i=0,j=0;str[i]!=’\0’;i++)
if(str[i]<’0’||str[i]>’9’)
{ str[j]=str[i];
j++;
}
str[j]=’\0’;
cout<<”The deleted string is:”<}

方法二
#include
#include
void main()
{ char str[50];
int i;
cout<<”Please input a string:\n”;
cin.getline(str,50);
for(i=0;str[i]!=’\0’;i++)
if(str[i]>=’0’&&str[i]<=’9’)
{ strcpy(str+i,str+i+1);
i--;
}
cout<<”The deleted string is :”<}
3. 编写程序,输入一行字符,统计其中有多少个单词,单词之间用一个或多个空格分隔。
#include
void main()
{
char s[50];
int i,n=0;
cout<<"请输入字符串:";
cin.getline(s,50);
for(i=0;s[i]!=0;i++)
if(s[i]==' '&&s[i+1]!=' ')
n++;
if(s[i-1]!=' ') n++;
if(s[0]==' ') n--;
cout<<"单词个数: "< }




相关主题