C语言课后习题_c语言课后习题
C语言课后习题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言课后习题”。
习题
第三章
#include #include int main(){
int d,p;
double r,a,m;
scanf(“%d %d %lf”,&d,&p,&r);
a=(p/(p-d*r));
m=log(a)/log(1+r);
if(p>0&&d>0)
{
if(d
printf(“%.1f”,m);
else
printf(“God”);
}
else
printf(“0.0”);
return 0;}
勾股数
#include int main(){
int a,b,c,n;
scanf(“%d”,&n);
for(a=1;a
{
for(b=1;b
{
for(c=1;c
{
if(c*c==a*a+b*b)
{
if(a
{
printf(“%d %d %dn”,a,b,c);
}
}
}
}
}
return 0;}
第四章
计算分段函数值 #include int main(){
float x,y;
scanf(“%f”,&x);
if(x
else if(x>=1&&x
else if(x>=10)y=3*x-11;
printf(“%.2f”,y);
return 0;}
找出三个数中最大的数 #include int main(){
int a,b,c,max;
scanf(“%d%d%d”,&a,&b,&c);
max=a>b?a:b;
if(c>max)
max=c;
printf(“%d”,max);
return 0;}
10844成绩等级评分 #include int main(){
int x;
scanf(“%d”,&x);
if(x>=0&&x
{
switch(x/10)
{
case 10:
case 9: printf(“A”);break;
case 8 : printf(“B”);break;
case 7 : printf(“C”);break;
case 6 : printf(“D”);break;
default:
printf(“E”);break;
}
}
else
printf(“error”);
return 0;}
前续和后续字符 #include int main(){
char x;
x=getchar();switch(x){ case'0':printf(“first”);printf(“ %c”,x+1);break;case'9':printf(“%c ”,x-1);printf(“last”);break;case'1': case'2': case'3': case'4': case'5': case'6': case'7': case'8': printf(“%c ”,x-1);printf(“%c”,x+1);break;default: printf(“error”);break;
} return 0;}
20秒后的时间 #include #include int main(){
int h,m,s;
scanf(“%d:%d:%d”, &h,&m,&s);
s=s+20;
if(s>59)
{
s=s%60;
m++;
if(m>59)
{
m=m%60;
h++;
if(h>23)
h=0;
}
}
printf(“%02d:%02d:%02dn”, h, m, s);
return 0;}
分期还款
#include #include int main(){
int d,p;
double r,a,m;
scanf(“%d %d %lf”,&d,&p,&r);
a=(p/(p-d*r));
m=log(a)/log(1+r);
if(p>0&&d>0)
{
if(d
printf(“%.1f”,m);
else
printf(“God”);
}
else
printf(“0.0”);
return 0;}
第五章
字母分类统计 #include #include int main(){
char ch;
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;
while((ch=getchar())!='n')
{
if(ch=123)
a++;
else if(ch>=97&&ch
b++;
else if(ch=91)
c++;
else if(ch=65)
d++;
else if(ch>=58&&ch
e++;
else if(ch>=48&&ch
f++;
else if(ch>=33&&ch
g++;
else if(ch==32)
h++;
else
i++;
}
printf(“%d %d %d %d”,d+b,f,h,a+c+e+g+i);}
水仙花数
#include int main(){
int n,a,b,c;
for(n=100;n
{
a=n/100;
b=(n%100)/10;
c=n%10;
if(n==a*a*a+b*b*b+c*c*c)
{
printf(“%dn”,n);
}
}
return 0;}
计算数列和
#include int main(){
int a=1,n,i,sum=0;
scanf(“%d”,&n);
for(i=1;i
{
sum=sum+a;
a=a+2;
}
printf(“%d”,sum);
return 0;}
自由落体
#include int main(){
int i,n;
double h=100.0,s=0.0,c=100.0;
scanf(“%d”,&n);
{
s=s+c;
h=h/2;
c=2*h;
}
printf(“%.3lf”,s);
printf(“%.3lf”,h);
return 0;}
迭代法求平方根 #include #include int main(){
float x1,x2,a;
x2=1;
scanf(“%f”,&a);
x1=a/x2;
while(fabs(x1-x2)>=1e-5)
{
x1=x2;
x2=0.5*(x1+a/x1);
}
printf(“%.4fn”,x2);
return 0;}
打印三角形
#include #include #include int main(){
int n,k,i,j;
scanf(“%d”,&n);
for(i=0;i
{
k=abs(n-1-i);
for(j=0;j
{
printf(“”);
}
for(j=0;j
{
printf(“*”);
}
printf(“n”);
}
return 0;}
勾股数
#include int main(){
int a,b,c,n;
scanf(“%d”,&n);
for(a=1;a
{
for(b=1;b
{
for(c=1;c
{
if(c*c==a*a+b*b)
{
if(a
{
printf(“%d %d %dn”,a,b,c);
}
}
}
}
}
return 0;}
第六章
18052插入数据 int x,i,t;
scanf(“%d”,&x);
a[15]=x;
for(i=15;i>0;i--){
if(a[i]
{
t=a[i];
a[i]=a[i-1];
a[i-1]=t;
} }
大于平均分
#include int main(){
int a[10];
int i,sum=0,average,count;
for(i=0;i
{
scanf(“%d”,&a[i]);
}
for(i=0;i
{
sum=sum+a[i];
}
average=sum/10;
count=0;
for(i=0;i
{
if(a[i]>average)
count++;
}
printf(“%d”,count);
return 0;}
输出不同的数据 #include int main(){
int a[20];
int i,t,p=0;
for(i=0;i
{
scanf(“%d”,&a[i]);
}
for(i=0;i
{
for(t=0;t
if(a[t]==a[i])break;
if(t==i)printf(“%dn”,a[i]);
} }
主对角线上的元素之和 #include int main(){
int a[3][4],i,j,sum=0;
for(i=0;i
{
for(j=0;j
{
scanf(“%d”,&a[i][j]);
}
}
for(i=0;i
{
sum+=a[i][i];
}
printf(“%dn”,sum);
return 0;}
1051 鞍点
#include int main(){ int i,j,k,t=0,flag=0,m=0,n=0,a[3][4],max,min;for(i=0;i
for(j=0;j
{
scanf(“%d”,&a[i][j]);
} }
for(i=0;i
max=a[i][0];
for(j=0;j
{
if(max
{
max=a[i][j];m=i;n=j;
}
}
for(k=0;k
{
min=a[m][n];
if(min>a[k][n])
flag=1;
}
if(flag==0)
{
t=1;
printf(“%dn”,a[m][n]);}
flag=0;}
if(t==0)
printf(“NO”);
return 0;}
ASCII码值之和的差 #include #include int main(){
char s1[80];
char s2[80];
int i,sum1=0,sum2=0;
gets(s1);
gets(s2);
for(i=0;i
{
sum1+=s1[i];
}
for(i=0;i
{
sum2+=s2[i];
}
printf(“%d”,sum1-sum2);
return 0;}
第七章
所有数字之和 #include int sum(int n){
if(n
return n;
int res=0;
res=(n%10)+sum(n/10);
return res;} main(){
int n;
scanf(“%d”,&n);
printf(“%d”,sum(n));}
元音字母
#include #include void yuan(char*s,char*s2){
int i,k=0;
char c;
for(i=0;*(s+i)!=' ';i++)
{
c=*(s+i);
switch(c)
{
case'a':
case'e':
case'i':
case'o':
case'u':
case'A':
case'E':
case'I':
case'O':
case'U':*(s2+k)=c;k++;break;
default:break;
}
}
*(s2+k)=' ';} int main(){
char str[81],str2[81];
gets(str);
yuan(str,str2);
printf(“%s”,str2);}
字符统计
#include #include #include int nL=0,nN=0;int statistics(char*s){
int nS=0,a;
while(*s!=' ')
{
a=*s;
if(a==' ')
nS++;
else
{
if(a>='1'&&a
nN++;
else if((a>='a'&&a='A'&&a
nL++;
}
s++;
}
return nS;} int main(){
char s[81];
int nS;
gets(s);
nS=statistics(s);
printf(“%d%d%dn”,nL,nN,nS);
return 0;}
选择排序
#include int sort(int a[],int n){
int i,j,k,tmp;
for(i=0;i
{
k=i;
for(j=i+1;j
if(a[j]
tmp=a[k];a[k]=a[j];a[i]=tmp;
} } int main(){
int a[10];
int i;
for(i=0;i
sort(a,10);
for(i=0;i
return 0;}
X的N次方
#include int F(int x,int n){
if(n==0)return 1;
else return x*F(x,(n-1));} int main(){
int x,n;
scanf(“%d%d”,&x,&n);
printf(“%d”,F(x,n));
return 0;}
行列互换
#include void swap(int*a,int*b){
int temp;
temp=*a;*a=*b;*b=temp;} void col(int a[][4],int i,int j){
int k;
for(k=0;k
swap((*(a+k)+i),(*(a+k)+j));} void row(int a[][4],int i,int j){
int k;
for(k=0;k
swap((*(a+i)+k),(*(a+j)+k));} int main(){
int a[4][4];
int i,j;
for(i=0;i
for(j=0;j
scanf(“%d”,&a[i][j]);
col(a,0,2);
row(a,0,2);
col(a,1,3);
row(a,1,3);
col(a,0,3);
row(a,0,3);
for(i=0;i
{
for(j=0;j
printf(“%d”,a[i][j]);
printf(“n”);
}
return 0;}
学生信息统计 #include void average(double a[][5],int n){
int i,j;
for(i=0;i
{
double sum=0,av;
for(j=0;j
sum=sum+a[i][j];
av=sum/5.0;
printf(“%.2f ”,av);
}
printf(“n”);} void average2(double a[][5],int n){
int i,j;
for(j=0;j
{
double sum=0,av;
for(i=0;i
sum=sum+a[i][j];
av=sum/n;
printf(“%.2f ”,av);
}
printf(“n”);} void top(double a[][5],int n){
int i,j;
double max;
for(j=0;j
{
max=a[0][j];
for(i=0;i
{
if(a[i][j]>max)max=a[i][j];
}
printf(“%.2f ”,max);
} } int main(){
double a[10][5];
int i,j;
for(i=0;i
for(j=0;j
scanf(“%lf”,&a[i][j]);
average(a,10);
average(a,10);
top(a,10);
return 0;}