hi,小慕
C语言程序设计
第8次开课
开课时间: 2022年02月21日 ~ 2022年07月08日
学时安排: 3-5小时每周
当前开课已结束 已有 404 人参加
老师已关闭该学期,无法查看
课程详情
课程评价(159)
spContent=C语言是一种面向过程的高级程序设计语言,它是按照结构化的编程思想、模块化的程序设计方法来进行程序的编写和代码的组织。C程序设计语言主要内容有:面向过程的程序设计流程、C程序的执行过程、数据类型、运算符和表达式、顺序结构、选择结构和循环结构、数组、函数、指针、编译预处理、结构体和共用体、位运算、文件操作等。C语言功能强大,数据类型和运算符丰富、语言表达能力强,使用指针又使C语言非常灵活,指针是C语言的精华所在。C语言的特点使它既适合编写系统软件,又适合编写应用软件。 本课程可以作为普通本科、应用型本科、职业院校的计算机、电子、机械、电气类等专业开设程序设计语言课程教学资料,也是计算机等级考试和编程爱好者的重要参考。
C语言是一种面向过程的高级程序设计语言,它是按照结构化的编程思想、模块化的程序设计方法来进行程序的编写和代码的组织。C程序设计语言主要内容有:面向过程的程序设计流程、C程序的执行过程、数据类型、运算符和表达式、顺序结构、选择结构和循环结构、数组、函数、指针、编译预处理、结构体和共用体、位运算、文件操作等。C语言功能强大,数据类型和运算符丰富、语言表达能力强,使用指针又使C语言非常灵活,指针是C语言的精华所在。C语言的特点使它既适合编写系统软件,又适合编写应用软件。 本课程可以作为普通本科、应用型本科、职业院校的计算机、电子、机械、电气类等专业开设程序设计语言课程教学资料,也是计算机等级考试和编程爱好者的重要参考。
—— 课程团队
课程概述

C语言是一门软件开发最为基础而且是最重要的语言。它是用面向过程的思想构建的编程语言,按照“自顶向下,逐步求精”的面向过程编程思想来进行编程,它是一门结构化编程语言,有顺序、选择、循环三大程序结构;它是一门模块化编程语言,给我们建立编程过程中“高内聚、低耦合”的模块化编程方法,让我们树立团队开发的理念;它引入了指针,让我们痴迷这个事物,可以让我们编写的程序异常高效,结构体和共用体不是面向对象,但是让我们建立了面向对象的雏形。C语言功能非常强大,它不仅是基础语言,它可以直接用于各种开发。学习好C语言,你在学任何其它语言,都会感觉到轻车熟路。

本课程共分12大部分。

第一部分:主要讲述程序设计的各种概念,初步认识C语言,了解它的特点,同时熟悉面向过程的基本流程。

第二部分:主要讲述数据类型、标识符,常量、变量以及各种运算,在这部分里面,一定要理解变量的本质问题,要掌握二进制以及各种进制之间的转换。要知道内存的详细构造,要深刻理解各种数据类型的变量在内存的存储形式。

第三部分:三大程序结构的最简单结构-顺序结构程序设计;

第四部分:三大程序结构的最常见结构-选择结构程序设计;它有两种表示形式:一种是用if...else...来表示,一种是用switch来表示,同时条件表达式也可以表示选择结构;

第五部分:三大程序结构的功能最强大的结构-循环结构程序设计;它有while、do...while...、for三种表示方法,同时,利用选择结构和goto语句也可以实现循环结构的功能;

第六部分:数组,任何一门语言,如果不能批量处理数据,那么这个语言一定不能很好的运用和发展。数组,让批量存储成为可能,本部分内容,一定要深刻理解二维数组和多维数组如何在内存中存储的。内存的逻辑结构是一个一维的逻辑结构。

第七部分:函数。团队开发,必须要使用函数,本章开始,要学会将所有的代码实现的功能封装成函数,这样方便所有的程序开发人员调用,这样团队开发才成为可能。

第八部分:指针。指针非常灵活,一定要掌握,如果你不想学习或使用指针,建议你不要学C语言,指针是C语言的精髓,要想成为战无不胜的资深程序员,不讨厌指针是你的不二选择。

第九部分:编译预处理。C语言是编译型的语言,它和解释型的语言有什么区别,本章节内容将会给你一个很好的诠释,本部分内容对于你理解C程序的编辑过程最好不过了。函数功能固然强大,打开函数库看看,很多函数是使用宏来实现的,宏定义是本章的一个亮点。

