C语言程序设计第二版习题参考答案解析Word文件下载.docx
- 文档编号:19336527
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:134
- 大小:107.28KB
C语言程序设计第二版习题参考答案解析Word文件下载.docx
《C语言程序设计第二版习题参考答案解析Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第二版习题参考答案解析Word文件下载.docx(134页珍藏版)》请在冰豆网上搜索。
s=a+b+c;
%d\n"
s);
}
*4.输入三角形三条边的边长,计算并输出三角形的面积。
根据三条边的边长,计算三角形面积的公式如下:
#include<
math.h>
voidmain()
{
doublex,y,z,s,dime;
scanf("
%lf%lf%lf"
&
x,&
y,&
z);
dime=sqrt(s*(s-x)*(s-y)*(s-z));
}
1.1010111.101127.557.A
2.11271.5612B9.B84793.71875
3.scanf("
%f%f%f"
a,&
b,&
c);
z=a*b*c;
%f"
z);
4.s=(x+y+2)/2;
dim);
四、编程题
1.仿照例1.1,编程序在屏幕上显示:
*****************************
MerryChristmas!
HappyNewYear!
*****************************
{printf("
*****************************\n"
2.仿照例1.2编程,输入一个整数,计算这个数的平方。
#include<
{inta,z;
printf("
请输入一个整数:
scanf("
%d"
a);
z=a*a;
%d*%d=%d\n"
a,a,z);
*3.仿照例1.3编程,输入两个数后,输出其中较小值。
floatmin(floatx,floaty)
{floatm;
if(x<
y)m=x;
elsem=y;
returnm;
{floata,b,c,mindata;
请输入二个数:
%f%f"
b);
mindata=min(a,b);
较小数:
%f\n"
mindata);
*4.仿照例1.2编程,输入a、b后,输出一元一次方程ax+b=0的解。
{floata,b,x;
请输入a、b:
x=-a/b;
x=%f\n"
x);
*5.仿照例1.2编程,输入圆柱体的半径和高,计算并输出圆柱体的体积。
{floatr,h,s,v;
Pleaseinputrandh:
r,&
h);
v=3.14*r*r*h;
V=%f\n"
v);
习题2
一、判断题
1.任何变量都必须要定义其类型。
2.C语言的double类型数据在其数值范围内可以表示任何实数。
3.C语言的任何类型数据在计算机内都是以二进制形式存储的。
4.isdigit(‘5’)的结果为0。
5.printf函数中格式符“%c”对应的参数只能是字符类型。
6.按格式符“%d”输出float类型变量时,截断小数位取整后输出。
7.在C语言程序中,ABC与abc是两个相同的变量。
8.scanf函数中的格式符“%d”不能用于输入实型数据。
9.格式符“%f”不能用于输入double类型数据。
10.当格式符中指定宽度时,输出的信息完全取决于所指定的宽度。
(1)T
(2)F(3)T(4)F(5)F(6)F(7)F(8)T(9)T(10)F
二、指出下列各项中哪些是C语言中的常量,并指出其类型
10,150007–0x3dπ1e0e1o7o8
‘x’‘xo’1.52e0.5sin(3)0xf16‘\a’‘\009’
1.414E+22.54‘\\’‘a’+20x100h012810L
合法的C常量有:
整型常量:
007–0x3d0xf1610L
实型常量:
1e01.414E+2
字符型常量:
‘x’‘\a’‘\\’
三、指出下列各项中哪些是C语言中的用户标识符
x_1X_2Highprintfβ3DSi/j
e2-e2countIntnumber$23next_
sizeofIFsum_12_123#NO1:
doublefor
C的用户标识符有:
x_1X_2Highe2countIntnumber
next_IFsum_12
四、单项选择题
1.C语言中,char型数据在内存中的存储形式是()。
A.原码B.反码C.补码D.ASCII码
2.若有定义语句“charc='
\72'
;
”则变量c()。
A.包含1个字符B.包含2个字符C.包含3个字符D.定义不合法
3.C语言中的基本数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型
C.整型、逻辑型、字符型D.整型、实型、逻辑型、字符型
4.设c1、c2为字符型变量,执行语句“c1=getchar();
c2=getchar();
”时,从键盘输入A↙,c1和c2的值分别为()。
A.都是‘A’B.c1是‘A’,c2未输入
C.c1未输入,c2是‘A’D.c1是‘A’,c2是‘\n’
5.a、b是整型变量,执行语句“scanf("
a=%d,b=%d"
,&
a,&
b);
”,使a和b的值分别为1和2,正确的输入是()。
A.12B.1,2C.a=1,b=2D.a=1b=2
6.设c为字符型变量值为‘A’,a为整型变量值为97,执行语句“putchar(c);
putchar(a);
”后,输出结果为()。
A.AaB.A97C.A9D.aA
7.已知字母A的ASCII码值为65,以下语句段的输出结果是()。
charc1='
A'
c2='
Y'
;
%d,%d\n"
c1,c2);
A.输出格式非法,输出错误信息B.65,90
C.A,YD.65,89
8.若要使用输入语句“scanf("
%4d%4d%10f"
i,&
j,&
x);
”,为i输入-10,为j输入12,为x输入345.67,则正确的输入形式是()。
A.–1012345.67↙B.–1012345.67↙
C.–10001200345.67↙D.–10,12,345.67↙
9.能正确地定义符号常量的是()。
A.#definen=10B.#definen10C.#definen10;
D.#DEFINEN10
10.在C语言中,int、char、short三种类型数据在内存中所占的字节数()。
A.由用户自己定义B.均为2个字节C.是任意的D.由机器字长决定
解:
(1)D
(2)A(3)B(4)D(5)C(6)A(7)D(8)B(9)B(10)D
五、填空题
1.charch='
$'
floatx=153.4523;
语句“printf("
%c%–8.2f\\n"
ch,x);
”的输出结果是。
$153.45\n
2.inti=123;
floatx=–1234.56789;
i=%5dx=%7.3f\n"
i,x);
i=123x=-1234.568
3.charc='
a'
inta=65;
语句“putchar(c+1);
bA
4.inta=98;
语句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);
98,c,144,65
5.intk;
floatf;
语句“scanf(“%3d%*4d%6f”,&
k,&
f);
”执行时输入12345678765.43↙
则k=,f=。
k=123f=8765.4
6.使用pow()函数时,程序的开头必须写一条预处理命令:
。
5.填空题。
(1)inti=123,j=45;
函数printf("
i,j);
的输出结果是。
123,45
(2)inti=123;
floatx=-45.678;
语句printf("
i=%5dx=%7.4f\n"
i,x);
的输出结果是。
i=123x=-45.6780
(3)floatalfa=60,pi=3
习题3
一、根据下列数学式,写出C的算术表达式。
-(a2+b2)×
y4的C表达式:
-(a*a+b*b)*pow(y,4)
的C表达式:
(sqrt
(2)+10*10)/(pow(tan(x),-1)+3.141593)
sqrt(pow(fabs(sin(x)),3.5))
pow(x,6)-exp(5)
的C表达式:
(1.0/2*a*b+c+d)/(a+2*b-(c+d)/c/d)
二、按照要求,写出下列C的表达式。
1.写出int类型变量x为“奇数”的表达式。
x%2==1
2.Int类型变量x、y、z,写出描述“x或y中有且仅有一个小于z”的表达式。
x<
z&
&
y>
=z||x>
=z&
y<
z
3.将double类型变量y保留四位小数的表达式。
(int)(y*10000+0.5)/10000.0
4.为变量s赋值:
取变量x的符号,取变量y的绝对值。
s=(x>
=0?
1:
-1)*(y>
y:
-y)
5.条件“-5≤x≤3”所对应的C逻辑表达式。
-5<
=x&
=3
6.a、b是字符变量,已知a的值为大写字母、b的值为小写字母,写出判断a、b是否为同一字母(不区分大小写)的逻辑表达式
a+32==b或b-a==32?
7.int类型变量a、b均为两位正整数,写出判断a的个位数等于b的十位数、且b的个位数等于a的十位数的逻辑表达式。
a%10==b/10&
a/10==b%10
8.写出判断某个人是否是成年人(年龄大于21),且不是老年人(年龄大于65)的逻辑表达式。
21&
=65
9.写出取变量a、b、c中最大值的条件表达式。
(a>
b?
a:
b)>
c?
b):
c
10.若字符变量ch为小写字母,则将其转换为对应的大写字母。
ch=ch>
='
ch<
z'
?
ch-32:
ch
三、单项选择题
1.设intx=3,y=4,z=5;
,下列表达式中值为0的是()。
A.'
x'
'
y'
B.x<
=yC.x||y+z&
y–zD.!
((x<
y)&
!
z||1)
2.已知x=10,ch='
,y=0;
,则表达式“x>
=y&
B'
y”的值是()。
A.0B.1C.“假”D.“真”
3.判断char型变量c为数字字符的正确表达式为()。
0'
<
=c<
9'
B.'
=c&
c<
C.c>
||c<
D.c>
=0&
=9
4.下列运算符中,优先级最低的是()。
A.?
:
B.&
C.==D.*=
5.若有条件表达式“x?
a++:
b--”,则以下表达式中()等价于表达式x。
A.x==0B.x!
=0C.x==1D.x!
=1
6.有定义intk=4,a=3,b=2,c=1;
,表达式“k<
a?
k:
c:
a”的值是()。
A.4B.3C.2D.1
7.执行下列程序段后,变量a,b,c的值分别是()。
intx=10,y=9,a,b,c;
a=(--x==y++)?
--x:
++y;
b=x++;
c=y;
A.a=9,b=9,c=9B.a=8,b=8,c=10
C.a=9,b=10,c=9D.a=1,b=11,c=10
8.有定义inta=9;
,语句“a+=a–=a+a;
”执行后,变量的值是()。
A.18B.9C.–18D.–9
9.设x和y均为int型变量,则语句“x+=y;
y=x–y;
x–=y;
”的功能是()。
A.把x和y按从小到大排列B.把x和y按从大到小排列
C.无确定结果D.交换x和y中的值
10.有定义doublex=1,y;
,表达式“y=x+3/2”的值是()。
A.1B.2C.2.0D.2.5
11.设有定义intx;
doubley;
,则下列表达式中结果为整型的是()。
A.(int)y+xB.(int)x+yC.int(y+x)D.(double)x+y
12.设有整型变量x,下列说法中,错误的是()。
A.“5.0”不是表达式B.“x”是表达式
C.“!
x”是表达式D.“sqrt(x)”是表达式
(1)D
(2)B(3)B(4)D(5)B(6)D(7)B(8)C(9)D(10)C(11)A(12)A
四、填空题。
1.设floatx=2.5,y=4.7;
inta=7;
,表达式x+a%3*(int)(x+y)%2/4值为。
2.5
2.设intx=2,y=3;
,执行语句“x*=x+y”后x的值为。
10
3.设intx=17,y=5;
,执行语句“x%=x–y”后x的值为。
5
4.设inta=6,b=4,c=2;
,表达式!
(a-b)+c-1&
b-c/2的值为。
1
5.设inta=2,b=4,x,y;
,表达式!
(x=a)||(y=b)&
(2-3.5)的值为。
6.判断变量a、b是否绝对值相等而符号相反的逻辑表达式为。
a==-b
7.判断变量a、b中必有且只有一个为0的逻辑表达式为。
a*b==0&
a+b!
=0
8.设intm=2,n=2,a=1,b=2,c=3;
执行语句d=(m=a==b)&
(n=b>
后,m和n的值分别为。
m为0,n为2
9.设inta=2;
,表达式“a%2!
=0”的值为。
10.设charc='
,表达式“c>
||c>
Z'
”的值为。
11.写出与代数式(x+2)ex+2对应的C表达式。
(x+2)*exp(x+2)
12.设inta=2;
执行语句a=3*5,a*4;
后a的值为。
15
五、写出下列程序的输出结果。
1.
unsignedk,n;
%u"
n);
//输入数据为:
69
k=n%10*10+n/10;
n=%dk=%d\n"
n,k);
n=69k=96
2.
intx=2,y=3;
x*=y+4;
printf("
x,y);
x/=y=5;
x-=y%2;
14,3
2,5
1,5
3.
inta,b;
a=8;
b=7;
a=(a--==b++)?
a%3:
a/3;
a=%db=%d\n"
a,b);
a=2b=8
六、程序填空题。
1.以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。
例如输入123,输出a=2b=3c=1。
{inta,b,c,①;
printf(“Entera,b,c:
”);
scanf(“%d%d%d”,②);
③;
a=b;
b=c;
④;
printf(“a=%db=%dc=%d\n”,a,b,c);
①t②&
c③t=a④c=t
2.以下程序不借助任何变量把a、b中的值进行交换。
{inta,b;
printf(“Inputa,b:
scanf(“%d%d”,①);
a+=②;
b=a-③;
a-=④;
printf(“a=%db=%d\n”,a,b);
①&
b②b③b④b
七、编程题。
1.输入3个字符后,按各字符ASCII码从小到大的顺序输出这些字符。
{charc1,c2,c3,t,min,mid,max;
c1=getchar();
c2=getchar();
c3=getchar();
min=(t=c1<
c2?
c1:
c2)<
c3?
t:
c3;
max=(t=c1>
c2)>
mid=c1+c2+c3-min-max;
putchar(min);
putchar(mid);
putchar(max);
2.输入两点坐标(x1,y1)、(x2,y2),计算并输出两点间的距离。
voidmain()
{
doublex1,y1,x2,y2,d;
printf(“请输入两点坐标(x1,y1),(x2,y2)\n”);
scanf(“(%lf,%lf),(%lf,%lf)”,&
x1,&
y1,&
x2,&
y2);
d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf(“两点间距离=%f\n”,d);
3.编写程序,计算球体积并输出它的值。
要求输入半径值,计算结果保留三位小数。
#definePI3.1415926
{doubler,gv;
printf(“请输入半径值:
\n”);
scanf(“%lf”,&
r);
gv=4.0/3*PI*pow(r,3);
printf(“半径为%f的球的体积为:
%.3f\n”,r,gv);
4.输入三角形的底和高,求三角形面积。
#definePI3.14159
doublea,h,s;
printf(“请输入三角形的底,高\n”);
scanf(“%lf,%lf”,&
s=a*h/2;
p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第二 习题 参考答案 解析