您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计课后习题答案
循环部分习题1.编写程序,求1+2+3+…+n之和超过2000的第一个n值及其和。参考方法1:#includeiostream.hvoidmain(){intn,sum=0;for(n=1;sum=2000;n++)sum+=n;cout”n=”n-1”,sum=”sumendl;}参考方法2:#includeiostream.hvoidmain(){intn,sum=0;for(n=1;;n++){sum+=n;if(sum2000)break;}cout”n=”n”,sum=”sumendl;}2.输入若干学生成绩,统计其中90分之上、70~89、60~69、小于60分的人数,并输出。当输入的数小于0时结束。#includeiostream.hvoidmain(){inta,b,c,d,grade;a=b=c=d=0;cout”Pleaseinputscores:\n”;while(1){cingrade;if(grade0)break;elseif(grade60)d++;elseif(grade70)c++;elseif(grade90)b++;elsea++;}cout”above90:”aendl;cout”70~89:”bendl;cout”60~69:”cendl;cout”0~59:”dendl;}开始n=1,sum=0sum=sum+nsum2000输出n,sumn=n+1结束TF开始a=b=c=d=0输入gradegrade0d=d+1结束TFgrade60grade70Fgrade90c=c+1b=b+1a=a+1输出a,b,c,dTTTFF3.输入一整数,输出各位数字之和。如输入6228,则输出6+2+2+8=18。#includeiostream.hvoidmain(){intnum,sum=0;cout”Pleaseinputainteger:\n”;+cinnum;while(num!=0){s+=num%10;num/=10;}cout”sum=”sumendl;}4.输入一实数x和一整数n,求x+x2+x3+…+xn的值。#includeiostream.hvoidmain(){intn,i;doublex,sum=0,mul=1;cout”Pleaseinputxandn:\n”;cinxn;for(i=1;i=n;i++){mul*=x;sum+=mul;}cout”sum=”sumendl;}5.输入两个整数n和m,打印n行星号,每行m个星号。#includeiostream.hvoidmain(){inti,j,n,m;cout”Pleaeseinputnandm:\n”;cinnm;for(i=1;i=n;i++){for(j=1;j=i-1;j++)cout””;for(j=1;j=m;j++)cout”*”;coutendl;}}开始sum=0sum=sum+num%10num!=0输出n,sum结束TFnum=num/10输入num输出一个空格开始输入n,mi=n输出回车结束TFi=1j=i-1j=1j=j+1Fj=mj=1输出一个星号j=j+1Fi=i+1TT数组部分习题1.输入10个学生的成绩,求其平均值,输出最高成绩,并统计低于平均值的人数。#includeiostream.hvoidmain(){inti,count=0;doublescore[10],aver=0,max;cout”Pleaseinput10scores:\n”;for(i=0;i10;i++){cinscore[i];aver+=score[i];}aver/=10;max=score[0];for(i=0;i10;i++){if(score[i]max)max=score[i];if(score[i]aver)count++;}cout”aver=”aver”\tmax=”max”\tcount=”countendl;}2.按杨辉三角的规律打印输出前10行。#includeiostream.h#includeiomanip.hvoidmain(){inta[10][10],i,j;for(i=0;i10;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i10;i++)for(j=1;ji;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];cout杨辉三角:\n;for(i=0;i10;i++){for(j=0;j=i;j++)coutsetw(5)a[i][j];coutendl;}}3.编写程序统计某班英语、语文、数学三门课程的成绩,学生人数与成绩由键盘输入,要求统计出每门课程全班的总成绩和平均成绩以及每个学生三门课程的总成绩和平均成绩。#includeiostream.hvoidmain(){staticdoublescore[40][5];inti,j,n;cout”Pleaseinputthenumberofstudents:\n”;cinn;cout”Pleaseinputthescoresof”n”students:\n”;for(i=0;in;i++){for(j=0;j3;j++){cinscore[i][j];score[i][3]+=score[i][j];}score[i][4]=score[i][3]/3;}for(j=0;j5;j++){for(i=0;in;i++)score[n][j]+=score[i][j];score[n+1][j]=score[n][j]/n;}cout”CountResult:\n”;cout”\t\t英语\t\t语文\t\t数学\t\t总成绩\t\t平均成绩\n”;for(i=0;in+2;i++){for(j=0;j5;j++)cout”\t\t”score[i][j];coutendl;}}数组与指针部分1.编写程序,输入五个字符串,输出其中最大者。要求使用二维字符数组及字符串处理函数。#includeiostream.h#includestring.hvoidmain(){charstr[5][20],max[20];inti;cout”Pleaseinput5strings:\n”;for(i=0;i5;i++)cin.getline(str[i],50);strcpy(max,str[0]);for(i=1;i5;i++)if(strcmp(max,str[i])0)strcpy(max,str[i]);cout”max_stringis:”maxendl;}2.编写程序将一个字符串中的数字字符都删除。方法一:#includeiostream.hvoidmain(){charstr[50];inti,j;cout”Pleaseinputastring:\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”Thedeletedstringis:”strendl;}方法二#includeiostream.h#includestring.hvoidmain(){charstr[50];inti;cout”Pleaseinputastring:\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”Thedeletedstringis:”strendl;}3.编写程序,输入一行字符,统计其中有多少个单词,单词之间用一个或多个空格分隔。#includeiostream.hvoidmain(){chars[50];inti,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单词个数:nendl;}
本文标题:C语言程序设计课后习题答案
链接地址:https://www.777doc.com/doc-2908343 .html