C语言程序设计

李永宁 李志慧 王荣福 郭艳宏 蔡荣贵 王露 康高厉 夏雨 赵东琛

目录

  • 1 第一章 C语言概述
    • 1.1 教学材料
      • 1.1.1 课程纲要
      • 1.1.2 授课计划
      • 1.1.3 课内实训指导书
      • 1.1.4 教案
    • 1.2 C语言概述
      • 1.2.1 学习目标
      • 1.2.2 学习视频
      • 1.2.3 学习效果检测
      • 1.2.4 练习及作业
    • 1.3 C语言基本程序结构
    • 1.4 C程序的编辑、编译、连接和运行
    • 1.5 PPT
  • 2 第二章 C程序设计基础
    • 2.1 C语言数据类型
      • 2.1.1 数据类型
      • 2.1.2 学习视频
    • 2.2 运算符和表达式
      • 2.2.1 学习视频
    • 2.3 顺序结构程序设计
    • 2.4 数据的输入与输出
    • 2.5 上机实践
    • 2.6 章节测试
  • 3 第三章  选择结构程序设计
    • 3.1 关系运算符和关系表达式
    • 3.2 逻辑运算符和逻辑表达式
    • 3.3 if语句
      • 3.3.1 学习视频
    • 3.4 Switch语句
    • 3.5 上机实践
    • 3.6 PPT
  • 4 第四章   循环结构程序设计
    • 4.1 whiile语句和do while语句
      • 4.1.1 学习视频
    • 4.2 for语句循环结构
    • 4.3 break 、continue语句
    • 4.4 goto语句
    • 4.5 嵌套循环结构
    • 4.6 循环小结
    • 4.7 实训3-循环结构程序设计
    • 4.8 PPT
  • 5 第五章   数组
    • 5.1 一维数组
      • 5.1.1 微课视频-冒泡排序法
    • 5.2 二维数组与字符数组
      • 5.2.1 预习任务
    • 5.3 字符数组与字符串
    • 5.4 项目实训4-数组的应用
    • 5.5 PPT
    • 5.6 数组学习效果检测
  • 6 第六章  函数
    • 6.1 函数概述
      • 6.1.1 预习任务
      • 6.1.2 微课视频
      • 6.1.3 知识点思维导图
      • 6.1.4 课后作业
    • 6.2 函数的参数和返回值
      • 6.2.1 预习效果检测
      • 6.2.2 微课视频
      • 6.2.3 学习效果检测
    • 6.3 函数的调用
    • 6.4 函数的嵌套和递归调用
    • 6.5 数组作为函数的参数
    • 6.6 局部变量和全局变量
    • 6.7 内部函数和外部函数
    • 6.8 项目实训5
    • 6.9 PPT
  • 7 第7章 编译预处理
    • 7.1 宏定义
      • 7.1.1 不带参数的宏定义
      • 7.1.2 带参数的宏定义
    • 7.2 “文件包含”处理
    • 7.3 条 件 编 译
    • 7.4 电子课件
  • 8 第8章 指针
    • 8.1 指针的基本概念
      • 8.1.1 变量的地址
      • 8.1.2 指针变量的定义
      • 8.1.3 指针变量的引用
    • 8.2 指针与一维数组
      • 8.2.1 指向一维数组的指针变量
      • 8.2.2 通过指针引用一维数组元素
      • 8.2.3 指针使用的几个细节
    • 8.3 指针与字符串
      • 8.3.1 使用指针处理字符串
      • 8.3.2 字符型指针变量作函数参数
      • 8.3.3 字符指针变量与字符数组的区别
    • 8.4 指针与二维数组
      • 8.4.1 二维数组的指针
      • 8.4.2 行指针变量
      • 8.4.3 二维数组的指针作函数参数
    • 8.5 指针数组与多级指针
      • 8.5.1 指针数组
      • 8.5.2 多级指针的概念
    • 8.6 指针与函数
      • 8.6.1 指针变量作为函数的参数
      • 8.6.2 函数的指针
      • 8.6.3 返回指针值的函数
    • 8.7 main函数的参数
      • 8.7.1 main函数参数的概念
      • 8.7.2 main函数参数的处理
    • 8.8 程序设计举例
    • 8.9 课内实训
    • 8.10 PPT
    • 8.11 学习效果检测
  • 9 第9章 结构体与其他数据类型
  • 10 文件
  • 11 24级软件工程、网络工程、物联网工程等专业C语言课程设计
    • 11.1 实训指导书
    • 11.2 项目一 学生信息管理系统.PPT
    • 11.3 项目二 图书管理系统PPT
    • 11.4 实训报告电子版下载
  • 12 21级软件工程-C语言程序设计
    • 12.1 21级软件工程-C语言程序设计-实训预备项目指导书下载
    • 12.2 新建目录
    • 12.3 21级软件工程-C语言程序设计-实训指导书下载
    • 12.4 ​视频:C语言打造学生信息管理系统
    • 12.5 视频:学生成绩管理系统的设计
    • 12.6 视频:指针
    • 12.7 实训报告电子版
