上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 02 C语言简介

lecture2一c语言简介 绳伟光 上海交通大学微纳电子学系 2017年02月24日
lecture 2 —— C语言简介 绳伟光 上海交通大学微纳电子学系 2017年02月24日

内容 ■C特性简介 ■第一个c程序一一HelloWorld ■C开发环境 ■HelloWorld分析 ■更多示例
内容 C特性简介 第一个C程序 —— HelloWorld C开发环境 HelloWorld分析 更多示例

C是一种结构化程序设计语言 ■ 结构化编程始于60年代 结构化程序理论:利用顺序、选择及重复这三种 组合程序的方式,可以表示所有可计算函数 ■其它程序设计范式:函数式编程、面向对象、 泛型程序设计
C是一种结构化程序设计语言 结构化编程始于60年代 结构化程序理论:利用顺序、选择及重复这三种 组合程序的方式,可以表示所有可计算函数 其它程序设计范式:函数式编程、面向对象、 泛型程序设计

C语言的常见语言特性 ■基本的控制流:语句块、if-else、switch、 while、for、do while、break、goto ■数据类型:基本类型、结构、联合、指针 ■运算符/表达式种类丰富 ■ C非常依赖函数 ■C支持预处理
C语言的常见语言特性 基本的控制流:语句块、if-else、switch、 while、for、do while、break、goto 数据类型:基本类型、结构、联合、指针 运算符/表达式种类丰富 C非常依赖函数 C支持预处理

C的缺陷 ■ 不支持集合、列表,字符串、数组无range checking 不支持内存垃圾收集 ■不直接支持输入/输出 ■不支持多线程(C11已开始支持) ■不支持异常 有限的类型安全,编译时类型安全检查有限,运行 时无检查 ■不支持面向对象、泛型、函数式程序设计
C的缺陷 不支持集合、列表,字符串、数组无range checking 不支持内存垃圾收集 不直接支持输入/输出 不支持多线程(C11已开始支持) 不支持异常 有限的类型安全,编译时类型安全检查有限,运行 时无检查 不支持面向对象、泛型、函数式程序设计

第一个C程序一一HelloWorld ■C程序约定扩展名为.c ■第一个c程序包含一个文件:first.c 1 #include 2 3 int main(int argc,char *argv[]) 4{ 5 printf("Hello World!\n"); 6 return 0; 7} 8
第一个C程序 —— HelloWorld C程序约定扩展名为.c 第一个C程序包含一个文件:first.c 1 #include 2 3 int main(int argc, char *argv[]) 4 { 5 printf("Hello World!\n"); 6 return 0; 7 } 8

HelloWorld的进一步解释 ■预处理 ■函数 ■主函数 通常情况下main必不可少 必main实际可以更换 必main的参数 ■1O ■返回值 更详细的解释分析留待开发工具介绍之后
HelloWorld的进一步解释 预处理 函数 主函数 通常情况下main必不可少 main实际可以更换 main的参数 IO 返回值 更详细的解释分析留待开发工具介绍之后

HelloWorld,程序编译运行结果 wgsheng@wgsheng-PC:~/calg/helloworld wgshengdwgsheng-PC:~/calg/helloworlds ls first.c wgsheng@wgsheng-PC:~/calg/helloworlds gcc first.c-o first wgsheng@wgsheng-PC:~/calg/helloworlds ls firstfirst.c wgsheng@wgsheng-PC:~/calg/helloworlds ll total 20 drwxrwxr-x 2 wgsheng wgsheng 4096 2月 1300:08 drwxrwxr-x 3 wgsheng wgsheng 40962月 1300:06 -rwxrwxr-x 1 wgsheng wgsheng 7332 2 13 00:08 first* -rw-rw-r--1 wgsheng wgsheng 972月 13 00:08 first.c wgsheng@wgsheng-PC:~/calg/helloworlds ./first Hello World! wgsheng@wgsheng-PC:~/calg/helloworlds
HelloWorld程序编译运行结果

c开发环境(PC) Windows IDE Visual Studio Intel Parallel Studio XE ■Unix/Linux gcc编译器+make系列构建工具 ■新型编译器:LLVM ■Mac IDE xcode ■跨平台DE Eclipse Codeblocks
C开发环境(PC) Windows IDE Visual Studio Intel Parallel Studio XE Unix/Linux gcc编译器+make系列构建工具 新型编译器:LLVM Mac IDE xcode 跨平台IDE Eclipse Codeblocks

Visual Studio 全功能IDE,支持C/C+、C#.. 最新2017版,有免费版Express版 ■ 安装需要近10G空间,完全安装要60G空间 需注意开发c程序文件的扩展名一定要是.c 旗舰级开发工具,代码格式化、代码高亮等功 能非常好用 最好的文档:MSDN 缺陷:屏蔽了底层过程,不利于学习
Visual Studio 全功能IDE,支持C/C++、C#... 最新2017版,有免费版Express版 安装需要近10G空间,完全安装要60G空间 需注意开发C程序文件的扩展名一定要是.c 旗舰级开发工具,代码格式化、代码高亮等功 能非常好用 最好的文档:MSDN 缺陷:屏蔽了底层过程,不利于学习
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 15 输入输出.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 14 内存检测、剖面分析.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 13 高级指针.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 12 结构、联合与枚举.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 11 字符串.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 10 C程序调试.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 01 课程简介及编程基础(绳伟光).pdf
- 机械工业出版社:计算机科学丛书《计算机组成与设计:硬件、软件接口》电子教材(中文第4版).pdf
- 《计算机系统结构》课程教学资源(电子书籍)《Computer Systems》A Programmer's Perspective(Randal E. Bryant、David R. O'Hallaron,THIRD EDITION).pdf
- 《计算机系统结构》课程教学资源(电子书籍)《Computer Organization and Design》THE HARDWARE / SOFTWARE INTERFACE(DAVID A. PATTERSON JOHN L. HENNESSY,Fourth Edtion,彩色版).pdf
- 《中文信息学报》:中文组织机构名称与简称的识别.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲义)方波生成器项目报告书.doc
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第8讲 Windows应用程序设计.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第7讲 C++类(2/2).pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第6讲 C++类(1/2).pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第5讲 指针与引用.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第4讲 数组与结构.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第3讲 函数与结构化程序设计.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第2讲 C++程序的流程控制.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第1讲 C++语言概述及数据类型(何其昌).pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 03 C语言数据类型.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 05 C语言语句.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 06 C语言数组.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 07 函数.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 08 指针.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 09 C程序组织.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 01 算法设计与分析基础.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 01 Greedy and Dynamic Programming.pptx
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 02 Divide and Conquer.pptx
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 04 C语言运算符与表达式.pdf
- 《C程序与算法设计》课程教学资源(学习资料)快乐的Linux命令行.pdf
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)01 ROS系统安装.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)02 ROS基本元素实验(一).doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)03 ROS基本元素实验(二).doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)04 调试和可视化.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)05 外部设备的使用.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)06 机器视觉.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)07 机器人建模与仿真.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)08 机器人导航包.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)09 机械臂规划Moveit.doc