C语言程序设计第二版习题参考答案.docx

上传人:b****1 文档编号:23166754 上传时间:2023-05-15 格式:DOCX 页数:22 大小:30.96KB
下载 相关 举报
C语言程序设计第二版习题参考答案.docx_第1页
第1页 / 共22页
C语言程序设计第二版习题参考答案.docx_第2页
第2页 / 共22页
C语言程序设计第二版习题参考答案.docx_第3页
第3页 / 共22页
C语言程序设计第二版习题参考答案.docx_第4页
第4页 / 共22页
C语言程序设计第二版习题参考答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言程序设计第二版习题参考答案.docx

《C语言程序设计第二版习题参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第二版习题参考答案.docx(22页珍藏版)》请在冰豆网上搜索。

C语言程序设计第二版习题参考答案.docx

C语言程序设计第二版习题参考答案

C语言程序设计习题参考答案

习题1

一、判断题

1.在计算机中,小数点和正负号都有专用部件来保存和表示。

2・二进制是由0和1两个数字组成的进制方式。

3.二进制数的逻辑运算是按位进行的,位及位之间没有进位和借位的关系。

4.在整数的二进制表示方法中,0的原码、反码都有两种形式。

5.有符号数有三种表示法:

原码、反码和补码。

6.常用字符的ASCII码值从小到大的排列规律是:

空格、阿拉伯数字、大写英文字母、小写英文字母。

解:

1.F2.T3.T4.T5・T6・T

二、单项选择题

1.在计算机中,最适合进行数值加减运算的数值编码是。

A.原码B.反码C.补码D.移码

2・英文小写字母m的ASCII码为十进制数109,那么英文小写字母y的ASCII码为十进制数。

A.112B.120C.121D.

122

3.

关于ASCII码,在计算机中的表示方法准确地描述是

使用8位二进制数,

使用8位二进制数,

使用8位二进制数,

使用8位二进制数,

A.

B.

C.

D.

最右边一位为1最左边一位为1最右边一位为0最左边一位为0

设在机器字长4位,X=01UB,Y=1011B,那么以下逻辑运算中,正确

4・

的是—

A.XAY=1000B.XVY=1111C.X①Y=0011D.一Y

=1000

5.以下表达中正确的选项是〔〕o

A・高级语言就是机器语言

B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序

C・C语言因为具有汇编语言的一些特性,所以是汇编语言的一种

D・C源程序经过编译、连接,假设正确,执行后就能得到正确的运行结果

C语言程序设计第二版习题参考答案

6.用C语言编写的源程序经过编译后,假设没有产生编译错误,那么系统将()。

A.生成可执行文件B.生成目标文件

C・输出运行结果D.自动保存源文件

7・以下表达中不正确的选项是()o

A.main函数在C程序中必须有且只有一个

B.C程序的执行从main函数开始,所以main函数必须放在程序最前面

C.函数可以带参数,也可以不带参数。

D.每个函数执行时,按函数体中语句的先后次序,依次执行每条语句解:

1.C2.C3.D4・E5・E6.E7・E

三、填空题

1・(87.625)10=()2=()8=()16

2・(11.10111)2=()8=()16=()10

3.输入三个数,计算并输出三个数的和及三个数的乘积。

程序如下:

#include

voidmain()

