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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序设计答案 曹计昌.docx

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

2、081.10 在16位机中,157= 00000000 补 -153= 1 补157-153=157+(-153) = (00000000) +(1) =(0000000000000100) =(4) 102221.14 算法设计:用变量s存储累加和,k表示计数 描述为: 1 (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+1; s 输出N Y 1.16 第二章习题 2

3、.2(1) x, +, +, y (2)-, 0xabL 2 (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 整型常量 33333 0377UL 0

4、x9cfU 2L 字符串常量 “a” “” 45 字符常 a 量3 非法常数: 必须用转义序列 0x1ag 十六进制没有g E20 没有尾数部分 18 要用八进制数 xa 格式错误,可以是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

5、)8 4 (6)0 (7)3.00 (8)1 (9)108 (10)0 2.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 5 (6)113 (7)-2 (8)-1 (9)65532 (10)3 2.10 unsigned long encrypt(unsigned long x)

6、unsigned long x0,x1,x2,x3,x4,x5,x6,x7; x0=(x & 0x0000000F) 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 #include void main() 6 unsigned long in; unsigned long a,b,c,d; scanf(%ld,&in); /in=1563;

7、a=(in&0xff000000)24; b=(in&0x00ff0000)16; c=(in&0x0000ff00)8; d=in&0x000000ff; 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.17 X=yn 2.18 7 (c=0 & c=9)? c 0 : c 2.19 (a % 3 = 0) & (a % 10 = 5) ? a : 0; 第三章习题 3.1 函数原型是指对函数的名

8、称、返回值类型、参数的数目和参数类型的说明。其规定了调用该函数的语法格式,即调用形式。 putchar函数的原型为:int putchar(int c); puts函数的原型为: 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为非格式输出函数,pr

9、intf为格式输出函数; puts函数的参数类型和数目一定(一个字符串),printf函数的参数类型和数目不固定; puts函数输出后会自动换行,printf函数没有这一功能。 相同点:二者都向标准设备输出; 二者返回值类型都为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 8 x1(M)= -1 3.4 %c;%c;%f;%f;%lu;%d;%d;%d;%f;%Lf 3.

10、5 错误,运行提示为divide error 正确,结果为b 正确,结果为 * 正确 正确,但无法正常从结果中退出 正确 正确,结果为82,63 编译错误,提示 cannot modify a const object 正确 正确 3.6 -6.70000 -6 177601 123 -2 0 3.8 #include void 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 #include

11、void main() short num,high,low; printf(Please input a short number:n); scanf(%hd,&num); low = 0x00ff & num; 10 high = 0x00ff & (num 8); printf(The high byte is:%cn, high); printf(The low byte is:%cn, low); 3.10 #include stdafx.h int main(int argc, char* argv) unsigned short int x; unsigned short int

12、 high,low; printf(input a integer:n); scanf(%d,&x); high = (x12)&0x000f; low = (x12)&0xf000; x= x&0x0ff0; x=x|high|low; printf(%dn,x); return 0; 3.11 11 #include void 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);

13、 3.12 #include void main() float f,c; scanf(%f,&f); c=(5*(f-32)/9; printf(%.0f(F)=%.2f(C)n,f,c); 或者 #include void main() 12 int 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(Pl

14、ease 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, s, v); return 0; 3.14 #include stdafx.h 13 int main(int argc, char* argv) 挠慨?孡崴?尠编; 瀠楲瑮?机内码:%x%xtn,a0&0xff,a1&0xff); 瀠楲瑮?区位码:%xtn,a0&0xff8+a1&0xff-0x2020-0x8080); 瀠楲瑮

15、?国际码:%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); 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)

16、; 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) 14 if (m=2) return (y%4=0 & (y_x0010_0=0 | y0=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:); scan

17、f(%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方法: #include stdafx.h #include int main(int argc, char* argv) float x = 0; printf(input the salaryn); scanf(%f,&x); if(x0 & x1000) printf( else if(x2000) pr

18、intf(%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); return 0; Case方法: 15 #include stdafx.h #include int main(int argc, char* argv) float x ; printf(input the salaryn); scanf(%f,&x); int xCase = 0; xCase = (

19、int)(x/1000.0); switch(xCase) case 0: printf( break; case 1: printf(%fn,x*0.05); break; case 2: printf(%fn,x*0.1); break; case 3: printf(%fn,x*0.15); 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

20、; char c; int i = 0,j = 0,k = 0; do c= getchar_r(); 16 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+) sak = sak+1; j-; for(k=0;sak;k+) printf(,sak); return 0; 4.10 #include #define EPS 1e-5 void main() int s=1; float n=1.0,t=1.0,pi=0; while(1.0/n

21、=EPS) pi=pi+t; n=n+2; s=s*(-1); t=s/n; pi=pi*4; printf(pi=_x0010_.6fn,pi); 4.11 #include int main() int a,b,num1,num2,temp; printf(Input a & b:); scanf(%d%d,&num1,&num2); 17 if(num1num2) temp=num1; num1=num2; num2=temp; a=num1; b=num2; while(b!=0) temp=a%b; a=b; b=temp; printf(The GCD of %d and %d i

22、s: %dn,num1,num2,a); printf(The LCM of them is: %dn,num1*num2/a); 4.13 #include stdafx.h #include int Primes(int x);/判断素数函数 int main(int argc, char* argv) int i,j; int num; for(num = 4;num=100;num+) if(num%2 = 0) for(i=1;inum;i+) for(j=1;jnum;j+) if(num = i+j) if(Primes(i) & Primes(j) printf(%d=%d+%

23、dn,num,i,j); return 0; 18 int Primes(int x) int i ; int n = 0; for(i = 1;i=x;i+) if(x%i=0) n+; if(n=2) return 1; else return 0; 4.17 #include void main(void) int c,i; for(i=1,c=32;c=126;+i,+c) printf(=%-5c,c,c); if(!(i%8) printf(); 4.18 #include stdafx.h #include int main(int argc, char* argv) int x

24、; int i,n,sum; printf(input 10 numbersn); for(i = 0,n = 0,sum = 0;i0) sum+=x; n+; 19 if(n) printf(umbers = %d,average = %fn,n,1.0*sum/n); return 0; 第五章习题 5.5 Extern和static存储类型的区别: Static型外部变量和extern型外部变量的唯一区别是作用域的限制。静态外部变量只能作用于定义它的文件,其他文件中的函数不能使用。Extern型外部变量的作用域可以扩大到整个程序的所有文件。 Static和auto存储类型的区别: 静态

25、局部变量和自动变量有根本性的区别。由于静态局部变量在程序执行期间不会消失,因此,它的值有连续性。当退出块时,它的值能保存下来,以便再次进入块时使用,而自动变量的值在退出块时都丢失了。如果定义时静态局部变量有显示初始化,只在第一次进入时执行一次赋初值操作,而自动变量每次进入时都要执行赋初值操作。 5.6 不能。 在C语言中,参数的传递方式是“值传递”,即把实参的值拷贝到参数的存储区中。因此,swap()函数交换的只是实参的本地拷贝,代表swap()实参的变量并没有被改变。 5.7 6,12 5.10 #include double sum_fac(int n) double s=0; int i; double fac=1.0; for(i=1;i=n;i+) fac*=1.0/i; s+=fac; return s; void m

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

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