Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

XuetangX

高级语言程序设计

Jilin University via XuetangX

Overview

荷兰著名计算机学家Edsger W. Dijkstra曾说过,“我们所使用的工具深刻地影响着我们的思维方式和思维习惯,进而也将深刻地影响着我们的思维能力”。 计算机技术的普及已经深刻影响了现代人类生活的各个方面。“计算思维”就如同读、写、算能力一样,是所有人必须具备的思维能力。

计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。编程能力即是这种思维能力的一种体现。

本课程目标是通过对C语言的学习和使用,使您掌握结构化程序设计语言的基本概念、思想和方法,从而获得初步的程序设计能力(能够编写小规模程序解决实际问题),逐步养成并具备一定的计算思维能力。

课程以实际应用为背景,以“案例驱动”不断引入相关知识点,随着案例不断深入,将程序设计各相关知识点展现在读者面前,形成一条完整知识链条。因案例都是常见实际应用或初等数学问题,和生活密切相关,所以您大可不必担心学不会。

为什么选C语言作为载体语言?C语言作为当代最优秀的程序设计语言之一,它的优点远远超过了它的缺点。经验表明,程序设计人员一旦学会使用C语言之后,就会对它爱不释手;而且很多语言都是在它基础上发展起来的;所以C语言当之无愧地成为思想交流的首选载体语言。


参考资料:

1. 新形态教材:《程序设计基础》(第三版)陈娟、张长海,2019年8月 北京 高等教育出版社

京东  本教材提供了相应内容的电子教案、例题代码、部分作业参考答案,以及重点内容的视频;可以扫描书上的二维码获得,或者访问http://abook.hep.com.cn/1860420 使用书后粘贴的用户名和密码登录访问。


2. 习题集:《程序设计基础习题集》张长海、陈娟、兰书梅,2008年7月 北京 清华大学出版社 当当网 。本书为大家提供了更多题目,由浅入深训练编程能力。

3. C语言规范:《C语言参考手册(原书第5版)》(美)Samuel P. Harbison III / Guy L. Steele Jr. 
邱仲潘 等译  2003年8月
机械工业出版社。此书先后有多个译本,都能在网上搜到。如果您想更加深入了解C语言的特性,此书可以为你提供更多的帮助。 


 

 常见问题

Q1: 如何学好该课程?

A1: “程序设计”是实践性极强的课程,想要学好就必须上机实践。对于零基础的同学可以分成如下3步:

    (1) 线上学习。通过线上视频和相关资料学习,记忆并理解课程知识点、体会例题代码编写思路、读懂并记下例题代码。请注意这里不是死记硬背,而是理解记忆,举个例子比如某个判断是"a大于等于b",您需要明白为什么要判断"a大于等于b",在您临摹代码时您很可能会将此判断写成"a不小于b",同样合理。

    (2) 临摹代码。线上学习后,线下需要自己动手在开发环境中临摹例题代码,即将您记忆的代码录入到开发环境、运行调试。这期间代码可能会正常执行;但更多时候会会出现各种各样错误,此时就需要和例题代码比较找不同,分析造成不同的原因和由此带来的后果,反复修正代码;达到强化学习的目的。

    (3) 自主编程。在您将所有例题代码弄懂调通后。此时完成作业,将想法写成代码并运行调试,使其通过所有测试点,训练自己编程解决实际问题的能力。通常一道题有用多种解法(代码),不妨试着分析比较不同方法间的差别或优劣,这对提高编程能力有很大帮助。由于受课程平台题型限制,目前还不能为大家提供在线测评类作业,大家可自行去如:洛谷、Leetcode、牛客、PAT等网上在线测评网站进行训练。

    “三个臭皮匠能顶一个诸葛亮”说明了群体学习的重要性。作为初学者,难免会遇到问题,除了问老师;我们鼓励各位同学,组成虚拟学习小组进行交流:如在平台论坛中分享你的学习经验、回帖讨论问题等。

     如果您还有参加ACM程序设计大赛的计划,则可以去网上各类ACM在线评测系统刷题,得到进一步的提高。有关ACM程序设计大赛的内容,请查看百度百科。

 

