你将学到什么

Computer Display Standard

C Programming

C++

课程概况

如果说学习过《计算导论与C语言基础》,你已经迈入了C语言的殿堂,那么《C程序设计进阶》将帮助你更上一层楼,理解“结构化程序设计的基本思想”,掌握“C程序设计的基本技巧”,养成“良好的编程习惯和编程风格”,编写出“真正具有生命力的计算机程序”。完成这门课的学习,你将能解释C程序设计语言的基本概念与知识,并且使用C语言编写计算机程序解决生活工作中的实际问题。

课程大纲

周1

完成时间为 5 分钟

欢迎加入《C程序设计进阶》

在学习完“理性认识C程序”之后,我们希望同学们能够自己动手编写一些简单的C程序了!如果你还没有具备这个能力,一个可能的原因是因为你还没有进行“足够的训练”。因为,学习一门程序语言,需要你获得的有两样东西——“知识”和“技巧”。“知识”可以通过讲授传递,但“技巧”却只能通过训练获得。因此,我们鼓励同学们在“理性认识C程序”这个迭代

周期中,多多进行简单的编程练习,以便获得“技巧”。(注意:我们特别鼓励同学们多多进行“简单”的编程练习,因为,所有复杂的问题,都是简单问题的组合。我们的教学实践表明:多做简单练习,不但可以提升学习者的学习信心,也非常有助于编程技巧的提升!)在完成“理性认识C程序”部分的学习之后,我们将开始新的迭代

周期——“结构化的程序”。在这个部分,我们将讲授一种基本的、用于将程序组织成“模块”的语言成分——函数。函数实际上是C程序的基本组织单位,是C程序设计中的重要组成部分。在这个迭代

周期中,同学们不仅要学习函数的定义方式、调用方式,还要学习一种重要的函数使用方法——递归。我们将讲授递归调用的基本机理,并讲授“利用递归解决问题的技巧”。这部分,讲本课程C程序设计部分的一个难点!不过,请同学们不要担心,我们将力图通过最简明的讲解方式,帮助大家掌握“递归”的使用方法,力争“化困难于无形”。我们一起努力吧!PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长。

2 个视频 (总计 5 分钟)

周2

完成时间为 5 小时

C程序中的函数

本次课,我们讲授“函数”的基本概念、定义方式、调用方式、参数传递方式等基本知识。其间,我们还将讨论“变量的作用域”的问题。PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)

6 个视频 (总计 97 分钟), 1 个测验

周3

完成时间为 5 小时

函数的递归

本次课是C程序设计部分的一个难点。但,请不要担心,我们将按照“由简单到复杂”的方式进行讲解。我们先为大家讲解“递归调用”的执行过程,以便让大家看到“其实,递归调用与普通函数调用没什么不同”的道理,在此基础上,再去详细分解递归调用的过程,以印证我们学到的知识。 在此基础上,我们将通过几个典型的递归函数设计范例,向大家讲授递归函数的作用和使用技巧。 需要强调的是,如果在这个部分大家感觉到困难,请不要气馁:)因为,根据我们的教学经验,80%以上的同学都会感觉到同样的困难。当你也感觉困难时,可以先耐心听完我们的讲解,然后再通过练习慢慢体会。只要稍加练习,这个困难的感觉就会逐渐消失,因为,到那时,你已经对递归越来越熟悉了:)

7 个视频 (总计 129 分钟), 1 个阅读材料, 1 个测验

周4

完成时间为 2 小时

指针(一)

本次课我们为大家讲解“指针”“指针变量”“指向变量的指针”等名词的基本含义。在此,需要特别提示大家:请大家务必明确区分上述的基本概念,以便在后面的课程中准确的使用它们。 同时,我们还将向大家阐述一个重要的理解——数组名 与 指向数组首元素的指针 之间的关系,也请大家务必反复印证,以便日后轻松使用:)

8 个视频 (总计 113 分钟), 1 个测验

周5

完成时间为 4 小时

指针(二)

这次课是上次课的延续,我们将为大家讲解“指针与字符串”之间的关系,“二维数组名的含义”(这也是一个小难点,不过,只要大家谨记上次课中的结论,一切将会变得简单:)),以及“指针与函数参数”之间的关系(这种情况很常见哦:))。

4 个视频 (总计 52 分钟), 1 个测验

周6

完成时间为 4 小时

指针(三)

这次课我们将紧跟上一节的脚步,继续为大家讲解“指针做函数参数”及“指针做函数返回值”的两种情况,到此为止,你应该对于指针在C程序设计里的应用有一个比较全面的了解啦,不妨在本次课末尾画个思维导图考考自己,是否弄清楚了这个重要的概念。

4 个视频 (总计 55 分钟), 1 个测验

周7

完成时间为 1 小时

结构体与链表

这次课,我们将为大家讲解“结构体”的基本概念、定义方式和使用方式,结构体的使用将为某些程序的编写带来极大的便利:)在此基础上,我们还将介绍“链表”的基本概念和创建方法。需要说明的是,在我们的课程上,链表将不作为一个重点练习的内容,因为,在后续的课程中,它将被反复大量的讨论:)

5 个视频 (总计 52 分钟)

周8

完成时间为 1 小时

最后一次课

这是C程序设计课程的最后一次课,也是一次“承前启后”的课程。我们将介绍“面向对象”编程方法的基础思想。我们希望通过这个简短的介绍能够让大家对“面向对象”的软件设计方法有一个最初步的了解,以便顺利步入后续的课程:)

3 个视频 (总计 45 分钟)

周9

完成时间为 3 小时

期末考试,课程结语

