C语言程序设计教程第五版王秀鸾课后习题解答
习题  1
1.1 思考题
1.答:结构化程序设计是指为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构有:顺序结构,选择结构,循环结构。
2.输入三个值a、b、c,用它们作为三角形的3条边输出三角形的面积,画出实现该算法的N-S图。
3.标识符是一个由有限个有效字符组成的序列,在C语言中只起标识作用,可用作符号常量名、变量名、函数名、数组名、文件名等。
C语言合法的标识符必须由字母(A~Z,a~z)或下画线(_)开头,后面可以跟随任意的字母、数字或下画线。
C语言中的标识符由3种类型组成:关键字、预定义标识符和用户标识符。4.C语言程序的基本单位是函数。
5.一个C语言函数通常由两部分组成:函数的首部和函数体。函数的首部包括函数类型、函数名、一对圆括号、函数参数(形参)名和参数类型的说明。函数体一般包括说明部分和执行部分。
6.可以用“/*……*/”在任何位置上对C语言程序的任何部分进行注释,一般在一
个程序或函数的开始或某些程序的难点之处加上必要的注释。在Visual C++ 6.0环境下也可使用符号“//……”引出注释。
7.C语言程序的开发基本上可以分为4步:即编辑、编译、连接和运行。
编辑就是用C语言写出源程序,C源程序的后缀为“.c”;
C语言编译程序对源文件进行编译,即检查其词法、语法、语义方面是否存在错误。编译后生成目标程序,此目标程序名与相应的源程序同名,但其后缀为.obj。连接形成完整的可执行文件。一般可执行文件名与源程序文件名同名,后缀为.exe。
执行程序:当程序编译连接后,生成可执行程序便可以运行了,以后用户只需输
入可执行目标文件名即可。
1.2 编程题
1.答:
#include "stdio.h"
int main()
{ double a=10, b=20, h=5, s;
s=(a+b)*h/2;
printf("s=%f " , s );
return 0;
}
2.答:
#include "stdio.h"
int main()
{ printf("******************************");
printf("*hello world *");
printf("******************************");
return 0;
}
习题  2
2.1 思考题
1.C语言提供了的数据类型如下:
基本数据类型的标识符和存储单元的长度,以VC6.0为例,
整型数据类型标识符包括:
① 基本整型(简称整型):类型标识符为int,存储单元的长度为4个字节。
② 短整型:类型标识符为short int或short,存储单元的长度为2个字节。
③ 长整型:类型标识符为1ong int或1ong,存储单元的长度为4个字节。
④ 无符号整型:类型标识符为unsigned int,存储单元的长度为4个字节。
⑤ 无符号短整型:类型标识符为unsigned short,存储单元的长度为2个字节
⑥ 无符号长整型:类型标识符为unsigned 1ong,存储单元的长度为4个字节。
实型数据有单精度型和双精度型两种。
① 单精度型:类型标识符为float,存储单元的长度为4个字节。
② 双精度型:类型标识符为double,存储单元的长度为8个字节。
字符型数据的类型标识符为char,在内存中存储一个字符型数据需要1个字节
2.错误的C语言常量有:
1,900,078,45.2e2.3,.123e-02,e5,
3.符号常量是用用户标识符表示的常量。通常习惯用大写字母表示符号常量。符号常量在使用之前必须使用#define编译预处理命令在程序开头定义。符号常量的定义形式为:
#define 符号常量名常量
举例:#define PI 3.1415926
4.试确定下列数据的数据类型,并写出一个实例常量。
(1)一个月的天数int month;实例常量为:month=30。
(2)学生成绩的平均值double aver ;实例常量为:aver=90.4。
(3)胶州湾海底隧道的长度double length ;实例常量为:length=7800。(4)用M/F描述一个人的性别char sex;实例常量为:sex=’M’。
(5)你的姓名char name[10];实例常量为:”王浩”。
5.(1)sqrt(x*x+y*y) (2) pow((a+a*b)/(a-b),1.0/3)
(3)pow(a,4)-3*a*b/(3+a) (4)pow(x*x*x,1.0/3)+sqrt(x+y)
6.(1)0(2)10(3)21.3(4)6(5)55或’7’
7.(1)int age=18; (2) double r=2.57,area;(3) char xb=’M’
8.(1)1.5(2)6.0
2.2 编程题
1.答:
#include "stdio.h"
int main()
{
double a=56,b=32.3,c=78.2,x=22.1,y=98.5,aver;
aver=(a+b+c+x+y)/5;
明解c语言printf("%.2f\n",aver);
return 0;
}
2.答:
#include "stdio.h"
#include "math.h"
int main()
{
double x1,x2,y1,y2,length;
x1=3;
y1=8;
x2=7;
y2=10;
length=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2f\n",length);
return 0;
}
3.答:
#include "stdio.h"
#define PI 3.1415926
int main()
{
double r1=25,r2=15,area;
area=PI*(r1*r1-r2*r2);
printf("%.2f\n",area);
return 0;
}
习题  3
3.1 思考题
1.答:
(1)功能:把10赋给变量a
(2)功能:把a*(3+5)的值赋给变量a
(3)功能:把变量a和b的值互换
(4)功能:把变量b除以10所得的余数乘以10再加上变量b除以10取整的和赋给变量a
(5)功能:把大写字母A变为小写赋给变量a
(6)功能:把字符6赋给变量a
2.答:
(1) scanf("%d",&num);
(2) scanf("%lf,%lf",&score,&sum);
(3) scanf("%d,%lf,%lf",&num,&score,&sum);
(4) scanf("%d",&num);
3.答:
(1) 10,20
(2) 10 20
(3) i=10,j=20
(4)10,A,20
4.
(1) scanf(“%lf%lf%lf”,&a,&b,&c);
(2) printf(“%.3f\n”,(a+b+c)/3);
(3) printf(“%c,%d\n”,ch,ch);
(4)printf(“ %.2f\n”,a);
printf(“+ %.2f\n”,b);
printf(“-----------\n”,a);
printf(“ %.2f\n”,a+b);
3.2 读程序写结果题
答:
1.3,E
2. 1,0.500000
3. 0
4. 2,1
5.x=4,y=6,z=3,m=463
3.3程序填空题
1.6.6
2.%d/%d %d/%d=%.2f
3.4编程题
1.答:
#include "stdio.h"
int main()
{
i nt x,y;
s canf("%d%d",&x,&y);
p rintf("\t\tx\ty\n");
p rintf("十进制数\t%d\t%d\n",x,y);
p rintf("八进制数\t%o\t%o\n",x,y);
p rintf("十六进制数\t%X\t%x\n",x,y);
return 0;
}
2.答:
#include "stdio.h"
int main()
{
c harch;
p rintf("请输入一个大写英文字母");
s canf("%c",&ch);
p rintf("大写英文字母是%c\n",ch);
p rintf("它的前导字符是%c\n",ch-1);
p rintf("它的后续字符是%c\n",ch+1);
return 0;
}
3.答:
#include "stdio.h"
intmain()
{
i nt x,a,b,c,y;
p rintf("请输入一个三位整数:");
s canf("%d",&x);
a=x/100;
b=(x-a*100)/10;
c=x%10;
y=c*100+b*10+a;
p rintf("反向输出该整数:%d\n",y);
return 0;
}
4.答:
#include "stdio.h"
int main()
{ int hour;
double salary, salaryday;
scanf("%d,%lf", &hour, &salaryday );
salary=hour*salaryday- hour*salaryday*0.1;
printf("%.2lf\n", salary);
return 0;
}
5.答:
#include "stdio.h"
int main()
{
int a,b,c,t;
printf("请输入三个整数\n");
scanf("%d%d%d",&a,&b,&c);
p rintf("交换前a=%d,b=%d,c=%d\n",a,b,c);
t=a;a=c;c=b;b=t;
p rintf("交换后a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
习题  4
4.1 思考题
1.答:C语言没有提供逻辑数据类型,在进行逻辑运算时,操作数为非0的数值代表“真”,数值0代表“假”。用数值1表示逻辑值的“真”,数值0表示“假”。2.答:(1)!(x*y)&&(x+y)(2)a>0||b>0 (3)x>0&&x<=10 (4)a==1.5&&b==1.5&&c==1.5
(5)p<a||p<b||p<c (6)ch>=’A’&&ch<=’Z’(7)ch>=’0’&&ch<=’9’
3.答:(1)0 (2)1 (3)1(4)0 (5)1
4.
(1)(2)(3)
5.
(1)
可以用if但分支形式实现,
if (x<0) y=x+1;
if (x>=0 && x<1) y=1;
if (x>=1) y=x*x*x;
或用if嵌套形式实现,如:
if (x<0) y=x+1;
else if (x<1)
y=1;
else

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。