C语言研究性学习的路线(5)

 C语言研究性学习的路线

现行的多数C语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常“误导”读者,于是,“死记硬背”便成了学习C语言的唯一选择。本文以拙作《新编C语言程序设计教程》(清华大学出版社出版,配套视频zeq126.56.com)为基础,探讨了C语言的研究性学习。

C语言的知识点有:

1.        C语言与计算机的关系

2.        表达式的求值

3.        逻辑运算及选择结构

4.        算法及循环结构

5.        数组的作用及准确理解

6.        函数的作用及准确理解

7.        指针的作用及准确理解

8.        自定义数据类型及文件

这几部分相辅相成,构成了一个有机的整体。分析如下:

五、 数组的作用及准确理解

重点:

1.数组的作用。

(数组解决了定义多个变量的麻烦,而且数组中的多个变量依据下标构成了有序的一组,可以用统一的方式对大批量的数据进行处理。)

2.数组的准确理解。

(全面理解数组的条件还不成熟,现在只需正确理解何谓“数组的元素仍为数组的数组称为多维数组”,定义一个多维数组实际上可以使用几个什么样的变量即可。)

3.字符数组与字符串的关系。

(字符数组首先是一个普通的数组,但其中可能存储了一个字符串,从而变成了一个“字符串”,于是就“特殊”了。可以直接用字符串字面量初始化,直接输入输出。)

难点:

使用循环以统一的方式处理数组中的数据,实际上还是构造循环的能力。再次提醒:先用超级计算机“我们的大脑”分析解决问题,用自然的方式写出算法,再翻译成C语言程序,最后再调试执行对比分析,体会一个道理“C程序只是模拟了我们解决问题的方法”。除了提醒,本章没有任何补充,因此就不详细分析相关例题了,欲了解分析过程者请看视频。

(一)一维数组

重点:

1.定义一个一维数组实际上是定义了几个类型相同的变量。相关变量的标识名中切记下标从零开始。

2.定义与使用的不对称性。

(定义时不可以用变量给出数组长度,使用数组元素时可以用变量作为下标。scanf(“%d”, &a[0]); scanf(“%d”, &a[1]); ...... scanf(“%d”, &a[5]);可以改写为for(i=0;i<=5;++i) scanf(“%d”, &a[i]);)

3.初始化的特点。

(初值用完后如何理解给剩余的数组元素赋值为0?可省略数组长度。初值均相同时如何初始化?为0时={0};不为0时一个个地写={1,1,...,1};)

难点:

一维数组的应用。

例6-3再次表明规律是在罗列数据的基础上得到的。

例6-4上一章的思考题,没有数组,即使得到了算法,我们也“无法”写出程序。

例6-5在数组的配合下,我们可以用一种方法对多个数据排序。

例6-6一维数组也可输出成“二维数组”的样子。

(二)二维数组

重点:

1.一维数组的元素类型仍为一维数组,此时的数组什么样子?

2.定义了一个二维数组,如int a[3][4];,分别定义几个什么样的变量?有几种初始化的方式?

(3个有4个元素的整型一维数组a[0],a[1],a[2]。12个整型变量a[0][0],a[0][1],...,a[2][3]。相对应的初始化方式int a[3][4]={{1,2,3,4},{...},{...}};和int a[3][4]={1,2,3,4,...};)

3.三维数组如何理解?

难点:

二维数组的应用。

例6-7列出相关数组元素的名称,即可总结出循环规律。

例6-8找第i行最大值时不找出最大值只找出其下标j的值,即a[i][j]就是最大值。根据具体情况灵活地处理问题。

例6-9杨辉三角形与上一章的图形有何不同?

(三)字符数组和字符串

重点:

1.字符数组本身的特点。

2.字符数组与字符串的关系。

3.字符数组独有的特点。(用格式字符串%s和专用的输入输出函数输入输出数据时有何不同?)

难点:

字符串的相关示例。

例6-12体会scanf函数的处理过程。(通过输入设备输入的数据实际上只是一串字符)

例6-13特别注意一个二维数组看成两个一维数组的用法。

(四)综合示例

重点:

1.大数的表示。

2.大数的输出。

3.大数的计算过程。

体会程序是数据结构加算法的思想。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值