恭喜你顺利完成了所有教学模块的学习,来到了我们的终极挑战-期末考试!不要紧张,考试中所涉及的内容都是为了帮助你自我检测是否真正掌握了C程序的相关知识,达到了你的目标,所以只要认真复习所学的模块,我想你一定没有问题的!加油吧,我在这趟《程序设计与算法》学习旅途的下一站等你哦!

参考资料

基本资料

主要参考本课程所提供的讲义资料,以及来自http://ica.openjudge.cn/的相关练习题。

参考教材

[1] Computer Systems -A Programmer's Perspective, Randal E.Bryant, David O'Hallaron, Prentice Hall, 2002.

[2] C++ Programming Today (2 edition), Barbara Johnston, Prentice Hall, 2007.

进阶 c程序设计语言,C程序设计进阶相关推荐

  1. 克尼汉的c程序设计语言,c程序设计语言 英文版

    ????<经典原版书库:C程序设计语言>(英文版)(第2版)第1版中介绍的C语言成为后来广泛使用的C语言版本--标准C的基础.人们熟知的"hello,World\\\程序就是由& ...

  2. C 家族程序设计语言发展史

    目录 文章目录 目录 程序设计语言发展史 程序设计语言发展史 1950 年代末期,大量新的计算机编程语言涌现,而这些新语言大都围绕单个体系结构,如 UNIVAC 计算机.IBM700 系列计算机等进行 ...

  3. 计算机编程工程师理论知识,结构工程师基础知识点:程序设计语言

    一.程序设计语言 计算机程序设计语言又称算法语言.目前国内外比较通用的算法语言有多种,如BASIC.FORTRAN.PASCAL.ALGOL.C等.随着算法语言本身的发展和完善,同一语言中还有不同的标 ...

  4. 【软考】程序设计语言复习指南

    1.根据考纲 根据考纲: (1)汇编.编译.解释系统的基础知识和基本工作原理. (2)程序设计语言的基本成分:数据.运算.控制和传输,程序调用的实现机制. (3)各类程序设计语言的主要特点和适用情况: ...

  5. c语言成颖pdf,程序设计语言开篇导学.ppt-资源下载在线文库www.lddoc.cn

    <程序设计语言>开篇导学.ppt 程序设计语言开篇导学,成颖 教授 博士生导师 南京大学信息管理学院,1.引言,C语言程序设计是计算机相关学科中的一门基础课,也是培养结构化程序设计思想以及 ...

  6. 软件设计师教程(四)程序设计语言基础知识

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 程序设计语言知识 软件设 ...

  7. 程序设计语言原理复习总结 北航计算机专业课

    这门课是上学期收获最大的一门,也是花费时间最多的.有一个大作业,是设计并开发一门新的语言.期末还有考试. 如果大作业被评为优秀,就不用参加期末的考试了.期末考试难度不低,上八十的很少.复习的话要根据重 ...

  8. 计算机基础(05)程序与程序设计语言

    5 程序设计基础 5.1 程序与程序设计语言 5.1.1 程序设计语言 @1 程序设计语言:用于编写计算机程序的语言,语言的机制是一组记号和规则 @2 程序设计语言的基本成分: 数据成分:描述程序所需 ...

  9. c语言与程序设计曹计昌pdf,C语言与程序设计

    本书是华中科技大学"C语言程序设计"精品课的主教材.本书力图完整.全面.清楚地介绍C语言的基本语法和语义,同时通过对一些精心提炼的算法实例进行分析和编程设计,培养学生算法设计.程序 ...

最新文章

  1. Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效
  2. boost之asio同步io使用实例
  3. 解决方案:用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
  4. Unknown SSL protocol error in connection to xxx:443
  5. VmWare下安装CentOS6
  6. Java调用跟踪系统_Tracer:在分布式系统中的调用跟踪和日志相关
  7. 一旦上云,欲罢不能,带大家薅一薅“云羊毛”
  8. jeecg 查看 页面 父子表 横向滚动条效果 官方被禁用
  9. 有助于改变你命运的5个处世潜规则
  10. SharePoint【学习笔记】-- SPWeb.EnsureUser()注意AllowUnsafeUpdates=true
  11. android的keystore多个别名,关于android:KeyStore找不到我的别名的密钥
  12. 识人 用人 激人 留人 斩人
  13. 互联网晚报 | 1月4日 星期二 | 中国移动1月5日在上交所上市;元旦档总票房破10亿;特斯拉连续6个季度交付量创纪录...
  14. BOXI3 SDK 检索所有使用了某个universe object的报表
  15. 链表--逆时针旋转一个链表
  16. 针对WEB服务器的攻击途径和防范措施
  17. 企业快速建站改选多少价位的程序模板合适
  18. 模拟器飞行训练-2022.12.1
  19. 网站安全检测之用户密码找回网站漏洞的安全分析与利用
  20. ABAP BAPI:BAPI_PR_CHANGE批量修改采购申请审批状态等

热门文章

  1. HDU 5575 Discover Water Tank(左偏树)
  2. 沈阳故宫展示吉语纹饰清宫文物喜迎农历新年
  3. WordPress资源下载管理插件
  4. 关于base64.js的一些介绍
  5. Java 常用集合类学习
  6. 京东云亮相2021世界物联网博览会,首发物联网产业实践全景图
  7. 位(bit),字节(Byte),KB,MB,GB,TB,UTF-8,Unicode,字符集,排序规则
  8. ORIGYN 基金会与欧洲足联儿童基金会合作,推出“NFTs for Good”计划
  9. redis修改配置重启命令_如何从命令行更改Redis的配置
  10. 洛谷P1536 村村通