• 第五周编程总结


    本次作业所属课程

    C语言程序设计||

    本次作业要求

    https://edu.cnblogs.com/campus/zswxy/MS/homework/2829

    我在这个课程的目标是

    学会数组与文件之间的转化

    本次学习在哪些具体方面帮组我实现目标

    学会画流程图

    参考文献

    C primer plus第六版

    题目一:统计一行文本的单词个数

    1)代码截图

    #include<stdio.h>
    #include<string.h>
    int main(void)
    {
      int i,len,num;
      char zf[1000];
      
      gets(zf);
      len = (zf);
      
      if(zf[0]==' ')
      num = 0;
      else 
      num = 1;
      
      for(i = 0; i < len - 1; i++)
      {
        if(zf[i]==' '&&zf[i+1]!=' ')
        num++;
      }
      printf("%d",num);
    
    return 0;
    }

    2)设计思路

    3)本题调试过程中遇到的问题及解决方案

    问题一:这题还没写老师就告诉我们答案了,不过我还是了解一下strlen函数的使用方法:计算字符串的长度,但是不包括''在内

    4)运行结果截图

    题目二:统计一行文本的单词个数

    1)代码截图

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(void)
    {
        int i,j,len;
        char a[20][10],b[10];
        FILE *fp;
        
        if((fp=fopen("E:\wangweihan.txt","a+"))==NULL) 
    {
        printf("File open error!
    ");
        exit(0);
    }
        for(i = 0 ; ; i++)
    {
        fscanf(fp,"%s",a[i]);
        if(a[i][0]=='#')
        break;
        i++;
        }
        a[i][0] = '';
        len = i; 
        for(i = 0 ; i < len ; i++)
        {
             for(j = 1 ; j < len-i ; j++) 
            {
               if(strlen(a[j-1]) > strlen(a[j]))
                {
                strcpy(b,a[j]);
                strcpy(a[j],a[j-1]);
                strcpy(a[j-1],b);
               }
           }
        }
        fprintf(fp,"
    ");
        for(i = 0 ; i < len ; i++)
        {
        fprintf(fp,"%s ",a[i]);
        }
        if(fclose(fp))
       {
        printf("Can not close the file!
    ");
        exit(0);
       }
        return 0;
    }

    2)设计思路

    3)本题调试过程中遇到的问题及解决方案

    问题一:把代码改成文件格式还是不会

    问题一的解决方案:借鉴了别人的代码把我的代码改成了文件格式,然后在百度里找到了strcpy函数的使用方法:src字符数组复制到dest数组中,如果dest数组本身有数据,会把src里的数据全部复制到dest中,如果dest中有数据小于src地址长度的将会被覆盖,而大于src长度的将保留,结合这些资料,我写出了我的代码

    4)运行结果截图

    题目三:第五周预习题

    A 、单选题7

    2-1、下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是( )。 (2分)
    2-2 、int *p 的含义是 (2分)
    2-3、如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 () 。 (1分)
     
    2-4、变量的指针,其含义是指该变量的( )。 (1分)
     
    2-5、有如下程序段
    int *p,a=10,b=1;
    p=&a; a=*p + b;
    

    执行该程序段后,a的值是 (2分)

    2-6 、对于下列程序,正确的是() 。 (2分)
    void f(int *p)
    {
          *p = 5;
    }
    int main(void)
    {
          int a, *p;
    
          a = 10;
          p = &a;
          f(p);
          printf(“%d”, (*p)++);
    
          return 0;
    }
    
     
    2-7、执行如下程序段,打印输出的内容是: (2分)
    #include <stdio.h>
    void fun (int c, int *d) {
        c++;
        (*d)++;
    }
    int main ( ){
        int a=5, b=9;
        fun(a, &b);
        printf("%d, %d", a, b);
        return 0;
    }
    

     预习题总结与心得:通过自学指针以及这几个题目,我大致了解了数组的作用,指针贮存的是一个地址,相比数组而言,指针是间接的访问。

    目前存在的疑惑:指针的调用

    题目四:挑战题

     简单的来说,不会写,以下是我对这个题目的一些拙见

    本次挑战题在上周的基础上增加了矩阵的要求,我认为可以将数组的字符串长度先算出来,然后存到数组里面,然后使用if语句进行判断,最后依次输出吧。

    四、学习进度条

    时间

    这周所花时间

    代码行数

    学到的知识简介

    目前比较迷惑的问题

    第一周

    5小时

    80

    初步了解数组

    数组的引用

    第二周

    6小时

    200

    指针的了解

    完全没听懂老师上课在讲什么,继续努力

    第三周

    7小时

    200

    文件与数组的使用

    没看到代码运行后文件的内容发生改变

    第四周

    9小时

    120

    冒泡法,选择排序法

    冒泡法不会

    第五周

    9小时

    120+

    字符型数组

    把代码改成文件格式

    五、累积代码行数及博客字数

    六、结对编程感想

    对于这次结对编程,我感觉在互相讨论的过程中加深了自己对以前知识的理解,同时又学会了一些新的知识,感觉结对编程还是可以促进编程能力的

     总结:对于这次作业,感觉·PTA上面的题目较博客里的题目要简单很多,通过助教的思路以及新的函数解决PTA的题目并不是特别困难

  • 相关阅读:
    如果你正在找工作,也许这七个方法会帮到你
    WebSocket 浅析
    关系数据库涉及中的范式与反范式
    MySQL字段类型与合理的选择字段类型
    ER图,数据建模与数据字典
    详解慢查询
    MySQL的最佳索引攻略
    后端技术演进
    MySQL主从复制(BinaryLog)
    MySQL读写分离
  • 原文地址:https://www.cnblogs.com/wangweihanqq2001/p/10622853.html
Copyright © 2020-2023  润新知