第十部分:结构体和共用体。任何事物都是一个有机的整体,面向对象的编程思想没有建立的时候,C语言的缔造者已经发现了人类认识事物的规律是先整体后局部。结构体是将一个事物的各种固有特征有机地组合在一起。

第十一部分:位运算。直接按二进制位运算,有了指针和位运算,计算机的一切都在你掌控之中。

第十二部分:文件。仅仅学习以上知识,开发不了程序,程序是用来处理数据的,数据不能一直存在内存之中,要长久保存必须存在磁盘的文件中。

授课目标

本课程从理论和实践两个方面培养和提高学生程序设计能力。理解基本数据类型、简单程序设计、循环程序设计、数组的使用和指针的使用等知识,掌握程序设计的基本思想和C语言的基本数据类型,程序控制的基本构架,大量同类数据的存储与处理,以及如何通过指针解决问题。初步具备使用C语言解决问题的基本能力。培养学生程序设计、开发与测试能力,应用计算思维方法去分析和解决问题的能力,以及团队合作精神,为学习后续课程和进一步获得程序设计相关知识等奠定坚实的基础。

课程大纲
任务01:我的名片——C语言程序设计初步
课时目标:计算机技术的发展日新月异,程序设计语言也层出不穷。语言是人与人、人与其他事物或者其他事物之间交流的工具,计算机语言是人与计算机交流的工具。C程序设计语言,是一种结构化的、面向过程的高级语言,它有着丰富的数据类型和运算符、灵活的语法和强大的功能。本任务主要介绍程序、程序设计语言的相关概念,程序设计语言的发展历程,算法及算法的描述方法,结构化程序设计方法,C程序的基本结构和执行流程等内容,此外还介绍了本书所使用的编译调试工具——Visual C++6.0集成开发环境。
任务01:我的名片
任务1.1 初识C语言
任务1.2 程序与算法
任务1.3 结构化程序设计方法
任务1.4 C语言的发展和特点
任务1.5 Visual C++6.0开发平台简介
任务1.6 C程序的编译
C语言概述单元测验
C语言概述单元作业
C语言程序初探单元测验
C语言程序初探单元作业
任务02:数字翻转——基本数据类型、运算符与表达式
课时目标:数据是程序处理的主要对象,数据承载着信息,在计算机世界里,数据是计算机能识别的所有符号的统称,不同的数据有不同的表现形式,在计算机中也有不同的存储结构,数据根据其描述事物的不同,又进行了分类,也就是把数据分为不同的类型,如整型、实型、字符型等。本任务主要讲解数据类型、表示数据的常量和变量、处理数据的各种运算符、由运算符和操作数构成的各种表达式等。讲解了整型、实型、字符型等基本数据类型,算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符、逗号运算符以及由这些运算符和操作数组成的表达式。
任务02:数字翻转
任务2.1 C语言中的标识符与数据类型
任务2.2 常见数据类型
任务2.3 算术运算符、自增自减运算符、关系运算符
任务2.4 逻辑运算符、条件运算符、逗号运算符、赋值运算符
任务2.5 数据类型转换
数据类型单元测验
数据类型单元作业
运算符单元测验
运算符单元作业
任务03:菜单设计——顺序结构程序设计
课时目标:结构化程序设计语言由三种固定的程序结构组成,即顺序结构、选择结构与循环结构。顺序结构是较为常见的一种结构,也是最简单的一种结构,它由一组顺序执行的程序块组成。顺序结构常用来解决生活中按照从前到后的顺序依次解决的这些问题。本任务主要讲解顺序结构程序设计中用到的输入输出语句、赋值语句等。
任务03:菜单设计
任务3.1 数据的输入输出
任务3.2 顺序语句
顺序结构单元测验
顺序结构单元作业
任务04:小型计算器——选择结构程序设计
课时目标:选择结构是一种常用的程序结构。在自然界和社会生活中,选择是最为常见的,经常会出现两种或多种分支情况需要选择其一的情况,并且在任何情况下都有“无论分支多少,必择其一;纵使分支众多,仅择其一”的固定特征。选择结构在执行的时候,需要先进行选择条件的判断,根据所判定的条件决定执行哪个分支,选择判定条件的结果往往是一个逻辑值(如if选择结构),为真(非0)或为假(0),根据此结果执行为真的分支或为假的分支;有的时候判断条件是一个整型值或字符型的值,在执行时可与数值相等的分支进行匹配,如果匹配成功,就去执行相应的分支(如switch分支结构)。
任务04:小型计算器
任务4.1 if语句
任务4.2 switch语句和goto语句
选择结构单元测验
选择结构单元作业
任务05:薪水计算——循环结构程序设计
课时目标:循环是自然界和社会生活中常见的现象,如地球绕太阳周而复始地公转,地球本身还要不停地自转;每年12个月份不停地循环;在社会生活中,循环也非常常见,绕着体育场的跑道一圈圈地跑步;生产车间里,流水线不停地生产某个产品或者零件等。循环结构是程序设计一种很重要的结构,在许多问题的求解过程中,都要用到循环结构,在程序设计中,表现为重复地执行一段代码。
任务05:薪水计算
任务5.1 三种循环结构
任务5.2 break语句和continue语句
循环结构单元测验
循环结构单元作业
任务06:双色球——数组
课时目标:单个变量在内存中只开辟一个存储单元,某一个时刻也只能存储一条数据,而在程序设计中,往往需要对批量数据进行处理,如对全体学生的成绩求平均分,需要存储大量的数据,此时如果用单个变量存储这些成绩,则需要定义许多变量,使程序变得复杂,代码可读性不强,变量定义的个数甚至会大大超过语句的个数,一个简单的程序可能要定义许多变量。使用数组则只需要定义一次就能存储多个同种类型的数据,从而简化了程序中数据的存储方法。数组是由同种数据类型的数据(假设为n个)所构成的有限序列,它在内存中用连续的n个存储单元存储。数组是一种构造数据类型,用定义过的数据类型(可以说是多个变量)可以进行拆分,拆分过后的每个数据由其他数据类型定义而成。构造类型本身并不是一种新的数据类型,它只是由其他类型构造而成。本课程任务十将要讲解的结构体和共用体也是构造数据类型。数组定义好后,数组中的每个数据称为数组元素,它代表内存的一个存储单元,所以一个数组元素也可以称为一个变量,多个数组元素在连续的存储单元存储就构成了数组,一个数组元素可由数组名称和下标来唯一确定,所以有时也称一个数组元素为一个下标变量。C语言中的数组有一维数组、二维数组和多维数组,本任务只介绍一维数组和二维数组。有了数组以后,就可以方便地处理大批量的数据了。
任务06:双色球
任务6.1 一维数组和二维数组
任务6.2 字符数组和字符串
数组单元测验
数组单元作业
任务07:体侧成绩判定——函数
课时目标:结构化程序设计的基本思想是自顶向下、逐步求精,按照这种思想,对于一个软件项目,常将其分解成若干个模块,每个模块是功能相对独立的一组操作,模块还可以根据需要再细分为子模块。模块化是C语言编程的特点,使得团队协作成为可能。一个项目按照结构化编程思想分为独立或者相对独立的若干个模块,各模块之间尽量保持一种松散的联系,便于各模块之间的并行开发。在C语言程序设计中,一个模块可以用一个或多个函数实现,一个函数是独立完成某种功能的程序段。本任务主要介绍函数的定义、函数的调用及返回值、函数的参数以及函数调用时参数间的传递、函数的嵌套调用和递归调用、局部变量和全局变量、内部函数和外部函数等。
任务07:体侧成绩判定
任务7.1 函数的定义与传参
任务7.2 函数的嵌套和递归
任务7.3 变量的作用域和存储类别
函数单元测验
函数单元作业
任务08:回文诗——指针
课时目标:在内存中,每一个字节都有唯一的地址,一个存储单元包含一个或多个字节,构成存储单元的第一个字节的地址被称为该存储单元的地址。在C语言中,地址又被称为指针,意为“指向”该存储单元的意思。指针是C语言中广泛使用的一种数据类型,指针使C语言的编程变得异常灵活,功能变得十分强大,使用了指针的程序运行会更加高效。指针是C语言的精华,利用指针进行编程是C语言具有纸级语言的特征之一,利用指针可以让编程人员方便地使用内存,但是指针使用不好,也会带来隐患,所以使用指针要小心。本任务主要内容有指针与指针变量的概念、指针与一维数组、指针与二维数组、指针与字符串、指针函数与函数指针,内存的动态分配、命令行参数等。
任务08:回文诗
任务8.1 指针的定义
任务8.2 指针与数组、字符串
任务8.3 指针与函数
任务8.4 动态内存分配和命令行参数
指针基础单元测验
指针基础单元作业
指针的高级运算单元测验
指针的高级运算单元作业
任务09:格式输出——编译预处理
课时目标:C语言程序如果在程序的开头写有预编译命令,则C源程序在编译之前又多了一个阶段,该阶段就是预编译,也叫预处理。预编译阶段所做的工作主要是代码的替换,预编译命令有宏定义、文件包含、条件编译等,本任务主要讲述前两种。在源程序中,一般是放在开头,用#define写出的预处理命令称作是宏定义,用#include写出的预处理命令称作是文件包含,当源程序进行预编译时,就会用相应的代码替换用#define定义的宏,用头文件中的内容替换#include包含的头文件,使用预编译命令的好处之一就是提高软件开发的效率。
任务09:格式输出
任务9.1 宏定义
任务9.2 文件包含
编译预处理单元测验
编译预处理单元作业
任务10:成绩管理——构造数据类型
课时目标:结构体和共用体属于C语言中的构造数据类型,任务六学习过的数组也是一种构造数据类型。在生活中经常遇到一些关系密切而数据类型不同的数据,而且这些数据大多数都是对某一种事物的特征进行描述,如要编写与学生有关的程序时候,经常要关心学生的学号、姓名、性别、班级、成绩等信息,这些信息是用来描述学生的,不是用来描述其他群体的,这些特征构成了一个有机的整体,用它们能够定义一类事物。为了处理方便,C语言中常把它们组织在一起,并定义为结构体类型,这些特征也构成了结构体类型中的成员,结构体的标识符是struct,它是由用户自定义的一种数据类型,用户可以决定结构体中成员的个数。用结构体类型定义的变量称为结构体变量,结构体变量可以进行拆分,拆分后的每一个成员是基本数据类型或者其他类型定义的变量,所以结构体类型属于构造数据类型。与结构体类型相似的还有共用体类型,其标识符是union,它的作用跟结构体大致相同,与结构体主要的不同是共用体里面的成员共享同一块存储单元,共用体也因此而得名。
任务10:成绩管理
任务10.1 结构体
任务10.2 共用体
构造数据类型单元测验
构造数据类型单元作业
任务11:循环移位——位运算
课时目标:位运算是指在计算机中对字节的二进制位进行的运算。在系统软件中,经常要处理二进制位的问题,比如将一个存储单元中的各二进制位左移或右移一位、两个数按位进行相加、将一个字节的某些位翻转、清零或置1等,需要具备能够进行按位进行运算的能力。C语言具有这样的功能和特点,这是C语言优越于其它语言的特点之一,也是C语言具有低级语言功能的主要标志。
任务11:循环移位
任务11.1 位运算
位运算单元测验
位运算单元作业
任务12:个人日记本——文件
课时目标:前面任务中,所用到的输入和输出都是以终端为对象的,即从键盘终端输入数据,运行结果输出到屏幕终端上,此种情况,不能把数据长久地存放。但是在程序运行时,常常需要将一些数据(运行的最终结果或中间数据)输出到磁盘上存放起来,以后需要时再从磁盘中输入到计算机内存,这时,就要用到磁盘文件,操作系统也是以文件为单位对数据进行管理的,如果要想找到存在外部介质上的数据,必须先按文件名找到指定的文件,然后再从文件中读取数据,要向外部介质中存入数据,也必须先建立一个文件,才能向它输出数据。本任务主要内容有文件及文件指针,文件的打开与关闭,文本文件与二进制文件的操作方法,文件的定位等。
任务12:个人日记本
任务12.1 文件操作
任务12.2 文件定位
文件操作单元测验
文件操作单元作业
展开全部
预备知识

