c语言的答案.docx

上传人:b****6 文档编号:5617445 上传时间:2022-12-29 格式:DOCX 页数:25 大小:61.30KB
下载 相关 举报
c语言的答案.docx_第1页
第1页 / 共25页
c语言的答案.docx_第2页
第2页 / 共25页
c语言的答案.docx_第3页
第3页 / 共25页
c语言的答案.docx_第4页
第4页 / 共25页
c语言的答案.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

c语言的答案.docx

《c语言的答案.docx》由会员分享,可在线阅读,更多相关《c语言的答案.docx(25页珍藏版)》请在冰豆网上搜索。

c语言的答案.docx

c语言的答案

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

窗体顶端

窗体底端

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

习题1

一、判断题

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

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

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

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

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

原码、反码和补码。

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

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

2.T3.T4.T5.T6.T解:

1.F

二、单选题

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

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

2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。

A.112B.120C.121D.122

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

A.使用8位二进制数,最右边一位为1B.使用8位二进制数,最左边一位为1C.使用8位二进制数,最右边一位为0D.使用8位二进制数,最左边一位为0

4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。

A.X∧Y=1000B.X∨Y=1111C.X⊕Y=0011D.Y=1000?

5.下列叙述中正确的是()。

A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。

A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。

A.main函数在C程序中必须有且只有一个B.C程序的执行从main函数开始,所以main函数必须放在程序最前面C.函数可以带参数,也可以不带参数。

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

