C语言程序设计 孙浩主编 机械工业出版社 习题参考答案.docx
《C语言程序设计 孙浩主编 机械工业出版社 习题参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计 孙浩主编 机械工业出版社 习题参考答案.docx(39页珍藏版)》请在冰豆网上搜索。
C语言程序设计孙浩主编机械工业出版社习题参考答案
习题1
1、1A不合法,main合法,123_b不合法,_C合法,%d不合法,return合法。
2、C程序的基本构成由一个main函数和若干过其他函数构成,也可以仅仅只有一个main函数。
3、#include
voidmain()
{
printf(“****************************\n”);
printf(“*Hello,Cprogram!
*\n”);
printf(“****************************\n”);
}
4、#include
voidmain()
{
inta,b,ji;
scanf(“%d%d”,&a,&b);
ji=a*b;
printf(“%d*%d=%d\n”,a,b,ji);
}
5、略。
习题2
1、略
2、#include
voidmain()
{
charxx;
xx=getchar();
printf(“%c,%d\n”,xx,xx);
}
3、#include
voidmain()
{
doublezl,kgs;
scanf(“%lf”,&kgs);
zl=3e-23;
printf(“%lf\n”,(kgs*950)/zl);
}
4、
习题3
1、#include
voidmain()
{
inta,b,c;
floatx,y,z;
unsignedintu;
longn;
charc1,c2;
a=3,b=4,c=5;
x=1.2,y=2.4,z=-3.6;
u=51274,n=128765;
c1=‘a’,c2=‘b’;
printf(“a=%d\tb=%d\tc=%d\n”,a,b,c);
printf(“x=%f,y=%f,z=%f\n”,x,y,z);
printf(“x+y=%.2f\ty+z=%.2f\tz+x=%.2f\n”,x+y,y+z,z+x);
printf(“u=%u\tn=%ld\n”,u,n);
printf(“c1=%corc1=%d\n”,c1,c1);
printf(“c2=%corc2=%d\n”,c2,c2);
}
2、a=3b=7
x=8.5y=71.82
c1=Ac2=a
3、#include
voidmain()
{
floatcelsius,fahr;
printf("Pleaseinputfahr:
");
scanf("%f",&fahr);
celsius=5*(fahr-32)/9;
printf("fahr=%.2f,celsius=%.2f\n",fahr,celsius);
}
习题4
1、#include
#include
voidmain()
{
floatx,a,sum=0;
intn=2;
scanf("%f",&x);
a=x;
while(fabs(a)>=1e-6)
{
sum+=a;
a=a*x/n;
n++;
}
printf("%.2f\n",sum);
}
2、#include
#definePI3.1414926
voidmain()
{
floatr,zc,mj;
scanf("%f",&r);
zc=2*PI*r;
mj=PI*r*r;
printf("zc=%.2f\n",zc);
printf("mj=%.2f\n",mj);
}
3、#include
voidmain()
{
intyear,leap;
printf("Pleaseentertheyear:
");
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
{
leap=1;
}
elseleap=0;
}
elseleap=1;
}
elseleap=0;
if(leap)
printf("%dis",year);
elseprintf("%disnot",year);
printf("aleapyear.\n");
}
4、#include
voidmain()
{
longintf1,f2;
inti;
f1=1;f2=1;
for(i=1;i<=20;i++)
{
printf("%12ld%12ld",f1,f2);
if(i%2==0)
printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
5、#include
voidmain()
{
inti=1,n;
doublet,x=1,y=2,s,sum=0;
n=20;
while(i<=n)
{s=y/x;
sum=sum+s;
t=y;
y=y+x;
x=t;
i++;}
printf("%f\n",sum);
}
6、#include
voidmain()
{
inti=1,sum=0;
for(;i<10;i++)
sum=2*(sum+1);
printf("sum=%d\n",sum);
}
7、#include
voidmain()
{
inta,b,c;
for(a=0;a<=19;a++)
for(b=0;b<=33;b++)
for(c=0;c<=100;c++)
{
if((a+b+c==100)&(5*a+3*b+c/3.0==100))
printf("%d%d%d\n",a,b,c);
}
}
8、#include
voidmain()
{
inta,b,num1,num2,temp;
scanf("%d,%d",&num1,&num2);
if(num1{
temp=num1;num1=num2;num2=temp;
}
a=num1;b=num2;
while(b!
=0)
{
temp=a%b;a=b;b=temp;
}
printf("%d\n",a);
printf("%d\n",num1*num2/a);
}
9、#include
voidmain()
{
intm,i,j,s;
for(m=6;m<1000;m++)
{
s=1;
for(i=2;iif(m%i==0)s=s+i;
if(m-s==0)
{printf("%5ditsfastorsare1",m);
for(j=2;jprintf("%d",j);printf("\n");}
}
}
10、#include
#include
voidmain()
{
intn,i=1,a;
floatsum=0,s=2;
scanf("%d,%d",&a,&n);
while(i<=n)
{
sum=sum+s;
s=s+a*pow(10,i);
i++;
}
printf("sum=%f\n",sum);
}
11、#include
voidmain()
{
printf("pleaseinputthenumbers:
");
inta,digit;
scanf("%d",&a);
while(a!
=0)
{
digit=a%10;
a=a/10;
printf("%d",digit);
}
printf("\n");
}
12、#include
voidmain()
{
inti=1;
while(!
((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)))
++i;
printf("Staris_number=%d\n",i);
}
13、#include
voidmain()
{
inti,j,k,sum=0;
for(i=0;i<=6;i++)
{
for(j=0;j<=3;j++)
{
for(k=0;k<=3;k++)
{
if(i+j+k==8)
{sum++;
printf("redball=%d,whiteball=%d,blackball=%d\n",j,k,i);
}
}
}
}
printf("Thereare%dcases\n",sum);
}
14、#include
voidmain()
{
inti,a=0;
doubleb=0,k=0.01;
for(i=1;i<=30;i++)
{
a=a+100000;
b=b+k;
k=k*2;
}
printf("\nMillionaire to a stranger %.2fyuan",b);
printf("\nStrangertothemillionaire%dyuan\n",a);
}
15、#include
voidmain()
{
intk,i,m;
printf("pleaseenteranumber:
");
scanf("%d",&k);
for(m=2;m<=k;m++)
{
for(i=2;i<=m/2;i++)
if(m%i==0)
break;
if(i>m/2)
printf("%6d",m);
}
}
习题5
1、4,4,4
2、a=13,b=10
3、3.140000
4、C
5、D
6、D
7、#include
voidmain()
{
printf("Pleaseinuptthreenumbers:
");
inta,b,c,*p1,*p2,*p3,t;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
if(a>b)
{
t=*p1;
*p1=*p2;
*p2=t;
}
if(a>c)
{
t=*p1;
*p1=*p3;
*p3=t;
}
if(b>c)
{
t=*p2;
*p2=*p3;
*p3=t;
}
printf("%d,%d,%d\n",a,b,c);
}
8、#include
voidmain()
{
intupper=0,lower=0,digit=0,space=0,other=0,i=0;
char*p,s[20];
printf("Inputstring:
");
while((s[i]=getchar())!
='\n')
i++;
p=&s[0];
while(*p!
='\n')
{
if((*p>='A')&&(*p<='Z'))
++upper;
elseif((*p>='a')&&(*p<='z'))
++lower;
elseif(*p=='')
++space;
elseif((*p>='0')&&(*p<='9'))
++digit;
else
++other;
p++;
}
printf("uppercase:
%dlowercase:
%d",upper,lower);
printf("space:
%ddigit:
%dother:
%d\n",space,digit,other);
}
习题6
1、88
44
00
22
2、(a)*p=18,*(p+2)=22
(b)**p=12,**(p+2)=18
3、cc
4、\0
5、#include
voidmain()
{
inti,j,a[100];
for(i=2;i<100;i++)
{
a[i]=i;
for(j=2;j<=i;j++)
{
if(j
if(a[i]%j==0)
break;
if(a[i]-j==0)
printf("%5d",a[i]);
}
}
printf("\n");
}
6、#include
voidmain()
{
printf("Pleaseinputtennumbers:
");
inti,j,a[10],t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=1;j<10;j++)
for(i=0;i<=9-j;i++)
if(a[i]>a[i+1])
{
t=a[i+1];
a[i+1]=a[i];
a[i]=t;
}
for(i=0;i<10;i++)
printf("%5d",a[i]);
}
7、#include
voidmain()
{
charch[100];
inta=0,b=0,c=0,d=0,i=0;
printf("Pleaseinputstrings:
");
gets(ch);
while(ch[i]!
='\0')
{
if(ch[i]>='A'&&ch[i]<='Z')a++;
elseif(ch[i]>='a'&&ch[i]<='z')b++;
elseif(ch[i]>='0'&&ch[i]<='9')c++;
elsed++;
i++;
}
printf("uppercase:
%d\nlowercase:
%d\ndigit:
%d\nother:
%d\n",a,b,c,d);
}
8、#include
voidmain()
{
staticintm,n,k,b[15][15];
b[0][1]=1;
for(m=1;m<15;m++)
{
for(n=1;n<=m;n++)
{
b[m][n]=b[m-1][n-1]+b[m-1][n];
printf("%-5d",b[m][n]);
}
printf("\n");
}
}
8、#include
voidmain()
{
inta[3][3];
inti,j;
introw,col,max,flag;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
max=a[i][0];
for(j=0;j<3;j++)
{
if(max{
max=a[i][j];
col=j;
row=i;
flag=1;
}
}
for(j=0;j<3;j++)
{
if(a[row][col]>a[j][col])
{
flag=0;
break;
}
}
if(flag==1)
{
printf("%d\n",a[row][col]);
}
if(flag==0)
{
printf("noexist\n");
}
}
}
9、#include
voidmain()
{
inti,j,k;
for(i=0;i<3;i++)
{
for(j=0;j<=1-i;j++)
printf("");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<2;i++)
{
for(j=0;j<=i;j++)
printf("");
for(k=0;k<=2-2*i;k++)
printf("*");
printf("\n");
}
}
10、#include
#include
voidmain()
{
inti,j;charstr1[100]={''},str2[100]={''},str3[201]={''};
gets(str1);
gets(str2);
for(i=0;str1[i]!
='\0';i++)
str3[i]=str1[i];
for(j=0;str2[j]!
='\0';j++)
str3[j+i]=str2[j];
printf("Theresultis%s\n",str3);
}
11、#include
voidmain()
{
chars1[80]={''},s2[81]={''};
inti;
printf("Inputs2:
");
gets(s2);
for(i=0;s2[i]!
='\0';i++)
s1[i]=s2[i];
printf("s1:
%s\n",s1);
}
12、#include
void*fun(char*conststr,constcharch)
{
inti,j;
for(i=0;str[i];){
if(str[i]==ch){
for(j=i;str[j];j++){
str[j]=str[j+1];
}
}
elsei++;
}
returnstr;
}
voidmain()
{
staticcharstr[]="turbocandborlandc++";
charch;
printf("Theoriginalstring:
%s\n",str);
printf("Pleaseenteracharacter:
");
scanf("%c",&ch);
fun(str,ch);
printf("str=%s\n",str);
}
习题7
1、D
2、C
3、D
4、D
5、B
6、C
7、A
8、A
9、A
10、246
11、x%i==0,
*n=j
12、1
2
3
4
6
7
8
9
0
13、m++
14、#include"stdio.h"
voidsort(inta[],intn)
{
inti,j,k,t;
for(i=0;i{
k=i;
for(j=i+1;jif(a[k]>a[j])k=j;
if(k!
=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}
voidmain()
{
inti=0,a[10];
printf("Pleaseinputtennumbers:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,10);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
15、#include
#include
voidmain()
{
inti,j;charstr1[100]={''},str2[100]={''},str3[201]={''};
gets(str1);
gets(str2);
for(i=0;str1[i]!
='\0';i++)
str3[i]=str1[i];
for(j=0;str2[j]!
='\0';j++)
str3[j+i]=str2[j];
printf("Theresultis%s\n",str3);
16、#include"stdio.h"
voidmain()
{
inti,a;
floatn=1,sum=0;
while
(1)
{
scanf("%d",&a);
if(a<3||a>20)
printf("repeatinput");
elsebreak;
}
for(i=1;i<=a;i++)
{
n=n*i;
sum=sum+n;
}
printf("1!
+2!
...+%d!
=%.0f\n",a,sum);
}
习题8
1、B
2、55
3、7
5
4、D
5、A
6、M=0
习题9
一.1、struct
一.2、结构体中所有成员所需存储空间的总和
一.3、"Name:
%sAge:
%d\n",class[i].name,class[i].age
一.4、int
一.5、(*变量名).成员名,
变量名->成员名
一.6、链表中第一