• # 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
    ",sum);
    }
    

    测试2

    • 要求:

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

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

    • 结果:

    测试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
    ",data[i]);
        }
    }
    

    • 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
    ",data[i]);
        }
    } 
    

    • 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
    ",data[i]);
        }
    }  
    

    课下作业2

    - 要求:把课上练习3的daytime服务器分别用多进程和多线程实现成并发服务器并测试
  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/nxy970408/p/7816915.html
Copyright © 2020-2023  润新知