你是怎么学习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 ",A[i]); } if(flag) { printf("exist "); } else { printf("no exist "); } 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语言共写了多少代码。
不知道该从何下手
你知道什么是断点吗?给出自己调试程序的例子。
断点是调试器的功能之一,可以让程序中断在需要检测的地方。