博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
家庭作业补充
阅读量:5769 次
发布时间:2019-06-18

本文共 2009 字,大约阅读时间需要 6 分钟。

2.71题目(具体在书上P83)(1星)

  • 问题A:这段代码错在哪里?

    答:得到的结果是unsigned,而并非扩展为signed的结果。 

  • 问题B:给出函数的正确实现。只能使用左右移和一个减法。

    答:使用int,将待抽取字节左移到最高字节,再右移到最低字节即可。

     int xbyte(unsigned word, int bytenum)         {                     int ret = word << ((3 - bytenum)<<3);                     return ret >> 24;          }

2.87题目(书上P88)(2星)

886717-20161221215000167-854182231.jpg

7.8(1星)

题目:在此题中,REF(x,i)-->DEF(x,k)表示链接器将任意对模块i中符号x的引用于模块k中符号x的定义相关联。在下面每个例子中,用这种符号来说明链接器是如何解析在每个模块中有多重定义的引用的。如果出现链接时错误(规则1),写“ERROR”。如果链接器从定义中任意选择一个(规则3),那么写“UNKNOWN”。

答:

A.  

a)REF(main.1)-->DEF(main.1)
b)REF(main.2)-->DEF(main.2) 

B. UNKNOWN 

C. ERROR

11.10(2星)

  • HTML文件: 

          
    Num1: 
      
        Num2: 
      
       
         

    因为提交的表单里面有参数名字(num1=x&num2=y),所以要修改相应的adder.c:

     
    int parseNum(char *s) 
        int i = strlen(s) - 1; 
        while(i>0 && s[i-1]>='0'&&s[i-1]<='9' )         
     i--; 
        return atoi(s+i); 
    }  

    int main(void) {          char *buf, *p;               char arg1[MAXLINE], arg2[MAXLINE], content[MAXLINE];               int n1=0, n2=0;        /* Extract the two arguments */       if ((buf = getenv("QUERY_STRING")) != NULL) {                   p = strchr(buf, '&');           *p = 0;           strcpy(arg1, buf);          strcpy(arg2, p+1);          n1 = parseNum(arg1);          n2 = parseNum(arg2);       }          /* Make the response body */       sprintf(content, "Welcome to add.com: ");           sprintf(content, "%sTHE Internet addition portal.\r\n

    ", content);       sprintf(content, "%sThe answer is: %d + %d = %d\r\n

    ",content, n1, n2, n1 + n2);      sprintf(content, "%sThanks for visiting!\r\n", content);       /* Generate the HTTP response */      printf("Content-length: %d\r\n", (int)strlen(content));      printf("Content-type: text/html\r\n\r\n");     printf("%s", content);     fflush(stdout);      exit(0);  }  

11.11(2星)

题目:扩展TINY,以支持HTTP HEAD方法。使用TELNET作为Web客户端来验证你的工作。

想到的办法就是定义一个变量rmtd,表示请求的方法。 

在client_error,serve_static和serve_dynamic中添加一个参数mtd,表示方法。如果mtd为HEAD,就只打印头部。 结果如下:
886717-20161221215148339-1389400289.png

转载于:https://www.cnblogs.com/huangyaqi/p/6209238.html

你可能感兴趣的文章
使用@media实现IE hack的方法
查看>>
oracle体系结构
查看>>
Microsoft Exchange Server 2010与Office 365混合部署升级到Exchange Server 2016混合部署汇总...
查看>>
Proxy服务器配置_Squid
查看>>
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>
纯DIV+CSS简单实现Tab选项卡左右切换效果
查看>>
redis 常用命令
查看>>
EdbMails Convert EDB to PST
查看>>
Centos7同时运行多个Tomcat
查看>>
使用CocoaPods过程中的几个问题
查看>>
我的友情链接
查看>>
为eclipse安装maven插件
查看>>
Spring boot 整合CXF webservice 全部被拦截的问题
查看>>
Pinpoint跨节点统计失败
查看>>
机房带宽暴涨问题分析及解决方法
查看>>
XP 安装ORACLE
查看>>
八、 vSphere 6.7 U1(八):分布式交换机配置(vMotion迁移网段)
查看>>
[转载] 中华典故故事(孙刚)——19 万岁
查看>>
php5编译安装常见错误和解决办法集锦
查看>>
Unable to determine local host from URL REPOSITORY_URL=http://
查看>>