Q2:  使用什么样的C语言开发环境?

A2:  Code::Blocks和VC6.0 是本课程所涉及的两种开发环境。当然还有其他开发环境可以免费获得,完全由您自己决定。

(1)VS community 微软免费环境:

    http://visualstudio.microsoft.com/zh-hans/vs/community/

(2)Codeblocks 开源跨平台多语言开发环境:

    http://www.codeblocks.org/downloads/26

(3)DEVC++ :

    http://bloodshed-dev-c.en.softonic.com/

 

Q3:  如何在win10下安装VC++6.0?

A3:VC++6.0是非常经典的C/C++语言开发环境,小巧精炼、功能强大;但由于windwos操作系统在XP后对其兼容性变差,导致win10下运行VC常出现错误。具体解决方法可以参照"百度经验"

    http://jingyan.baidu.com/article/da1091fb6e5cba027849d6be.html 。

 

Q4:学习中有了问题怎么办?

A4:(1)在课程论坛里问老师和同学。(2)问百度(http://www.baidu.com )关键字搜索。(3)试着去CSDN论坛(http://bbs.csdn.net/ )看看技术大佬们怎么回答。

Syllabus

  • 第1章 绪论
    • 1.1 鸡兔同笼——计算
    • 1.2 算法
    • 1.3 程序
    • 1.4 C语言
  • 第2章 顺序程序设计
    • 2.1 求绿化带宽度
    • 2.2 基本符号
    • 2.3 数据
    • 2.4 语句
    • 2.5 表达式
    • 2.6 顺序控制结构
    • 2.7 数据类型
    • 2.8 输入输出
    • 2.9 程序设计实例
  • 第3章 分支程序设计
    • 3.1 判断成绩是否及格——双分支程序设计
    • 3.2 成绩加上获奖信息——单分支程序设计
    • 3.3 布尔类型
    • 3.4 获奖分等级——多分支程序设计
    • 3.5 枚举类型
  • 第4章 循环程序设计
    • 4.1 计算平均成绩—循环程序设计
    • 4.2 计算全班每人平均成绩——多重循环
    • 4.3 程序设计实例
  • 第5章 模块化程序设计——函数
    • 5.1 求给定三角形重心
    • 5.2 函数
    • 5.3 程序设计实例
  • 第6章 批量数据组织——数组
    • 6.1 成绩统计——数组类型
    • 6.2 统计多科成绩——多维数组
    • 6.3 程序设计实例
    • 6.4 线性表——分类与检索
    • 6.5 带学号的成绩排序——数组初值
    • 6.6 表示姓名——字符串
    • 6.7 类型定义
    • 6.8 线性表——栈和队列
  • 第7章 指针
    • 7.1 指针与变量
    • 7.2 指针操作
    • 7.3 指针与数组
    • 7.4 指针与字符串
  • 第8章 表单数据组织——结构体
    • 8.1 成绩单管理
    • 8.2 保存成绩单——结构体
    • 8.3 程序设计实例
  • 第9章 再论函数
    • 9.1 作用域
    • 9.2 参数
    • 9.3 函数值
  • 第10章 递归程序设计
    • 10.1 递归程序设计
    • 10.2 程序设计实例
    • 10.3 间接递归
  • 第11章 外部数据组织—文件
    • 11.1 户籍管理
    • 11.2 文件概述
    • 11.3 文件打开关闭
    • 11.4 文件IO操作
    • 11.5 文件定位
    • 11.6 程序设计实例
  • 第12章 程序开发
    • 12.1 自顶向下逐步求精
    • 12.2 结构化程序设计原则
    • 12.3 程序风格
  • 第13章 动态数据组织
    • 13.1 保存实数序列——动态数据结构
    • 13.2 动态变量
    • 13.3 链表
    • 13.4 程序设计实例
  • 期末考试

    Taught by

    Changhai Zhang , Juan Chen, and Shuai Lv

    Tags

    Reviews

    Start your review of 高级语言程序设计

    Never Stop Learning.

    Get personalized course recommendations, track subjects and courses with reminders, and more.

    Someone learning on their laptop while sitting on the floor.