大学生C语言课后习题全部答案详解
#include
main()
{
inta,b,he,cha,ji;
double shang;
a=8;
b=3;
he=a+b;
cha=a-b;
ji=a*b;
shang=(double)a/b;
printf("和=%d\n",he);
printf("差=%d\n",cha);
printf("积=%d\n",ji);
printf("商=%f\n",shang);
}
#include
main()
{
doubler,h,v,pi;
pi=3.14;
r=2.5;
h=3.5;
v=pi*r*r*h;
printf("面积=%f\n",v);
}
#include
#include
#include
main()
{
charch;
system("cls");
printf("|------------------------|\n");
printf("| 请输入编号(0-7)|\n");
printf("|------------------------|\n");
printf("| 1——创建通讯录|\n");
printf("| 2——显示通讯录|\n");
printf("| 3——查询通讯录|\n");
printf("| 4——修改通讯录|\n");
printf("| 5——添加通讯录|\n");
printf("| 6——删除通讯录|\n");
printf("| 7——排序通讯录|\n");
printf("| 0——退出|\n");
printf("|------------------------|\n");
printf("请输入选项\n");
ch=getch();
putch(ch);
}
#include
#include
main()
{
//定义
int a=0,b=0,he=0,cha=0,ji=0;
doubleshang,x;
//防止a,b 的值为0
printf("请输入非零的a\n");
scanf("%d",&a);
printf("请输入非零的b\n");
scanf("%d",&b);
//运算
he=a+b;
cha=a-b;
ji=a*b;
shang=a/b;
x=(float)a/b;
//输出
printf("result:\n");
printf("a+b=%d\n",he);
printf("a-b=%d\n",cha);
printf("a*b=%d\n",ji);
printf("a/b=%f\n",shang);
printf("(float)a/b=%f\n",x);
}#include
#include
main()
{
//定义
int a=0,b=0,he=0,cha=0,ji=0;
doubleshang,x;
//防止a,b 的值为0
do
{
printf("请输入非零的a\n");
scanf("%d",&a);
}while(a==0);
do
{
printf("请输入非零的b\n");
scanf("%d",&b);
}while(b==0);
//运算
he=a+b;
cha=a-b;
ji=a*b;
shang=a/b;
x=(float)a/b;
//输出
printf("result:\n");
printf("a+b=%d\n",he);
printf("a-b=%d\n",cha);
printf("a*b=%d\n",ji);
printf("a/b=%f\n",shang);
printf("(float)a/b=%f\n",x);
}#include
main()
{ int a=0,b=4;
printf("请输入一个不多于4位的正整数:");
scanf("%d",&a);
if(a>=0&&a<10)
b=1;
if(10<=a&&a<100)
b=2;
if(100<=a&&a<1000)
b=3;
printf("输出%d\n",b);
}#include
#include
main()
{
floata,b,c,delta;
double x1,x2;
printf("请输入a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
delta=b*b-4*a*c;
if(delta<0)
printf("方程无实数解!\n");
else
{
x1=(-b+sqrt(delta))/2*a;
x2=(-b-sqrt(delta))/2*a;
printf("x1=%f,x2=%f\n",x1,x2);
}
}#include
main()
{
intyear,flay;
printf("请输入年份:\n");
scanf("%d",&year);
if(year%400==0)
flay=1;
else if(year%4==0&&year%100!=0)
flay=1;
else flay=0;
switch(flay)
{
case 0: printf("%d为平年\n",year);break;
case 1: printf("%d为闰年\n",year);break;
}
}#include
main()
{
intyear,flay;
printf("请输入年份:\n");
scanf("%d",&year);
if(year%400==0)
flay=1;
else if(year%4==0&&year%100!=0)
flay=1;
else flay=0;
switch(flay)
{
case 0: printf("%d为平年\n",year);break;
case 1: printf("%d为闰年\n",year);break;
}
}#include
#include
main()
{
inta,b,c;
double d,x1,x2;
scanf("%d%d%d",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
printf("没有实根\n");
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
}
}#include
#include
main()
{
inta,b,c;
double d,x1,x2;
scanf("%d%d%d",&a,&b,&c);
if(a==0)
printf("不合法的一元二次方程\n");
else
{
d=b*b-4*a*c;
if(d<0)
printf("没有实根\n");
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
}
}
}#include
#include
main()
{
inta,b,c;
double d,x1,x2;
scanf("%d%d%d",&a,&b,&c);
if(a==0)
printf("不合法的一元二次方程\n");
else
{
d=b*b-4*a*c;
if(d<0)
printf("没有实根\n");
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
}
}
}#include
#include
main()
{
inta,b,c;
double d,x1,x2;
scanf("%d%d%d",&a,&b,&c);
if(a==0)
printf("不合法的一元二次方程\n");
else
{
d=b*b-4*a*c;
if(d<0)
printf("没有实根\n");
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
}
}
}#include
\
main()
{
int y;
printf("请输入年份:");
scanf("%d",&y);
if(y>0)
{
if(y%400==0)
printf("%d年是闰年\n",y);
else
if(y%100==0)
printf("%d年是闰年\n",y);
else
if(y%4==0)
printf("%d年是闰年\n",y);
else
printf("%d年不是闰年\n",y);
}
else
printf("错误\n");
}#include
\
main()
{
inty,m,d,yt,mt,dt,age;
printf("请按格式2010-12-10输入你的生日");
scanf("%d-%d-%d",&y,&m,&d);
printf("请按格式2010-12-10输入今天的日期");
scanf("%d-%d-%d",&yt,&mt,&dt);
age=yt-y;
if(mt<=m)
age--;
printf("你的年龄是:%d\n",age);
}#include
main()
{
inta,b,c;
printf("输入三角形的三个边长");
scanf("%d%d%d",&a,&b,&c);
if((a+b>c) && (b+c>a) && (a+c>b))
{if(a==b || b==c || a==c )
{if(a==b && b==c)
printf("等边三角形\n");
else
printf("等腰三角形\n");
}
else
printf("一般三角形\n");
}
else
printf("不能构成三角形\n");
}#include
main()
{
inti,n=0;
for(i=100;i<1000;i++)
{
if(i%10==2 || i%100==2)
{ printf("%4d",i);
n++;
}
}
printf("\n");
printf("%d",n);
}#include
main()
{
inti,n=0;
for(i=100;i<1000;i++)
{
if(i%10==2 || i%100==2)
{ printf("%4d",i);
n++;
}
}
printf("\n");
printf("%d",n);
}#include
main()
{
inti,n=0;
for(i=100;i<1000;i++)
{
if(i%10==2 || i%100==2)
{ printf("%4d",i);
n++;
}
}
printf("\n");
printf("%d",n);
}#include
#include
main()
{
int n=0,s=1,i=0;
printf("input:");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s*2;
printf("2^%d=%d\n",n,s);
}#include
#include
main()
{
int n=0,sum=0,i=0;
printf("input:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+pow(2,i);
printf("2^1+2^2+....2^n=%d",sum); }#include
#include
main()
{
int n=0,sum=0,i=0;
printf("input:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+pow(2,i);
printf("2^1+2^2+....2^n=%d",sum); }#include
main()
{
char a='\0',b='\0';
int sum=0;
printf("请输入两个数字:");
a=getchar();
b=getchar();
sum=(a-'0')+(b-'0');
printf("%d\n",sum);
}#include
main()
{
chara,b;
intc,d;
printf("请输入字符型数字");
scanf("%c %c",&a,&b);
c=a-'0';
d=b-'0';
printf("\n%d",c+d);
}#include
//#define num 10
main()
{
int a1[20],b1[20],a,b,num=20,i=0;
//a1[20]是存放成绩,b1[20]存放学号,
//a是成绩查找的上限,b是成绩查找的下限
//获得数据
printf("输入学生20组成绩和学号");
for(i=0;i { printf("\n请输入学号:"); scanf("%d",&b1[i]); printf("请输入分数:"); scanf("%d",&a1[i]); } printf("\n请输入你要查找分数段的下限:"); scanf("%d",&a); printf("\n请输入你要查找分数段的上限:"); scanf("%d",&b); printf("查找结果是:"); for(i=0;i<=num;i++) { if(a1[i]>=a && a1[i]<=b) printf("\n学号:%d 成绩:%d",b1[i],a1[i]); } printf("\n"); }#include //#define num 10 main() { int a[10],b[10],num=10; inti=10,j=10,t; //获得数据 printf("输入学生10组成绩和学号"); for(i=0;i { printf("\n请输入学号:"); scanf("%d",&b[i]); printf("\n请输入分数:"); scanf("%d",&a[i]); } //冒泡交换位置 for(i=0;i { for(j=0;j { if(a[j] { t=a[j]; a[j]=a[j+1]; a[j+1]=t; t=b[j]; b[j]=b[j+1]; b[j+1]=t; } } } //循环输出 printf("前三名是:"); for(i=0;i<3;i++) { printf("\n第%d名学号:%d 成绩:%d",i+1,b[i],a[i]); } }#include #include main() { char a[100]="",b[100]=""; inti,n,j=0; printf("INPUT:"); gets(a); n=strlen(a); for(i=0;i<=n;i++) { if((a[i]>='a'&& a[i]<='z')||(a[i]>='A' && a[i]<='Z')) { b[j]=a[i]; j++; } } printf("结果是"); puts(b); }#include #include main() { char a[100]="",b[100]=""; inti,n,j=0; printf("INPUT:"); gets(a); n=strlen(a); for(i=0;i<=n;i++) { if((a[i]>='a'&& a[i]<='z')||(a[i]>='A' && a[i]<='Z')) { b[j]=a[i]; j++; } } printf("结果是"); puts(b); }#include #include main() { char a[100]=""; inti,n,j=0,k=0; printf("INPUT:"); gets(a); n=strlen(a); for(i=0;i<=n;i++) { if(a[i]=='(') j++; if(a[i]==')') k++; } printf("结果是: (有%d个, )有%d个\n",j,k); if(j!=k) printf("两者的数目不相等\n"); else printf("两者的数目相等\n"); }#include #define M 3 #define N 5 main() { int a[N][M]={0},b[N][N]={0},c[M][N ]={0},i=0,j=0; printf("input a[][]:\n"); for(i=0;i { for(j=0;j { printf("a[%d][%d]=",i+1,j+1); scanf("%d",&a[i][j]); } } printf("input b[][]:\n"); for(i=0;i { for(j=0;j { printf("b[%d][%d]=",i+1,j+1); scanf("%d",&b[i][j]); } } for(i=0;i { for(j=0;j { c[i][j]=a[i][j]+b[i][j]; } } printf("output c[][]:\n"); for(i=0;i { for(j=0;j { printf("%4d",c[i][j]); } printf("\n"); } }#include #include main() { char a[100]=""; inti,n,j=0,k=0; printf("INPUT:"); gets(a); n=strlen(a); for(i=0;i<=n;i++) { if(a[i]=='(') j++; if(a[i]==')') k++; } printf("结果是: (有%d个, )有%d个\n",j,k); if(j!=k) printf("两者的数目不相等\n"); else printf("两者的数目相等\n"); }#include #include main() { char a[100]="",b[100]=""; inti,n,j=0; printf("INPUT:"); gets(a); n=strlen(a); for(i=0;i<=n;i++) { if((a[i]>='a'&& a[i]<='z')||(a[i]>='A' && a[i]<='Z')) { b[j]=a[i]; j++; } } printf("结果是"); puts(b); }#include //#define num 10 main() { int a[10],b[10],num=10; inti=10,j=10,t; //获得数据 printf("输入学生10组成绩和学号"); for(i=0;i { printf("\n请输入学号:"); scanf("%d",&b[i]); printf("\n请输入分数:"); scanf("%d",&a[i]); } //冒泡交换位置