C语言程序设计教程习题答案15主审郭浩志北京邮电大学出版社.docx
《C语言程序设计教程习题答案15主审郭浩志北京邮电大学出版社.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程习题答案15主审郭浩志北京邮电大学出版社.docx(19页珍藏版)》请在冰点文库上搜索。
C语言程序设计教程习题答案15主审郭浩志北京邮电大学出版社
C语言程序设计教程习题答案(1-5)主审-郭浩志-北京邮电大学出版社
习题一
1.自然语言,专用工具,部分常用的算法
2.头文件,用户函数说明部分;全局变量定义;主函数;若干用户自己编写的函数。
例1.1
3.①C语言具有结构语言的特点,程序之间很容易实现段的共享;
②C语言的主要结构成分为函数,函数可以再程序中被定义完成独立的任务,独立地编译成代码,以实现程序的模块化;
③C语言运算符丰富,运算符包含的范围很广;
④C语言数据类型丰富;
⑤C语言允许直接访问物理地址,即可直接对硬件进行操作,实现汇编语言的大部分功能;
⑥C语言语法限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的约束;
⑦用C语言编程,生成的目标代码质量高,程序执行效率高;
⑧等等。
4.合法标识符:
AB12leed_3EF3_3PASif
XYZ43K2_762
5.F2:
将当前编辑器中文件存盘;F10:
调用主菜单;F4:
程序运行到光标所在行;Ctrl+F9:
当前编辑环境下,进行编译、连接且运行程序;Alt+F5:
将窗口切换到DOS下,查看程序运行结果。
6.Vc++
习题二
1.’\’,“\”,“ab\n”
2.
(1)#include
voidmain()
{intx,y,z,aver;
x=7;
y=z=5;
aver=(x+y+z)/3;
printf("aver=%d\n",aver);
}
结果:
aver=3
(2)
#include
voidmain()
{charc1='a',c2='b',c3='c';
inta=3.5,b='A';
printf("a=%db=%c\n",a,b);
printf("a%cb%c\bc%c\tabc\n",c1,c2,c3);
}
3.
int
99
104
66
55
68
-1
char
‘c’
‘h’
‘B’
‘7’
‘D’
unsignedint
99
104
66
55
68
float
99.00
104.00
66.00
55.78
68.00
-1.00
longint
99
104
66
55
68
-1
4,
(1)8,10,9,10;
(2)3,1,0,0;
(3)a=11,b=19,c=30,d=1;
5.
(1).0
(2).0(3)9.5;(4)40(5).10(6).10(7).‘a’(8).14,30,(2.2)(9).4.5(10).1(11).0(12).10(13).5
6.
(1)
7.取x的绝对值
8.max=a
(bc:
b):
(ac:
a);
9.-60
10.D
习题三
1.格式说明符不对,应把%d换位%f。
2.|12341234|
3.ff,10
4.1,3,1
5.按字符串的实际疮毒输出;在右端补空格
6.scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2);
7.#include
main()
{inta,b;
scanf("%d,%d",&a,&b);
printf("a+b=%d\na-b=%d\na*b=%d\n(float)a/b=%d\na%b=%d\n",a+b,a-b,a*b,a/b,(float)a/b,a%b);
}
8.#include
main()
{floatr,l,s;
scanf("%f",&r);
l=2*3.14*r;
s=3.14*r*r;
printf("l=%f\ns=%f\n",l,s);
}
9.#include
main()
{intx,y;
inta,b,c;
scanf("x=%d",&x);
a=x/100;
b=(x-a*100)/10;
c=x-a*100-b*10;
y=c*100+b*10+a;
printf("y=%d\n",y);
}
10.
#include
main()
{inta,b,c,d,e,f,g;
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
e=a%2;f=b%2;g=c%2;d=e+f+g;
if(d==2)printf("YES\n");
elseprintf("NO\n");
return0;
}
11.#include
main()
{intch;
ch=getchar();
putchar(ch-1);
putchar('\n');
putchar(ch+1);
putchar('\n');
}
12.
#include
#include
main()
{floata,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
}
习题4
1.0;
2.9;
3.204.25,14,19
5.37
6.
#include
main()
{inta,b,x,y;
scanf("a=%d,b=%d",&a,&b);
if(a<=b)
{x=1;
printf("***x=%d\n",x);}
else
{y=2;
printf("***y=%d\n",y);
}
}
7.
#include
main()
{intch1,ch2;
ch1=getchar();
ch2=getchar();
if((ch1-ch2)/2==0)
{putchar(ch1+1);
putchar('\n');
putchar(ch2+2);
putchar('\n');
}
else
{putchar(ch1-1);
putchar('\n');
putchar(ch2-1);
putchar('\n');
}
}
8.
#include
main()
{inta,b;
scanf("a=%d,b=%d",&a,&b);
if(a%b==0)
printf("a/b=%d\n",a/b);
else
printf("a/b=%d……%d\n",a/b,a%b);
}
9.
#include
#include
main()
{floatx,y,l;
scanf("%f%f",&x,&y);
l=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(l>1)
printf("点A在圆外\n");
else
if(l=1)
printf("点A在圆上\n");
else
printf("点A在圆内\n");
}
12.不嵌套的if语句
#include
main()
{intx,y;
scanf("%d",&x);
if(x<8)
if(x>0)
y=x+1;
else
if(x==0)
y=0;
else
if(x>-5)
y=x-1;
printf("y=%d\n",y);
}
嵌套的if语句:
#include
main()
{intx,y;
scanf("%d",&x);
if(x<=0)
if(x==0)
y=0;
else
if(x>-5)
y=x-1;
else
if(x<8)
y=x+1;
printf("y=%d\n",y);
}
习题5
1.
#include
voidmain()
{intn,x=0,sum=0,i=-1;
floataverage;
scanf("n=%d",&n);
while(x<=n)
{sum+=x;
x+=2;
i++;
}
average=sum/i;
printf("average=%6.2f,sum=%d,i=%d\n",average,sum,i);
}
2.
#include
intmain()
{charch;
intlet=0;
intnum=0;
while((ch=getchar())!
='*')//输入*结束
{
if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))//如果是字母,let++
{let++;}
elseif(ch>='0'&&ch<='9')//如果是数字,num++
{num++;}
}
printf("字母:
%d\n",let);//打印字母数
printf("数字:
%d\n",num);//打印数字数return0;}
}(来源:
XX账号terranlong)
3.
#include
voidmain()
{intn,i,a,sum=0,m;
scanf("n=%d",&n);
m=n;
for(i=1;(m/i)!
=0;)
{a=n%10;
sum+=a;
n=(n-a)/10;
i*=10;
}
printf("sum=%d\n",sum);
}
4.
#include
intmain()
{charch;
do
{ch=getchar();
if(ch<='z'&&ch>='a')
printf("%c",ch-32);
if(ch<='Z'&&ch>='A')
printf("%c",ch+32);
}
while(ch<='z'&&ch>='A');
putchar('\n');
}
5.
#include
main()
{floatsum=200;
intn=0;
while(sum<500)
{sum*=1.045;
n++;
}
printf("n=%d,sum=%6.2f\n",n,sum);
}
6.
#include
intn;
voidmain()
{intx=0,y;
intshuzi(intn);
for(n=1;n<=999;n++)
{while(n%3==0)
{y=shuzi(n);
if(y!
=0)
{x++;
printf("n(%d)=%d\n",x,y);
break;
}
break;
}
}
}
intshuzi(intn)
{inti,a,m,y;
m=n;
for(i=1;(m/i)!
=0;)
{a=n%10;
n=(n-a)/10;
i*=10;
if(a!
=0)
{if(a%5==0)
{y=m;
break;
}
else
y=0;
}
}
returny;
}
7.
#include
main()
{intn,y,a,b,c,d,e;
n=0;
do
{n++;
a=n%2==1;
b=n%3==2;
c=n%5==4;
d=n%6==5;
e=n%7==0;
y=(a&&b&&c&&d&&e);
}
while(y==0);
printf("n=%d\n",n);
}
8.
#include
main()
{intn,m,i,a,b,c,sum;
scanf("n=%d",&n);
m=n;
sum=0;
for(i=1;(m/i)!
=0;)
{a=n%10;
n=(n-a)/10;
i*=10;
printf("%d\n",a);
sum+=a*a*a;
}
printf("sum=%d\n",sum);
if(sum==m)
printf("m是水仙花数\n");
else
printf("m不是水仙花数\n");
}
9.
#include
main()
{intx=2,y=1,i,n,t;
floatsum=0,m;
scanf("n=%d",&n);
for(i=1;i<=n;i++)
{m=(float)x/y;
printf("m(%d)=%3.5f\n",i,m);
sum+=m;
t=x;
x+=y;
y=t;
}
printf("sum(%d)=%3.5f\n",n,sum);
}
10.
#include
main()
{inti,j;
intn;
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
printf("");
putchar('\n');
for(j=1;j<=2*i-1;j++)
printf("*");//这里的"*"可以替换成任意字符printf("\n");
}
putchar('\n');
//下面是倒三角
for(i=n;i>=1;i--)
{for(j=1;j<=n-i;j++)
printf("");
putchar('\n');
for(j=1;j<=2*i-1;j++)
printf("*");//这里的"*"可以替换成任意字符printf("\n");
}
putchar('\n');
}(参考:
XX账号nekitarc)
11.
#include
main()
{inti,j,m;
j=1;
while(j<=9)
{for(i=1;i<=j;i++)
{m=j*i;
printf("%d*%d=%d",j,i,m);
putchar('');
}
putchar('\n');
j++;
}
}
13.
#include
intn;
main()
{inti=0,y;
intwanshu(intn);
for(n=1;n<=999;n++)
{y=wanshu(n);
if(y!
=0)
{i++;
printf("y(%d)=%d\n",i,y);
}
}
}
intwanshu(intn)
{inti=1,j=0,sum=0,m;
do
{m=n%i;
if(m==0)
{j++;
sum+=i;
}
i++;
}
while(i<=(n/2));
if(sum==n)
returnn;
else
return0;
}
14.
#include
main()
{floatsum=0,t;
inti,n,j,m;
scanf("%d",&n);
if(n==0)
printf("sum(0)=0");
else
{for(i=1;i<=n;i++)
{j=1;
m=1;
do
m*=j++;
while(j<=i);
t=(float)1/m;
sum+=t;
}
printf("sum(%d)=%e\n",n,sum+1);
}
}