zoukankan      html  css  js  c++  java
  • 第二周 第三周 课下实践补交

    一、题目

    0. 每个*.c一个文件,每个*.h一个文件,文件名中最好有自己的学号

    1. 用Vi输入图中代码,并用gcc编译通过

    2.  在Vi中使用K查找printf的帮助文档

    3.   提交vi编辑过程截图,要全屏,包含自己的学号信息

    答案:

    1、

    2、

    3、

    二、题目

    1. gcc 进行预处理,编译,汇编,链接vi输入的代码
    2.  生成的可执行文件中要有自己的学号
    3.  提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息

    答案:

    1、

    2、

    3、

    三、

    1. gcc -g编译vi输入的代码 

    2. main函数中设置一个行断点 

    3. main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点 

    4. 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息 

    答案:

    1、

    2、

    3、

    四、题目

    复习c文件处理内容
    编写myod.c myod XXX实现Linux下od -tx -tc XXX的功能
    3. main与其他分开,制作静态库和动态库
    4. 编写Makefile

    答案:

    2、

    od的功能:

    od命令用于将指定文件内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符。

    选项-t:指定输出格式,格式包括a、c、d、f、o、u和x。

    参数x[SIZE]:十六进制,SIZE字节为单位以十六进制输出。

    od -tx XXX是以十六进制输出XXX的内容,默认以四字节为一组显示。(XXX中字符对应的ascii值的十六进制表示,且每四字节显示的顺序是字符从后向前的顺序)

    程序如下:

    执行结果:

    五、题目

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a? 

    2. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息 

    答案:

    1、

    2、

    六、题目

    1.  除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?

    2.  提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    答案:

    七、题目:

    写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以

    提交Make过程截图,要全屏,包含自己的学号信息 

    答案:

    1、

    testmymath: main.o add.o sub.o mul.o div.o

    gcc main.o add.o sub.o mul.o div.o -o testmymath

    main.o: main.c head.h

    gcc -c main.c

    add.o: add.c head.h

    gcc -c add.c

    sub.o: sub.c head.h

    gcc -c sub.c

    mul.o: mul.c head.h

    gcc -c mul.c

    div.o: div.c head.h

    gcc -c div.c

    2、

    八、题目

    1 参考教材第十章内容
    Linux IO相关系统调用编写myod.c myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名
    3. 不要把代码都写入main函数中
    4. 要分模块,不要把代码都写入一个.c中
    5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
    6 课上上传代码到码云

    答案:

    1、

    2、伪代码

    int main(传入文件信息){

        打开文件

        输出文件长度转为数字

        for(循环到文件尾){

            do{

                输出文件内容

                有换行则跳出

            }while(文件结束)

        }

        关闭文件

    }

    3、

    #include <stdio.h>

    #include <fcntl.h>

    #include <unistd.h>

    #include <stdlib.h>

    #include <string.h>

    int main(int argc,char*argv[])

    {

        FILE *fp=fopen(argv[2],"r");

        int i,j;

        char ch;

        j=atoi(argv[1]);

        for(i=0;i<j;i++)

        {

            do{ ch=fgetc(fp);

                putchar(ch);

                            if(ch == ' ') break;

            }while(ch!=EOF);

            

        }

        fclose(fp);

    }

    九、题目

    使用fork,exec,wait实现mybash - 写出伪代码,产品代码和测试代码 - 发表知识理解,实现过程和问题解决的博客

    答案:

    伪代码

    int main(){

    从终端读取要执行的命令

    fork()产生子进程执行此命令

    如果exec函数返回,表明没有正常执行命令,打印错误信息perro()

    父进程, 等待子进程结束,并打印子进程的返回值wait(&rtn)

    }

    产品代码

    #include <errno.h>

    #include <stdio.h>

    #include <stdlib.h>

    #include <unistd.h>

    #include <limits.h>

    void main()

    {

            

        char *command[3];

        command[0] = "ls";

        command[1] = "-l";

        command[2] = 0;

            

            int s,i=0;

            int rtn;

            printf( ">" );

        //printf("%s %s %s",command[1],command[2],command[3]);  

        printf("%s",command[0]);

        i=0;    

        s=fork();

        if ( s== 0 ) {

        //printf("%d ",s);

        execvp( command[0], command );

        

        //perror( command );

        

        exit( errno );

         }

         else {

        

        //printf("%d ",s);

        wait ( &rtn );

        

        printf( " child process return %d ", rtn );

        

        }

        

        

    }

  • 相关阅读:
    写程序一定要养成良好习惯程序编码规范
    今天用GRID感觉它严重缺少灵活性
    REPEATER 嵌套
    DATAGRID的困惑。。。
    VB常用函数。。。。
    子父表,就是这么简单。。。。。
    今天解决了DataGrid无刷新全选删除问题。
    看来我还没完全懂DATAGRID。。。
    indexOf 和 lastIndexOf 使用
    javascript 要注意的事项
  • 原文地址:https://www.cnblogs.com/xieboke/p/8232661.html
Copyright © 2011-2022 走看看