ImageVerifierCode 换一换
格式:DOCX , 页数:57 ,大小:27.74KB ,
资源ID:7280673      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7280673.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(曹计昌《C程序设计》课后习题答案解析.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

曹计昌《C程序设计》课后习题答案解析.docx

1、曹计昌C程序设计课后习题答案解析第一章习题1.4原码:对于一个二进制数X,如果规定其最高位为符号位,其余各位为该数的绝对值,并且规定符号位值为0表示正,为1表示负,采用这种方式的二进制编码称为该二进制数X的原码。补码:正数的补码等于正数的原码,负数的补码为其原码除符号位不动外,其余各位变反再加1所得。反码:对于正数而言,反码与原码相同;对于负数而言,反码符号位的定义与原码相同,但需要将对应原码的数值位按位变反。1.5 和:10101010差:000100001.6 和 01073 差 -03371.7 和 0x1AABA差 -0x53201.8(251)10=(11111011)2=(373)

2、8=(FB)161.10在16位机中,157补= 0000000010011101 -153补= 111111*1157-153=157+(-153)= (0000000010011101) 2+(1111111101100111) 2=(0000000000000100) 2=(4) 101.14算法设计:用变量s存储累加和,k表示计数描述为:(1)定义变量s,k。(2)s清零,k赋初值1。(3)判断k101?如果是,顺序执行(4);否则转步骤(5);(4)k加到累加和变量s中,k加1;转步骤(3)。(5)输出累加和s。(6)结束。开始结束int s=0,k=1;k101?s=s+k;k=k

3、+1;输出sNY1.16 第二章习题2.2(1) x, +, +, y(2)-, 0xabL(3)2.89e+12L(4)”String+” FOO”(5)x, *, *, 2(6)”X?/”(7)a, ?, b(8)x, -, +=, y(9)intx, =, +, 10(10)”String”, “FOO”2.3不是表识符的如下:4th 首字母为数字 sizeof关键字x*y *不是字母、数字、下划线temp-2 -不是字母、数字、下划线isnt 不是字母、数字、下划线enum 关键字2.4合法常数:.12 0.L 1.E-5 3.F 浮点型常量2L 33333 0377UL 0x9cfU

4、 整型常量“a” “” 字符串常量45 0 a 字符常量非法常数:必须用转义序列0x1ag 十六进制没有gE20 没有尾数部分18 要用八进制数0xa 格式错误,可以是xa“34” 需要转义序列” 需要转义序列2.5(1)int a, b=5;(2)double h;(3)int x=2.3; 0.3 会被截取。(4)const long y=1; 必须赋初值(5)float a= 2.5*g; g 没有定义。(6) int a=b=2; 在 turbo C 中编译出错:未定义的符号b在main函数中。2.6(1)4(2)0(3)1(4)6(5)8(6)0(7)3.00(8)1(9)108(1

5、0)02.7 答案不确定(1)a=b=c c未定义(2)正确(3)正确(4)正确(5)a*+-b 表达式缺值(6)a|bi 运算的操作数必须是整型,而i不是(7)i*j%a %运算的操作数必须是整型,而a不是(8)正确(9)正确(10)int(a+b) 应该改成(int)(a+b)2.9(1)0(2)-2(3)65535(4)5(5)60(6)113(7)-2(8)-1(9)65532(10)32.10unsigned long encrypt(unsigned long x) unsigned long x0,x1,x2,x3,x4,x5,x6,x7; x0=(x & 0x0000000F)

6、 8; x1=(x & 0x000000F0); x2=(x & 0x00000F00) 8; x3=(x & 0x0000F000); x4=(x & 0x000F0000) 24; x7=(x & 0xF0000000); return(x0|x1|x2|x3|x4|x5|x6|x7);2.11#includevoid main()unsigned long in;unsigned long a,b,c,d;scanf(%ld,&in);/in=1563;a=(in&0xff000000)24;b=(in&0x00ff0000)16;c=(in&0x0000ff00)8;d=in&0x00

7、0000ff;printf(%d.%d.%d.%d,a,b,c,d);2.15(k 8)& 0xFF00) | (p & 0x00FF)b?ac?a:c:bc?b:c;max=a b ? (a c) ? a : c):(b c) ? b : c);2.17X=yn2.18(c=0 & c=9)? c 0 : c2.19(a % 3 = 0) & (a % 10 = 5) ? a : 0;第三章习题3.1 函数原型是指对函数的名称、返回值类型、参数的数目和参数类型的说明。其规定了调用该函数的语法格式,即调用形式。putchar函数的原型为:int putchar(int c);puts函数的原型

8、为: int puts(const char *s);printf函数的原型为:int printf(const char *format,);getchar函数的原型为:int getchar_r(void);gets函数的原型为:char * gets_r(char *s);scanf函数的原型为: int scanf(const char *format,);3.2 不同点: puts为非格式输出函数,printf为格式输出函数; puts函数的参数类型和数目一定(一个字符串),printf函数的参数类型和数目不固定; puts函数输出后会自动换行,printf函数没有这一功能。 相同点