本课程可以零基础进行学习,如果你学过《计算机应用基础》等相关课程,将有助于深入了解本课程的部分内容,如果没有任何先修课的知识,建议自学一些简单的信息在计算机中的表达和计算机硬件基本结构的相关知识。

1.计算机应用基础
2.计算机硬件基本结构
3.二进制转换
4.ASCII码应用
5.数据的补码表示

参考资料

[1]谭浩强.C程序设计(第五版)[M].北京:清华大学出版社,2017.

[2]张成叔,万芳.C语言程序设计[M].北京:高等教育出版社,2019.

[3]沈涵飞.C语言程序设计[M].北京:机械工业出版社,2018.

[4]乌云高娃,沈翠新,杨淑萍.C语言程序设计(第四版)[M].北京:高等教育出版社,2020.

[5]梅创社,李俊.C语言程序设计(第三版)[M].北京:北京理工大学出版社,2019.

[6]李学刚,戴白刃.C语言程序设计(第二版)[M].北京:高等教育出版社,2017.

[7]丁爱萍,郝小会,孙宏莉.C语言程序设计实例教程(第二版)[M].西安:西安电子科技大学出版社,2009.

[8]李凤霞.C语言程序设计教程(第三版)[M].北京:北京理工大学出版社,2011.

[9]赵彦.C语言程序设计[M].北京:高等教育出版社,2019.

