C语言程序设计 科学出版社 曹计昌 习题答案
第一章习题 1.4 原码:对于一个二进制数X,如果规定其最高位为符号位,其余各位为该数的绝对值,并且规定符号位值为0表示正,为1表示负,采用这种方式的二进制编码称为该二进制数X的原码。 补码:正数的补码等于正数的原码,负数的补码为其原码除符号位不动外,其余各位变反再加1所得。 反码:对于正数而言,反码与原码相同;对于负数而言,反码符号位的定义与原码相同,但需要将对应原码的数值位按位变反。 1.5 和:10101010 差:00010000 1.6 和 01073 差 -0337 1.7 和 0 x1AABA 差 -0 x5320 1.8 (251)10=(11111011)2=(373)8=(FB)16 1.10 在16位机中,[157]补= 0000000010011101 [-153]补= 1111111101100111 157-153=157+(-153) = (0000000010011101) 2+(1111111101100111) 2=(0000000000000100) 2=(4) 10 1.14 算法设计:用变量s存储累加和,k表示计数 描述为: (1)定义变量s,k。 (2)s清零,k赋初值1。 (3)判断k>8) max=a > b ? ((a > c) ? a : c):((b > c) ? b : c); 2.17 X=y>>n 2.18 (c>=’0’ 第三章习题 3.1 函数原型是指对函数的名称、返回值类型、参数的数目和参数类型的说明。其规定了调用该函数的语法格式,即调用形式。 putchar函数的原型为:int putchar(int c); puts函数的原型为: int puts(const char *s); printf函数的原型为:int printf(const char *at,…); getchar函数的原型为:int getchar_r(void); gets函数的原型为:char * gets_r(char *s); scanf函数的原型为: int scanf(const char *at,…); 3.2 不同点:① puts为非格式输出函数,printf为格式输出函数; ② puts函数的参数类型和数目