C语言程序设计第二版习题参考答案.docx
- 文档编号:23166754
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:22
- 大小:30.96KB
C语言程序设计第二版习题参考答案.docx
《C语言程序设计第二版习题参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第二版习题参考答案.docx(22页珍藏版)》请在冰豆网上搜索。
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
#include
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!
*****************************
解:
#include
、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.!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第二 习题 参考答案