[10]K.N.King.C语言程序设计现代方法(第二版)[M].吕秀锋,黄倩译.北京:人民邮电出版社,2021.

[11]赵凤芝,包锋.C语言程序设计能力教程[M].4版.北京:中国铁道出版社,2018.

[12]教育部考试中心.全国计算机等级考试二级教程——C语言程序设计[M].北京:高等教育出版社,2021.

[13]武春岭,高灵霞.C语言程序设计(第二版)[M].北京:高等教育出版社,2020.

[14]周雅静,邢小英,徐济惠.C语言程序设计项目化教程(第二版)[M].北京:电子工业出版社,2019.

[15]常中华,王春蕾,毛旭亭,陈静.C语言程序设计实例教程(第二版)[M].北京:人民邮电出版社,2021.

[16]连卫民,何樱.C语言程序设计[M].北京:中国水利水电出版社,2016.

[17]赵睿.C语言程序设计(第二版)[M].北京:高等教育出版社,2019.

[18]刘畅.C语言实用教程(第三版)[M].北京:电子工业出版社,2018.

[19]王明福.C语言程序设计案例教程(第二版)[M].辽宁:大连理工大学出版社,2018.

常见问题

Q :  我需要特殊版本的计算机吗?

A :  任何计算机都可以用于C语言编程,包括但不限于各个版本的MS Windows、各个版本的Mac OS X、各种发行版本的Linux。有的手机有app也能实现C语言编程,不过我们不推荐那么小的屏幕。

