01天作业答案

使用xmind总结今天学的指令。

02天作业答案

  • 使用 vi 编写cgi脚本并部署
  • 总结vi指令

03天作业答案

  1. 写出10进制的88对应的二进制 八进制 十六进制 88 44 0 22 0 11 0 5 1 2 1 1 0 0 1 (88)2 = 0101 1000 (88)8 = 0130 (88)16 = 0x58
  2. 写出十六进制 0xff18ffec对应的二进制和八进制 0xff18ffec = 011 111 111 000 101 001 111 111 111 101 100
                  037705177754
    
  3. 写出二进制0100 1110 1111对应的十进制 八进制 十六进制

    0100 1110 1111 = 用该位上的权值乘上值 累加 = 1024 + 128 + 64 +32 + 15 =

  4. 计算求出给定的字符中bit位上值为1的位数 比如65, 130,133等三个整数 2 2 3 1 全部转化为二进制 2 快捷方法 128 64 32 16 8 4 2 1
    1110 1111

04天作业答案

  • 1.改错题

    include

int main() { //++是一个复合运算符,它表示对操作数+1,然后将结果赋值给操作数,而10是常量无法赋值 //int a = 10++; //改为 int a = 10; a++; //只有整形数才可以使用取模运算,10.0是一个double不可以使用取模运算符 // int b = 10.0 % 2; // 改为 int b = 10 % 2; return 0; }

  • 2. 设int x=9,y=8; 表达式x == y + 1的结果是1__。 //注意该表达式是关系表达式的双等号,所以其结果只能为1或0。

  • 3.定义int x = 10, y, z; 执行y = z = x; x = y == z; 后, x的结果是_1。 //最后一次赋值为 x = y == z; 双等号为关系运算符,所结果只能是0或1

  • 4.设int a=2,b=3,c,d,e,f; 执行 c=(a++>= --b);//这里的a++,表示a先参与其他运算然后自身再+1,--b,b先-1然后在参与其他运算;带入值此处为 c = (2 >= 2 ) c = 1 ,a = 3 b =2 d=(a==++b);//此处++b b = 3 ,然后表达式为 d = 3 == 3 即 d = 1 == 号为比较运算,不会该a种的值,所以 a = 3 e=(a--!=b);//a-- 表示先参与运算然后自身再-1,那么 e = (3 != 3 ) 即 e = 0 a = 2 b = 3 f=(++a>b--); //f = 3 > 3 f = 0, a = 3 b = 2 请问a,b,c,d,e,f的结果是:3,2,1,1,0,0。

  • 5.int x = 1,y = 1; if(x++==2 || ++y==2) { x =7; } printf("x=%d, y=%d\n", x, y); /* 由于比较运算符的优先级高于逻辑运算符的优先级 所以 x++==2 || ++y==2 等价于 (x++==2) || (++y==2) 整体上他是一个||运算,由于逻辑运算符的结合性是从左到右的 所以先计算 x++ == 2 ++在后先参与其他运算然后自身+1, 那么就是 x++ == 2 就是 1 == 2, 它的运算结果为假,它会计算后面的表达式 ++y,++在前先自身+1,然后参与其他运算 所以++y == 2 就是 2 == 2,它为真 所以整个x++==2 || ++y==2 为真 条件为真if会执行{ 和 } 中的语句 所以 x = 7 , y = 2

    */

  • 6.能正确表示“当x的取值在[-58,-40]或者[40,58]范围内为真,否则为假”的表达式是(C)。 A.(x>= -58) && (x<= -40) && (x>=40) && (x<=58) B.(x>= -58) || (x<= -40) || (x>=40) || (x<=58) C.(x>= -58) && (x<= -40) || (x>=40) && (x<=58) D.(x>= -58) | |(x<= -40) && (x>=40) || (x<=58)
  • 7.执行以下语句后,y 的值为(A)。 int x,y,z; x=y=z=0; ++x || ++y && ++z; //由于 &&的优先级高于 || 所以 ++y && ++z;先结合了,但只是结合到了一起,并没有计算, //它就相当于++x || ( ++y && ++z) ,我们发现最外层是一个||运算, //||运算符先是从左到右进行计算的,所以会先计算++x ,这时候||的左边为1 了 //||运算只要前面的为真后面的表达式将不参与计算,所以最后的结果为 x = 1 , y = 0 z = 0 A.0 B.1 C.2 D.不确定值