C语言难点分析
函数:
对于函数最基本的理解是从那个叫main的单词开始的,一开始总会觉得把语句一并写在main里不是挺好的么,为什么偏择出去。其实这是因为对函数还不够 熟练,否则函数的运用会给我们编程带来极大的便利。我们要知道函数的返回值类型,参数的类型,以及调用函数时的形式。事先的函数说明也能起到一个提醒的好 作用。所谓形参和实参,即在调用函数时写在括号里的就是实参,函数本身用的就是形参,在画流程图时用平行四边形表示传参。
函数的另一个应用例子就是递归了,笔者开始比较头疼的问题,反应总是比较迟钝,按照老师的方法,把递归的过程耐心准确的逐级画出来,学习的效果还是比较好的,会觉得这种递归的运用是挺巧的,事实上,著名的八皇后、汉诺塔等问题都用到了递归。 例子:
long fun(int n {
long s;
if(n==1||n==2 s=2;
else s=n-fun(n-1;
return s; }
main( {
printf(\%ld\ }
数组:
分为一维数组和多维数组,其存储方式画为表格的话就会一目了然,其实就是把相同类型的变量有序的放在一起。因此,在处理比较多的数据时(这也是大多数的情况)数组的应用范围是非常广的。
具体的实际应用不便举例,而且绝大多数是与指针相结合的,笔者个人认为学习数组在更大程度上是为学习指针做一个铺垫。作为基础的基础要明白几种基本操作: 即数组赋值、打印、排序(冒泡排序法和选择排序法)、查找。这些都不可避免的用到循环,如果觉得反应不过来,可以先一点点的把循环展开,就会越来越熟悉, 以后自己编写一个功能的时候就会先找出内在规律,较好的运用了。另外数组做参数时,一维的[]里可以是空的,二维的第一个[]里可以是空的但是第二个[] 中必须规定大小。 冒泡法排序函数:
void bubble(int a[],int n {
int i,j,k;
for(i=1,i
for (j=0;j< n-i-1; j++
if (a[j]>a[j+1]
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
} }
选择法排序函数:
void sort( int a[] , int n {
int i,j,k,t;
for (i=0,i< n-1 ;i++
{
k=i;
for ( j=i+1 ;j
if (a[k] k=j ;
if ( k!=i
{
C语言难点分析