{

inta,b,c,s,z;

printf("Pleaseinputabc:

\n");

s=a+b+c;

printf(M%d\n",s);

}

*4.输入三角形三条边的边长,计算并输出三角形的面积。

根据三条边的边长,计算三角形面积的公式如下:

程序如下:

#include

#includevoidmain()

C语言程序设计第二版习题参考答案doublex,y,z,s,dime;scanf(〞%lf%lf%lf“,&x,&y,&z);

dime=sqrt(s*(s-x)*(s-y)*(s-z));

57.A

4793.71875z=a*b*c;

printf(H%fn,z);

解:

1.1010111.101127.5

2・11271.5612B9.B8

3.scanf(n%f%f%f,,,&a,&b,&c);

4.s=(x+y+2)/2;

四、编程题

1.仿照例LI,编程序在屏幕上显示:

*****************************

MerryChristmas!

HappyNewYear!

*****************************

解:

#includevoidmain()

、pj»intf(八*先***%*******%****%**********\n")・

printf(MMerryChristmas!

\nn);printf(〞HappyNewYear!

\n");

printf(‘*******先***********★先********\n°]•

2.仿照例1.2编程,输入一个整数,计算这个数的平方。

解:

#include

voidmain()

{inta,z;

printf(〞请输入一个整数:

\n“);

scanf("%d",&a);

z=a*a;

printf("%d*%d=%d\n",a,a,z);

}

*3.仿照例1.3编程,输入两个数后,输出其中较小值。

解:

#include

floatmin(floatx,floaty)

{floatm;

if(x

elsem=y;

returnm;

}

voidmain()

{floata,b,c,mindata;

printf(H请输入二个数:

\nM);

scanf(M%f%f〞,&a,&b);

mindata=min(a,b);

printff"较小数:

%f\n",mindata);

}

*4.仿照例1.2编程,输入a、b后,输出一元一次方程ax+b=O的解。

解:

#include

voidmain()

{floata,b,x;

printf(〞请输入a、b:

\iT);

scanf("%f%f“,&a,&b);

x=-a/b;

printf(,,x=%f\nH,x);

}

*5.仿照例1.2编程,输入圆柱体的半径和高,计算并输出圆柱体的体积。

解:

#include

voidmain()

{floatr,h,s,v;

printff'Pleaseinputrandh:

\n");

scanf(〞%f%fM,&r,&h);

v=3.14*r*r*h;

printf("V=%f\nM,v);

}

习题2

一、判断题

1.任何变量都必须要定义其类型。

2.C语言的double类型数据在其数值范围内可以表示任何实数。

3.C语言的任何类型数据在计算机内都是以二进制形式存储的。

C语言程序设计第二版习题参考答案

4・isdigit('5')的结果为0。

5.printf函数中格式符“%c〞对应的参数只能是字符类型。

6.按格式符“%d〞输出float类型变量时,截断小数位取整后输出。

7.在C语言程序中,AEC及abc是两个相同的变量。

8・scanf函数中的格式符“%d〞不能用于输入实型数据。

9•格式符“%f〞不能用于输入double类型数据。

10.当格式符中指定宽度时,输出的信息完全取决于所指定的宽度。

解:

⑴T

(2)F(3)T(4)F(5)F(6)F(7)F(8)T(9)T(10)F

二、指出以下各项中哪些是C语言中的常量,并指出其类型

10,150

007

-0x3d

7ileO

el

o7o8

X

1.52e0.5

sin(3)Oxfl6

<\a,

,\009'

1.414E+2

2.54

'a'+2

OxlOOh

012810L

解:

合法的C常量有:

整型常量:

007

-0x3d

Oxfl610L

实型常量:

leO

1.414E+2

字符型常量:

'\a'

三、指出以下各项中哪些是C语言中的用户标识符

X_1

X_2

Highprintf

P

3DS

i/j

e2

-e2

count

Int

number

$23

next_

sizeof

IF

sum_12_

.123#

NOl:

double

for

解:

c的用户标识符有

:

x_lX_2

High

e2count

Int

number

next_IFsum_12

四、单项选择题

1・C语言中,char•型数据在内存中的存储形式是()。

A.原码B.反码C.补码D・ASCII码

2・假设有定义语句“charc='\72‘;〞那么变量c()。

A.包含1个字符E.包含2个字符C.包含3个字符D.定义不合法

3.C语言中的根本数据类型包括()o

A.整型、实型、逻辑型B.整型、实型、字符型

C语言程序设计第二版习题参考答案

C・整型、逻辑型、字符型D.整型、实型、逻辑型、字符型

4.设cl、c2为字符型变量,执行语句ucl=getchar();c2=getchar();〞时,从键盘输入A/,cl和c2的值分别为()。

A.都是'A'B.cl是'A',c2未输入

C.cl未输入,c2是'A'D.cl是'A',c2是<\n,

5.a、b是整型变量,执行语句“scanf(〞a=%d,b=%d",&a,&b);〞,使a和b的值分别为1和2,正确的输入是()o

A.12E・1,2C・a=l,b=2D・a=lb=2

6•设c为字符型变量值为'A',a为整型变量值为97,执行语句“putchar(c);putchar(a);〞后,输出结果为()。

A.AaE・A97C・A9D・aA

7・字母A的ASCII码值为65,以下语句段的输出结果是()o

charcl='A',c2='Y';printf("%d,%d\n",c1,c2);

A・输出格式非法,输出错误信息E・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・能正确地定义符号常量的是()o

A.#definen=10E・#definen10C・#definen10;D・#DEFINE

N10

10•在C语言中,int、char、short三种类型数据在内存中所占的字节数()。

A.由用户自己定义B.均为2个字节C.是任意的D.由机器字长决定

解:

⑴D

(2)A(3)B(4)D(5)C(6)A(7)D(8)B(9)B(10)D

五、填空题

1.chai*ch='$‘;floatx=153.4523;

语句uprintfC'%c%-8.2f\\n-,ch,x);〞的输出结果是。

解:

$153.45\n

2.inti=123;floatx=-1234.56789;

语句uprintfC'i=%5dx=%7.3f\n",i,x);〞的输出结果是。

解:

i=123x=-1234.568

3.charc='a';inta=65;

语句Uputchar(c+l);putchar(a);〞的输出结果是。

解:

bA

4.inta=98;

语句“printf(“%d,%c,%o,%x〞,a,a+l,a+2,a+3);〞的输出结果是。

解:

98,c,144,65

5・intk;floatf;

语句“scanf(“%3d%*4d%6f〞,&k,&f);〞执行时输入12345678765.43/

那么k=,f=o

解:

k=123f=8765.4

6・使用pow()函数时,程序的开头必须写一条预处理命令:

解:

#include

5.填空题。

(l)inti=123,j=45;

函数printf("%d,%d\iT,i,j)啲输岀结果是。

解:

123,45

⑵inti=123;floatx=-45.678;

语句printf("i=%5dx=%7.4f\nu,i,x);的输出结果是。

解:

i=123x=-45.6780

⑶floatalfa=60,pi=3

习题3

一、根据以下数学式,写出C的算术表达式。

 

解:

-(a2+b2)Xy4的C表达式:

-(a*a+b*b)*pow(y,4)

Ix|的C表达式:

(sqrt

(2)+10T0)/(pow(tan(x),-1)+3.141593)

I*I的C表达式:

sqrtfpow(fabs(sin(x)),3.5))

叵1的C表达式:

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==l

2.Int类型变量x、y、z,写出描述“x或y中有且仅有一个小于z〞的表达式。

解:

xvz&&y>=z||x>=z&&yvz

3.将double类型变量y保存四位小数的表达式。

解:

〔int〕〔yTOOOO+0.5〕/10000.0

4.为变量s赋值:

取变量x的符号,取变量y的绝对值。

解:

s=〔x>=0?

1:

-1〕*〔y>=0?

y:

-y〕

5・条件“-5WxW3''所对应的C逻辑表达式。

解:

-5v=x&&xv=3

6.a、b是字符变量,a的值为大写字母、b的值为小写字母,写出判断a、b是否为同一字母〔不区分大小写〕的逻辑表达式

解:

a+32==b或b-a==32?

l:

0

7.int类型变量a、b均为两位正整数,写出判断a的个位数等于b的十位数、且b的个位数等于a的十位数的逻辑表达式。

解:

a%10==b/10&&a/10==b%10

8.写出判断某个人是否是成年人〔年龄大于21〕,且不是老年人〔年龄大于65〕的逻辑表达式。

解:

y>21&&yv=65

9・写出取变量a、b、c中最大值的条件表达式。

解:

〔a>b?

a:

b〕>c?

〔a>b?

a:

b〕:

c

10.假设字符变量ch为小写字母,那么将其转换为对应的大写字母。

解:

ch=ch>='a'&&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

z||1〕

2.x=10,ch=A',y=0;,那么表达式“x>=y&&chv£&&!

y〞的值是〔〕。

A.0B.1C・“假〞D・“真〞

3.判断char型变量c为数字字符的正确表达式为〔〕。

A.Ov=cv=9B・'O'v=c&&cv=9C.c>=,0,||c<='9*

D.c>=0&&cv=9

4.以下运算符中,优先级最低的是〔〕o

A.?

:

E・&&C・==D.*=

5.假设有条件表达式“x?

a++:

b—〞,那么以下表达式中〔〕等价于表达式X。

A.x==0E・x!

=0C・x==lD.x!

=l

6•有定义intk=4,a=3,b=2,c=l;,表达式ttk

k:

c

c:

aw的值是〔〕。

A.4E・3C・2D.1

8/16

C语言程序设计第二版习题参考答案

7.执行以下程序段后,变量a,b,c的值分别是()ointx=10,y=9,a,b,c;

a=(—x==y++)?

--x:

++y;b=x++;c=y;

A.a=9,b=9,c=9E・a=8,b=8,c=10

C・a=9,b=10,c=9D・a=l,b=l1,c=10

8・有定义inta=9;,语句"a+=a-=a+a;〞执行后,变量的值是()。

A.18E.9C・—18D・—9

9・设x和y均为int型变量,那么语句“x+=y;y=x-y;x-=y;〞的功能是()o

A.把x和y按从小到大排列B.把x和y按从大到小排列

C.无确定结果D.交换x和y中的值

10.有定义doublex=1,y;,表达式“y=x+3/2〞的值是()。

A.1E・2C・2.0D・2.5

11.设有定义intx;doubley;,那么以下表达式中结果为整型的是()。

A.(int)y+xE・(int)x+yC・int(y+x)D・(double)x+y

12•设有整型变量x,以下说法中,错误的选项是()o

A.“5.0〞不是表达式B・“x"是表达式

C・“!

x〞是表达式D・“sqit(x)"是表达式

解:

⑴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-l&&b-c/2的值为。

解:

1

5・设inta=2,b=4,x,y;,表达式!

(x=a)||(y=b)&&!

(2-3.5)的值为。

解:

0

6.判断变量a、b是否绝对值相等而符号相反的逻辑表达式为。

解:

a==-b

7・判断变量a、b中必有且只有一个为0的逻辑表达式为。

9/16

C语言程序设计第二版习题参考答案

解:

a*b==O&&a+b!

=O

8.设intm=2,n=2,a=l,b=2,c=3;执行语句d=(m=a==b)&&(n=b>c);后,m和n的值分别为。

解:

m为0,n为2

9・设inta=2;,表达式“a%2!

=0〞的值为。

解:

0

10・设charc=,y,;,表达式“c>=Q&&cv='z‘||c>=A&&cv=Z〞的值为。

解:

1

11・写出及代数式(x+2)ex+2对应的C表达式。

解:

(x+2)*exp(x+2)

12.设inta=2;执行语句a=3*5,a*4;后a的值为。

解:

15

五、写出以下程序的输出结果。

1・

#include

voidmain()

{

unsignedk,n;

scanfC'%u\&n);//输入数据为:

69k=n%10*10+n/10;

printf("n=%dk=%d\n",n,k);

I

f

解:

n=69k=96

2.

#include

voidmain()

{

intx=2,y=3;

x*=y+4;

printf(M%d,%d\nn,x,y);

x/=y=5;

printf(〞%d,%d\n〞,x,y);

x-=y%2;

C语言程序设计第二版习题参考答案printf(n%d,%d\nM,x,y);

}

解:

14,3

2.5

1.5

3.

#include

voidmain()

{

inta,b;

a=8;

b=7;

a=(a—==b++)?

a%3:

a/3;printf("a=%db=%d\n",a,b);

If

解:

a=2b=8

六、程序填空题。

1.以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。

例如输入123,输出a=2b=3c=lo

#include

voidmain()

{inta,b,c,①;

print#"Entera,b,c:

〞);

scanf(“%d%d%d〞,②);

③;a=b;b=c;④;

printffua=%db=%dc=%d\n〞,a,b,c);

}

解:

①t②&a,&b,&c③t=a④c=t

2.以下程序不借助任何变量把a、b中的值进行交换。

#include

voidmain()

{inta,b;

printffUlnputa,b:

〞);

scanf(“%d%d〞,①);

a+=②;b=a-③;a-=④printffua=%db=%d\n,,,a,b);

解:

①&a,&b②b③b④b

七、编程题。

1.输入3个字符后,按各字符ASCII码从小到大的顺序输出这些字符。

解:

#include

voidmain()

{charcl,c2,c3,t,min,mid,max;

c1=getchar();c2=getchar();c3=getchar();min=(t=cl

cl:

c2)

t:

c3;max=(t=cl>c2?

cl:

c2)>c3?

t:

c3;

mid=c1+c2+c3-min-max;

putchar(min);

putchar(mid);

putchar(max);

2.输入两点坐标(xl,yl)・(x2,y2),计算并输出两点间的距离。

解:

#include#includevoidmain()

doublexl,yl,x2?

y2,d;

printf(“请输入两点坐标(xl,yl),(x2,y2)\nM);

scanff“(%lf,%lf),(%lf,%lf)〞,&xl,&yl,&x2,&y2);d=sqrt((xl-x2)*(xl-x2)+(yl-y2)*(yl-y2));

pnntf(“两点间距离=%f\n,,,d);

}

3.编写程序,计算球体积并输出它的值。

要求输入半径值,计算结果保存三位小

数。

解:

#include

#include

#definePI3.1415926voidmain()

C语言程序设计第二版习题参考答案

{doubler,gv;

printffu请输入半径值:

\n〞);scanf("%lf〞,&r);

gv=4.0/3*PI*pow(r,3);printff“半径为%佯勺球的体积为:

%.3f\n〞,r,gv);

}

4.输入三角形的底和高,求三角形面积。

解:

#include

#definePI3.14159

voidmain()

{

doublea,h,s;

printf(“请输入三角形的底,高\n〞);scanf(“

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1