9、:二者都向标准设备输出; 二者返回值类型都为int。3.3 x1=-1,177777,ffff,65535 x2=-3,177775,fffd,65533 y1=123.456703, 123.457,123.457,123.457 (注意对齐) y2=123.449997,1.23450e+02,123.45 x1(%4d)= -13.4 %c;%c;%f;%f;%lu;%d;%d;%d;%f;%Lf3.5 错误,运行提示为divide error 正确,结果为b 正确,结果为 * 正确 正确,但无法正常从结果中退出 正确 正确,结果为82,63 编译错误,提示 cannot modify

10、a const object 正确 正确3.6 -6.70000 -6 177601 123 -2 03.8#includevoid main() char c; c= getchar_r(); if(c=0&c=A&c=a&c=0&c=A&c=F) printf(%dn,c-A+10); else printf(%dn,c-a+10); else putchar(c);3.9#includevoid main() short num,high,low; printf(Please input a short number:n); scanf(%hd,&num); low = 0x00ff &

11、 num; high = 0x00ff & (num 8); printf(The high byte is:%cn, high); printf(The low byte is:%cn, low); 3.10#include stdafx.hint main(int argc, char* argv) unsigned short int x; unsigned short int high,low; printf(input a integer:n); scanf(%d,&x); high = (x12)&0x000f; low = (x12)&0xf000; x= x&0x0ff0; x

12、=x|high|low; printf(%dn,x); return 0;3.11#includevoid main()unsigned short int x,m,n;unsigned short int result;scanf(%hu%hu%hu,&x,&m,&n);result=(x(m-n+1)(15-n+1);printf(%hun,result);3.12#includevoid main() float f,c; scanf(%f,&f); c=(5*(f-32)/9; printf(%.0f(F)=%.2f(C)n,f,c);或者#includevoid main()int

13、f;float c; scanf(%d,&f); c=(5*(f-32)/9; printf(%d(F)=%.2f(C)n,f,c);3.13#include #define PI (3.1415926)int main(int argc, char* argv) double r, h; double s, v; printf(Please input the r and h.); scanf(%lf,%lf, &r, &h); s = 2 * PI * r * h + 2 * PI * r * r; v = PI * r * r * h; printf(s is %lf, v is %lf

14、, s, v); return 0;3.14#include stdafx.hint main(int argc, char* argv) char a4 = 编; printf(机内码:%x%xtn,a0&0xff,a1&0xff); printf(区位码:%xtn,a0&0xff8+a1&0xff-0x2020-0x8080); printf(国际码:%xtn,a0&0xff8+a1&0xff-0x8080); return 0;第四章习题4.1#include void main(void)float a,b,c;printf(Please enter the score of A:n)

15、;scanf(%f,&a);printf(Please enter the score of B:n);scanf(%f,&b);printf(Please enter the score of C:n);scanf(%f,&c);if(a-b)*(a-c)0) printf(A gets the score %.1f,a);if(b-a)*(b-c)0) printf(B gets the score %.1f,b);if(c-a)*(c-b)0) printf(C gets the score %.1f,c);4.3#include int mdays(int y,int m) if (m

16、=2) return (y%4=0 & (y%100=0 | y%400=0)?29:28; else if (m=4 | m=6 | m=9 | m=11) return 30; else return 31;main() int y,m,d,days; printf(Enter year:); scanf(%d,&y); printf(Enter month:); scanf(%d,&m); printf(Enter day:); scanf(%d,&d); days=d; while(m1)days+=mdays(y,m-1);m-; printf(%dn,days);4.4 if方法:

17、#include stdafx.h#include int main(int argc, char* argv) float x = 0; printf(input the salaryn); scanf(%f,&x); if(x0 & x1000) printf(0n); else if(x2000) printf(%fn,x*0.05); else if(x3000) printf(%fn,x*0.1); else if(x4000) printf(%fn,x*0.15); else if(x5000) printf(%fn,x*0.2); else printf(%fn,x*0.25);

18、 return 0;Case方法:#include stdafx.h#include int main(int argc, char* argv) float x ; printf(input the salaryn); scanf(%f,&x); int xCase = 0; xCase = (int)(x/1000.0); switch(xCase) case 0: printf(0n); break; case 1: printf(%fn,x*0.05); break; case 2: printf(%fn,x*0.1); break; case 3: printf(%fn,x*0.15

19、); break; case 4: printf(%fn,x*0.2); break; default: printf(%fn,x*0.25); return 0;4.7#include stdafx.h#include int main(int argc, char* argv) char *sa; char c; int i = 0,j = 0,k = 0; do c= getchar_r(); sai+ = c; while(c != r); for(i=0;sai+1;i+) for(j = i+1;saj;j+) if( sai=saj & saj = ) for(k=j;sak;k

20、+) sak = sak+1; j-; for(k=0;sak;k+) printf(%2c,sak); return 0;4.8#includevoid main(void) char c; printf(Input the chars to be copy:n); c=getchar(); while(c!=EOF) if(c=32) c=getchar(); continue; else putchar(c); c=getchar(); 4.10#include #define EPS 1e-5void main() int s=1; float n=1.0,t=1.0,pi=0; while(1.0/n=EPS) pi=pi+t; n=n+2; s=s*(-1); t=s/n; pi=pi*4; printf(pi=%10.6fn,pi);4.11#includeint main() int a,b,num1,num2,temp; printf(Input a & b:); scanf(%d%d,&num1,&num2); if(num1num2) temp=num1; num1=num2; num2=

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2