Q :  学习《C语言程序设计》使用哪种编译器好?

A :  学习C语言的编程软件有多种,微软Windows系列,苹果 OS X系列,各种版本的Linux都可以作为练习C语言的操作系统,常常是各有优点。我们建议使用Visual C++ 6.0,其他的还有DEV C++、Code::Blocks、C-Free等都是很好的编程软件,有时间都熟悉一下是很好的选择。


Q :  如何学好程序设计?

A :  学习程序设计是一门实践性很强的课程,建议同学们在学习程序设计过程中,认真学习、理解基本概念和语法规则,多上机编程练习。在学习中可以采用模仿设计的方法,首先仿照课程的例题编写程序,修改其中个别语句,观察运行结果。然后开始编写课程的作业程序,可以试着以多种方法编写,从而更好地理解程序设计的思想。


Q :  每周会发布多少时间的视频?我需要花多少时间来学习?

A :  我们按照90分钟的授课时间来设计课程。但是发布的视频肯定小于90分钟。因为在线下上课时,老师可能会回顾一下上周的内容、某些内容会看学生的反应重复几遍、会当堂问做一些提问,以及在各种软件等教学工具之间切换,这些都要花点时间,而这些在线上课程中都不存在了,所以视频的时间不会正好是90分钟。但是一般我们设计课程需要1:1.5到1:2的课后学习时间,这包括预习、作业、练习和复习的时间,所以每周大约需要花费三到五小时的时间。


Q :  学习过程中可能出现的问题有哪些?

A :  注重理论学习,忽视上机编程实践;入门时以为难度大,产生畏难情绪;太注重学习语句的语法规则,忽视了对编程思路和方法的训练;急于求成,总想编写综合性的程序,忽视基本概念,忽视基本功的训练。

河南工业职业技术学院
14 位授课老师
杜恒

杜恒

教授

李巧君

李巧君

副教授

杨俊成

杨俊成

副教授

推荐课程

SolidWorks三维建模技术-从入门到精通【上新早鸟价】

机械攻城狮-fighting

61人参加

工程图学期末冲刺-5小时突击工程制图/画法几何与工程制图/机械制图

mao-sir

4039人参加

机械设计基础期末冲刺/考研-5小时突击机械设计基础

机械攻城狮-fighting

6775人参加

机械原理不挂科-5小时学完机械原理

猴博士爱讲课

173879人参加
下载
下载

下载App