C语言程序设计曹计昌习题答案

上传人:宝路 文档编号:2722146 上传时间:2017-07-26 格式:DOCX 页数:39 大小:30.21KB
返回 下载 相关 举报
C语言程序设计曹计昌习题答案_第1页
第1页 / 共39页
C语言程序设计曹计昌习题答案_第2页
第2页 / 共39页
C语言程序设计曹计昌习题答案_第3页
第3页 / 共39页
C语言程序设计曹计昌习题答案_第4页
第4页 / 共39页
C语言程序设计曹计昌习题答案_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《C语言程序设计曹计昌习题答案》由会员分享,可在线阅读,更多相关《C语言程序设计曹计昌习题答案(39页珍藏版)》请在金锄头文库上搜索。

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

2、61.10在 16 位机中,157 补= 0000000010011101-153补= 1111111101100111157-153=157+(-153)= (0000000010011101) 2+(1111111101100111) 2=(0000000000000100) 2=(4) 101.14算法设计:用变量 s 存储累加和,k 表示计数描述为:(1 )定义变量 s,k。(2 ) s 清零,k 赋初值 1。(3 )判断 k 24;x7=(x & 0xF0000000);return(x0|x1|x2|x3|x4|x5|x6|x7);2.11#includevoid main()un

3、signed 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&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.17X=yn2.18(c= 0 & cvoid main()char c;c= getch

4、ar_r();if(c=0&c=A&c=a&c=0&c=A&cvoid main()short num,high,low;printf(Please input a short number:n);scanf(%hd,&num);low = 0x00ff & 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;un

5、signed short int high,low;printf(input a integer:n);scanf(%d,&x);high = (x12)&0x000f;low = (xvoid main()unsigned short int x,m,n;unsigned short int result;scanf(%hu%hu%hu,&x,&m,&n);result=(x(m-n+1)void main()float f,c;scanf(%f,&f);c=(5*(f-32)/9;printf(%.0f(F)=%.2f(C)n,f,c);或者#includevoid main()int f

6、; 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, s, v); r

7、eturn 0;3.14#include stdafx.hint main(int argc, char* argv)char a4 = 编;printf(机内码:%x%xtn,a0&0xff,a1&0xff);printf(区位码:%xtn,a0&0xffvoid 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);scan

8、f(%f,&c);if(a-b)*(a-c)int mdays(int y,int m)if (m=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

9、(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 & xint 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

10、);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;char c;int i = 0,j = 0,k = 0;doc= getchar_r();sai+ = c;while(c

11、 != 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(%2c,sak);return 0;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 mai

12、n()int a,b,num1,num2,temp;printf(Input a & b:);scanf(%d%d,&num1,&num2);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 is: %dn,num1,num2,a);printf(The LCM of them is: %dn,num1*num2/a);4.13#include stdafx.h#include int Primes(int

13、x);/判断素数函数int main(int argc, char* argv)int i,j;int num;for(num = 4;numvoid main(void)int c,i;for(i=1,c=32;cint main(int argc, char* argv)int x;int i,n,sum;printf(input 10 numbersn);for(i = 0,n = 0,sum = 0;i0)sum+=x;n+;if(n)printf(numbers = %d,average = %fn,n,1.0*sum/n);return 0;第五章习题5.5Extern 和 sta

14、tic 存储类型的区别:Static 型外部变量和 extern 型外部变量的唯一区别是作用域的限制。静态外部变量只能作用于定义它的文件,其他文件中的函数不能使用。Extern 型外部变量的作用域可以扩大到整个程序的所有文件。Static 和 auto 存储类型的区别:静态局部变量和自动变量有根本性的区别。由于静态局部变量在程序执行期间不会消失,因此,它的值有连续性。当退出块时,它的值能保存下来,以便再次进入块时使用,而自动变量的值在退出块时都丢失了。如果定义时静态局部变量有显示初始化,只在第一次进入时执行一次赋初值操作,而自动变量每次进入时都要执行赋初值操作。5.6不能。在 C 语言中,参数

15、的传递方式是“值传递” ,即把实参的值拷贝到参数的存储区中。因此,swap()函数交换的只是实参的本地拷贝,代表 swap()实参的变量并没有被改变。5.7 6, 125.10 #include double sum_fac(int n)double s=0;int i;double fac=1.0;for(i=1;ivoid reverse()char ch= getchar_r();if(ch!=n) reverse();putchar(ch);int main()reverse();printf(n);return 0;第六章习题6.1(1)正确(2)错误,不需要加“;”(3)错误, “ident”与“(”之间不能有空格(4)错误,宏名不能是关键字“void ”(5)错误,将 x*y 改成(x)*(y)6

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号