浙江大学 浙江大学

程序设计入门—C语言

所属微专业:

图片
课程概述

本课程不提供教学服务、作业批改及证书发放。

程序设计是一门基础课程。对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯;对于非计算机专业而言,程序设计的学习有助于理解计算机的能力所在,理解哪些是计算机擅长解决的问题,怎样的方式方法是计算机擅长的手段,从而能更好地利用计算机来解决本专业领域内的问题。

C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。

对于非计算机专业的学生,学习本课程的主要目的是掌握程序设计的基本方法,C语言是教学媒介。但是对于计算机专业的学生,本课程是向后续的计算机组成、操作系统、编译原理、体系结构等课程前进的基石。

本课程是以C语言来讲授程序设计的入门知识,而非具体教授C语言,关于C语言的全面知识,还需要学习本课程的后续课程——“C语言程序设计进阶”。

程序设计是实践性很强的课程,该课程的学习有其自身的特点,听不会,也看不会,只能练会。你必须通过大量的编程训练,在实践中掌握编程知识,培养编程能力,并逐步理解和掌握程序设计的思想和方法。在这里所提供的,只是基础的知识讲解,要想学会编程,还需要更多时间的投入和努力。

为了学习编程,你需要有一台计算机,安装必要的编程软件。无论是MS Windows、Mac OS X还是Linux,都有适合C语言编程的软件。

本课程的后续课程是《C语言程序设计进阶》

证书要求

本课程不提供证书服务。


预备知识

作为第一门编程课,本课程可以零基础学习。大学计算机(大学计算机基础、计算思维导论)等课程对于理解本课程的部分内容有帮助,但这些课程的学习不是必须的。


授课大纲

第一周:从做点计算开始

1.1 第一个程序

C语言的编程软件选择太多,我们推荐Dev C++;如何在Dev C++中编辑、编译和运行程序;详解第一个程序:程序框架、printf、出错怎么办;做点计算:如何让程序输出算术结果

1.2 数据是用变量来表示的

变量定义:变量是做什么的,如何定义一个变量;变量赋值与:a=b表示把b的值赋给a,而不是它们相等;变量输入:如何让程序读入用户输入的数字 

1.3 计算是由表达式来完成的

表达式:运算符和算子,取余计算,程序就是数据加计算;浮点数:整数运算的结果只有整数部分,不然就要用浮点数
;运算符优先级:优先级、结合关系、赋值运算符;复合赋值和递增递减

第二周:做点决定

2.1 做比较

做判断:if语句根据条件决定做还是不做;判断的条件 关系运算,做比较的运算符; 否则的话:如果条件不成立呢?; 逻辑运算:对比较的结果进行与、或、非运算

2.2 复杂的判断

逻辑运算;嵌套的if-else:在if或else后面要执行的还是if语句,就成了嵌套; 级联的if-else if:像分段函数这样的程序就可以写成级联的if; if-else的常见错误:没有{}、多了;、=和==这些都是常见的错误 

第三周:不断地重复

3.1 重复做事情

循环:有些事情就得用循环才能解决;while循环:就像if一样,条件满足就不断地做后面大括号里的句子;do-while循环:不管三七二十一,先做循环内的句子再判断条件

3.2 重复做计算

第四周:循环控制

4.1 for循环

for循环:这是最古老的循环; 循环的计算和选择:如何计算循环的次数,如何选择不同的循环

4.2 循环控制

循环控制:如何用break和continue来控制循环 嵌套的循环:在循环里面还是循环; 从嵌套的循环中跳出:break只能跳出其所在的循环 

4.3 循环计算

猜数游戏;算平均数;整数求逆;前n项求和;整数分解;求最大公约数 

第五周:经常做的事情可以摘出来

5.1 初见函数

函数的定义和调用
从函数中返回 

5.2 使用函数

函数原型:用来告诉编译器这个函数长什么样儿
参数传递:调用函数的时候,是用表达式的值来初始化函数的参数 

第六周:要记录很多数据5.1 数组

5.1 初试数组
数组的使用:如何定义和使用数组,数组的下标和下标的范围 

5.2 数组运算

数组的例子:统计个数 数组例子:素数
二维数组

第七周:计算机不只是做数学

7.1 指针初步

7.2字符类型

7.3 字符串处理函数


参考资料

何钦铭、颜晖,《C语言程序设计(第3版)》,高等教育出版社,2015年

所属微专业

所属系列课程

分享