第十章习题答案 1.1选择题 1.B2.C3.C4.B 2.2编程题 1.请编程序:从终端读入16进制无符号整数m,调用函数rightrot将m中的原始数据循环 右移n位。并输出移位前后的内容。 2.设计一个函数,使给出一个数的原码,能得到该数的补码。 这几个程序也没有答案不用作了。 3.写一函数,对16位的二进制数取出它的奇数位(即从左边起第1、3、5.15位) void funl(int a) { int item=1; int i,out bit,result=0: for(i=0:i>l; if(a%21=0) out bit-0; else out bit=1; if(=0) item=1; else item=item*2; result=result+item*out bit: a=a>>1: printf("The result is 0%0.\n".result): main() { int a; printf("Please input a Oct number:") scanf("%o",&a); funl(a); } 3.3阅读程序,写出程序运行结果 程序一:-2,62 程序二:0x6c 程序三:a:9a b:ff65
第十章习题答案 1.1 选择题 1.B 2.C 3.C 4.B 2.2 编程题 1.请编程序:从终端读入16进制无符号整数 m,调用函数 rightrot 将 m 中的原始数据循环 右移 n 位。并输出移位前后的内容。 2.设计一个函数,使给出一个数的原码,能得到该数的补码。 这几个程序也没有答案不用作了。 3.写一函数,对16位的二进制数取出它的奇数位(即从左边起第1、3、5.15位) void fun1(int a) { int item=1; int i,out_bit,result=0; for(i=0;i>1; if(a%2!=0) out_bit=0; else out_bit=1; if(i==0) item=1; else item=item*2; result=result+item*out_bit; a=a>>1; } printf("The result is 0%o.\n",result); } main() { int a; printf("Please input a Oct number:"); scanf("%o",&a); fun1(a); } 3.3 阅读程序,写出程序运行结果 程序一:-2,62 程序二:0x6c 程序三:a: 9a b: ff65