1.C2.C3.D4.B5.B6.B7.B三、填空题1.(87.625)10=()2=()8=()16)8=()16=(2.(1001010111001.10111)2=(3.输入三个数,计算并输出三个数的和与三个数的乘积。

程序如下:

#includevoidmain(){inta,b,c,s,z;printf("Pleaseinputabc:

\n");s=a+b+c;printf("%d\n",s);}*4.输入三角形三条边的边长,计算并输出三角形的面积。

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

x+y+z?

?

面积=s(s?

x)(s?

y)(s?

z)?

其中s=?

2?

?

程序如下:

#include#includevoidmain(){doublex,y,z,s,dime;scanf("%lf%lf%lf",&x,&y,&z);dime=sqrt(s*(s-x)*(s-y)*(s-z));}127.557.A解:

1.1010111.1012.11271.5612B9.B84793.718753.scanf("%f%f%f",&a,&b,&c);z=a*b*c;4.s=(x+y+2)/2;printf("%f",dim);四、编程题1.仿照例1.1,编程序在屏幕上显示:

*****************************MerryChristmas!

HappyNewYear!

*****************************解:

#includevoidmain(){printf("*****************************\n");printf("MerryChristmas!

\n");1)10printf("%f",z);printf("HappyNewYear!

\n");printf("*****************************\n");}2.仿照例1.2编程,输入一个整数,计算这个数的平方。

解:

#includevoidmain(){inta,z;printf("请输入一个整数:

\n");scanf("%d",&a);z=a*a;printf("%d*%d=%d\n",a,a,z);}*3.仿照例1.3编程,输入两个数后,输出其中较小值。

解:

#includefloatmin(floatx,floaty){floatm;if(x

\n");scanf("%f%f",&a,&b);mindata=min(a,b);printf("较小数:

%f\n",mindata);}*4.仿照例1.2编程,输入a、b后,输出一元一次方程ax+b=0的解。

解:

#includevoidmain(){floata,b,x;printf("请输入a、b:

\n");scanf("%f%f",&a,&b);x=-a/b;printf("x=%f\n",x);}*5.仿照例1.2编程,输入圆柱体的半径和高,计算并输出圆柱体的体积。

解:

#includevoidmain(){floatr,h,s,v;printf("Pleaseinputrandh:

\n");scanf("%f%f",&r,&h);v=3.14*r*r*h;printf("V=%f\n",v);2}习题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‘x’‘xo’1.414E+22.54解:

合法的C常量有:

整型常量:

007实型常量:

1e0字符型常量:

‘x’–0x3d1.52e0.5‘\\’–0x3d1.414E+2‘\a’πsin(3)‘a’+20xf16‘\\’1e00xf160x100he1‘\a’0128o7o8‘\009’10L10L三、指出下列各项中哪些是C语言中的用户标识符x_1X_2Highprintfe2-e2countIntsizeofIFsum_12_123#X_2High解:

C的用户标识符有:

x_1next_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未输入3β3DSnumber$23NO1:

doublee2countInti/jnext_fornumberC.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=26.c为字符型变量值为设‘A’a为整型变量值为97,,执行语句“putchar(c);putchar(a);”后,输出结果为()。

A.AaB.A97C.A9D.aA7.已知字母A的ASCII码值为65,以下语句段的输出结果是()。

charc1='A',c2='Y';printf("%d,%d\n",c1,c2);A.输出格式非法,输出错误信息B.65,90C.A,YD.65,898.若要使用输入语句“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.#DEFINEN1010.在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\n2.inti=123;floatx=–1234.56789;语句“printf("i=%5dx=%7.3f\n",i,x);”的输出结果是。

解:

i=123x=-1234.5683.charc='a';inta=65;语句“putchar(c+1);putchar(a);”的输出结果是。

解:

bA4.inta=98;语句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的输出结果是解:

98,c,144,655.intk;floatf;语句“scanf(“%3d%*4d%6f”,&k,&f);”执行时输入12345678765.43↙则k=,f=。

f=8765.4解:

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

解:

#include5.填空题。

(1)inti=123,j=45;函数printf("%d,%d\n",i,j);的输出结果是。

解:

123,45。

4

(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的算术表达式。

2+102tan?

1x+π4?

(a+b)×y234|sin(x)|3.5x?

e651ab+c+d2c+da+2b?

cd22解:

-(a+b)×y的C表达式:

-(a*a+b*b)*pow(y,4)2+102的C表达式:

(sqrt

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

1x+π|sin(x)|3.5的C表达式:

sqrt(pow(fabs(sin(x)),3.5))x6?

e5的C表达式:

pow(x,6)-exp(5)1ab+c+d2的C表达式:

(1.0/2*a*b+c+d)/(a+2*b-(c+d)/c/d)c+da+2b?

cd二、按照要求,写出下列C的表达式。

1.写出int类型变量x为“奇数”的表达式。

解:

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

解:

x=z||x>=z&&y

解:

(int)(y*10000+0.5)/10000.04.为变量s赋值:

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

解:

s=(x>=0?

1:

-1)*(y>=0?

y:

-y)5.条件“-5≤x≤3”所对应的C逻辑表达式。

解:

-5<=x&&x<=36.a、b是字符变量,已知a的值为大写字母、b的值为小写字母,写出判断a、b是否为同一字母(不区分大小写)的逻辑表达式解:

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

1:

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

解:

a%10==b/10&&a/10==b%108.写出判断某个人是否是成年人(年龄大于21),且不是老年人(年龄大于65)的逻辑表达式。

5解:

y>21&&y<=659.写出取变量a、b、c中最大值的条件表达式。

解:

(a>b?

a:

b)>c?

(a>b?

a:

b):

c10.若字符变量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&&ch<'B'&&!

y”的值是()。

A.0B.1C.“假”D.“真”3.判断char型变量c为数字字符的正确表达式为()。

A.'0'<=c<='9'B.'0'<=c&&c<='9'C.c>='0'||c<='9'D.c>=0&&c<=94.下列运算符中,优先级最低的是()。

A.?

B.&&C.==D.*=5.若有条件表达式“x?

a++:

b--”,则以下表达式中()等价于表达式x。

A.x==0B.x!

=0C.x==1D.x!

=16.有定义intk=4,a=3,b=2,c=1;,表达式“k

k:

c

c:

a”的值是()。

A.4B.3C.2D.17.执行下列程序段后,变量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=10C.a=9,b=10,c=9D.a=1,b=11,c=108.有定义inta=9;,语句“a+=a–=a+a;”执行后,变量的值是()。

A.18B.9C.–18D.–99.设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.511.设有定义intx;doubley;,则下列表达式中结果为整型的是()。

B.(int)x+yC.int(y+x)D.(double)x+yA.(int)y+x12.设有整型变量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.52.设intx=2,y=3;,执行语句“x*=x+y”后x的值为。

解:

103.设intx=17,y=5;,执行语句“x%=x–y”后x的值为解:

56。

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)的值为解:

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

解:

a==-b。

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

a*b==0&&a+b!

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

解:

m为0,n为2。

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

=0”的值为解:

010.设charc='y';,表达式“c>='a'&&c<='z'||c>='A'&&c<='Z'”的值为。

解:

1x+211.写出与代数式(x+2)e对应的C表达式。

解:

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

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

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

1.#includevoidmain(){unsignedk,n;scanf("%u",&n);//输入数据为:

69k=n%10*10+n/10;printf("n=%dk=%d\n",n,k);}解:

n=69k=962.#includevoidmain(){intx=2,y=3;x*=y+4;printf("%d,%d\n",x,y);x/=y=5;printf("%d,%d\n",x,y);x-=y%2;printf("%d,%d\n",x,y);}解:

14,372,51,53.#includevoidmain(){inta,b;a=8;b=7;a=(a--==b++)?

a%3:

a/3;printf("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。

#includevoidmain(){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②&a,&b,&c③t=a④c=t2.以下程序不借助任何变量把a、b中的值进行交换。

#includevoidmain(){inta,b;printf(“Inputa,b:

”);scanf(“%d%d”,①);a+=②;b=a-③;a-=④;printf(“a=%db=%d\n”,a,b);}解:

①&a,&b②b③b④b七、编程题。

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

解:

#includevoidmain(){charc1,c2,c3,t,min,mid,max;c1=getchar();c2=getchar();c3=getchar();min=(t=c1

c1:

c2)

t:

c3;8max=(t=c1>c2?

c1:

c2)>c3?

t:

c3;mid=c1+c2+c3-min-max;putchar(min);putchar(mid);putchar(max);}2.输入两点坐标(x1,y1)(x2,y2)、,计算并输出两点间的距离。

解:

#include#includevoidmain(){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.编写程序,计算球体积并输出它的值。

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

解:

#include#include#definePI3.1415926voidmain(){doubler,gv;printf(“请输入半径值:

\n”);scanf(“%lf”,&r);gv=4.0/3*PI*pow(r,3);printf(“半径为%f的球的体积为:

%.3f\n”,r,gv);}4.输入三角形的底和高,求三角形面积。

解:

#include#definePI3.14159voidmain(){doublea,h,s;printf(“请输入三角形的底,高\n”);scanf(“%lf,%lf”,&a,&h);s=a*h/2;printf(“三角形面积=%f\n”,s);}5.编写程序,输入一个实数后输出该数的绝对值。

解:

#includevoidmain(){doubl

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

当前位置:首页 > 医药卫生 > 中医中药

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

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