第一章 C语言概述 计算机公共教学部
开始的话 我已经能熟练地操作计算机了,还学什么? 计算机能做什么? 如何把计算机做为求解问题的工具,为我服务终身?
计算机能做什么? 计算机可以做任何事情;只要能把实际问题抽象、制作为计算机可求解的程序。
C语言能做什么 C语言博大精深,目前所有的软件都可以由C语言实现 但是不是所有软件都用C语言编写,为什么?
教材、参考书与课时安排 教材 《C程序设计教程》(第三版) 安徽大学出版社 2009年
参考书 谭浩强《C程序设计题解与上机指导》(第三版)清华大学出版社 2005年 谭浩强《C程序设计试题汇编》清华大学出版社,2006年
本学期课时安排 授课 :48学时 上机: 24学时 上机地点:计算中心实验室 上实验课请带鞋套
本书的结构 “C程序设计”共分12章, 本课程只教授前11章,第12章C++基础为选学内容。
(1)C语言的基本内容 内容包括: 基本数据类型 表达式 程序控制结构(顺序、分支、循环) 数组与函数 在学习了这些内容之后, 学生应能编写、调试和运行一般规模和难度的应用程序(如数值计算类程序), 并对结构化程序设计方法有所了解, 为编写较大规模的应用程序打下基础。
(2)C语言的高级编程技术 内容包括: 指针应用 高级数据结构 编译预处理以及C语言的调试技术 文件 这一部分中, 强调对基本概念的理解和掌握, 以及在理解和掌握的基础上运用这些高级编程技术的方法,锻炼、培养较大规模、比较复杂的应用程序的编程能力。
C语言课程要求 所有作业、实验必须按时、独立完成 作业、实验必须经上机调试通过. 每天坚持编写程序50行 作业、实验必须上传到服务器(在规定时间内)
课程要求 课前请做好预习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上机时间,上机后及时上交实验报告 有问题随时与任课老师联系 课程网站:http://211.70.51.112
第一章 C语言概述 C语言出现的历史背景 C语言的特点 简单的C语言程序介绍 运行C程序的步骤和方法
教学目标 介绍C语言程序的基本结构 介绍在计算机上输入、编译、调试和运行C程序的基本方法和步骤。
C语言出现的历史背景 程序设计语言的发展 程序设计是数据被加工的过程 机器语言 汇编语言 高级语言 面向过程 面向对象 冯.诺依曼结构: 计算机 运算器 控制器 存储器 主机: I/O设备:键盘、显示器等 中央处理器CPU 面向机器的语言 1946年,第一台电子计算机问世,应用领域迅速扩大,软硬件飞速发展,程序设计语言相继问世。 程序设计语言:将自然语言形式化为有格式的语言 1。机器语言: 计算机能够认识的语言 计算机的基础是数字电路 机器语言就是数字电路里的电信号 将在《计算机组成》课程中学习 都是二进制文件 一条机器语言成为一条指令 指令是不可分割的最小功能单元 定义:一种CPU的指令系统,由该CPU可识别的0、1序列构成的指令码组成。 特点: 执行效率高 不直观,不易查错,生产效率低。 2。汇编语言 定义:用助记符号描述的指令系统 生产效率高,质量好,执行效率较高; 要经汇编程序汇编成目标程序(机器语言)才能执行,依赖硬件。 (面向机器的语言----依CPU不同而异) 3。高级语言 编程效率高,不必考虑硬件; 执行效率低,要经编译、连接后才能执行。 面向过程的程序设计语言 认为解题过程是数据被加工的过程 程序=数据结构+算法 C语言是面向过程的高级语言 面向对象的程序设计语言 一种结构模拟方法。认为:现实世界由对象组成,对象是数据和方法的封装体;客观世界可以分类,每个对象是类的一个实例。 特点:比面向过程的语言更清晰、易懂,适宜编更大规模程序,是程序设计的主流 程序设计语言基本成分: 。数据成分 。运算成分 。控制成分 。传输成分 程序设计语言定义:用于书写计算机程序的语言。通常指实现高级语言。 语言的基础是一组记号与一组规则。 程序设计语言包括: 语法:记号的组合规则 语义:记号的特定意义 语用:程序与使用者的关系 CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减 客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系 用助记符号描述的指令系统 如 ADD A, B 程序设计关键是定义类,并由类派生对象 > >
C语言的诞生与发展 在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。 C语言是贝尔实验室于70年代初研制出来的,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSI C标准(1989年再次做了修订)。 本书以ANSIC新标准来介绍。
C语言的特点 语言简洁、紧凑、灵活 运算符和数据类型丰富 程序设计结构化、模块化 生成目标代码质量高 编译预处理提高开发效率 可移植性好 中级语言 > > > > > > < >
32个关键字 由系统定义,不能重作其它定义 < sizeof auto extern static break float struct switch typedef unsigned union void volatile while auto break case char const continue default do double else enum extern float for goto If int long register return short signed <
9种控制语句 if( )~else~ for( )~ while( )~ do~while( ) continue break switch goto return <
例 C语言与Pascal语言比较 < C语言 Pascal语言 含义 { } BEGIN….END 复合语句 if(e) s; IF(e) THEN s 条件语句 int i ; VAR i:INTEGER 定义i为整型变量 int a[10]; VAR a:ARRAY[1..10] OF INTEGER 定义整型数组a int f(); FUNCTION f():INTEGER 定义f为返值整型的函数 int *p; VAR p:INTEGER 定义p为指向整型变量的指针 i+= 2; i=i+2 赋值i+2i i++,++i; i=i+1 i自增值 结论:C比 Pascal简练,源程序短。 <
34种运算符 < 算术运算符:+ - * / % ++ -- 关系运算符:< <= == > >= != 算术运算符:+ - * / % ++ -- 关系运算符:< <= == > >= != 逻辑运算符:! && || 位运算符: << >> ~ | ^ & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数: sizeof 强制类型转换:(类型) 分量运算符:. -> 下标运算符:[] 其它: ( ) - <
C 数 据 类 型 基本类型 构造类型 指针类型 空类型void 定义类型typedef 数值类型 字符类型char 枚举类型enum 整 型 浮点型 单精度型float 双精度型double 短整型short 长整型long 整型int 数组 结构体struct 共用体union <
简单的C语言程序介绍 例1.1 第一个程序 Hello,World! /* example1.1 The first C Program*/ #include <stdio.h> main() { printf(“Hello,World!”); } 注释 编译预处理 函数 语句 输出: Hello,World! >
函数 注释 语句 运行结果: sum=24 > /* example1.2 get the max of a and b*/ #include <stdio.h> /* This is the main program */ main() { int a,b,c; a=10; b=24; c=max(a,b); printf(”max= %d\n",c); } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); 函数 注释 语句 运行结果: sum=24 >
main( ) { ………………. ……………… ………….. ……… ………. …………… ……………. ………………. ……………….. 格式特点 习惯用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式 main( ) { ………………. ……………… ………….. ……… ………. …………… ……………. ………………. ……………….. } main( ) { int i , j , sum; sum=0; for(i=1; i<10;i++) for(j=1;j<10;j++) sum+=i*j ; } printf(“%d\n”,sum); 优秀程序员的素质之一 使用TAB缩进 {}对齐 有足够的注释 有合适的空行 < >
结构特点 函数与主函数 程序语句 注释 非法 例: /*This is the main /* of example1.1*/ */ 程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 程序语句 C程序由语句组成 用“;”作为语句终止符 注释 /* */为注释,不能嵌套 不产生编译代码 非法 例: /*This is the main /* of example1.1*/ */
1.4 运行C程序的步骤和方法 C程序开发步骤 编辑 链接 编译 执行 < > 程序代码的录入, 生成源程序*.c 始 编 辑 译 连 接 执 行 有错? 结果正确? 结 束 有 源程序 file .c 目标程 序 file.obj 库函数和 其它目标 程序 可执行 无 正确 不正确 语法分析查错,翻译 生成目标程序*.obj 与其它目标程序或库 链接装配,生成可执行 程序*.exe file.exe < >
VC环境使用 1、VC安装 2、VC环境进入 3、VC工程建立 4、VC编译、链接、运行
结束语 “纸上谈兵”学不出程序设计本领;只有大量上机、编程、调试,才能掌握。 学好程序设计语言的唯一途径是上机。 你的编程能力和你在机器上投入的时间成正比。