有关C语言学习的调查

你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?

  • 我主要是通过教材、网课、还有老师的讲授进行C语言基础语法的学习,当然学会了这些基础语法之后,我还在老师提供的网站上,通过大量做题使自己学到的基础知识加以应用。
  • 对于C语言的学习我认为首先必须掌握大量的理论知识;其次要把理论与实践相结合;最后再加以升华,学会灵活变通,解决各种问题。

目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?

  • 保守估计自己写过的代码应该有15000行。
  • 有些代码自己认为写完了,但是运行结果不对,不知道问题出在哪里,后来就放弃了。还有一些程序较为复杂,参考了一些网上的代码,自己当时认为理解了,但是当再次用到的时候,自己还是无法写出。
  • 在保证一定的量的基础上,尽量做到精益求精。

学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?((x[4])())[4]这个声明中的x是什么东东?

  • 数组指针:指向数组的指针,是一个指针变量,指针变量中保存的是一个数组的首地址。
  • 指针数组:由若干个基类型相同的指针组成的数组。
  • 函数指针:指向函数的指针,是一个指针变量。
  • 指针函数:返回值是指针的函数。
  • 不太清楚x是什么。

学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?

  • 我认为文件和流是整体与局部的关系,流操作就是一种“分段操作”的理念。
  • 文本文件中的每一位数字都单独占用一个字节的储存空间;而二进制文件则是把整个数字作为一个二进制数来储存的。
  • "r"、"w"分别用来进行文本文件的只读和只写,"b"与上面的字符串结合,可实现二进制文本的相应操作。

学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?

  • 面向过程程序设计是一种以过程为中心的编程思想。
  • 它解决问题的方法是自顶向下、逐步求精。

在C语言里面,什么的模块?你写过多个源文件的程序吗?

  • 将总任务分成若干个子任务,每一个子任务就代表一个模块。
  • 我没有写过多个源文件的程序。

学过了C语言,你知道什么是"高内聚,低耦合"吗?这个原则如何应用到高质量程序设计中?

  • 高内聚指的是模块内部的联系越紧密越好,内聚性越强越好。低耦合指的是模块之间联系越松散越好。
  • 要将这个原则应用到高质量程序设计中,简单的说就是模块的功能要相对独立和单一;模块对外的接口越简单越好。

学过了C语言,你如何把握数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。

  • 数组A的内容复制到数组B中
     #include <stdio.h>
     #include <stdlib.h>
     #include <string.h>
     #define N 100
     int main()
     {
        char A[N];
        char B[N];
        gets(A);
        strcpy(B,A);
        printf("%s",B);
        return 0;
     }
    
  • 查找整数数组A中有没有数字5
      #include <stdio.h>
      #include <stdlib.h>
      #define N 8
      #define M 5
      int main()
      {
          int A[N]={1,2,3,4,0,6,7,8};
          int flag=0;
          int i;
          for(i=0;(i<=N-1)&&(flag==0);i++)
          {
              if(A[i]==M)
             {
                flag=1;
             }
             printf("%d\n",A[i]);
          }
         if(flag)
         {
             printf("exist\n");
         }
         else
         {
              printf("no exist\n");
         }
        return 0;
      }
    

  • 对整数数组A进行排序(从小到大,从大到小)
      #include <stdio.h>
      #include <stdlib.h>
      #define N 8
      int main()
      {
         int A[N]={2,7,4,9,5,1,0,6};
         int t;
         int i,j,k;
         for(i=0;i<N-1;i++)
         {
            k=i;
            for(j=i+1;j<N;j++)
            {
                if(A[j]>A[k])//从大到小排列
                //if(A[j]>A[k]) 从小到大排列
              {
                  k=j;
              }
            }
            if(i!=k)
            {
                t=A[k];
                A[k]=A[i];
                A[i]=t;
            }
         }
         for(i=0;i<N;i++)
        {
            printf("%d ",A[i]);
        }
      }
    

写一个程序,统计自己C语言共写了多少代码。

不知道该从何下手

你知道什么是断点吗?给出自己调试程序的例子。

断点是调试器的功能之一,可以让程序中断在需要检测的地方。
breakpoint

posted @ 2019-01-31 14:20  20175313张黎仙  阅读(130)  评论(0编辑  收藏  举报