# 20155224课上测试补完+课下作业

20155224课上测试补完+课下作业

测试1

  • 要求:

参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成“求命令行传入整数参数的和”

测试代码传入自己的8位学号

上方提交代码

附件提交运行测试截图

import java.util.*;

public class CLSum {
    public static void main(String [] args) {

        int sum = 0;

        for(String arg: args)
            sum += Integer.parseInt(arg);//将老师代码中的 Interger改为 Integer

    // 打印
        System.out.println(sum);
    }
}
  • 结果:
#include <stdio.h>
void main(int argc,char** argv)
{
        int i,a,sum=0;
        for(i=1;i<argc;i++)
        {
                a=atoi(argv[i]);
                sum = sum +a;
        }
        printf("%d\n",sum);
}

1072288-20171113005731356-1103690186.png

测试2

  • 要求:

把第一个练习中的代码在X86-64(Ubuntu)中反汇编,给出汇编代码和机器码的截图

把X86-64汇编翻译成Y86-64汇编,并给出相应机器码的截图(使用附件中的Y86-64模拟器)

  • 结果:
    1072288-20171113021255093-90775465.png

1072288-20171113023049234-400138437.png

测试3

  • 要求:

基于socket 使用教材的csapp.h csapp.c,实现daytime(13)服务器(端口我们使用13+后三位学号)和客户端
服务器响应消息格式是

客户端IP:XXXX
服务器实现者学号:XXXXXXXX
当前时间: XX:XX:XX

上方提交代码
提交一个客户端至少查询三次时间的截图测试截图
提交至少两个客户端查询时间的截图测试截图

  • 结果:

课下作业1

  1. 完成家庭作业4.47,4.48,4.49
  2. 相应代码反汇编成X86-64汇编
  3. 把上述X86-64汇编翻译成Y86汇编,并给出相应机器码
  • 4.47
    • 要求:书写一个C版本的冒泡排序法,用指针引用数组元素,而不是数组索引。书写并测试这个函数和测试代码组成的Y86-64程序。
    • 结果:
    #include<stdio.h>
    void bubble_a(int *data, int count){
      int i,next;
      for(next = 1; next < count; next++){
          for(i = next - 1; i >= 0; i--)
              if(*(data + i + 1) < *(data + i)){
                  int t = *(data + i + 1);
                  *(data + i + 1) = *(data + i);
                  *(data + i) = t;
              }
      }
    }
    void main()
    {
      int data[5]={4,90,2,6,0};
      int i;
      bubble_a(data,5);
      for(i=0;i<5;i++)
      {
          printf("%2d\n",data[i]);
      }
    }

1072288-20171113031402484-1099944880.png

1072288-20171113031412484-1324762065.png

  • 4.48
    • 要求:实现冒泡排序,要求不使用跳转,且最多使用3次条件传送。
    • 结果:
    #include<stdio.h>
    void bubble_a(int *data,int count)
    {
      int i , next;
      int pre_ele,next_ele;
      for(next = 1;next < count;next++)
      {
          for(i = next -1;i >= 0;i--)
          {
              pre_ele = *(data + i);
              next_ele = *(data + i + 1);
              *(data + i) = next_ele < pre_ele ? next_ele : pre_ele;//三目运算符号
              *(data + i + 1) = next_ele < pre_ele ? pre_ele : next_ele;//使用两次条件传送
          }
      }
    }
    void main()
    {
      int data[5]={4,90,2,6,0};
      int i;
      bubble_a(data,5);
      for(i=0;i<5;i++)
      {
          printf("%2d\n",data[i]);
      }
    } 

1072288-20171113032407890-257171827.png

1072288-20171113032448734-1923762002.png

  • 4.49
    • 要求:实现冒泡排序,要求不使用跳转,且最多使用1次条件传送。
    • 结果:
    #include<stdio.h>
    void bubble_c(int *data,int count)
    {
      int i , next;
      int pre_ele,next_ele;
      for(next = 1;next < count;next++)
      {
          for(i = next -1;i >= 0;i--)
          {
              pre_ele = *(data + i);
              next_ele = *(data + i + 1);
              *(data + i) = next_ele < pre_ele ? next_ele : pre_ele;
              *(data + i + 1) = pre_ele;
          }
      }
    }
    void main()
    {
      int data[5]={4,90,2,6,0};
      int i;
      bubble_a(data,5);
      for(i=0;i<5;i++)
      {
          printf("%2d\n",data[i]);
      }
    }  

1072288-20171113032821484-748214811.png

1072288-20171113032831906-1852133966.png

课下作业2

- 要求:把课上练习3的daytime服务器分别用多进程和多线程实现成并发服务器并测试

转载于:https://www.cnblogs.com/nxy970408/p/7816915.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值