课内实训

项目六 指针的应用

一、   项目(实训)名称

指针的应用

二、       目(实训)学时数

6课时

三、       项目(实训)目标

实训目标:

1、掌握指针变量的定义与引用。

2、熟练使用函数指针、数组指针、字符串指针编写应用程序。

最终成果:

1、演示程序运行的过程和结果。

2、说明调试过程中出现的现象。

3、实训报告。

获得的知识:

1、通过指针访问内存的方法。

2、指针与数组的关系。

3、使用函数指针的方法。

4、动态分配内存的方法

四、       项目(实训)中的具体任务

1写一函数,求一个字符串的长度。

方法说明:

在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char *p),得到字符串的长度。在函数strlenth(char *p)中,判断*p是否为’\0’,如果不为’\0’,则进行len++的操作,直到遇到’\0’为止。然后返回len值。

2编写一个函数,将数组中n个数按反序存放。

3设一个函数,调用它时,每次实现不同的功能:(1)求两个数之和;(2)求两个数之差;(3)求两个数之积。

五、       教师知识和能力要求

1C语言语法。

2、程序运行内存的管理。

六、       学生知识和能力准备

1、掌握指针的定义和引用。

2、掌握指针指向数组的方法。

3、掌握指针指向字符串的表示方法。

4、掌握指针函数的定义和引用。

七、       工具与设备

1PC机。

2Windows 2010操作系统。

3、综合开发环境(IDE): CodeBlocksVisualStudio CommunityVisual C++ 6

八、       教学资料

C程序设计》(第五版),谭浩强著,清华大学出版社,20178

九、       实施步骤与技术要点

1写一函数,求一个字符串的长度。

实验步骤与要求:

(1) 本部分习题要求全部用指针完成;

(2) main函数中输入字符串,并输出其长度;

(3) 本题不能使用strlen()函数;

方法说明:

在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char *p),得到字符串的长度。在函数strlenth(char *p)中,判断*p是否为’\0’,如果不为’\0’,则进行len++的操作,直到遇到’\0’为止。然后返回len值。

求字符串长度的函数strlenth(char *p)算法如下:

1.定义intlen=0;

2.当*p!=’\0’时,重复执行(2.1)(2.2),否则算法终止。

(2.1)len=len+1

(2.2)p++

3return(len)

2编写一个函数,将数组中n个数按反序存放。

实验步骤与要求:

(1) 在主函数中输入10个数,并输出排好序的数。

(2) 编写函数invert()10个数按反序存放。

3设一个函数,调用它时,每次实现不同的功能:(1)求两个数之和;(2)求两个数之差;(3)求两个数之积。实验步骤与要求:

(1)在主函数中输入2个数a,b,并输出a,b的和、差和乘积。

(2)分别编写函数add()sub()mul()计算两个数的和、差、积。

(3) 编写函数process(),分别调用函数add()sub()mul()

十、       考核或评价标准

实训成绩将主要根据学生对待实训的态度、对关键知识点和编程技巧的掌握程度、实训报告的内容、答辩情况等进行综合评定。最后的成绩将分优秀、良好、中等、及格和不及格五个等级。具体评判标准如下:

优秀:实训认真、刻苦,有钻研精神,不无故缺席。熟练掌握了本实训的关键知识点,具有良好的独立思考问题和解决问题的能力,具备了较好的C语言编程能力,编制的程序运行正确。实训记录内容丰富、齐全,答辩时能清晰明了地阐明问题,回答问题反映敏捷、思路清晰。

良好:能认真对待实训,不无故缺席。掌握了本实训的关键知识点,具备了较好的C语言编程能力,编写的程序运行正确。实训记录内容齐全,答辩时能清晰明了地阐明问题,能正确回答全部问题。

中等:能认真对待实训,不无故缺席。基本掌握了本实训的关键知识点,具备了一定的C语言编程能力,编写的程序运行基本正确,无致命错误。实训记录内容较齐全,答辩时能正确回答大部分问题。

及格:对待实训不够认真,有少量迟到、早退或无故缺席现象。基本掌握了本实训的主要内容,具有了用C语言编程的基本能力,但掌握不全面、扎实,编写的程序总体结构符合要求,基本能正常运行,但还存在少量错误。实训记录内容基本齐全,答辩时能在教师提示下正确回答大部分问题。

不及格:对待实训马虎、敷衍,经常迟到、早退或无故缺席。不能正确理解本实训的主要内容,不具备基本的C语言编程能力,编制的程序不能正常运行,或是抄袭他人程序,应付答辩。答辩时即使经教师提示仍不能正确回答大部分问题。